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":["../../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":["../../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":"../.."}
@@ -58,10 +58,10 @@ var NestedSetSubjectExecutor = /** @class */ (function () {
58
58
  _a.label = 2;
59
59
  case 2:
60
60
  if (!(parentNsRight !== undefined)) return [3 /*break*/, 4];
61
- return [4 /*yield*/, this.queryRunner.query("UPDATE " + tableName + " SET " +
62
- (leftColumnName + " = CASE WHEN " + leftColumnName + " > " + parentNsRight + " THEN " + leftColumnName + " + 2 ELSE " + leftColumnName + " END,") +
63
- (rightColumnName + " = " + rightColumnName + " + 2 ") +
64
- ("WHERE " + rightColumnName + " >= " + parentNsRight))];
61
+ return [4 /*yield*/, this.queryRunner.query("UPDATE ".concat(tableName, " SET ") +
62
+ "".concat(leftColumnName, " = CASE WHEN ").concat(leftColumnName, " > ").concat(parentNsRight, " THEN ").concat(leftColumnName, " + 2 ELSE ").concat(leftColumnName, " END,") +
63
+ "".concat(rightColumnName, " = ").concat(rightColumnName, " + 2 ") +
64
+ "WHERE ".concat(rightColumnName, " >= ").concat(parentNsRight))];
65
65
  case 3:
66
66
  _a.sent();
67
67
  OrmUtils_1.OrmUtils.mergeDeep(subject.insertedValueSet, subject.metadata.nestedSetLeftColumn.createValueMap(parentNsRight), subject.metadata.nestedSetRightColumn.createValueMap(parentNsRight + 1));
@@ -141,45 +141,45 @@ var NestedSetSubjectExecutor = /** @class */ (function () {
141
141
  else {
142
142
  entitySize = parentNs.right - entityNs.left;
143
143
  }
144
- updateLeftSide = "WHEN " + leftColumnName + " >= " + entityNs.left + " AND " +
145
- (leftColumnName + " < " + entityNs.right + " ") +
146
- ("THEN " + leftColumnName + " + " + entitySize + " ");
147
- updateRightSide = "WHEN " + rightColumnName + " > " + entityNs.left + " AND " +
148
- (rightColumnName + " <= " + entityNs.right + " ") +
149
- ("THEN " + rightColumnName + " + " + entitySize + " ");
144
+ updateLeftSide = "WHEN ".concat(leftColumnName, " >= ").concat(entityNs.left, " AND ") +
145
+ "".concat(leftColumnName, " < ").concat(entityNs.right, " ") +
146
+ "THEN ".concat(leftColumnName, " + ").concat(entitySize, " ");
147
+ updateRightSide = "WHEN ".concat(rightColumnName, " > ").concat(entityNs.left, " AND ") +
148
+ "".concat(rightColumnName, " <= ").concat(entityNs.right, " ") +
149
+ "THEN ".concat(rightColumnName, " + ").concat(entitySize, " ");
150
150
  if (!isMovingUp) return [3 /*break*/, 6];
151
- return [4 /*yield*/, this.queryRunner.query("UPDATE " + tableName + " " +
152
- ("SET " + leftColumnName + " = CASE ") +
153
- ("WHEN " + leftColumnName + " > " + entityNs.right + " AND ") +
154
- (leftColumnName + " <= " + parentNs.left + " ") +
155
- ("THEN " + leftColumnName + " - " + treeSize + " ") +
151
+ return [4 /*yield*/, this.queryRunner.query("UPDATE ".concat(tableName, " ") +
152
+ "SET ".concat(leftColumnName, " = CASE ") +
153
+ "WHEN ".concat(leftColumnName, " > ").concat(entityNs.right, " AND ") +
154
+ "".concat(leftColumnName, " <= ").concat(parentNs.left, " ") +
155
+ "THEN ".concat(leftColumnName, " - ").concat(treeSize, " ") +
156
156
  updateLeftSide +
157
- ("ELSE " + leftColumnName + " ") +
157
+ "ELSE ".concat(leftColumnName, " ") +
158
158
  "END, " +
159
- (rightColumnName + " = CASE ") +
160
- ("WHEN " + rightColumnName + " > " + entityNs.right + " AND ") +
161
- (rightColumnName + " < " + parentNs.left + " ") +
162
- ("THEN " + rightColumnName + " - " + treeSize + " ") +
159
+ "".concat(rightColumnName, " = CASE ") +
160
+ "WHEN ".concat(rightColumnName, " > ").concat(entityNs.right, " AND ") +
161
+ "".concat(rightColumnName, " < ").concat(parentNs.left, " ") +
162
+ "THEN ".concat(rightColumnName, " - ").concat(treeSize, " ") +
163
163
  updateRightSide +
164
- ("ELSE " + rightColumnName + " ") +
164
+ "ELSE ".concat(rightColumnName, " ") +
165
165
  "END")];
166
166
  case 5:
167
167
  _a.sent();
168
168
  return [3 /*break*/, 8];
169
- case 6: return [4 /*yield*/, this.queryRunner.query("UPDATE " + tableName + " " +
170
- ("SET " + leftColumnName + " = CASE ") +
171
- ("WHEN " + leftColumnName + " < " + entityNs.left + " AND ") +
172
- (leftColumnName + " > " + parentNs.right + " ") +
173
- ("THEN " + leftColumnName + " + " + treeSize + " ") +
169
+ case 6: return [4 /*yield*/, this.queryRunner.query("UPDATE ".concat(tableName, " ") +
170
+ "SET ".concat(leftColumnName, " = CASE ") +
171
+ "WHEN ".concat(leftColumnName, " < ").concat(entityNs.left, " AND ") +
172
+ "".concat(leftColumnName, " > ").concat(parentNs.right, " ") +
173
+ "THEN ".concat(leftColumnName, " + ").concat(treeSize, " ") +
174
174
  updateLeftSide +
175
- ("ELSE " + leftColumnName + " ") +
175
+ "ELSE ".concat(leftColumnName, " ") +
176
176
  "END, " +
177
- (rightColumnName + " = CASE ") +
178
- ("WHEN " + rightColumnName + " < " + entityNs.left + " AND ") +
179
- (rightColumnName + " >= " + parentNs.right + " ") +
180
- ("THEN " + rightColumnName + " + " + treeSize + " ") +
177
+ "".concat(rightColumnName, " = CASE ") +
178
+ "WHEN ".concat(rightColumnName, " < ").concat(entityNs.left, " AND ") +
179
+ "".concat(rightColumnName, " >= ").concat(parentNs.right, " ") +
180
+ "THEN ".concat(rightColumnName, " + ").concat(treeSize, " ") +
181
181
  updateRightSide +
182
- ("ELSE " + rightColumnName + " ") +
182
+ "ELSE ".concat(rightColumnName, " ") +
183
183
  "END")];
184
184
  case 7:
185
185
  _a.sent();
@@ -244,14 +244,14 @@ var NestedSetSubjectExecutor = /** @class */ (function () {
244
244
  if (!!entitiesNs_1_1.done) return [3 /*break*/, 6];
245
245
  entity = entitiesNs_1_1.value;
246
246
  treeSize = entity.right - entity.left + 1;
247
- return [4 /*yield*/, this.queryRunner.query("UPDATE " + tableName + " " +
248
- ("SET " + leftColumnName + " = CASE ") +
249
- ("WHEN " + leftColumnName + " > " + entity.left + " THEN " + leftColumnName + " - " + treeSize + " ") +
250
- ("ELSE " + leftColumnName + " ") +
247
+ return [4 /*yield*/, this.queryRunner.query("UPDATE ".concat(tableName, " ") +
248
+ "SET ".concat(leftColumnName, " = CASE ") +
249
+ "WHEN ".concat(leftColumnName, " > ").concat(entity.left, " THEN ").concat(leftColumnName, " - ").concat(treeSize, " ") +
250
+ "ELSE ".concat(leftColumnName, " ") +
251
251
  "END, " +
252
- (rightColumnName + " = CASE ") +
253
- ("WHEN " + rightColumnName + " > " + entity.right + " THEN " + rightColumnName + " - " + treeSize + " ") +
254
- ("ELSE " + rightColumnName + " ") +
252
+ "".concat(rightColumnName, " = CASE ") +
253
+ "WHEN ".concat(rightColumnName, " > ").concat(entity.right, " THEN ").concat(rightColumnName, " - ").concat(treeSize, " ") +
254
+ "ELSE ".concat(rightColumnName, " ") +
255
255
  "END")];
256
256
  case 4:
257
257
  _c.sent();
@@ -280,8 +280,8 @@ var NestedSetSubjectExecutor = /** @class */ (function () {
280
280
  */
281
281
  NestedSetSubjectExecutor.prototype.getNestedSetIds = function (metadata, ids) {
282
282
  var select = {
283
- left: metadata.targetName + "." + metadata.nestedSetLeftColumn.propertyPath,
284
- right: metadata.targetName + "." + metadata.nestedSetRightColumn.propertyPath
283
+ left: "".concat(metadata.targetName, ".").concat(metadata.nestedSetLeftColumn.propertyPath),
284
+ right: "".concat(metadata.targetName, ".").concat(metadata.nestedSetRightColumn.propertyPath)
285
285
  };
286
286
  var queryBuilder = this.queryRunner.manager.createQueryBuilder();
287
287
  Object.entries(select).forEach(function (_a) {
@@ -342,14 +342,14 @@ var NestedSetSubjectExecutor = /** @class */ (function () {
342
342
  var columnName = escape(column.databaseName);
343
343
  var parameter = column.getEntityValue(parent);
344
344
  if (parameter == null) {
345
- return columnName + " IS NULL";
345
+ return "".concat(columnName, " IS NULL");
346
346
  }
347
347
  parameters.push(parameter);
348
348
  var parameterName = _this.queryRunner.connection.driver.createParameter("entity_" + column.databaseName, parameters.length - 1);
349
- return columnName + " = " + parameterName;
349
+ return "".concat(columnName, " = ").concat(parameterName);
350
350
  }).join(" AND ");
351
351
  countAlias = "count";
352
- return [4 /*yield*/, this.queryRunner.query("SELECT COUNT(1) AS " + escape(countAlias) + " FROM " + tableName + " WHERE " + whereCondition, parameters, true)];
352
+ return [4 /*yield*/, this.queryRunner.query("SELECT COUNT(1) AS ".concat(escape(countAlias), " FROM ").concat(tableName, " WHERE ").concat(whereCondition), parameters, true)];
353
353
  case 1:
354
354
  result = _a.sent();
355
355
  return [2 /*return*/, parseInt(result.records[0][countAlias]) === 0];
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/persistence/tree/NestedSetSubjectExecutor.ts"],"names":[],"mappings":"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","file":"NestedSetSubjectExecutor.js","sourcesContent":["import {Subject} from \"../Subject\";\nimport {QueryRunner} from \"../../query-runner/QueryRunner\";\nimport {OrmUtils} from \"../../util/OrmUtils\";\nimport {NestedSetMultipleRootError} from \"../../error/NestedSetMultipleRootError\";\nimport {ObjectLiteral} from \"../../common/ObjectLiteral\";\nimport {EntityMetadata} from \"../../metadata/EntityMetadata\";\n\nclass NestedSetIds {\n left: number;\n right: number;\n}\n\n/**\n * Executes subject operations for nested set tree entities.\n */\nexport class NestedSetSubjectExecutor {\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 const escape = (alias: string) => this.queryRunner.connection.driver.escape(alias);\n const tableName = this.getTableName(subject.metadata.tablePath);\n const leftColumnName = escape(subject.metadata.nestedSetLeftColumn!.databaseName);\n const rightColumnName = escape(subject.metadata.nestedSetRightColumn!.databaseName);\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 const parentId = subject.metadata.getEntityIdMap(parent);\n\n let parentNsRight: number|undefined = undefined;\n if (parentId) {\n parentNsRight = await this.queryRunner.manager\n .createQueryBuilder()\n .select(subject.metadata.targetName + \".\" + subject.metadata.nestedSetRightColumn!.propertyPath, \"right\")\n .from(subject.metadata.target, subject.metadata.targetName)\n .whereInIds(parentId)\n .getRawOne()\n .then(result => {\n const value: any = result ? result[\"right\"] : undefined;\n // CockroachDB returns numeric types as string\n return typeof value === \"string\" ? parseInt(value) : value;\n });\n }\n\n if (parentNsRight !== undefined) {\n await this.queryRunner.query(`UPDATE ${tableName} SET ` +\n `${leftColumnName} = CASE WHEN ${leftColumnName} > ${parentNsRight} THEN ${leftColumnName} + 2 ELSE ${leftColumnName} END,` +\n `${rightColumnName} = ${rightColumnName} + 2 ` +\n `WHERE ${rightColumnName} >= ${parentNsRight}`);\n\n OrmUtils.mergeDeep(\n subject.insertedValueSet,\n subject.metadata.nestedSetLeftColumn!.createValueMap(parentNsRight),\n subject.metadata.nestedSetRightColumn!.createValueMap(parentNsRight + 1),\n );\n } else {\n const isUniqueRoot = await this.isUniqueRootEntity(subject, parent);\n\n // Validate if a root entity already exits and throw an exception\n if (!isUniqueRoot)\n throw new NestedSetMultipleRootError();\n\n OrmUtils.mergeDeep(\n subject.insertedValueSet,\n subject.metadata.nestedSetLeftColumn!.createValueMap(1),\n subject.metadata.nestedSetRightColumn!.createValueMap(2),\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\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 if (parent) {\n const escape = (alias: string) => this.queryRunner.connection.driver.escape(alias);\n const tableName = this.getTableName(subject.metadata.tablePath);\n const leftColumnName = escape(subject.metadata.nestedSetLeftColumn!.databaseName);\n const rightColumnName = escape(subject.metadata.nestedSetRightColumn!.databaseName);\n\n const entityId = subject.metadata.getEntityIdMap(entity);\n\n let entityNs: NestedSetIds | undefined = undefined;\n if (entityId) {\n entityNs = (await this.getNestedSetIds(subject.metadata, entityId))[0];\n }\n\n let parentNs: NestedSetIds | undefined = undefined;\n if (parentId) {\n parentNs = (await this.getNestedSetIds(subject.metadata, parentId))[0];\n }\n\n if (entityNs !== undefined && parentNs !== undefined) {\n const isMovingUp = parentNs.left > entityNs.left;\n const treeSize = entityNs.right - entityNs.left + 1;\n\n let entitySize: number;\n if (isMovingUp) {\n entitySize = parentNs.left - entityNs.right;\n } else {\n entitySize = parentNs.right - entityNs.left;\n }\n\n // Moved entity logic\n const updateLeftSide =\n `WHEN ${leftColumnName} >= ${entityNs.left} AND ` +\n `${leftColumnName} < ${entityNs.right} ` +\n `THEN ${leftColumnName} + ${entitySize} `;\n\n const updateRightSide =\n `WHEN ${rightColumnName} > ${entityNs.left} AND ` +\n `${rightColumnName} <= ${entityNs.right} ` +\n `THEN ${rightColumnName} + ${entitySize} `;\n\n // Update the surrounding entities\n if (isMovingUp) {\n await this.queryRunner.query(`UPDATE ${tableName} ` +\n `SET ${leftColumnName} = CASE ` +\n `WHEN ${leftColumnName} > ${entityNs.right} AND ` +\n `${leftColumnName} <= ${parentNs.left} ` +\n `THEN ${leftColumnName} - ${treeSize} ` +\n updateLeftSide +\n `ELSE ${leftColumnName} ` +\n `END, ` +\n `${rightColumnName} = CASE ` +\n `WHEN ${rightColumnName} > ${entityNs.right} AND ` +\n `${rightColumnName} < ${parentNs.left} ` +\n `THEN ${rightColumnName} - ${treeSize} ` +\n updateRightSide +\n `ELSE ${rightColumnName} ` +\n `END`);\n } else {\n await this.queryRunner.query(`UPDATE ${tableName} ` +\n `SET ${leftColumnName} = CASE ` +\n `WHEN ${leftColumnName} < ${entityNs.left} AND ` +\n `${leftColumnName} > ${parentNs.right} ` +\n `THEN ${leftColumnName} + ${treeSize} ` +\n updateLeftSide +\n `ELSE ${leftColumnName} ` +\n `END, ` +\n `${rightColumnName} = CASE ` +\n `WHEN ${rightColumnName} < ${entityNs.left} AND ` +\n `${rightColumnName} >= ${parentNs.right} ` +\n `THEN ${rightColumnName} + ${treeSize} ` +\n updateRightSide +\n `ELSE ${rightColumnName} ` +\n `END`);\n }\n }\n } else {\n const isUniqueRoot = await this.isUniqueRootEntity(subject, parent);\n\n // Validate if a root entity already exits and throw an exception\n if (!isUniqueRoot)\n throw new NestedSetMultipleRootError();\n }\n }\n\n /**\n * Executes operations when subject is being removed.\n */\n async remove(subjects: Subject|Subject[]): Promise<void> {\n if (!Array.isArray(subjects))\n subjects = [subjects];\n\n const metadata = subjects[0].metadata;\n\n const escape = (alias: string) => this.queryRunner.connection.driver.escape(alias);\n const tableName = this.getTableName(metadata.tablePath);\n const leftColumnName = escape(metadata.nestedSetLeftColumn!.databaseName);\n const rightColumnName = escape(metadata.nestedSetRightColumn!.databaseName);\n\n let entitiesIds: ObjectLiteral[] = [];\n for (const subject of subjects) {\n const entityId = metadata.getEntityIdMap(subject.entity);\n\n if (entityId) {\n entitiesIds.push(entityId);\n }\n }\n\n let entitiesNs = await this.getNestedSetIds(metadata, entitiesIds);\n\n for (const entity of entitiesNs) {\n const treeSize = entity.right - entity.left + 1;\n\n await this.queryRunner.query(`UPDATE ${tableName} ` +\n `SET ${leftColumnName} = CASE ` +\n `WHEN ${leftColumnName} > ${entity.left} THEN ${leftColumnName} - ${treeSize} ` +\n `ELSE ${leftColumnName} ` +\n `END, ` +\n `${rightColumnName} = CASE ` +\n `WHEN ${rightColumnName} > ${entity.right} THEN ${rightColumnName} - ${treeSize} ` +\n `ELSE ${rightColumnName} ` +\n `END`);\n }\n }\n\n /**\n * Get the nested set ids for a given entity\n */\n protected getNestedSetIds(metadata: EntityMetadata, ids: ObjectLiteral | ObjectLiteral[]): Promise<NestedSetIds[]> {\n const select = {\n left: `${metadata.targetName}.${metadata.nestedSetLeftColumn!.propertyPath}`,\n right: `${metadata.targetName}.${metadata.nestedSetRightColumn!.propertyPath}`\n };\n\n const queryBuilder = this.queryRunner.manager.createQueryBuilder();\n\n Object.entries(select).forEach(([key, value]) => {\n queryBuilder.addSelect(value, key);\n });\n\n return queryBuilder\n .from(metadata.target, metadata.targetName)\n .whereInIds(ids)\n .orderBy(select.right, \"DESC\")\n .getRawMany()\n .then(results => {\n const data: NestedSetIds[] = [];\n\n for (const result of results) {\n const entry: any = {};\n for (const key of Object.keys(select)) {\n const value = result ? result[key] : undefined;\n\n // CockroachDB returns numeric types as string\n entry[key] = typeof value === \"string\" ? parseInt(value) : value;\n }\n data.push(entry);\n }\n\n return data;\n });\n }\n\n private async isUniqueRootEntity(subject: Subject, parent: any): Promise<boolean> {\n const escape = (alias: string) => this.queryRunner.connection.driver.escape(alias);\n const tableName = this.getTableName(subject.metadata.tablePath);\n const parameters: any[] = [];\n const whereCondition = subject.metadata.treeParentRelation!.joinColumns.map(column => {\n const columnName = escape(column.databaseName);\n const parameter = column.getEntityValue(parent);\n\n if (parameter == null) {\n return `${columnName} IS NULL`;\n }\n\n parameters.push(parameter);\n const parameterName = this.queryRunner.connection.driver.createParameter(\"entity_\" + column.databaseName, parameters.length - 1);\n return `${columnName} = ${parameterName}`;\n }).join(\" AND \");\n\n const countAlias = \"count\";\n const result = await this.queryRunner.query(\n `SELECT COUNT(1) AS ${escape(countAlias)} FROM ${tableName} WHERE ${whereCondition}`,\n parameters,\n true\n );\n\n return parseInt(result.records[0][countAlias]) === 0;\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}\n"],"sourceRoot":"../.."}
1
+ {"version":3,"sources":["../../src/persistence/tree/NestedSetSubjectExecutor.ts"],"names":[],"mappings":"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","file":"NestedSetSubjectExecutor.js","sourcesContent":["import {Subject} from \"../Subject\";\nimport {QueryRunner} from \"../../query-runner/QueryRunner\";\nimport {OrmUtils} from \"../../util/OrmUtils\";\nimport {NestedSetMultipleRootError} from \"../../error/NestedSetMultipleRootError\";\nimport {ObjectLiteral} from \"../../common/ObjectLiteral\";\nimport {EntityMetadata} from \"../../metadata/EntityMetadata\";\n\nclass NestedSetIds {\n left: number;\n right: number;\n}\n\n/**\n * Executes subject operations for nested set tree entities.\n */\nexport class NestedSetSubjectExecutor {\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 const escape = (alias: string) => this.queryRunner.connection.driver.escape(alias);\n const tableName = this.getTableName(subject.metadata.tablePath);\n const leftColumnName = escape(subject.metadata.nestedSetLeftColumn!.databaseName);\n const rightColumnName = escape(subject.metadata.nestedSetRightColumn!.databaseName);\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 const parentId = subject.metadata.getEntityIdMap(parent);\n\n let parentNsRight: number|undefined = undefined;\n if (parentId) {\n parentNsRight = await this.queryRunner.manager\n .createQueryBuilder()\n .select(subject.metadata.targetName + \".\" + subject.metadata.nestedSetRightColumn!.propertyPath, \"right\")\n .from(subject.metadata.target, subject.metadata.targetName)\n .whereInIds(parentId)\n .getRawOne()\n .then(result => {\n const value: any = result ? result[\"right\"] : undefined;\n // CockroachDB returns numeric types as string\n return typeof value === \"string\" ? parseInt(value) : value;\n });\n }\n\n if (parentNsRight !== undefined) {\n await this.queryRunner.query(`UPDATE ${tableName} SET ` +\n `${leftColumnName} = CASE WHEN ${leftColumnName} > ${parentNsRight} THEN ${leftColumnName} + 2 ELSE ${leftColumnName} END,` +\n `${rightColumnName} = ${rightColumnName} + 2 ` +\n `WHERE ${rightColumnName} >= ${parentNsRight}`);\n\n OrmUtils.mergeDeep(\n subject.insertedValueSet,\n subject.metadata.nestedSetLeftColumn!.createValueMap(parentNsRight),\n subject.metadata.nestedSetRightColumn!.createValueMap(parentNsRight + 1),\n );\n } else {\n const isUniqueRoot = await this.isUniqueRootEntity(subject, parent);\n\n // Validate if a root entity already exits and throw an exception\n if (!isUniqueRoot)\n throw new NestedSetMultipleRootError();\n\n OrmUtils.mergeDeep(\n subject.insertedValueSet,\n subject.metadata.nestedSetLeftColumn!.createValueMap(1),\n subject.metadata.nestedSetRightColumn!.createValueMap(2),\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\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 if (parent) {\n const escape = (alias: string) => this.queryRunner.connection.driver.escape(alias);\n const tableName = this.getTableName(subject.metadata.tablePath);\n const leftColumnName = escape(subject.metadata.nestedSetLeftColumn!.databaseName);\n const rightColumnName = escape(subject.metadata.nestedSetRightColumn!.databaseName);\n\n const entityId = subject.metadata.getEntityIdMap(entity);\n\n let entityNs: NestedSetIds | undefined = undefined;\n if (entityId) {\n entityNs = (await this.getNestedSetIds(subject.metadata, entityId))[0];\n }\n\n let parentNs: NestedSetIds | undefined = undefined;\n if (parentId) {\n parentNs = (await this.getNestedSetIds(subject.metadata, parentId))[0];\n }\n\n if (entityNs !== undefined && parentNs !== undefined) {\n const isMovingUp = parentNs.left > entityNs.left;\n const treeSize = entityNs.right - entityNs.left + 1;\n\n let entitySize: number;\n if (isMovingUp) {\n entitySize = parentNs.left - entityNs.right;\n } else {\n entitySize = parentNs.right - entityNs.left;\n }\n\n // Moved entity logic\n const updateLeftSide =\n `WHEN ${leftColumnName} >= ${entityNs.left} AND ` +\n `${leftColumnName} < ${entityNs.right} ` +\n `THEN ${leftColumnName} + ${entitySize} `;\n\n const updateRightSide =\n `WHEN ${rightColumnName} > ${entityNs.left} AND ` +\n `${rightColumnName} <= ${entityNs.right} ` +\n `THEN ${rightColumnName} + ${entitySize} `;\n\n // Update the surrounding entities\n if (isMovingUp) {\n await this.queryRunner.query(`UPDATE ${tableName} ` +\n `SET ${leftColumnName} = CASE ` +\n `WHEN ${leftColumnName} > ${entityNs.right} AND ` +\n `${leftColumnName} <= ${parentNs.left} ` +\n `THEN ${leftColumnName} - ${treeSize} ` +\n updateLeftSide +\n `ELSE ${leftColumnName} ` +\n `END, ` +\n `${rightColumnName} = CASE ` +\n `WHEN ${rightColumnName} > ${entityNs.right} AND ` +\n `${rightColumnName} < ${parentNs.left} ` +\n `THEN ${rightColumnName} - ${treeSize} ` +\n updateRightSide +\n `ELSE ${rightColumnName} ` +\n `END`);\n } else {\n await this.queryRunner.query(`UPDATE ${tableName} ` +\n `SET ${leftColumnName} = CASE ` +\n `WHEN ${leftColumnName} < ${entityNs.left} AND ` +\n `${leftColumnName} > ${parentNs.right} ` +\n `THEN ${leftColumnName} + ${treeSize} ` +\n updateLeftSide +\n `ELSE ${leftColumnName} ` +\n `END, ` +\n `${rightColumnName} = CASE ` +\n `WHEN ${rightColumnName} < ${entityNs.left} AND ` +\n `${rightColumnName} >= ${parentNs.right} ` +\n `THEN ${rightColumnName} + ${treeSize} ` +\n updateRightSide +\n `ELSE ${rightColumnName} ` +\n `END`);\n }\n }\n } else {\n const isUniqueRoot = await this.isUniqueRootEntity(subject, parent);\n\n // Validate if a root entity already exits and throw an exception\n if (!isUniqueRoot)\n throw new NestedSetMultipleRootError();\n }\n }\n\n /**\n * Executes operations when subject is being removed.\n */\n async remove(subjects: Subject|Subject[]): Promise<void> {\n if (!Array.isArray(subjects))\n subjects = [subjects];\n\n const metadata = subjects[0].metadata;\n\n const escape = (alias: string) => this.queryRunner.connection.driver.escape(alias);\n const tableName = this.getTableName(metadata.tablePath);\n const leftColumnName = escape(metadata.nestedSetLeftColumn!.databaseName);\n const rightColumnName = escape(metadata.nestedSetRightColumn!.databaseName);\n\n let entitiesIds: ObjectLiteral[] = [];\n for (const subject of subjects) {\n const entityId = metadata.getEntityIdMap(subject.entity);\n\n if (entityId) {\n entitiesIds.push(entityId);\n }\n }\n\n let entitiesNs = await this.getNestedSetIds(metadata, entitiesIds);\n\n for (const entity of entitiesNs) {\n const treeSize = entity.right - entity.left + 1;\n\n await this.queryRunner.query(`UPDATE ${tableName} ` +\n `SET ${leftColumnName} = CASE ` +\n `WHEN ${leftColumnName} > ${entity.left} THEN ${leftColumnName} - ${treeSize} ` +\n `ELSE ${leftColumnName} ` +\n `END, ` +\n `${rightColumnName} = CASE ` +\n `WHEN ${rightColumnName} > ${entity.right} THEN ${rightColumnName} - ${treeSize} ` +\n `ELSE ${rightColumnName} ` +\n `END`);\n }\n }\n\n /**\n * Get the nested set ids for a given entity\n */\n protected getNestedSetIds(metadata: EntityMetadata, ids: ObjectLiteral | ObjectLiteral[]): Promise<NestedSetIds[]> {\n const select = {\n left: `${metadata.targetName}.${metadata.nestedSetLeftColumn!.propertyPath}`,\n right: `${metadata.targetName}.${metadata.nestedSetRightColumn!.propertyPath}`\n };\n\n const queryBuilder = this.queryRunner.manager.createQueryBuilder();\n\n Object.entries(select).forEach(([key, value]) => {\n queryBuilder.addSelect(value, key);\n });\n\n return queryBuilder\n .from(metadata.target, metadata.targetName)\n .whereInIds(ids)\n .orderBy(select.right, \"DESC\")\n .getRawMany()\n .then(results => {\n const data: NestedSetIds[] = [];\n\n for (const result of results) {\n const entry: any = {};\n for (const key of Object.keys(select)) {\n const value = result ? result[key] : undefined;\n\n // CockroachDB returns numeric types as string\n entry[key] = typeof value === \"string\" ? parseInt(value) : value;\n }\n data.push(entry);\n }\n\n return data;\n });\n }\n\n private async isUniqueRootEntity(subject: Subject, parent: any): Promise<boolean> {\n const escape = (alias: string) => this.queryRunner.connection.driver.escape(alias);\n const tableName = this.getTableName(subject.metadata.tablePath);\n const parameters: any[] = [];\n const whereCondition = subject.metadata.treeParentRelation!.joinColumns.map(column => {\n const columnName = escape(column.databaseName);\n const parameter = column.getEntityValue(parent);\n\n if (parameter == null) {\n return `${columnName} IS NULL`;\n }\n\n parameters.push(parameter);\n const parameterName = this.queryRunner.connection.driver.createParameter(\"entity_\" + column.databaseName, parameters.length - 1);\n return `${columnName} = ${parameterName}`;\n }).join(\" AND \");\n\n const countAlias = \"count\";\n const result = await this.queryRunner.query(\n `SELECT COUNT(1) AS ${escape(countAlias)} FROM ${tableName} WHERE ${whereCondition}`,\n parameters,\n true\n );\n\n return parseInt(result.records[0][countAlias]) === 0;\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}\n"],"sourceRoot":"../.."}
@@ -113,7 +113,7 @@ var PlatformTools = /** @class */ (function () {
113
113
  // and is an Invalid Package. To make it explicit that this is NOT the intended use case for
114
114
  // PlatformTools.load - it's not just a way to replace `require` all willy-nilly - let's throw
115
115
  // an error.
116
- throw new TypeError("Invalid Package for PlatformTools.load: " + name);
116
+ throw new TypeError("Invalid Package for PlatformTools.load: ".concat(name));
117
117
  };
118
118
  /**
119
119
  * Normalizes given path. Does "path.normalize".
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/platform/PlatformTools.ts"],"names":[],"mappings":"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","file":"PlatformTools.js","sourcesContent":["import * as path from \"path\";\nimport * as fs from \"fs\";\nimport dotenv from \"dotenv\";\nimport chalk from \"chalk\";\nimport {highlight, Theme} from \"cli-highlight\";\n\nexport {ReadStream} from \"fs\";\nexport {EventEmitter} from \"events\";\nexport {Readable, Writable} from \"stream\";\n\n/**\n * Platform-specific tools.\n */\nexport class PlatformTools {\n\n /**\n * Type of the currently running platform.\n */\n static type: \"browser\"|\"node\" = \"node\";\n\n /**\n * Gets global variable where global stuff can be stored.\n */\n static getGlobalVariable(): any {\n return global;\n }\n\n /**\n * Loads (\"require\"-s) given file or package.\n * This operation only supports on node platform\n */\n static load(name: string): any {\n\n // if name is not absolute or relative, then try to load package from the node_modules of the directory we are currently in\n // this is useful when we are using typeorm package globally installed and it accesses drivers\n // that are not installed globally\n\n try {\n\n // switch case to explicit require statements for webpack compatibility.\n\n switch (name) {\n\n /**\n * mongodb\n */\n case \"mongodb\":\n return require(\"mongodb\");\n\n /**\n * hana\n */\n case \"@sap/hana-client\":\n return require(\"@sap/hana-client\");\n\n case \"hdb-pool\":\n return require(\"hdb-pool\");\n\n /**\n * mysql\n */\n case \"mysql\":\n return require(\"mysql\");\n\n case \"mysql2\":\n return require(\"mysql2\");\n\n /**\n * oracle\n */\n case \"oracledb\":\n return require(\"oracledb\");\n\n /**\n * postgres\n */\n case \"pg\":\n return require(\"pg\");\n\n case \"pg-native\":\n return require(\"pg-native\");\n\n case \"pg-query-stream\":\n return require(\"pg-query-stream\");\n\n case \"typeorm-aurora-data-api-driver\":\n return require(\"typeorm-aurora-data-api-driver\");\n\n /**\n * redis\n */\n case \"redis\":\n return require(\"redis\");\n\n case \"ioredis\":\n return require(\"ioredis\");\n\n /**\n * better-sqlite3\n */\n case \"better-sqlite3\":\n return require(\"better-sqlite3\");\n\n /**\n * sqlite\n */\n case \"sqlite3\":\n return require(\"sqlite3\");\n\n /**\n * sql.js\n */\n case \"sql.js\":\n return require(\"sql.js\");\n\n /**\n * sqlserver\n */\n case \"mssql\":\n return require(\"mssql\");\n\n /**\n * react-native-sqlite\n */\n case \"react-native-sqlite-storage\":\n return require(\"react-native-sqlite-storage\");\n }\n\n } catch (err) {\n return require(path.resolve(process.cwd() + \"/node_modules/\" + name));\n }\n\n // If nothing above matched and we get here, the package was not listed within PlatformTools\n // and is an Invalid Package. To make it explicit that this is NOT the intended use case for\n // PlatformTools.load - it's not just a way to replace `require` all willy-nilly - let's throw\n // an error.\n throw new TypeError(`Invalid Package for PlatformTools.load: ${name}`);\n }\n\n /**\n * Normalizes given path. Does \"path.normalize\".\n */\n static pathNormalize(pathStr: string): string {\n return path.normalize(pathStr);\n }\n\n /**\n * Gets file extension. Does \"path.extname\".\n */\n static pathExtname(pathStr: string): string {\n return path.extname(pathStr);\n }\n\n /**\n * Resolved given path. Does \"path.resolve\".\n */\n static pathResolve(pathStr: string): string {\n return path.resolve(pathStr);\n }\n\n /**\n * Synchronously checks if file exist. Does \"fs.existsSync\".\n */\n static fileExist(pathStr: string): boolean {\n return fs.existsSync(pathStr);\n }\n\n static readFileSync(filename: string): Buffer {\n return fs.readFileSync(filename);\n }\n\n static appendFileSync(filename: string, data: any): void {\n fs.appendFileSync(filename, data);\n }\n\n static async writeFile(path: string, data: any): Promise<void> {\n return new Promise<void>((ok, fail) => {\n fs.writeFile(path, data, (err) => {\n if (err) fail(err);\n ok();\n });\n });\n }\n\n /**\n * Loads a dotenv file into the environment variables.\n *\n * @param path The file to load as a dotenv configuration\n */\n static dotenv(pathStr: string): void {\n dotenv.config({ path: pathStr });\n }\n\n /**\n * Gets environment variable.\n */\n static getEnvVariable(name: string): any {\n return process.env[name];\n }\n\n /**\n * Highlights sql string to be print in the console.\n */\n static highlightSql(sql: string) {\n const theme: Theme = {\n \"keyword\": chalk.blueBright,\n \"literal\": chalk.blueBright,\n \"string\": chalk.white,\n \"type\": chalk.magentaBright,\n \"built_in\": chalk.magentaBright,\n \"comment\": chalk.gray,\n };\n return highlight(sql, { theme: theme, language: \"sql\" });\n }\n\n /**\n * Highlights json string to be print in the console.\n */\n static highlightJson(json: string) {\n return highlight(json, { language: \"json\" });\n }\n\n /**\n * Logging functions needed by AdvancedConsoleLogger\n */\n static logInfo(prefix: string, info: any) {\n console.log(chalk.gray.underline(prefix), info);\n }\n\n static logError(prefix: string, error: any) {\n console.log(chalk.underline.red(prefix), error);\n }\n\n static logWarn(prefix: string, warning: any) {\n console.log(chalk.underline.yellow(prefix), warning);\n }\n\n static log(message: string) {\n console.log(chalk.underline(message));\n }\n\n static warn(message: string) {\n return chalk.yellow(message);\n }\n\n static logCmdErr(prefix: string, err?: any) {\n console.log(chalk.black.bgRed(prefix));\n if (err) console.error(err);\n }\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../src/platform/PlatformTools.ts"],"names":[],"mappings":"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","file":"PlatformTools.js","sourcesContent":["import * as path from \"path\";\nimport * as fs from \"fs\";\nimport dotenv from \"dotenv\";\nimport chalk from \"chalk\";\nimport {highlight, Theme} from \"cli-highlight\";\n\nexport {ReadStream} from \"fs\";\nexport {EventEmitter} from \"events\";\nexport {Readable, Writable} from \"stream\";\n\n/**\n * Platform-specific tools.\n */\nexport class PlatformTools {\n\n /**\n * Type of the currently running platform.\n */\n static type: \"browser\"|\"node\" = \"node\";\n\n /**\n * Gets global variable where global stuff can be stored.\n */\n static getGlobalVariable(): any {\n return global;\n }\n\n /**\n * Loads (\"require\"-s) given file or package.\n * This operation only supports on node platform\n */\n static load(name: string): any {\n\n // if name is not absolute or relative, then try to load package from the node_modules of the directory we are currently in\n // this is useful when we are using typeorm package globally installed and it accesses drivers\n // that are not installed globally\n\n try {\n\n // switch case to explicit require statements for webpack compatibility.\n\n switch (name) {\n\n /**\n * mongodb\n */\n case \"mongodb\":\n return require(\"mongodb\");\n\n /**\n * hana\n */\n case \"@sap/hana-client\":\n return require(\"@sap/hana-client\");\n\n case \"hdb-pool\":\n return require(\"hdb-pool\");\n\n /**\n * mysql\n */\n case \"mysql\":\n return require(\"mysql\");\n\n case \"mysql2\":\n return require(\"mysql2\");\n\n /**\n * oracle\n */\n case \"oracledb\":\n return require(\"oracledb\");\n\n /**\n * postgres\n */\n case \"pg\":\n return require(\"pg\");\n\n case \"pg-native\":\n return require(\"pg-native\");\n\n case \"pg-query-stream\":\n return require(\"pg-query-stream\");\n\n case \"typeorm-aurora-data-api-driver\":\n return require(\"typeorm-aurora-data-api-driver\");\n\n /**\n * redis\n */\n case \"redis\":\n return require(\"redis\");\n\n case \"ioredis\":\n return require(\"ioredis\");\n\n /**\n * better-sqlite3\n */\n case \"better-sqlite3\":\n return require(\"better-sqlite3\");\n\n /**\n * sqlite\n */\n case \"sqlite3\":\n return require(\"sqlite3\");\n\n /**\n * sql.js\n */\n case \"sql.js\":\n return require(\"sql.js\");\n\n /**\n * sqlserver\n */\n case \"mssql\":\n return require(\"mssql\");\n\n /**\n * react-native-sqlite\n */\n case \"react-native-sqlite-storage\":\n return require(\"react-native-sqlite-storage\");\n }\n\n } catch (err) {\n return require(path.resolve(process.cwd() + \"/node_modules/\" + name));\n }\n\n // If nothing above matched and we get here, the package was not listed within PlatformTools\n // and is an Invalid Package. To make it explicit that this is NOT the intended use case for\n // PlatformTools.load - it's not just a way to replace `require` all willy-nilly - let's throw\n // an error.\n throw new TypeError(`Invalid Package for PlatformTools.load: ${name}`);\n }\n\n /**\n * Normalizes given path. Does \"path.normalize\".\n */\n static pathNormalize(pathStr: string): string {\n return path.normalize(pathStr);\n }\n\n /**\n * Gets file extension. Does \"path.extname\".\n */\n static pathExtname(pathStr: string): string {\n return path.extname(pathStr);\n }\n\n /**\n * Resolved given path. Does \"path.resolve\".\n */\n static pathResolve(pathStr: string): string {\n return path.resolve(pathStr);\n }\n\n /**\n * Synchronously checks if file exist. Does \"fs.existsSync\".\n */\n static fileExist(pathStr: string): boolean {\n return fs.existsSync(pathStr);\n }\n\n static readFileSync(filename: string): Buffer {\n return fs.readFileSync(filename);\n }\n\n static appendFileSync(filename: string, data: any): void {\n fs.appendFileSync(filename, data);\n }\n\n static async writeFile(path: string, data: any): Promise<void> {\n return new Promise<void>((ok, fail) => {\n fs.writeFile(path, data, (err) => {\n if (err) fail(err);\n ok();\n });\n });\n }\n\n /**\n * Loads a dotenv file into the environment variables.\n *\n * @param path The file to load as a dotenv configuration\n */\n static dotenv(pathStr: string): void {\n dotenv.config({ path: pathStr });\n }\n\n /**\n * Gets environment variable.\n */\n static getEnvVariable(name: string): any {\n return process.env[name];\n }\n\n /**\n * Highlights sql string to be print in the console.\n */\n static highlightSql(sql: string) {\n const theme: Theme = {\n \"keyword\": chalk.blueBright,\n \"literal\": chalk.blueBright,\n \"string\": chalk.white,\n \"type\": chalk.magentaBright,\n \"built_in\": chalk.magentaBright,\n \"comment\": chalk.gray,\n };\n return highlight(sql, { theme: theme, language: \"sql\" });\n }\n\n /**\n * Highlights json string to be print in the console.\n */\n static highlightJson(json: string) {\n return highlight(json, { language: \"json\" });\n }\n\n /**\n * Logging functions needed by AdvancedConsoleLogger\n */\n static logInfo(prefix: string, info: any) {\n console.log(chalk.gray.underline(prefix), info);\n }\n\n static logError(prefix: string, error: any) {\n console.log(chalk.underline.red(prefix), error);\n }\n\n static logWarn(prefix: string, warning: any) {\n console.log(chalk.underline.yellow(prefix), warning);\n }\n\n static log(message: string) {\n console.log(chalk.underline(message));\n }\n\n static warn(message: string) {\n return chalk.yellow(message);\n }\n\n static logCmdErr(prefix: string, err?: any) {\n console.log(chalk.black.bgRed(prefix));\n if (err) console.error(err);\n }\n}\n"],"sourceRoot":".."}
@@ -26,7 +26,7 @@ var Alias = /** @class */ (function () {
26
26
  Object.defineProperty(Alias.prototype, "metadata", {
27
27
  get: function () {
28
28
  if (!this._metadata)
29
- throw new error_1.TypeORMError("Cannot get entity metadata for the given alias \"" + this.name + "\"");
29
+ throw new error_1.TypeORMError("Cannot get entity metadata for the given alias \"".concat(this.name, "\""));
30
30
  return this._metadata;
31
31
  },
32
32
  set: function (metadata) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/query-builder/Alias.ts"],"names":[],"mappings":";;;AACA,mDAAgD;AAChD,kCAAwC;AAExC;GACG;AACH;IAiBI,eAAY,KAAa;QACrB,yBAAW,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;IAID,sBAAI,yBAAM;aAAV;YACI,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAChC,CAAC;;;OAAA;IAED,sBAAI,8BAAW;aAAf;YACI,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;QAC5B,CAAC;;;OAAA;IAED,sBAAI,2BAAQ;aAIZ;YACI,IAAI,CAAC,IAAI,CAAC,SAAS;gBACf,MAAM,IAAI,oBAAY,CAAC,sDAAmD,IAAI,CAAC,IAAI,OAAG,CAAC,CAAC;YAE5F,OAAO,IAAI,CAAC,SAAS,CAAC;QAC1B,CAAC;aATD,UAAa,QAAwB;YACjC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC9B,CAAC;;;OAAA;IASL,YAAC;AAAD,CA1CA,AA0CC,IAAA;AA1CY,sBAAK","file":"Alias.js","sourcesContent":["import {EntityMetadata} from \"../metadata/EntityMetadata\";\nimport {ObjectUtils} from \"../util/ObjectUtils\";\nimport { TypeORMError } from \"../error\";\n\n/**\n */\nexport class Alias {\n\n type: \"from\"|\"select\"|\"join\"|\"other\"; // todo: make something with \"other\"\n\n name: string;\n\n /**\n * Table on which this alias is applied.\n * Used only for aliases which select custom tables.\n */\n tablePath?: string;\n\n /**\n * If this alias is for sub query.\n */\n subQuery?: string;\n\n constructor(alias?: Alias) {\n ObjectUtils.assign(this, alias || {});\n }\n\n private _metadata?: EntityMetadata;\n\n get target(): Function|string {\n return this.metadata.target;\n }\n\n get hasMetadata(): boolean {\n return !!this._metadata;\n }\n\n set metadata(metadata: EntityMetadata) {\n this._metadata = metadata;\n }\n\n get metadata(): EntityMetadata {\n if (!this._metadata)\n throw new TypeORMError(`Cannot get entity metadata for the given alias \"${this.name}\"`);\n\n return this._metadata;\n }\n\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../src/query-builder/Alias.ts"],"names":[],"mappings":";;;AACA,mDAAgD;AAChD,kCAAwC;AAExC;GACG;AACH;IAiBI,eAAY,KAAa;QACrB,yBAAW,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;IAID,sBAAI,yBAAM;aAAV;YACI,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAChC,CAAC;;;OAAA;IAED,sBAAI,8BAAW;aAAf;YACI,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;QAC5B,CAAC;;;OAAA;IAED,sBAAI,2BAAQ;aAIZ;YACI,IAAI,CAAC,IAAI,CAAC,SAAS;gBACf,MAAM,IAAI,oBAAY,CAAC,2DAAmD,IAAI,CAAC,IAAI,OAAG,CAAC,CAAC;YAE5F,OAAO,IAAI,CAAC,SAAS,CAAC;QAC1B,CAAC;aATD,UAAa,QAAwB;YACjC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC9B,CAAC;;;OAAA;IASL,YAAC;AAAD,CA1CA,AA0CC,IAAA;AA1CY,sBAAK","file":"Alias.js","sourcesContent":["import {EntityMetadata} from \"../metadata/EntityMetadata\";\nimport {ObjectUtils} from \"../util/ObjectUtils\";\nimport { TypeORMError } from \"../error\";\n\n/**\n */\nexport class Alias {\n\n type: \"from\"|\"select\"|\"join\"|\"other\"; // todo: make something with \"other\"\n\n name: string;\n\n /**\n * Table on which this alias is applied.\n * Used only for aliases which select custom tables.\n */\n tablePath?: string;\n\n /**\n * If this alias is for sub query.\n */\n subQuery?: string;\n\n constructor(alias?: Alias) {\n ObjectUtils.assign(this, alias || {});\n }\n\n private _metadata?: EntityMetadata;\n\n get target(): Function|string {\n return this.metadata.target;\n }\n\n get hasMetadata(): boolean {\n return !!this._metadata;\n }\n\n set metadata(metadata: EntityMetadata) {\n this._metadata = metadata;\n }\n\n get metadata(): EntityMetadata {\n if (!this._metadata)\n throw new TypeORMError(`Cannot get entity metadata for the given alias \"${this.name}\"`);\n\n return this._metadata;\n }\n\n}\n"],"sourceRoot":".."}
@@ -196,12 +196,12 @@ var DeleteQueryBuilder = /** @class */ (function (_super) {
196
196
  var whereExpression = this.createWhereExpression();
197
197
  var returningExpression = this.createReturningExpression("delete");
198
198
  if (returningExpression === "") {
199
- return "DELETE FROM " + tableName + whereExpression;
199
+ return "DELETE FROM ".concat(tableName).concat(whereExpression);
200
200
  }
201
201
  if (this.connection.driver instanceof SqlServerDriver_1.SqlServerDriver) {
202
- return "DELETE FROM " + tableName + " OUTPUT " + returningExpression + whereExpression;
202
+ return "DELETE FROM ".concat(tableName, " OUTPUT ").concat(returningExpression).concat(whereExpression);
203
203
  }
204
- return "DELETE FROM " + tableName + whereExpression + " RETURNING " + returningExpression;
204
+ return "DELETE FROM ".concat(tableName).concat(whereExpression, " RETURNING ").concat(returningExpression);
205
205
  };
206
206
  return DeleteQueryBuilder;
207
207
  }(QueryBuilder_1.QueryBuilder));
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/query-builder/DeleteQueryBuilder.ts"],"names":[],"mappings":"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","file":"DeleteQueryBuilder.js","sourcesContent":["import {QueryBuilder} from \"./QueryBuilder\";\nimport {ObjectLiteral} from \"../common/ObjectLiteral\";\nimport {EntityTarget} from \"../common/EntityTarget\";\nimport {Connection} from \"../connection/Connection\";\nimport {QueryRunner} from \"../query-runner/QueryRunner\";\nimport {SqlServerDriver} from \"../driver/sqlserver/SqlServerDriver\";\nimport {WhereExpressionBuilder} from \"./WhereExpressionBuilder\";\nimport {Brackets} from \"./Brackets\";\nimport {DeleteResult} from \"./result/DeleteResult\";\nimport {ReturningStatementNotSupportedError} from \"../error/ReturningStatementNotSupportedError\";\nimport {EntitySchema} from \"../entity-schema/EntitySchema\";\n\n/**\n * Allows to build complex sql queries in a fashion way and execute those queries.\n */\nexport class DeleteQueryBuilder<Entity> extends QueryBuilder<Entity> implements WhereExpressionBuilder {\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(connectionOrQueryBuilder: Connection|QueryBuilder<any>, queryRunner?: QueryRunner) {\n super(connectionOrQueryBuilder as any, queryRunner);\n this.expressionMap.aliasNamePrefixingEnabled = false;\n }\n\n // -------------------------------------------------------------------------\n // Public Implemented Methods\n // -------------------------------------------------------------------------\n\n /**\n * Gets generated SQL query without parameters being replaced.\n */\n getQuery(): string {\n let sql = this.createComment();\n sql += this.createDeleteExpression();\n return sql.trim();\n }\n\n /**\n * Executes sql generated by query builder and returns raw database results.\n */\n async execute(): Promise<DeleteResult> {\n const [sql, parameters] = this.getQueryAndParameters();\n const queryRunner = this.obtainQueryRunner();\n let transactionStartedByUs: boolean = false;\n\n try {\n\n // start transaction if it was enabled\n if (this.expressionMap.useTransaction === true && queryRunner.isTransactionActive === false) {\n await queryRunner.startTransaction();\n transactionStartedByUs = true;\n }\n\n // call before deletion methods in listeners and subscribers\n if (this.expressionMap.callListeners === true && this.expressionMap.mainAlias!.hasMetadata) {\n await queryRunner.broadcaster.broadcast(\"BeforeRemove\", this.expressionMap.mainAlias!.metadata);\n }\n\n // execute query\n const queryResult = await queryRunner.query(sql, parameters, true);\n const deleteResult = DeleteResult.from(queryResult);\n\n // call after deletion methods in listeners and subscribers\n if (this.expressionMap.callListeners === true && this.expressionMap.mainAlias!.hasMetadata) {\n await queryRunner.broadcaster.broadcast(\"AfterRemove\", this.expressionMap.mainAlias!.metadata);\n }\n\n // close transaction if we started it\n if (transactionStartedByUs)\n await queryRunner.commitTransaction();\n\n return deleteResult;\n\n } catch (error) {\n\n // rollback transaction if we started it\n if (transactionStartedByUs) {\n try {\n await queryRunner.rollbackTransaction();\n } catch (rollbackError) { }\n }\n throw error;\n\n } finally {\n if (queryRunner !== this.queryRunner) { // means we created our own query runner\n await queryRunner.release();\n }\n }\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Specifies FROM which entity's table select/update/delete will be executed.\n * Also sets a main string alias of the selection data.\n */\n from<T>(entityTarget: EntityTarget<T>, aliasName?: string): DeleteQueryBuilder<T> {\n entityTarget = entityTarget instanceof EntitySchema ? entityTarget.options.name : entityTarget;\n const mainAlias = this.createFromAlias(entityTarget, aliasName);\n this.expressionMap.setMainAlias(mainAlias);\n return (this as any) as DeleteQueryBuilder<T>;\n }\n\n /**\n * Sets WHERE condition in the query builder.\n * If you had previously WHERE expression defined,\n * calling this function will override previously set WHERE conditions.\n * Additionally you can add parameters used in where expression.\n */\n where(where: Brackets|string|((qb: this) => string)|ObjectLiteral|ObjectLiteral[], parameters?: ObjectLiteral): this {\n this.expressionMap.wheres = []; // don't move this block below since computeWhereParameter can add where expressions\n const condition = this.getWhereCondition(where);\n if (condition)\n this.expressionMap.wheres = [{ type: \"simple\", condition: condition }];\n if (parameters)\n this.setParameters(parameters);\n return this;\n }\n\n /**\n * Adds new AND WHERE condition in the query builder.\n * Additionally you can add parameters used in where expression.\n */\n andWhere(where: Brackets|string|((qb: this) => string)|ObjectLiteral|ObjectLiteral[], parameters?: ObjectLiteral): this {\n this.expressionMap.wheres.push({ type: \"and\", condition: this.getWhereCondition(where) });\n if (parameters) this.setParameters(parameters);\n return this;\n }\n\n /**\n * Adds new OR WHERE condition in the query builder.\n * Additionally you can add parameters used in where expression.\n */\n orWhere(where: Brackets|string|((qb: this) => string)|ObjectLiteral|ObjectLiteral[], parameters?: ObjectLiteral): this {\n this.expressionMap.wheres.push({ type: \"or\", condition: this.getWhereCondition(where) });\n if (parameters) this.setParameters(parameters);\n return this;\n }\n\n /**\n * Sets WHERE condition in the query builder with a condition for the given ids.\n * If you had previously WHERE expression defined,\n * calling this function will override previously set WHERE conditions.\n */\n whereInIds(ids: any|any[]): this {\n return this.where(this.getWhereInIdsCondition(ids));\n }\n\n /**\n * Adds new AND WHERE with conditions for the given ids.\n */\n andWhereInIds(ids: any|any[]): this {\n return this.andWhere(this.getWhereInIdsCondition(ids));\n }\n\n /**\n * Adds new OR WHERE with conditions for the given ids.\n */\n orWhereInIds(ids: any|any[]): this {\n return this.orWhere(this.getWhereInIdsCondition(ids));\n }\n /**\n * Optional returning/output clause.\n * This will return given column values.\n */\n output(columns: string[]): this;\n\n /**\n * Optional returning/output clause.\n * Returning is a SQL string containing returning statement.\n */\n output(output: string): this;\n\n /**\n * Optional returning/output clause.\n */\n output(output: string|string[]): this;\n\n /**\n * Optional returning/output clause.\n */\n output(output: string|string[]): this {\n return this.returning(output);\n }\n\n /**\n * Optional returning/output clause.\n * This will return given column values.\n */\n returning(columns: string[]): this;\n\n /**\n * Optional returning/output clause.\n * Returning is a SQL string containing returning statement.\n */\n returning(returning: string): this;\n\n /**\n * Optional returning/output clause.\n */\n returning(returning: string|string[]): this;\n\n /**\n * Optional returning/output clause.\n */\n returning(returning: string|string[]): this {\n\n // not all databases support returning/output cause\n if (!this.connection.driver.isReturningSqlSupported(\"delete\")) {\n throw new ReturningStatementNotSupportedError();\n }\n\n this.expressionMap.returning = returning;\n return this;\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates DELETE express used to perform query.\n */\n protected createDeleteExpression() {\n const tableName = this.getTableName(this.getMainTableName());\n const whereExpression = this.createWhereExpression();\n const returningExpression = this.createReturningExpression(\"delete\");\n\n if (returningExpression === \"\") {\n return `DELETE FROM ${tableName}${whereExpression}`;\n }\n if (this.connection.driver instanceof SqlServerDriver) {\n return `DELETE FROM ${tableName} OUTPUT ${returningExpression}${whereExpression}`;\n }\n return `DELETE FROM ${tableName}${whereExpression} RETURNING ${returningExpression}`;\n }\n\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../src/query-builder/DeleteQueryBuilder.ts"],"names":[],"mappings":"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","file":"DeleteQueryBuilder.js","sourcesContent":["import {QueryBuilder} from \"./QueryBuilder\";\nimport {ObjectLiteral} from \"../common/ObjectLiteral\";\nimport {EntityTarget} from \"../common/EntityTarget\";\nimport {Connection} from \"../connection/Connection\";\nimport {QueryRunner} from \"../query-runner/QueryRunner\";\nimport {SqlServerDriver} from \"../driver/sqlserver/SqlServerDriver\";\nimport {WhereExpressionBuilder} from \"./WhereExpressionBuilder\";\nimport {Brackets} from \"./Brackets\";\nimport {DeleteResult} from \"./result/DeleteResult\";\nimport {ReturningStatementNotSupportedError} from \"../error/ReturningStatementNotSupportedError\";\nimport {EntitySchema} from \"../entity-schema/EntitySchema\";\n\n/**\n * Allows to build complex sql queries in a fashion way and execute those queries.\n */\nexport class DeleteQueryBuilder<Entity> extends QueryBuilder<Entity> implements WhereExpressionBuilder {\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(connectionOrQueryBuilder: Connection|QueryBuilder<any>, queryRunner?: QueryRunner) {\n super(connectionOrQueryBuilder as any, queryRunner);\n this.expressionMap.aliasNamePrefixingEnabled = false;\n }\n\n // -------------------------------------------------------------------------\n // Public Implemented Methods\n // -------------------------------------------------------------------------\n\n /**\n * Gets generated SQL query without parameters being replaced.\n */\n getQuery(): string {\n let sql = this.createComment();\n sql += this.createDeleteExpression();\n return sql.trim();\n }\n\n /**\n * Executes sql generated by query builder and returns raw database results.\n */\n async execute(): Promise<DeleteResult> {\n const [sql, parameters] = this.getQueryAndParameters();\n const queryRunner = this.obtainQueryRunner();\n let transactionStartedByUs: boolean = false;\n\n try {\n\n // start transaction if it was enabled\n if (this.expressionMap.useTransaction === true && queryRunner.isTransactionActive === false) {\n await queryRunner.startTransaction();\n transactionStartedByUs = true;\n }\n\n // call before deletion methods in listeners and subscribers\n if (this.expressionMap.callListeners === true && this.expressionMap.mainAlias!.hasMetadata) {\n await queryRunner.broadcaster.broadcast(\"BeforeRemove\", this.expressionMap.mainAlias!.metadata);\n }\n\n // execute query\n const queryResult = await queryRunner.query(sql, parameters, true);\n const deleteResult = DeleteResult.from(queryResult);\n\n // call after deletion methods in listeners and subscribers\n if (this.expressionMap.callListeners === true && this.expressionMap.mainAlias!.hasMetadata) {\n await queryRunner.broadcaster.broadcast(\"AfterRemove\", this.expressionMap.mainAlias!.metadata);\n }\n\n // close transaction if we started it\n if (transactionStartedByUs)\n await queryRunner.commitTransaction();\n\n return deleteResult;\n\n } catch (error) {\n\n // rollback transaction if we started it\n if (transactionStartedByUs) {\n try {\n await queryRunner.rollbackTransaction();\n } catch (rollbackError) { }\n }\n throw error;\n\n } finally {\n if (queryRunner !== this.queryRunner) { // means we created our own query runner\n await queryRunner.release();\n }\n }\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Specifies FROM which entity's table select/update/delete will be executed.\n * Also sets a main string alias of the selection data.\n */\n from<T>(entityTarget: EntityTarget<T>, aliasName?: string): DeleteQueryBuilder<T> {\n entityTarget = entityTarget instanceof EntitySchema ? entityTarget.options.name : entityTarget;\n const mainAlias = this.createFromAlias(entityTarget, aliasName);\n this.expressionMap.setMainAlias(mainAlias);\n return (this as any) as DeleteQueryBuilder<T>;\n }\n\n /**\n * Sets WHERE condition in the query builder.\n * If you had previously WHERE expression defined,\n * calling this function will override previously set WHERE conditions.\n * Additionally you can add parameters used in where expression.\n */\n where(where: Brackets|string|((qb: this) => string)|ObjectLiteral|ObjectLiteral[], parameters?: ObjectLiteral): this {\n this.expressionMap.wheres = []; // don't move this block below since computeWhereParameter can add where expressions\n const condition = this.getWhereCondition(where);\n if (condition)\n this.expressionMap.wheres = [{ type: \"simple\", condition: condition }];\n if (parameters)\n this.setParameters(parameters);\n return this;\n }\n\n /**\n * Adds new AND WHERE condition in the query builder.\n * Additionally you can add parameters used in where expression.\n */\n andWhere(where: Brackets|string|((qb: this) => string)|ObjectLiteral|ObjectLiteral[], parameters?: ObjectLiteral): this {\n this.expressionMap.wheres.push({ type: \"and\", condition: this.getWhereCondition(where) });\n if (parameters) this.setParameters(parameters);\n return this;\n }\n\n /**\n * Adds new OR WHERE condition in the query builder.\n * Additionally you can add parameters used in where expression.\n */\n orWhere(where: Brackets|string|((qb: this) => string)|ObjectLiteral|ObjectLiteral[], parameters?: ObjectLiteral): this {\n this.expressionMap.wheres.push({ type: \"or\", condition: this.getWhereCondition(where) });\n if (parameters) this.setParameters(parameters);\n return this;\n }\n\n /**\n * Sets WHERE condition in the query builder with a condition for the given ids.\n * If you had previously WHERE expression defined,\n * calling this function will override previously set WHERE conditions.\n */\n whereInIds(ids: any|any[]): this {\n return this.where(this.getWhereInIdsCondition(ids));\n }\n\n /**\n * Adds new AND WHERE with conditions for the given ids.\n */\n andWhereInIds(ids: any|any[]): this {\n return this.andWhere(this.getWhereInIdsCondition(ids));\n }\n\n /**\n * Adds new OR WHERE with conditions for the given ids.\n */\n orWhereInIds(ids: any|any[]): this {\n return this.orWhere(this.getWhereInIdsCondition(ids));\n }\n /**\n * Optional returning/output clause.\n * This will return given column values.\n */\n output(columns: string[]): this;\n\n /**\n * Optional returning/output clause.\n * Returning is a SQL string containing returning statement.\n */\n output(output: string): this;\n\n /**\n * Optional returning/output clause.\n */\n output(output: string|string[]): this;\n\n /**\n * Optional returning/output clause.\n */\n output(output: string|string[]): this {\n return this.returning(output);\n }\n\n /**\n * Optional returning/output clause.\n * This will return given column values.\n */\n returning(columns: string[]): this;\n\n /**\n * Optional returning/output clause.\n * Returning is a SQL string containing returning statement.\n */\n returning(returning: string): this;\n\n /**\n * Optional returning/output clause.\n */\n returning(returning: string|string[]): this;\n\n /**\n * Optional returning/output clause.\n */\n returning(returning: string|string[]): this {\n\n // not all databases support returning/output cause\n if (!this.connection.driver.isReturningSqlSupported(\"delete\")) {\n throw new ReturningStatementNotSupportedError();\n }\n\n this.expressionMap.returning = returning;\n return this;\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates DELETE express used to perform query.\n */\n protected createDeleteExpression() {\n const tableName = this.getTableName(this.getMainTableName());\n const whereExpression = this.createWhereExpression();\n const returningExpression = this.createReturningExpression(\"delete\");\n\n if (returningExpression === \"\") {\n return `DELETE FROM ${tableName}${whereExpression}`;\n }\n if (this.connection.driver instanceof SqlServerDriver) {\n return `DELETE FROM ${tableName} OUTPUT ${returningExpression}${whereExpression}`;\n }\n return `DELETE FROM ${tableName}${whereExpression} RETURNING ${returningExpression}`;\n }\n\n}\n"],"sourceRoot":".."}