typeorm 0.3.21 → 0.3.22-dev.03dbc7a

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 (1149) hide show
  1. package/README.md +1315 -1315
  2. package/browser/cache/DbQueryResultCache.js +1 -1
  3. package/browser/cache/DbQueryResultCache.js.map +1 -1
  4. package/browser/cache/QueryResultCache.js.map +1 -1
  5. package/browser/cache/QueryResultCacheFactory.js.map +1 -1
  6. package/browser/cache/QueryResultCacheOptions.js.map +1 -1
  7. package/browser/cache/RedisQueryResultCache.js.map +1 -1
  8. package/browser/cli-ts-node-commonjs.js.map +1 -1
  9. package/browser/cli-ts-node-esm.js.map +1 -1
  10. package/browser/common/DeepPartial.js.map +1 -1
  11. package/browser/common/EntityTarget.js.map +1 -1
  12. package/browser/common/MixedList.js.map +1 -1
  13. package/browser/common/NonNever.js.map +1 -1
  14. package/browser/common/ObjectLiteral.js.map +1 -1
  15. package/browser/common/ObjectType.js.map +1 -1
  16. package/browser/common/PickKeysByType.js.map +1 -1
  17. package/browser/common/RelationType.js.map +1 -1
  18. package/browser/connection/BaseConnectionOptions.js.map +1 -1
  19. package/browser/connection/Connection.js.map +1 -1
  20. package/browser/connection/ConnectionManager.js.map +1 -1
  21. package/browser/connection/ConnectionMetadataBuilder.js.map +1 -1
  22. package/browser/connection/ConnectionOptions.js.map +1 -1
  23. package/browser/connection/ConnectionOptionsReader.js +5 -9
  24. package/browser/connection/ConnectionOptionsReader.js.map +1 -1
  25. package/browser/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
  26. package/browser/container.js.map +1 -1
  27. package/browser/data-source/BaseDataSourceOptions.js.map +1 -1
  28. package/browser/data-source/DataSource.js +2 -2
  29. package/browser/data-source/DataSource.js.map +1 -1
  30. package/browser/data-source/DataSourceOptions.js.map +1 -1
  31. package/browser/data-source/index.js.map +1 -1
  32. package/browser/decorator/Check.js.map +1 -1
  33. package/browser/decorator/EntityRepository.js.map +1 -1
  34. package/browser/decorator/Exclusion.js.map +1 -1
  35. package/browser/decorator/Generated.js.map +1 -1
  36. package/browser/decorator/Index.js.map +1 -1
  37. package/browser/decorator/Unique.js.map +1 -1
  38. package/browser/decorator/columns/Column.js.map +1 -1
  39. package/browser/decorator/columns/CreateDateColumn.js.map +1 -1
  40. package/browser/decorator/columns/DeleteDateColumn.js.map +1 -1
  41. package/browser/decorator/columns/ObjectIdColumn.js.map +1 -1
  42. package/browser/decorator/columns/PrimaryColumn.js.map +1 -1
  43. package/browser/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
  44. package/browser/decorator/columns/UpdateDateColumn.js.map +1 -1
  45. package/browser/decorator/columns/VersionColumn.js.map +1 -1
  46. package/browser/decorator/columns/ViewColumn.js.map +1 -1
  47. package/browser/decorator/columns/VirtualColumn.js.map +1 -1
  48. package/browser/decorator/entity/ChildEntity.js.map +1 -1
  49. package/browser/decorator/entity/Entity.js.map +1 -1
  50. package/browser/decorator/entity/TableInheritance.js.map +1 -1
  51. package/browser/decorator/entity-view/ViewEntity.js.map +1 -1
  52. package/browser/decorator/listeners/AfterInsert.js.map +1 -1
  53. package/browser/decorator/listeners/AfterLoad.js.map +1 -1
  54. package/browser/decorator/listeners/AfterRecover.js.map +1 -1
  55. package/browser/decorator/listeners/AfterRemove.js.map +1 -1
  56. package/browser/decorator/listeners/AfterSoftRemove.js.map +1 -1
  57. package/browser/decorator/listeners/AfterUpdate.js.map +1 -1
  58. package/browser/decorator/listeners/BeforeInsert.js.map +1 -1
  59. package/browser/decorator/listeners/BeforeRecover.js.map +1 -1
  60. package/browser/decorator/listeners/BeforeRemove.js.map +1 -1
  61. package/browser/decorator/listeners/BeforeSoftRemove.js.map +1 -1
  62. package/browser/decorator/listeners/BeforeUpdate.js.map +1 -1
  63. package/browser/decorator/listeners/EventSubscriber.js.map +1 -1
  64. package/browser/decorator/options/ColumnCommonOptions.js.map +1 -1
  65. package/browser/decorator/options/ColumnEmbeddedOptions.js.map +1 -1
  66. package/browser/decorator/options/ColumnEnumOptions.js.map +1 -1
  67. package/browser/decorator/options/ColumnHstoreOptions.js.map +1 -1
  68. package/browser/decorator/options/ColumnNumericOptions.js.map +1 -1
  69. package/browser/decorator/options/ColumnOptions.js.map +1 -1
  70. package/browser/decorator/options/ColumnWithLengthOptions.js.map +1 -1
  71. package/browser/decorator/options/ColumnWithWidthOptions.js.map +1 -1
  72. package/browser/decorator/options/EntityOptions.js.map +1 -1
  73. package/browser/decorator/options/IndexOptions.js.map +1 -1
  74. package/browser/decorator/options/JoinColumnOptions.js.map +1 -1
  75. package/browser/decorator/options/JoinTableMultipleColumnsOptions.js.map +1 -1
  76. package/browser/decorator/options/JoinTableOptions.js.map +1 -1
  77. package/browser/decorator/options/PrimaryGeneratedColumnIdentityOptions.js.map +1 -1
  78. package/browser/decorator/options/PrimaryGeneratedColumnNumericOptions.js.map +1 -1
  79. package/browser/decorator/options/PrimaryGeneratedColumnUUIDOptions.js.map +1 -1
  80. package/browser/decorator/options/RelationOptions.js.map +1 -1
  81. package/browser/decorator/options/SpatialColumnOptions.js.map +1 -1
  82. package/browser/decorator/options/TransactionOptions.js.map +1 -1
  83. package/browser/decorator/options/UniqueOptions.js.map +1 -1
  84. package/browser/decorator/options/ValueTransformer.js.map +1 -1
  85. package/browser/decorator/options/ViewColumnOptions.js.map +1 -1
  86. package/browser/decorator/options/ViewEntityOptions.js.map +1 -1
  87. package/browser/decorator/options/VirtualColumnOptions.js.map +1 -1
  88. package/browser/decorator/relations/JoinColumn.js.map +1 -1
  89. package/browser/decorator/relations/JoinTable.js.map +1 -1
  90. package/browser/decorator/relations/ManyToMany.js.map +1 -1
  91. package/browser/decorator/relations/ManyToOne.js.map +1 -1
  92. package/browser/decorator/relations/OneToMany.js.map +1 -1
  93. package/browser/decorator/relations/OneToOne.js.map +1 -1
  94. package/browser/decorator/relations/RelationCount.d.ts +2 -1
  95. package/browser/decorator/relations/RelationCount.js +2 -1
  96. package/browser/decorator/relations/RelationCount.js.map +1 -1
  97. package/browser/decorator/relations/RelationId.js.map +1 -1
  98. package/browser/decorator/tree/Tree.js.map +1 -1
  99. package/browser/decorator/tree/TreeChildren.js.map +1 -1
  100. package/browser/decorator/tree/TreeLevelColumn.js.map +1 -1
  101. package/browser/decorator/tree/TreeParent.js.map +1 -1
  102. package/browser/driver/Driver.js.map +1 -1
  103. package/browser/driver/DriverFactory.js.map +1 -1
  104. package/browser/driver/DriverUtils.js +4 -5
  105. package/browser/driver/DriverUtils.js.map +1 -1
  106. package/browser/driver/Query.js.map +1 -1
  107. package/browser/driver/SqlInMemory.js.map +1 -1
  108. package/browser/driver/aurora-mysql/AuroraMysqlConnection.js.map +1 -1
  109. package/browser/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js.map +1 -1
  110. package/browser/driver/aurora-mysql/AuroraMysqlConnectionOptions.js.map +1 -1
  111. package/browser/driver/aurora-mysql/AuroraMysqlDriver.js +3 -3
  112. package/browser/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
  113. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js +7 -10
  114. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
  115. package/browser/driver/aurora-postgres/AuroraPostgresConnectionOptions.js.map +1 -1
  116. package/browser/driver/aurora-postgres/AuroraPostgresDriver.js.map +1 -1
  117. package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.js +6 -9
  118. package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.js.map +1 -1
  119. package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -1
  120. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
  121. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
  122. package/browser/driver/capacitor/CapacitorConnectionOptions.js.map +1 -1
  123. package/browser/driver/capacitor/CapacitorDriver.js.map +1 -1
  124. package/browser/driver/capacitor/CapacitorQueryRunner.js.map +1 -1
  125. package/browser/driver/cockroachdb/CockroachConnectionCredentialsOptions.js.map +1 -1
  126. package/browser/driver/cockroachdb/CockroachConnectionOptions.js.map +1 -1
  127. package/browser/driver/cockroachdb/CockroachDriver.js +3 -3
  128. package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
  129. package/browser/driver/cockroachdb/CockroachQueryRunner.d.ts +1 -1
  130. package/browser/driver/cockroachdb/CockroachQueryRunner.js +13 -14
  131. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  132. package/browser/driver/cordova/CordovaConnectionOptions.js.map +1 -1
  133. package/browser/driver/cordova/CordovaDriver.js.map +1 -1
  134. package/browser/driver/cordova/CordovaQueryRunner.js +1 -1
  135. package/browser/driver/cordova/CordovaQueryRunner.js.map +1 -1
  136. package/browser/driver/expo/ExpoConnectionOptions.js.map +1 -1
  137. package/browser/driver/expo/ExpoDriver.js.map +1 -1
  138. package/browser/driver/expo/ExpoQueryRunner.js +1 -1
  139. package/browser/driver/expo/ExpoQueryRunner.js.map +1 -1
  140. package/browser/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  141. package/browser/driver/mongodb/MongoDriver.js.map +1 -1
  142. package/browser/driver/mongodb/MongoQueryRunner.js.map +1 -1
  143. package/browser/driver/mongodb/bson.typings.js.map +1 -1
  144. package/browser/driver/mongodb/typings.js.map +1 -1
  145. package/browser/driver/mysql/MysqlConnectionCredentialsOptions.js.map +1 -1
  146. package/browser/driver/mysql/MysqlConnectionOptions.js.map +1 -1
  147. package/browser/driver/mysql/MysqlDriver.js +10 -12
  148. package/browser/driver/mysql/MysqlDriver.js.map +1 -1
  149. package/browser/driver/mysql/MysqlQueryRunner.d.ts +1 -1
  150. package/browser/driver/mysql/MysqlQueryRunner.js +86 -83
  151. package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
  152. package/browser/driver/nativescript/NativescriptConnectionOptions.js.map +1 -1
  153. package/browser/driver/nativescript/NativescriptDriver.js.map +1 -1
  154. package/browser/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  155. package/browser/driver/oracle/OracleConnectionCredentialsOptions.js.map +1 -1
  156. package/browser/driver/oracle/OracleConnectionOptions.js.map +1 -1
  157. package/browser/driver/oracle/OracleDriver.js +3 -3
  158. package/browser/driver/oracle/OracleDriver.js.map +1 -1
  159. package/browser/driver/oracle/OracleQueryRunner.js +6 -8
  160. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  161. package/browser/driver/postgres/PostgresConnectionCredentialsOptions.js.map +1 -1
  162. package/browser/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  163. package/browser/driver/postgres/PostgresDriver.d.ts +2 -1
  164. package/browser/driver/postgres/PostgresDriver.js +12 -15
  165. package/browser/driver/postgres/PostgresDriver.js.map +1 -1
  166. package/browser/driver/postgres/PostgresQueryRunner.d.ts +1 -1
  167. package/browser/driver/postgres/PostgresQueryRunner.js +14 -16
  168. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  169. package/browser/driver/react-native/ReactNativeConnectionOptions.js.map +1 -1
  170. package/browser/driver/react-native/ReactNativeDriver.js +1 -1
  171. package/browser/driver/react-native/ReactNativeDriver.js.map +1 -1
  172. package/browser/driver/react-native/ReactNativeQueryRunner.js +1 -1
  173. package/browser/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  174. package/browser/driver/sap/SapConnectionCredentialsOptions.js.map +1 -1
  175. package/browser/driver/sap/SapConnectionOptions.js.map +1 -1
  176. package/browser/driver/sap/SapDriver.d.ts +6 -1
  177. package/browser/driver/sap/SapDriver.js +27 -23
  178. package/browser/driver/sap/SapDriver.js.map +1 -1
  179. package/browser/driver/sap/SapQueryRunner.d.ts +7 -0
  180. package/browser/driver/sap/SapQueryRunner.js +18 -11
  181. package/browser/driver/sap/SapQueryRunner.js.map +1 -1
  182. package/browser/driver/spanner/SpannerConnectionCredentialsOptions.js.map +1 -1
  183. package/browser/driver/spanner/SpannerConnectionOptions.js.map +1 -1
  184. package/browser/driver/spanner/SpannerDriver.js +3 -3
  185. package/browser/driver/spanner/SpannerDriver.js.map +1 -1
  186. package/browser/driver/spanner/SpannerQueryRunner.js +7 -7
  187. package/browser/driver/spanner/SpannerQueryRunner.js.map +1 -1
  188. package/browser/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
  189. package/browser/driver/sqlite/SqliteDriver.js.map +1 -1
  190. package/browser/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  191. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js +1 -1
  192. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  193. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +13 -16
  194. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  195. package/browser/driver/sqljs/SqljsConnectionOptions.js.map +1 -1
  196. package/browser/driver/sqljs/SqljsDriver.js +1 -1
  197. package/browser/driver/sqljs/SqljsDriver.js.map +1 -1
  198. package/browser/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  199. package/browser/driver/sqlserver/MssqlParameter.js.map +1 -1
  200. package/browser/driver/sqlserver/SqlServerConnectionCredentialsOptions.js.map +1 -1
  201. package/browser/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
  202. package/browser/driver/sqlserver/SqlServerDriver.js +3 -3
  203. package/browser/driver/sqlserver/SqlServerDriver.js.map +1 -1
  204. package/browser/driver/sqlserver/SqlServerQueryRunner.js +35 -36
  205. package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  206. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js.map +1 -1
  207. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryDefaultAuthentication.js.map +1 -1
  208. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js.map +1 -1
  209. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js.map +1 -1
  210. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js.map +1 -1
  211. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js.map +1 -1
  212. package/browser/driver/sqlserver/authentication/DefaultAuthentication.js.map +1 -1
  213. package/browser/driver/sqlserver/authentication/NtlmAuthentication.js.map +1 -1
  214. package/browser/driver/types/ColumnTypes.d.ts +1 -1
  215. package/browser/driver/types/ColumnTypes.js.map +1 -1
  216. package/browser/driver/types/CteCapabilities.js.map +1 -1
  217. package/browser/driver/types/DataTypeDefaults.js.map +1 -1
  218. package/browser/driver/types/DatabaseType.js.map +1 -1
  219. package/browser/driver/types/GeoJsonTypes.js.map +1 -1
  220. package/browser/driver/types/IsolationLevel.js.map +1 -1
  221. package/browser/driver/types/MappedColumnTypes.js.map +1 -1
  222. package/browser/driver/types/MetadataTableType.js.map +1 -1
  223. package/browser/driver/types/ReplicationMode.js.map +1 -1
  224. package/browser/driver/types/UpsertType.js.map +1 -1
  225. package/browser/entity-manager/EntityManager.js.map +1 -1
  226. package/browser/entity-manager/EntityManagerFactory.js.map +1 -1
  227. package/browser/entity-manager/MongoEntityManager.js +1 -1
  228. package/browser/entity-manager/MongoEntityManager.js.map +1 -1
  229. package/browser/entity-manager/SqljsEntityManager.js.map +1 -1
  230. package/browser/entity-schema/EntitySchema.js.map +1 -1
  231. package/browser/entity-schema/EntitySchemaCheckOptions.js.map +1 -1
  232. package/browser/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
  233. package/browser/entity-schema/EntitySchemaEmbeddedColumnOptions.js.map +1 -1
  234. package/browser/entity-schema/EntitySchemaEmbeddedError.js.map +1 -1
  235. package/browser/entity-schema/EntitySchemaExclusionOptions.js.map +1 -1
  236. package/browser/entity-schema/EntitySchemaIndexOptions.js.map +1 -1
  237. package/browser/entity-schema/EntitySchemaInheritanceOptions.js.map +1 -1
  238. package/browser/entity-schema/EntitySchemaOptions.js.map +1 -1
  239. package/browser/entity-schema/EntitySchemaRelationIdOptions.js.map +1 -1
  240. package/browser/entity-schema/EntitySchemaRelationOptions.js.map +1 -1
  241. package/browser/entity-schema/EntitySchemaTransformer.js.map +1 -1
  242. package/browser/entity-schema/EntitySchemaUniqueOptions.js.map +1 -1
  243. package/browser/error/AlreadyHasActiveConnectionError.js.map +1 -1
  244. package/browser/error/CannotAttachTreeChildrenEntityError.js.map +1 -1
  245. package/browser/error/CannotConnectAlreadyConnectedError.js.map +1 -1
  246. package/browser/error/CannotCreateEntityIdMapError.js.map +1 -1
  247. package/browser/error/CannotDetermineEntityError.js.map +1 -1
  248. package/browser/error/CannotExecuteNotConnectedError.js.map +1 -1
  249. package/browser/error/CannotGetEntityManagerNotConnectedError.js.map +1 -1
  250. package/browser/error/CannotReflectMethodParameterTypeError.js.map +1 -1
  251. package/browser/error/CircularRelationsError.js.map +1 -1
  252. package/browser/error/ColumnTypeUndefinedError.js.map +1 -1
  253. package/browser/error/ConnectionIsNotSetError.js.map +1 -1
  254. package/browser/error/ConnectionNotFoundError.js.map +1 -1
  255. package/browser/error/CustomRepositoryCannotInheritRepositoryError.js.map +1 -1
  256. package/browser/error/CustomRepositoryDoesNotHaveEntityError.js.map +1 -1
  257. package/browser/error/CustomRepositoryNotFoundError.js.map +1 -1
  258. package/browser/error/DataTypeNotSupportedError.js.map +1 -1
  259. package/browser/error/DriverOptionNotSetError.js.map +1 -1
  260. package/browser/error/DriverPackageNotInstalledError.js.map +1 -1
  261. package/browser/error/EntityMetadataNotFoundError.js.map +1 -1
  262. package/browser/error/EntityNotFoundError.js.map +1 -1
  263. package/browser/error/EntityPropertyNotFoundError.js.map +1 -1
  264. package/browser/error/FindRelationsNotFoundError.js.map +1 -1
  265. package/browser/error/ForbiddenTransactionModeOverrideError.js.map +1 -1
  266. package/browser/error/InitializedRelationError.js.map +1 -1
  267. package/browser/error/InsertValuesMissingError.js.map +1 -1
  268. package/browser/error/LimitOnUpdateNotSupportedError.js.map +1 -1
  269. package/browser/error/LockNotSupportedOnGivenDriverError.js.map +1 -1
  270. package/browser/error/MetadataAlreadyExistsError.js.map +1 -1
  271. package/browser/error/MetadataWithSuchNameAlreadyExistsError.js.map +1 -1
  272. package/browser/error/MissingDeleteDateColumnError.js.map +1 -1
  273. package/browser/error/MissingDriverError.js.map +1 -1
  274. package/browser/error/MissingJoinColumnError.js.map +1 -1
  275. package/browser/error/MissingJoinTableError.js.map +1 -1
  276. package/browser/error/MissingPrimaryColumnError.js.map +1 -1
  277. package/browser/error/MustBeEntityError.js.map +1 -1
  278. package/browser/error/NamingStrategyNotFoundError.js.map +1 -1
  279. package/browser/error/NestedSetMultipleRootError.js.map +1 -1
  280. package/browser/error/NoConnectionForRepositoryError.js.map +1 -1
  281. package/browser/error/NoConnectionOptionError.js.map +1 -1
  282. package/browser/error/NoNeedToReleaseEntityManagerError.js.map +1 -1
  283. package/browser/error/NoVersionOrUpdateDateColumnError.js.map +1 -1
  284. package/browser/error/OffsetWithoutLimitNotSupportedError.js.map +1 -1
  285. package/browser/error/OptimisticLockCanNotBeUsedError.js.map +1 -1
  286. package/browser/error/OptimisticLockVersionMismatchError.js.map +1 -1
  287. package/browser/error/PersistedEntityNotFoundError.js.map +1 -1
  288. package/browser/error/PessimisticLockTransactionRequiredError.js.map +1 -1
  289. package/browser/error/PrimaryColumnCannotBeNullableError.js.map +1 -1
  290. package/browser/error/QueryFailedError.js.map +1 -1
  291. package/browser/error/QueryRunnerAlreadyReleasedError.js.map +1 -1
  292. package/browser/error/QueryRunnerProviderAlreadyReleasedError.js.map +1 -1
  293. package/browser/error/RepositoryNotTreeError.js.map +1 -1
  294. package/browser/error/ReturningStatementNotSupportedError.js.map +1 -1
  295. package/browser/error/SubjectRemovedAndUpdatedError.js.map +1 -1
  296. package/browser/error/SubjectWithoutIdentifierError.js.map +1 -1
  297. package/browser/error/TransactionAlreadyStartedError.js.map +1 -1
  298. package/browser/error/TransactionNotStartedError.js.map +1 -1
  299. package/browser/error/TreeRepositoryNotSupportedError.js.map +1 -1
  300. package/browser/error/TypeORMError.js.map +1 -1
  301. package/browser/error/UpdateValuesMissingError.js.map +1 -1
  302. package/browser/error/UsingJoinColumnIsNotAllowedError.js.map +1 -1
  303. package/browser/error/UsingJoinColumnOnlyOnOneSideAllowedError.js.map +1 -1
  304. package/browser/error/UsingJoinTableIsNotAllowedError.js.map +1 -1
  305. package/browser/error/UsingJoinTableOnlyOnOneSideAllowedError.js.map +1 -1
  306. package/browser/error/index.js.map +1 -1
  307. package/browser/find-options/EqualOperator.js.map +1 -1
  308. package/browser/find-options/FindManyOptions.js.map +1 -1
  309. package/browser/find-options/FindOneOptions.js.map +1 -1
  310. package/browser/find-options/FindOperator.js.map +1 -1
  311. package/browser/find-options/FindOperatorType.js.map +1 -1
  312. package/browser/find-options/FindOptionsOrder.js.map +1 -1
  313. package/browser/find-options/FindOptionsRelations.js.map +1 -1
  314. package/browser/find-options/FindOptionsSelect.d.ts +1 -1
  315. package/browser/find-options/FindOptionsSelect.js.map +1 -1
  316. package/browser/find-options/FindOptionsUtils.js +1 -1
  317. package/browser/find-options/FindOptionsUtils.js.map +1 -1
  318. package/browser/find-options/FindOptionsWhere.js.map +1 -1
  319. package/browser/find-options/FindTreeOptions.js.map +1 -1
  320. package/browser/find-options/JoinOptions.js.map +1 -1
  321. package/browser/find-options/OrderByCondition.js.map +1 -1
  322. package/browser/find-options/mongodb/MongoFindManyOptions.js.map +1 -1
  323. package/browser/find-options/mongodb/MongoFindOneOptions.js.map +1 -1
  324. package/browser/find-options/operator/And.js.map +1 -1
  325. package/browser/find-options/operator/Any.js.map +1 -1
  326. package/browser/find-options/operator/ArrayContainedBy.js.map +1 -1
  327. package/browser/find-options/operator/ArrayContains.js.map +1 -1
  328. package/browser/find-options/operator/ArrayOverlap.js.map +1 -1
  329. package/browser/find-options/operator/Between.js.map +1 -1
  330. package/browser/find-options/operator/Equal.js.map +1 -1
  331. package/browser/find-options/operator/ILike.js.map +1 -1
  332. package/browser/find-options/operator/In.js.map +1 -1
  333. package/browser/find-options/operator/IsNull.js.map +1 -1
  334. package/browser/find-options/operator/JsonContains.js.map +1 -1
  335. package/browser/find-options/operator/LessThan.js.map +1 -1
  336. package/browser/find-options/operator/LessThanOrEqual.js.map +1 -1
  337. package/browser/find-options/operator/Like.js.map +1 -1
  338. package/browser/find-options/operator/MoreThan.js.map +1 -1
  339. package/browser/find-options/operator/MoreThanOrEqual.js.map +1 -1
  340. package/browser/find-options/operator/Not.js.map +1 -1
  341. package/browser/find-options/operator/Or.js.map +1 -1
  342. package/browser/find-options/operator/Raw.js.map +1 -1
  343. package/browser/globals.js.map +1 -1
  344. package/browser/index.d.ts +1 -0
  345. package/browser/index.js +1 -0
  346. package/browser/index.js.map +1 -1
  347. package/browser/logger/AbstractLogger.js.map +1 -1
  348. package/browser/logger/AdvancedConsoleLogger.js +1 -1
  349. package/browser/logger/AdvancedConsoleLogger.js.map +1 -1
  350. package/browser/logger/DebugLogger.js +1 -1
  351. package/browser/logger/DebugLogger.js.map +1 -1
  352. package/browser/logger/FileLogger.js +1 -1
  353. package/browser/logger/FileLogger.js.map +1 -1
  354. package/browser/logger/Logger.js.map +1 -1
  355. package/browser/logger/LoggerFactory.js.map +1 -1
  356. package/browser/logger/LoggerOptions.js.map +1 -1
  357. package/browser/logger/SimpleConsoleLogger.js +1 -1
  358. package/browser/logger/SimpleConsoleLogger.js.map +1 -1
  359. package/browser/metadata/CheckMetadata.js.map +1 -1
  360. package/browser/metadata/ColumnMetadata.js +1 -1
  361. package/browser/metadata/ColumnMetadata.js.map +1 -1
  362. package/browser/metadata/EmbeddedMetadata.js +1 -1
  363. package/browser/metadata/EmbeddedMetadata.js.map +1 -1
  364. package/browser/metadata/EntityListenerMetadata.js.map +1 -1
  365. package/browser/metadata/EntityMetadata.js.map +1 -1
  366. package/browser/metadata/ExclusionMetadata.js.map +1 -1
  367. package/browser/metadata/ForeignKeyMetadata.js.map +1 -1
  368. package/browser/metadata/IndexMetadata.js.map +1 -1
  369. package/browser/metadata/RelationCountMetadata.js.map +1 -1
  370. package/browser/metadata/RelationIdMetadata.js.map +1 -1
  371. package/browser/metadata/RelationMetadata.js.map +1 -1
  372. package/browser/metadata/UniqueMetadata.js.map +1 -1
  373. package/browser/metadata/types/ClosureTreeOptions.js.map +1 -1
  374. package/browser/metadata/types/DeferrableType.js.map +1 -1
  375. package/browser/metadata/types/EventListenerTypes.js.map +1 -1
  376. package/browser/metadata/types/OnDeleteType.js.map +1 -1
  377. package/browser/metadata/types/OnUpdateType.js.map +1 -1
  378. package/browser/metadata/types/PropertyTypeInFunction.js.map +1 -1
  379. package/browser/metadata/types/RelationTypeInFunction.js.map +1 -1
  380. package/browser/metadata/types/RelationTypes.js.map +1 -1
  381. package/browser/metadata/types/TableTypes.js.map +1 -1
  382. package/browser/metadata/types/TreeTypes.js.map +1 -1
  383. package/browser/metadata-args/CheckMetadataArgs.js.map +1 -1
  384. package/browser/metadata-args/ColumnMetadataArgs.js.map +1 -1
  385. package/browser/metadata-args/DiscriminatorValueMetadataArgs.js.map +1 -1
  386. package/browser/metadata-args/EmbeddedMetadataArgs.js.map +1 -1
  387. package/browser/metadata-args/EntityListenerMetadataArgs.js.map +1 -1
  388. package/browser/metadata-args/EntityRepositoryMetadataArgs.js.map +1 -1
  389. package/browser/metadata-args/EntitySubscriberMetadataArgs.js.map +1 -1
  390. package/browser/metadata-args/ExclusionMetadataArgs.js.map +1 -1
  391. package/browser/metadata-args/GeneratedMetadataArgs.js.map +1 -1
  392. package/browser/metadata-args/IndexMetadataArgs.js.map +1 -1
  393. package/browser/metadata-args/InheritanceMetadataArgs.js.map +1 -1
  394. package/browser/metadata-args/JoinColumnMetadataArgs.js.map +1 -1
  395. package/browser/metadata-args/JoinTableMetadataArgs.js.map +1 -1
  396. package/browser/metadata-args/MetadataArgsStorage.js.map +1 -1
  397. package/browser/metadata-args/NamingStrategyMetadataArgs.js.map +1 -1
  398. package/browser/metadata-args/RelationCountMetadataArgs.js.map +1 -1
  399. package/browser/metadata-args/RelationIdMetadataArgs.js.map +1 -1
  400. package/browser/metadata-args/RelationMetadataArgs.js.map +1 -1
  401. package/browser/metadata-args/TableMetadataArgs.js.map +1 -1
  402. package/browser/metadata-args/TransactionEntityMetadataArgs.js.map +1 -1
  403. package/browser/metadata-args/TransactionRepositoryMetadataArgs.js.map +1 -1
  404. package/browser/metadata-args/TreeMetadataArgs.js.map +1 -1
  405. package/browser/metadata-args/UniqueMetadataArgs.js.map +1 -1
  406. package/browser/metadata-args/types/ColumnMode.js.map +1 -1
  407. package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -1
  408. package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  409. package/browser/metadata-builder/EntityMetadataValidator.js.map +1 -1
  410. package/browser/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  411. package/browser/metadata-builder/MetadataUtils.js.map +1 -1
  412. package/browser/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
  413. package/browser/migration/Migration.js.map +1 -1
  414. package/browser/migration/MigrationExecutor.js +2 -2
  415. package/browser/migration/MigrationExecutor.js.map +1 -1
  416. package/browser/migration/MigrationInterface.js.map +1 -1
  417. package/browser/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  418. package/browser/naming-strategy/LegacyOracleNamingStrategy.js.map +1 -1
  419. package/browser/naming-strategy/NamingStrategyInterface.js.map +1 -1
  420. package/browser/persistence/EntityPersistExecutor.js +2 -2
  421. package/browser/persistence/EntityPersistExecutor.js.map +1 -1
  422. package/browser/persistence/Subject.js.map +1 -1
  423. package/browser/persistence/SubjectChangeMap.js.map +1 -1
  424. package/browser/persistence/SubjectChangedColumnsComputer.js.map +1 -1
  425. package/browser/persistence/SubjectDatabaseEntityLoader.js +1 -1
  426. package/browser/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  427. package/browser/persistence/SubjectExecutor.js +1 -1
  428. package/browser/persistence/SubjectExecutor.js.map +1 -1
  429. package/browser/persistence/SubjectTopologicalSorter.js +5 -5
  430. package/browser/persistence/SubjectTopologicalSorter.js.map +1 -1
  431. package/browser/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
  432. package/browser/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
  433. package/browser/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
  434. package/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js +1 -1
  435. package/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -1
  436. package/browser/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
  437. package/browser/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
  438. package/browser/persistence/tree/NestedSetSubjectExecutor.js +2 -2
  439. package/browser/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
  440. package/browser/platform/BrowserConnectionOptionsReaderDummy.js.map +1 -1
  441. package/browser/platform/BrowserDirectoryExportedClassesLoader.js.map +1 -1
  442. package/browser/platform/BrowserDisabledDriversDummy.js.map +1 -1
  443. package/browser/platform/BrowserFileLoggerDummy.js.map +1 -1
  444. package/browser/platform/BrowserPlatformTools.js.map +1 -1
  445. package/browser/platform/PlatformTools.js.map +1 -1
  446. package/browser/query-builder/Alias.js.map +1 -1
  447. package/browser/query-builder/Brackets.js.map +1 -1
  448. package/browser/query-builder/DeleteQueryBuilder.js.map +1 -1
  449. package/browser/query-builder/InsertOrUpdateOptions.js.map +1 -1
  450. package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
  451. package/browser/query-builder/JoinAttribute.js +2 -2
  452. package/browser/query-builder/JoinAttribute.js.map +1 -1
  453. package/browser/query-builder/JoinOptions.js.map +1 -1
  454. package/browser/query-builder/NotBrackets.js.map +1 -1
  455. package/browser/query-builder/QueryBuilder.js +2 -2
  456. package/browser/query-builder/QueryBuilder.js.map +1 -1
  457. package/browser/query-builder/QueryBuilderCte.js.map +1 -1
  458. package/browser/query-builder/QueryBuilderUtils.js.map +1 -1
  459. package/browser/query-builder/QueryExpressionMap.js.map +1 -1
  460. package/browser/query-builder/QueryPartialEntity.js.map +1 -1
  461. package/browser/query-builder/RelationIdLoader.js +5 -4
  462. package/browser/query-builder/RelationIdLoader.js.map +1 -1
  463. package/browser/query-builder/RelationLoader.js.map +1 -1
  464. package/browser/query-builder/RelationQueryBuilder.js.map +1 -1
  465. package/browser/query-builder/RelationRemover.js.map +1 -1
  466. package/browser/query-builder/RelationUpdater.js.map +1 -1
  467. package/browser/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
  468. package/browser/query-builder/SelectQuery.js.map +1 -1
  469. package/browser/query-builder/SelectQueryBuilder.js +27 -14
  470. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  471. package/browser/query-builder/SelectQueryBuilderOption.js.map +1 -1
  472. package/browser/query-builder/SoftDeleteQueryBuilder.js +1 -1
  473. package/browser/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  474. package/browser/query-builder/UpdateQueryBuilder.js +3 -3
  475. package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
  476. package/browser/query-builder/WhereClause.js.map +1 -1
  477. package/browser/query-builder/WhereExpressionBuilder.js.map +1 -1
  478. package/browser/query-builder/index.js.map +1 -1
  479. package/browser/query-builder/relation-count/RelationCountAttribute.js.map +1 -1
  480. package/browser/query-builder/relation-count/RelationCountLoadResult.js.map +1 -1
  481. package/browser/query-builder/relation-count/RelationCountLoader.js.map +1 -1
  482. package/browser/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js.map +1 -1
  483. package/browser/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
  484. package/browser/query-builder/relation-id/RelationIdLoadResult.js.map +1 -1
  485. package/browser/query-builder/relation-id/RelationIdLoader.js.map +1 -1
  486. package/browser/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js.map +1 -1
  487. package/browser/query-builder/result/DeleteResult.js.map +1 -1
  488. package/browser/query-builder/result/InsertResult.js.map +1 -1
  489. package/browser/query-builder/result/UpdateResult.js.map +1 -1
  490. package/browser/query-builder/transformer/DocumentToEntityTransformer.js.map +1 -1
  491. package/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
  492. package/browser/query-builder/transformer/PlainObjectToNewEntityTransformer.js.map +1 -1
  493. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js +2 -2
  494. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  495. package/browser/query-runner/BaseQueryRunner.js.map +1 -1
  496. package/browser/query-runner/QueryLock.js.map +1 -1
  497. package/browser/query-runner/QueryResult.js.map +1 -1
  498. package/browser/query-runner/QueryRunner.js.map +1 -1
  499. package/browser/repository/AbstractRepository.js.map +1 -1
  500. package/browser/repository/BaseEntity.js.map +1 -1
  501. package/browser/repository/EntityId.js.map +1 -1
  502. package/browser/repository/FindTreesOptions.js.map +1 -1
  503. package/browser/repository/MongoRepository.js.map +1 -1
  504. package/browser/repository/RemoveOptions.js.map +1 -1
  505. package/browser/repository/Repository.js.map +1 -1
  506. package/browser/repository/SaveOptions.js.map +1 -1
  507. package/browser/repository/TreeRepository.js.map +1 -1
  508. package/browser/repository/UpsertOptions.js.map +1 -1
  509. package/browser/schema-builder/MongoSchemaBuilder.js.map +1 -1
  510. package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  511. package/browser/schema-builder/SchemaBuilder.js.map +1 -1
  512. package/browser/schema-builder/options/TableCheckOptions.js.map +1 -1
  513. package/browser/schema-builder/options/TableColumnOptions.js.map +1 -1
  514. package/browser/schema-builder/options/TableExclusionOptions.js.map +1 -1
  515. package/browser/schema-builder/options/TableForeignKeyOptions.js.map +1 -1
  516. package/browser/schema-builder/options/TableIndexOptions.js.map +1 -1
  517. package/browser/schema-builder/options/TableOptions.js.map +1 -1
  518. package/browser/schema-builder/options/TableUniqueOptions.js.map +1 -1
  519. package/browser/schema-builder/options/ViewOptions.js.map +1 -1
  520. package/browser/schema-builder/table/Table.js.map +1 -1
  521. package/browser/schema-builder/table/TableCheck.js.map +1 -1
  522. package/browser/schema-builder/table/TableColumn.js.map +1 -1
  523. package/browser/schema-builder/table/TableExclusion.js.map +1 -1
  524. package/browser/schema-builder/table/TableForeignKey.js.map +1 -1
  525. package/browser/schema-builder/table/TableIndex.js.map +1 -1
  526. package/browser/schema-builder/table/TableUnique.js.map +1 -1
  527. package/browser/schema-builder/util/TableUtils.js.map +1 -1
  528. package/browser/schema-builder/util/ViewUtils.js.map +1 -1
  529. package/browser/schema-builder/view/View.js.map +1 -1
  530. package/browser/subscriber/Broadcaster.js.map +1 -1
  531. package/browser/subscriber/BroadcasterResult.js.map +1 -1
  532. package/browser/subscriber/EntitySubscriberInterface.js.map +1 -1
  533. package/browser/subscriber/event/InsertEvent.js.map +1 -1
  534. package/browser/subscriber/event/LoadEvent.js.map +1 -1
  535. package/browser/subscriber/event/QueryEvent.d.ts +1 -1
  536. package/browser/subscriber/event/QueryEvent.js.map +1 -1
  537. package/browser/subscriber/event/RecoverEvent.js.map +1 -1
  538. package/browser/subscriber/event/RemoveEvent.js.map +1 -1
  539. package/browser/subscriber/event/SoftRemoveEvent.js.map +1 -1
  540. package/browser/subscriber/event/TransactionCommitEvent.js.map +1 -1
  541. package/browser/subscriber/event/TransactionRollbackEvent.js.map +1 -1
  542. package/browser/subscriber/event/TransactionStartEvent.js.map +1 -1
  543. package/browser/subscriber/event/UpdateEvent.js.map +1 -1
  544. package/browser/util/ApplyValueTransformers.js.map +1 -1
  545. package/browser/util/DateUtils.js.map +1 -1
  546. package/browser/util/DepGraph.js +13 -13
  547. package/browser/util/DepGraph.js.map +1 -1
  548. package/browser/util/DirectoryExportedClassesLoader.js +2 -2
  549. package/browser/util/DirectoryExportedClassesLoader.js.map +1 -1
  550. package/browser/util/ImportUtils.js.map +1 -1
  551. package/browser/util/InstanceChecker.js.map +1 -1
  552. package/browser/util/ObjectUtils.d.ts +2 -2
  553. package/browser/util/ObjectUtils.js.map +1 -1
  554. package/browser/util/OrmUtils.js +4 -4
  555. package/browser/util/OrmUtils.js.map +1 -1
  556. package/browser/util/PathUtils.js.map +1 -1
  557. package/browser/util/RandomGenerator.js +6 -6
  558. package/browser/util/RandomGenerator.js.map +1 -1
  559. package/browser/util/StringUtils.js.map +1 -1
  560. package/browser/util/TreeRepositoryUtils.js.map +1 -1
  561. package/browser/util/VersionUtils.d.ts +1 -2
  562. package/browser/util/VersionUtils.js +14 -7
  563. package/browser/util/VersionUtils.js.map +1 -1
  564. package/browser/util/escapeRegExp.d.ts +1 -1
  565. package/browser/util/escapeRegExp.js.map +1 -1
  566. package/cache/DbQueryResultCache.js +1 -1
  567. package/cache/DbQueryResultCache.js.map +1 -1
  568. package/cache/QueryResultCache.js.map +1 -1
  569. package/cache/QueryResultCacheFactory.js.map +1 -1
  570. package/cache/QueryResultCacheOptions.js.map +1 -1
  571. package/cache/RedisQueryResultCache.js.map +1 -1
  572. package/cli-ts-node-commonjs.js.map +1 -1
  573. package/cli-ts-node-esm.js.map +1 -1
  574. package/cli.js.map +1 -1
  575. package/commands/CacheClearCommand.js.map +1 -1
  576. package/commands/CommandUtils.js +1 -0
  577. package/commands/CommandUtils.js.map +1 -1
  578. package/commands/EntityCreateCommand.js +6 -6
  579. package/commands/EntityCreateCommand.js.map +1 -1
  580. package/commands/InitCommand.js +316 -322
  581. package/commands/InitCommand.js.map +1 -1
  582. package/commands/MigrationCreateCommand.js +20 -22
  583. package/commands/MigrationCreateCommand.js.map +1 -1
  584. package/commands/MigrationGenerateCommand.js +29 -31
  585. package/commands/MigrationGenerateCommand.js.map +1 -1
  586. package/commands/MigrationRevertCommand.js.map +1 -1
  587. package/commands/MigrationRunCommand.js.map +1 -1
  588. package/commands/MigrationShowCommand.js.map +1 -1
  589. package/commands/QueryCommand.js.map +1 -1
  590. package/commands/SchemaDropCommand.js.map +1 -1
  591. package/commands/SchemaLogCommand.js.map +1 -1
  592. package/commands/SchemaSyncCommand.js.map +1 -1
  593. package/commands/SubscriberCreateCommand.js +6 -6
  594. package/commands/SubscriberCreateCommand.js.map +1 -1
  595. package/commands/VersionCommand.js.map +1 -1
  596. package/common/DeepPartial.js.map +1 -1
  597. package/common/EntityTarget.js.map +1 -1
  598. package/common/MixedList.js.map +1 -1
  599. package/common/NonNever.js.map +1 -1
  600. package/common/ObjectLiteral.js.map +1 -1
  601. package/common/ObjectType.js.map +1 -1
  602. package/common/PickKeysByType.js.map +1 -1
  603. package/common/RelationType.js.map +1 -1
  604. package/connection/BaseConnectionOptions.js.map +1 -1
  605. package/connection/Connection.js.map +1 -1
  606. package/connection/ConnectionManager.js.map +1 -1
  607. package/connection/ConnectionMetadataBuilder.js.map +1 -1
  608. package/connection/ConnectionOptions.js.map +1 -1
  609. package/connection/ConnectionOptionsReader.js +5 -9
  610. package/connection/ConnectionOptionsReader.js.map +1 -1
  611. package/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
  612. package/container.js.map +1 -1
  613. package/data-source/BaseDataSourceOptions.js.map +1 -1
  614. package/data-source/DataSource.js +2 -2
  615. package/data-source/DataSource.js.map +1 -1
  616. package/data-source/DataSourceOptions.js.map +1 -1
  617. package/data-source/index.js.map +1 -1
  618. package/decorator/Check.js.map +1 -1
  619. package/decorator/EntityRepository.js.map +1 -1
  620. package/decorator/Exclusion.js.map +1 -1
  621. package/decorator/Generated.js.map +1 -1
  622. package/decorator/Index.js.map +1 -1
  623. package/decorator/Unique.js.map +1 -1
  624. package/decorator/columns/Column.js.map +1 -1
  625. package/decorator/columns/CreateDateColumn.js.map +1 -1
  626. package/decorator/columns/DeleteDateColumn.js.map +1 -1
  627. package/decorator/columns/ObjectIdColumn.js.map +1 -1
  628. package/decorator/columns/PrimaryColumn.js.map +1 -1
  629. package/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
  630. package/decorator/columns/UpdateDateColumn.js.map +1 -1
  631. package/decorator/columns/VersionColumn.js.map +1 -1
  632. package/decorator/columns/ViewColumn.js.map +1 -1
  633. package/decorator/columns/VirtualColumn.js.map +1 -1
  634. package/decorator/entity/ChildEntity.js.map +1 -1
  635. package/decorator/entity/Entity.js.map +1 -1
  636. package/decorator/entity/TableInheritance.js.map +1 -1
  637. package/decorator/entity-view/ViewEntity.js.map +1 -1
  638. package/decorator/listeners/AfterInsert.js.map +1 -1
  639. package/decorator/listeners/AfterLoad.js.map +1 -1
  640. package/decorator/listeners/AfterRecover.js.map +1 -1
  641. package/decorator/listeners/AfterRemove.js.map +1 -1
  642. package/decorator/listeners/AfterSoftRemove.js.map +1 -1
  643. package/decorator/listeners/AfterUpdate.js.map +1 -1
  644. package/decorator/listeners/BeforeInsert.js.map +1 -1
  645. package/decorator/listeners/BeforeRecover.js.map +1 -1
  646. package/decorator/listeners/BeforeRemove.js.map +1 -1
  647. package/decorator/listeners/BeforeSoftRemove.js.map +1 -1
  648. package/decorator/listeners/BeforeUpdate.js.map +1 -1
  649. package/decorator/listeners/EventSubscriber.js.map +1 -1
  650. package/decorator/options/ColumnCommonOptions.js.map +1 -1
  651. package/decorator/options/ColumnEmbeddedOptions.js.map +1 -1
  652. package/decorator/options/ColumnEnumOptions.js.map +1 -1
  653. package/decorator/options/ColumnHstoreOptions.js.map +1 -1
  654. package/decorator/options/ColumnNumericOptions.js.map +1 -1
  655. package/decorator/options/ColumnOptions.js.map +1 -1
  656. package/decorator/options/ColumnWithLengthOptions.js.map +1 -1
  657. package/decorator/options/ColumnWithWidthOptions.js.map +1 -1
  658. package/decorator/options/EntityOptions.js.map +1 -1
  659. package/decorator/options/IndexOptions.js.map +1 -1
  660. package/decorator/options/JoinColumnOptions.js.map +1 -1
  661. package/decorator/options/JoinTableMultipleColumnsOptions.js.map +1 -1
  662. package/decorator/options/JoinTableOptions.js.map +1 -1
  663. package/decorator/options/PrimaryGeneratedColumnIdentityOptions.js.map +1 -1
  664. package/decorator/options/PrimaryGeneratedColumnNumericOptions.js.map +1 -1
  665. package/decorator/options/PrimaryGeneratedColumnUUIDOptions.js.map +1 -1
  666. package/decorator/options/RelationOptions.js.map +1 -1
  667. package/decorator/options/SpatialColumnOptions.js.map +1 -1
  668. package/decorator/options/TransactionOptions.js.map +1 -1
  669. package/decorator/options/UniqueOptions.js.map +1 -1
  670. package/decorator/options/ValueTransformer.js.map +1 -1
  671. package/decorator/options/ViewColumnOptions.js.map +1 -1
  672. package/decorator/options/ViewEntityOptions.js.map +1 -1
  673. package/decorator/options/VirtualColumnOptions.js.map +1 -1
  674. package/decorator/relations/JoinColumn.js.map +1 -1
  675. package/decorator/relations/JoinTable.js.map +1 -1
  676. package/decorator/relations/ManyToMany.js.map +1 -1
  677. package/decorator/relations/ManyToOne.js.map +1 -1
  678. package/decorator/relations/OneToMany.js.map +1 -1
  679. package/decorator/relations/OneToOne.js.map +1 -1
  680. package/decorator/relations/RelationCount.d.ts +2 -1
  681. package/decorator/relations/RelationCount.js +2 -1
  682. package/decorator/relations/RelationCount.js.map +1 -1
  683. package/decorator/relations/RelationId.js.map +1 -1
  684. package/decorator/tree/Tree.js.map +1 -1
  685. package/decorator/tree/TreeChildren.js.map +1 -1
  686. package/decorator/tree/TreeLevelColumn.js.map +1 -1
  687. package/decorator/tree/TreeParent.js.map +1 -1
  688. package/driver/Driver.js.map +1 -1
  689. package/driver/DriverFactory.js.map +1 -1
  690. package/driver/DriverUtils.js +4 -5
  691. package/driver/DriverUtils.js.map +1 -1
  692. package/driver/Query.js.map +1 -1
  693. package/driver/SqlInMemory.js.map +1 -1
  694. package/driver/aurora-mysql/AuroraMysqlConnection.js.map +1 -1
  695. package/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js.map +1 -1
  696. package/driver/aurora-mysql/AuroraMysqlConnectionOptions.js.map +1 -1
  697. package/driver/aurora-mysql/AuroraMysqlDriver.js +3 -3
  698. package/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
  699. package/driver/aurora-mysql/AuroraMysqlQueryRunner.js +7 -10
  700. package/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
  701. package/driver/aurora-postgres/AuroraPostgresConnectionOptions.js.map +1 -1
  702. package/driver/aurora-postgres/AuroraPostgresDriver.js.map +1 -1
  703. package/driver/aurora-postgres/AuroraPostgresQueryRunner.js +6 -9
  704. package/driver/aurora-postgres/AuroraPostgresQueryRunner.js.map +1 -1
  705. package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -1
  706. package/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
  707. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
  708. package/driver/capacitor/CapacitorConnectionOptions.js.map +1 -1
  709. package/driver/capacitor/CapacitorDriver.js.map +1 -1
  710. package/driver/capacitor/CapacitorQueryRunner.js.map +1 -1
  711. package/driver/cockroachdb/CockroachConnectionCredentialsOptions.js.map +1 -1
  712. package/driver/cockroachdb/CockroachConnectionOptions.js.map +1 -1
  713. package/driver/cockroachdb/CockroachDriver.js +3 -3
  714. package/driver/cockroachdb/CockroachDriver.js.map +1 -1
  715. package/driver/cockroachdb/CockroachQueryRunner.d.ts +1 -1
  716. package/driver/cockroachdb/CockroachQueryRunner.js +13 -14
  717. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  718. package/driver/cordova/CordovaConnectionOptions.js.map +1 -1
  719. package/driver/cordova/CordovaDriver.js.map +1 -1
  720. package/driver/cordova/CordovaQueryRunner.js +1 -1
  721. package/driver/cordova/CordovaQueryRunner.js.map +1 -1
  722. package/driver/expo/ExpoConnectionOptions.js.map +1 -1
  723. package/driver/expo/ExpoDriver.js.map +1 -1
  724. package/driver/expo/ExpoQueryRunner.js +1 -1
  725. package/driver/expo/ExpoQueryRunner.js.map +1 -1
  726. package/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  727. package/driver/mongodb/MongoDriver.js.map +1 -1
  728. package/driver/mongodb/MongoQueryRunner.js.map +1 -1
  729. package/driver/mongodb/bson.typings.js.map +1 -1
  730. package/driver/mongodb/typings.js.map +1 -1
  731. package/driver/mysql/MysqlConnectionCredentialsOptions.js.map +1 -1
  732. package/driver/mysql/MysqlConnectionOptions.js.map +1 -1
  733. package/driver/mysql/MysqlDriver.js +10 -12
  734. package/driver/mysql/MysqlDriver.js.map +1 -1
  735. package/driver/mysql/MysqlQueryRunner.d.ts +1 -1
  736. package/driver/mysql/MysqlQueryRunner.js +86 -83
  737. package/driver/mysql/MysqlQueryRunner.js.map +1 -1
  738. package/driver/nativescript/NativescriptConnectionOptions.js.map +1 -1
  739. package/driver/nativescript/NativescriptDriver.js.map +1 -1
  740. package/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  741. package/driver/oracle/OracleConnectionCredentialsOptions.js.map +1 -1
  742. package/driver/oracle/OracleConnectionOptions.js.map +1 -1
  743. package/driver/oracle/OracleDriver.js +3 -3
  744. package/driver/oracle/OracleDriver.js.map +1 -1
  745. package/driver/oracle/OracleQueryRunner.js +6 -8
  746. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  747. package/driver/postgres/PostgresConnectionCredentialsOptions.js.map +1 -1
  748. package/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  749. package/driver/postgres/PostgresDriver.d.ts +2 -1
  750. package/driver/postgres/PostgresDriver.js +12 -15
  751. package/driver/postgres/PostgresDriver.js.map +1 -1
  752. package/driver/postgres/PostgresQueryRunner.d.ts +1 -1
  753. package/driver/postgres/PostgresQueryRunner.js +14 -16
  754. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  755. package/driver/react-native/ReactNativeConnectionOptions.js.map +1 -1
  756. package/driver/react-native/ReactNativeDriver.js +1 -1
  757. package/driver/react-native/ReactNativeDriver.js.map +1 -1
  758. package/driver/react-native/ReactNativeQueryRunner.js +1 -1
  759. package/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  760. package/driver/sap/SapConnectionCredentialsOptions.js.map +1 -1
  761. package/driver/sap/SapConnectionOptions.js.map +1 -1
  762. package/driver/sap/SapDriver.d.ts +6 -1
  763. package/driver/sap/SapDriver.js +27 -23
  764. package/driver/sap/SapDriver.js.map +1 -1
  765. package/driver/sap/SapQueryRunner.d.ts +7 -0
  766. package/driver/sap/SapQueryRunner.js +18 -11
  767. package/driver/sap/SapQueryRunner.js.map +1 -1
  768. package/driver/spanner/SpannerConnectionCredentialsOptions.js.map +1 -1
  769. package/driver/spanner/SpannerConnectionOptions.js.map +1 -1
  770. package/driver/spanner/SpannerDriver.js +3 -3
  771. package/driver/spanner/SpannerDriver.js.map +1 -1
  772. package/driver/spanner/SpannerQueryRunner.js +7 -7
  773. package/driver/spanner/SpannerQueryRunner.js.map +1 -1
  774. package/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
  775. package/driver/sqlite/SqliteDriver.js.map +1 -1
  776. package/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  777. package/driver/sqlite-abstract/AbstractSqliteDriver.js +1 -1
  778. package/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  779. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +13 -16
  780. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  781. package/driver/sqljs/SqljsConnectionOptions.js.map +1 -1
  782. package/driver/sqljs/SqljsDriver.js +1 -1
  783. package/driver/sqljs/SqljsDriver.js.map +1 -1
  784. package/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  785. package/driver/sqlserver/MssqlParameter.js.map +1 -1
  786. package/driver/sqlserver/SqlServerConnectionCredentialsOptions.js.map +1 -1
  787. package/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
  788. package/driver/sqlserver/SqlServerDriver.js +3 -3
  789. package/driver/sqlserver/SqlServerDriver.js.map +1 -1
  790. package/driver/sqlserver/SqlServerQueryRunner.js +35 -36
  791. package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  792. package/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js.map +1 -1
  793. package/driver/sqlserver/authentication/AzureActiveDirectoryDefaultAuthentication.js.map +1 -1
  794. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js.map +1 -1
  795. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js.map +1 -1
  796. package/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js.map +1 -1
  797. package/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js.map +1 -1
  798. package/driver/sqlserver/authentication/DefaultAuthentication.js.map +1 -1
  799. package/driver/sqlserver/authentication/NtlmAuthentication.js.map +1 -1
  800. package/driver/types/ColumnTypes.d.ts +1 -1
  801. package/driver/types/ColumnTypes.js.map +1 -1
  802. package/driver/types/CteCapabilities.js.map +1 -1
  803. package/driver/types/DataTypeDefaults.js.map +1 -1
  804. package/driver/types/DatabaseType.js.map +1 -1
  805. package/driver/types/GeoJsonTypes.js.map +1 -1
  806. package/driver/types/IsolationLevel.js.map +1 -1
  807. package/driver/types/MappedColumnTypes.js.map +1 -1
  808. package/driver/types/MetadataTableType.js.map +1 -1
  809. package/driver/types/ReplicationMode.js.map +1 -1
  810. package/driver/types/UpsertType.js.map +1 -1
  811. package/entity-manager/EntityManager.js.map +1 -1
  812. package/entity-manager/EntityManagerFactory.js.map +1 -1
  813. package/entity-manager/MongoEntityManager.js +1 -1
  814. package/entity-manager/MongoEntityManager.js.map +1 -1
  815. package/entity-manager/SqljsEntityManager.js.map +1 -1
  816. package/entity-schema/EntitySchema.js.map +1 -1
  817. package/entity-schema/EntitySchemaCheckOptions.js.map +1 -1
  818. package/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
  819. package/entity-schema/EntitySchemaEmbeddedColumnOptions.js.map +1 -1
  820. package/entity-schema/EntitySchemaEmbeddedError.js.map +1 -1
  821. package/entity-schema/EntitySchemaExclusionOptions.js.map +1 -1
  822. package/entity-schema/EntitySchemaIndexOptions.js.map +1 -1
  823. package/entity-schema/EntitySchemaInheritanceOptions.js.map +1 -1
  824. package/entity-schema/EntitySchemaOptions.js.map +1 -1
  825. package/entity-schema/EntitySchemaRelationIdOptions.js.map +1 -1
  826. package/entity-schema/EntitySchemaRelationOptions.js.map +1 -1
  827. package/entity-schema/EntitySchemaTransformer.js.map +1 -1
  828. package/entity-schema/EntitySchemaUniqueOptions.js.map +1 -1
  829. package/error/AlreadyHasActiveConnectionError.js.map +1 -1
  830. package/error/CannotAttachTreeChildrenEntityError.js.map +1 -1
  831. package/error/CannotConnectAlreadyConnectedError.js.map +1 -1
  832. package/error/CannotCreateEntityIdMapError.js.map +1 -1
  833. package/error/CannotDetermineEntityError.js.map +1 -1
  834. package/error/CannotExecuteNotConnectedError.js.map +1 -1
  835. package/error/CannotGetEntityManagerNotConnectedError.js.map +1 -1
  836. package/error/CannotReflectMethodParameterTypeError.js.map +1 -1
  837. package/error/CircularRelationsError.js.map +1 -1
  838. package/error/ColumnTypeUndefinedError.js.map +1 -1
  839. package/error/ConnectionIsNotSetError.js.map +1 -1
  840. package/error/ConnectionNotFoundError.js.map +1 -1
  841. package/error/CustomRepositoryCannotInheritRepositoryError.js.map +1 -1
  842. package/error/CustomRepositoryDoesNotHaveEntityError.js.map +1 -1
  843. package/error/CustomRepositoryNotFoundError.js.map +1 -1
  844. package/error/DataTypeNotSupportedError.js.map +1 -1
  845. package/error/DriverOptionNotSetError.js.map +1 -1
  846. package/error/DriverPackageNotInstalledError.js.map +1 -1
  847. package/error/EntityMetadataNotFoundError.js.map +1 -1
  848. package/error/EntityNotFoundError.js.map +1 -1
  849. package/error/EntityPropertyNotFoundError.js.map +1 -1
  850. package/error/FindRelationsNotFoundError.js.map +1 -1
  851. package/error/ForbiddenTransactionModeOverrideError.js.map +1 -1
  852. package/error/InitializedRelationError.js.map +1 -1
  853. package/error/InsertValuesMissingError.js.map +1 -1
  854. package/error/LimitOnUpdateNotSupportedError.js.map +1 -1
  855. package/error/LockNotSupportedOnGivenDriverError.js.map +1 -1
  856. package/error/MetadataAlreadyExistsError.js.map +1 -1
  857. package/error/MetadataWithSuchNameAlreadyExistsError.js.map +1 -1
  858. package/error/MissingDeleteDateColumnError.js.map +1 -1
  859. package/error/MissingDriverError.js.map +1 -1
  860. package/error/MissingJoinColumnError.js.map +1 -1
  861. package/error/MissingJoinTableError.js.map +1 -1
  862. package/error/MissingPrimaryColumnError.js.map +1 -1
  863. package/error/MustBeEntityError.js.map +1 -1
  864. package/error/NamingStrategyNotFoundError.js.map +1 -1
  865. package/error/NestedSetMultipleRootError.js.map +1 -1
  866. package/error/NoConnectionForRepositoryError.js.map +1 -1
  867. package/error/NoConnectionOptionError.js.map +1 -1
  868. package/error/NoNeedToReleaseEntityManagerError.js.map +1 -1
  869. package/error/NoVersionOrUpdateDateColumnError.js.map +1 -1
  870. package/error/OffsetWithoutLimitNotSupportedError.js.map +1 -1
  871. package/error/OptimisticLockCanNotBeUsedError.js.map +1 -1
  872. package/error/OptimisticLockVersionMismatchError.js.map +1 -1
  873. package/error/PersistedEntityNotFoundError.js.map +1 -1
  874. package/error/PessimisticLockTransactionRequiredError.js.map +1 -1
  875. package/error/PrimaryColumnCannotBeNullableError.js.map +1 -1
  876. package/error/QueryFailedError.js.map +1 -1
  877. package/error/QueryRunnerAlreadyReleasedError.js.map +1 -1
  878. package/error/QueryRunnerProviderAlreadyReleasedError.js.map +1 -1
  879. package/error/RepositoryNotTreeError.js.map +1 -1
  880. package/error/ReturningStatementNotSupportedError.js.map +1 -1
  881. package/error/SubjectRemovedAndUpdatedError.js.map +1 -1
  882. package/error/SubjectWithoutIdentifierError.js.map +1 -1
  883. package/error/TransactionAlreadyStartedError.js.map +1 -1
  884. package/error/TransactionNotStartedError.js.map +1 -1
  885. package/error/TreeRepositoryNotSupportedError.js.map +1 -1
  886. package/error/TypeORMError.js.map +1 -1
  887. package/error/UpdateValuesMissingError.js.map +1 -1
  888. package/error/UsingJoinColumnIsNotAllowedError.js.map +1 -1
  889. package/error/UsingJoinColumnOnlyOnOneSideAllowedError.js.map +1 -1
  890. package/error/UsingJoinTableIsNotAllowedError.js.map +1 -1
  891. package/error/UsingJoinTableOnlyOnOneSideAllowedError.js.map +1 -1
  892. package/error/index.js.map +1 -1
  893. package/find-options/EqualOperator.js.map +1 -1
  894. package/find-options/FindManyOptions.js.map +1 -1
  895. package/find-options/FindOneOptions.js.map +1 -1
  896. package/find-options/FindOperator.js.map +1 -1
  897. package/find-options/FindOperatorType.js.map +1 -1
  898. package/find-options/FindOptionsOrder.js.map +1 -1
  899. package/find-options/FindOptionsRelations.js.map +1 -1
  900. package/find-options/FindOptionsSelect.d.ts +1 -1
  901. package/find-options/FindOptionsSelect.js.map +1 -1
  902. package/find-options/FindOptionsUtils.js +1 -1
  903. package/find-options/FindOptionsUtils.js.map +1 -1
  904. package/find-options/FindOptionsWhere.js.map +1 -1
  905. package/find-options/FindTreeOptions.js.map +1 -1
  906. package/find-options/JoinOptions.js.map +1 -1
  907. package/find-options/OrderByCondition.js.map +1 -1
  908. package/find-options/mongodb/MongoFindManyOptions.js.map +1 -1
  909. package/find-options/mongodb/MongoFindOneOptions.js.map +1 -1
  910. package/find-options/operator/And.js.map +1 -1
  911. package/find-options/operator/Any.js.map +1 -1
  912. package/find-options/operator/ArrayContainedBy.js.map +1 -1
  913. package/find-options/operator/ArrayContains.js.map +1 -1
  914. package/find-options/operator/ArrayOverlap.js.map +1 -1
  915. package/find-options/operator/Between.js.map +1 -1
  916. package/find-options/operator/Equal.js.map +1 -1
  917. package/find-options/operator/ILike.js.map +1 -1
  918. package/find-options/operator/In.js.map +1 -1
  919. package/find-options/operator/IsNull.js.map +1 -1
  920. package/find-options/operator/JsonContains.js.map +1 -1
  921. package/find-options/operator/LessThan.js.map +1 -1
  922. package/find-options/operator/LessThanOrEqual.js.map +1 -1
  923. package/find-options/operator/Like.js.map +1 -1
  924. package/find-options/operator/MoreThan.js.map +1 -1
  925. package/find-options/operator/MoreThanOrEqual.js.map +1 -1
  926. package/find-options/operator/Not.js.map +1 -1
  927. package/find-options/operator/Or.js.map +1 -1
  928. package/find-options/operator/Raw.js.map +1 -1
  929. package/globals.js.map +1 -1
  930. package/index.d.ts +1 -0
  931. package/index.js +1 -0
  932. package/index.js.map +1 -1
  933. package/logger/AbstractLogger.js.map +1 -1
  934. package/logger/AdvancedConsoleLogger.js +1 -1
  935. package/logger/AdvancedConsoleLogger.js.map +1 -1
  936. package/logger/DebugLogger.js +1 -1
  937. package/logger/DebugLogger.js.map +1 -1
  938. package/logger/FileLogger.js +1 -1
  939. package/logger/FileLogger.js.map +1 -1
  940. package/logger/Logger.js.map +1 -1
  941. package/logger/LoggerFactory.js.map +1 -1
  942. package/logger/LoggerOptions.js.map +1 -1
  943. package/logger/SimpleConsoleLogger.js +1 -1
  944. package/logger/SimpleConsoleLogger.js.map +1 -1
  945. package/metadata/CheckMetadata.js.map +1 -1
  946. package/metadata/ColumnMetadata.js +1 -1
  947. package/metadata/ColumnMetadata.js.map +1 -1
  948. package/metadata/EmbeddedMetadata.js +1 -1
  949. package/metadata/EmbeddedMetadata.js.map +1 -1
  950. package/metadata/EntityListenerMetadata.js.map +1 -1
  951. package/metadata/EntityMetadata.js.map +1 -1
  952. package/metadata/ExclusionMetadata.js.map +1 -1
  953. package/metadata/ForeignKeyMetadata.js.map +1 -1
  954. package/metadata/IndexMetadata.js.map +1 -1
  955. package/metadata/RelationCountMetadata.js.map +1 -1
  956. package/metadata/RelationIdMetadata.js.map +1 -1
  957. package/metadata/RelationMetadata.js.map +1 -1
  958. package/metadata/UniqueMetadata.js.map +1 -1
  959. package/metadata/types/ClosureTreeOptions.js.map +1 -1
  960. package/metadata/types/DeferrableType.js.map +1 -1
  961. package/metadata/types/EventListenerTypes.js.map +1 -1
  962. package/metadata/types/OnDeleteType.js.map +1 -1
  963. package/metadata/types/OnUpdateType.js.map +1 -1
  964. package/metadata/types/PropertyTypeInFunction.js.map +1 -1
  965. package/metadata/types/RelationTypeInFunction.js.map +1 -1
  966. package/metadata/types/RelationTypes.js.map +1 -1
  967. package/metadata/types/TableTypes.js.map +1 -1
  968. package/metadata/types/TreeTypes.js.map +1 -1
  969. package/metadata-args/CheckMetadataArgs.js.map +1 -1
  970. package/metadata-args/ColumnMetadataArgs.js.map +1 -1
  971. package/metadata-args/DiscriminatorValueMetadataArgs.js.map +1 -1
  972. package/metadata-args/EmbeddedMetadataArgs.js.map +1 -1
  973. package/metadata-args/EntityListenerMetadataArgs.js.map +1 -1
  974. package/metadata-args/EntityRepositoryMetadataArgs.js.map +1 -1
  975. package/metadata-args/EntitySubscriberMetadataArgs.js.map +1 -1
  976. package/metadata-args/ExclusionMetadataArgs.js.map +1 -1
  977. package/metadata-args/GeneratedMetadataArgs.js.map +1 -1
  978. package/metadata-args/IndexMetadataArgs.js.map +1 -1
  979. package/metadata-args/InheritanceMetadataArgs.js.map +1 -1
  980. package/metadata-args/JoinColumnMetadataArgs.js.map +1 -1
  981. package/metadata-args/JoinTableMetadataArgs.js.map +1 -1
  982. package/metadata-args/MetadataArgsStorage.js.map +1 -1
  983. package/metadata-args/NamingStrategyMetadataArgs.js.map +1 -1
  984. package/metadata-args/RelationCountMetadataArgs.js.map +1 -1
  985. package/metadata-args/RelationIdMetadataArgs.js.map +1 -1
  986. package/metadata-args/RelationMetadataArgs.js.map +1 -1
  987. package/metadata-args/TableMetadataArgs.js.map +1 -1
  988. package/metadata-args/TransactionEntityMetadataArgs.js.map +1 -1
  989. package/metadata-args/TransactionRepositoryMetadataArgs.js.map +1 -1
  990. package/metadata-args/TreeMetadataArgs.js.map +1 -1
  991. package/metadata-args/UniqueMetadataArgs.js.map +1 -1
  992. package/metadata-args/types/ColumnMode.js.map +1 -1
  993. package/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -1
  994. package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  995. package/metadata-builder/EntityMetadataValidator.js.map +1 -1
  996. package/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  997. package/metadata-builder/MetadataUtils.js.map +1 -1
  998. package/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
  999. package/migration/Migration.js.map +1 -1
  1000. package/migration/MigrationExecutor.js +2 -2
  1001. package/migration/MigrationExecutor.js.map +1 -1
  1002. package/migration/MigrationInterface.js.map +1 -1
  1003. package/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  1004. package/naming-strategy/LegacyOracleNamingStrategy.js.map +1 -1
  1005. package/naming-strategy/NamingStrategyInterface.js.map +1 -1
  1006. package/package.json +1 -260
  1007. package/persistence/EntityPersistExecutor.js +2 -2
  1008. package/persistence/EntityPersistExecutor.js.map +1 -1
  1009. package/persistence/Subject.js.map +1 -1
  1010. package/persistence/SubjectChangeMap.js.map +1 -1
  1011. package/persistence/SubjectChangedColumnsComputer.js.map +1 -1
  1012. package/persistence/SubjectDatabaseEntityLoader.js +1 -1
  1013. package/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  1014. package/persistence/SubjectExecutor.js +1 -1
  1015. package/persistence/SubjectExecutor.js.map +1 -1
  1016. package/persistence/SubjectTopologicalSorter.js +5 -5
  1017. package/persistence/SubjectTopologicalSorter.js.map +1 -1
  1018. package/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
  1019. package/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
  1020. package/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
  1021. package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js +1 -1
  1022. package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -1
  1023. package/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
  1024. package/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
  1025. package/persistence/tree/NestedSetSubjectExecutor.js +2 -2
  1026. package/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
  1027. package/platform/PlatformTools.js.map +1 -1
  1028. package/query-builder/Alias.js.map +1 -1
  1029. package/query-builder/Brackets.js.map +1 -1
  1030. package/query-builder/DeleteQueryBuilder.js.map +1 -1
  1031. package/query-builder/InsertOrUpdateOptions.js.map +1 -1
  1032. package/query-builder/InsertQueryBuilder.js.map +1 -1
  1033. package/query-builder/JoinAttribute.js +2 -2
  1034. package/query-builder/JoinAttribute.js.map +1 -1
  1035. package/query-builder/JoinOptions.js.map +1 -1
  1036. package/query-builder/NotBrackets.js.map +1 -1
  1037. package/query-builder/QueryBuilder.js +2 -2
  1038. package/query-builder/QueryBuilder.js.map +1 -1
  1039. package/query-builder/QueryBuilderCte.js.map +1 -1
  1040. package/query-builder/QueryBuilderUtils.js.map +1 -1
  1041. package/query-builder/QueryExpressionMap.js.map +1 -1
  1042. package/query-builder/QueryPartialEntity.js.map +1 -1
  1043. package/query-builder/RelationIdLoader.js +5 -4
  1044. package/query-builder/RelationIdLoader.js.map +1 -1
  1045. package/query-builder/RelationLoader.js.map +1 -1
  1046. package/query-builder/RelationQueryBuilder.js.map +1 -1
  1047. package/query-builder/RelationRemover.js.map +1 -1
  1048. package/query-builder/RelationUpdater.js.map +1 -1
  1049. package/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
  1050. package/query-builder/SelectQuery.js.map +1 -1
  1051. package/query-builder/SelectQueryBuilder.js +27 -14
  1052. package/query-builder/SelectQueryBuilder.js.map +1 -1
  1053. package/query-builder/SelectQueryBuilderOption.js.map +1 -1
  1054. package/query-builder/SoftDeleteQueryBuilder.js +1 -1
  1055. package/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  1056. package/query-builder/UpdateQueryBuilder.js +3 -3
  1057. package/query-builder/UpdateQueryBuilder.js.map +1 -1
  1058. package/query-builder/WhereClause.js.map +1 -1
  1059. package/query-builder/WhereExpressionBuilder.js.map +1 -1
  1060. package/query-builder/index.js.map +1 -1
  1061. package/query-builder/relation-count/RelationCountAttribute.js.map +1 -1
  1062. package/query-builder/relation-count/RelationCountLoadResult.js.map +1 -1
  1063. package/query-builder/relation-count/RelationCountLoader.js.map +1 -1
  1064. package/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js.map +1 -1
  1065. package/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
  1066. package/query-builder/relation-id/RelationIdLoadResult.js.map +1 -1
  1067. package/query-builder/relation-id/RelationIdLoader.js.map +1 -1
  1068. package/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js.map +1 -1
  1069. package/query-builder/result/DeleteResult.js.map +1 -1
  1070. package/query-builder/result/InsertResult.js.map +1 -1
  1071. package/query-builder/result/UpdateResult.js.map +1 -1
  1072. package/query-builder/transformer/DocumentToEntityTransformer.js.map +1 -1
  1073. package/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
  1074. package/query-builder/transformer/PlainObjectToNewEntityTransformer.js.map +1 -1
  1075. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js +2 -2
  1076. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  1077. package/query-runner/BaseQueryRunner.js.map +1 -1
  1078. package/query-runner/QueryLock.js.map +1 -1
  1079. package/query-runner/QueryResult.js.map +1 -1
  1080. package/query-runner/QueryRunner.js.map +1 -1
  1081. package/repository/AbstractRepository.js.map +1 -1
  1082. package/repository/BaseEntity.js.map +1 -1
  1083. package/repository/EntityId.js.map +1 -1
  1084. package/repository/FindTreesOptions.js.map +1 -1
  1085. package/repository/MongoRepository.js.map +1 -1
  1086. package/repository/RemoveOptions.js.map +1 -1
  1087. package/repository/Repository.js.map +1 -1
  1088. package/repository/SaveOptions.js.map +1 -1
  1089. package/repository/TreeRepository.js.map +1 -1
  1090. package/repository/UpsertOptions.js.map +1 -1
  1091. package/schema-builder/MongoSchemaBuilder.js.map +1 -1
  1092. package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  1093. package/schema-builder/SchemaBuilder.js.map +1 -1
  1094. package/schema-builder/options/TableCheckOptions.js.map +1 -1
  1095. package/schema-builder/options/TableColumnOptions.js.map +1 -1
  1096. package/schema-builder/options/TableExclusionOptions.js.map +1 -1
  1097. package/schema-builder/options/TableForeignKeyOptions.js.map +1 -1
  1098. package/schema-builder/options/TableIndexOptions.js.map +1 -1
  1099. package/schema-builder/options/TableOptions.js.map +1 -1
  1100. package/schema-builder/options/TableUniqueOptions.js.map +1 -1
  1101. package/schema-builder/options/ViewOptions.js.map +1 -1
  1102. package/schema-builder/table/Table.js.map +1 -1
  1103. package/schema-builder/table/TableCheck.js.map +1 -1
  1104. package/schema-builder/table/TableColumn.js.map +1 -1
  1105. package/schema-builder/table/TableExclusion.js.map +1 -1
  1106. package/schema-builder/table/TableForeignKey.js.map +1 -1
  1107. package/schema-builder/table/TableIndex.js.map +1 -1
  1108. package/schema-builder/table/TableUnique.js.map +1 -1
  1109. package/schema-builder/util/TableUtils.js.map +1 -1
  1110. package/schema-builder/util/ViewUtils.js.map +1 -1
  1111. package/schema-builder/view/View.js.map +1 -1
  1112. package/subscriber/Broadcaster.js.map +1 -1
  1113. package/subscriber/BroadcasterResult.js.map +1 -1
  1114. package/subscriber/EntitySubscriberInterface.js.map +1 -1
  1115. package/subscriber/event/InsertEvent.js.map +1 -1
  1116. package/subscriber/event/LoadEvent.js.map +1 -1
  1117. package/subscriber/event/QueryEvent.d.ts +1 -1
  1118. package/subscriber/event/QueryEvent.js.map +1 -1
  1119. package/subscriber/event/RecoverEvent.js.map +1 -1
  1120. package/subscriber/event/RemoveEvent.js.map +1 -1
  1121. package/subscriber/event/SoftRemoveEvent.js.map +1 -1
  1122. package/subscriber/event/TransactionCommitEvent.js.map +1 -1
  1123. package/subscriber/event/TransactionRollbackEvent.js.map +1 -1
  1124. package/subscriber/event/TransactionStartEvent.js.map +1 -1
  1125. package/subscriber/event/UpdateEvent.js.map +1 -1
  1126. package/typeorm-class-transformer-shim.js +271 -271
  1127. package/typeorm-model-shim.js +298 -295
  1128. package/util/ApplyValueTransformers.js.map +1 -1
  1129. package/util/DateUtils.js.map +1 -1
  1130. package/util/DepGraph.js +13 -13
  1131. package/util/DepGraph.js.map +1 -1
  1132. package/util/DirectoryExportedClassesLoader.js +2 -2
  1133. package/util/DirectoryExportedClassesLoader.js.map +1 -1
  1134. package/util/ImportUtils.js.map +1 -1
  1135. package/util/InstanceChecker.js.map +1 -1
  1136. package/util/ObjectUtils.d.ts +2 -2
  1137. package/util/ObjectUtils.js.map +1 -1
  1138. package/util/OrmUtils.js +4 -4
  1139. package/util/OrmUtils.js.map +1 -1
  1140. package/util/PathUtils.js.map +1 -1
  1141. package/util/RandomGenerator.js +6 -6
  1142. package/util/RandomGenerator.js.map +1 -1
  1143. package/util/StringUtils.js.map +1 -1
  1144. package/util/TreeRepositoryUtils.js.map +1 -1
  1145. package/util/VersionUtils.d.ts +1 -2
  1146. package/util/VersionUtils.js +14 -7
  1147. package/util/VersionUtils.js.map +1 -1
  1148. package/util/escapeRegExp.d.ts +1 -1
  1149. package/util/escapeRegExp.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/query-builder/transformer/RawSqlResultsToEntityTransformer.ts"],"names":[],"mappings":"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","file":"RawSqlResultsToEntityTransformer.js","sourcesContent":["import { Driver } from \"../../driver/Driver\"\r\nimport { RelationIdLoadResult } from \"../relation-id/RelationIdLoadResult\"\r\nimport { ObjectLiteral } from \"../../common/ObjectLiteral\"\r\nimport { ColumnMetadata } from \"../../metadata/ColumnMetadata\"\r\nimport { Alias } from \"../Alias\"\r\nimport { RelationCountLoadResult } from \"../relation-count/RelationCountLoadResult\"\r\nimport { RelationMetadata } from \"../../metadata/RelationMetadata\"\r\nimport { OrmUtils } from \"../../util/OrmUtils\"\r\nimport { QueryExpressionMap } from \"../QueryExpressionMap\"\r\nimport { EntityMetadata } from \"../../metadata/EntityMetadata\"\r\nimport { QueryRunner } from \"../..\"\r\nimport { DriverUtils } from \"../../driver/DriverUtils\"\r\nimport { ObjectUtils } from \"../../util/ObjectUtils\"\r\n\r\n/**\r\n * Transforms raw sql results returned from the database into entity object.\r\n * Entity is constructed based on its entity metadata.\r\n */\r\nexport class RawSqlResultsToEntityTransformer {\r\n /**\r\n * Contains a hashmap for every rawRelationIdResults given.\r\n * In the hashmap you will find the idMaps of a result under the hash of this.hashEntityIds for the result.\r\n */\r\n private relationIdMaps: Array<{ [idHash: string]: any[] }>\r\n\r\n private pojo: boolean\r\n private selections: Set<string>\r\n private aliasCache: Map<string, Map<string, string>>\r\n private columnsCache: Map<\r\n string,\r\n Map<EntityMetadata, [string, ColumnMetadata][]>\r\n >\r\n\r\n // -------------------------------------------------------------------------\r\n // Constructor\r\n // -------------------------------------------------------------------------\r\n\r\n constructor(\r\n protected expressionMap: QueryExpressionMap,\r\n protected driver: Driver,\r\n protected rawRelationIdResults: RelationIdLoadResult[],\r\n protected rawRelationCountResults: RelationCountLoadResult[],\r\n protected queryRunner?: QueryRunner,\r\n ) {\r\n this.pojo = this.expressionMap.options.includes(\"create-pojo\")\r\n this.selections = new Set(\r\n this.expressionMap.selects.map((s) => s.selection),\r\n )\r\n this.aliasCache = new Map()\r\n this.columnsCache = new Map()\r\n }\r\n\r\n // -------------------------------------------------------------------------\r\n // Public Methods\r\n // -------------------------------------------------------------------------\r\n\r\n /**\r\n * Since db returns a duplicated rows of the data where accuracies of the same object can be duplicated\r\n * we need to group our result and we must have some unique id (primary key in our case)\r\n */\r\n transform(rawResults: any[], alias: Alias): any[] {\r\n const group = this.group(rawResults, alias)\r\n const entities: any[] = []\r\n for (const results of group.values()) {\r\n const entity = this.transformRawResultsGroup(results, alias)\r\n if (entity !== undefined) entities.push(entity)\r\n }\r\n return entities\r\n }\r\n\r\n // -------------------------------------------------------------------------\r\n // Protected Methods\r\n // -------------------------------------------------------------------------\r\n\r\n /**\r\n * Build an alias from a name and column name.\r\n */\r\n protected buildAlias(aliasName: string, columnName: string) {\r\n let aliases = this.aliasCache.get(aliasName)\r\n if (!aliases) {\r\n aliases = new Map()\r\n this.aliasCache.set(aliasName, aliases)\r\n }\r\n let columnAlias = aliases.get(columnName)\r\n if (!columnAlias) {\r\n columnAlias = DriverUtils.buildAlias(\r\n this.driver,\r\n undefined,\r\n aliasName,\r\n columnName,\r\n )\r\n aliases.set(columnName, columnAlias)\r\n }\r\n return columnAlias\r\n }\r\n\r\n /**\r\n * Groups given raw results by ids of given alias.\r\n */\r\n protected group(rawResults: any[], alias: Alias): Map<string, any[]> {\r\n const map = new Map()\r\n const keys: string[] = []\r\n if (alias.metadata.tableType === \"view\") {\r\n keys.push(\r\n ...alias.metadata.columns.map((column) =>\r\n this.buildAlias(alias.name, column.databaseName),\r\n ),\r\n )\r\n } else {\r\n keys.push(\r\n ...alias.metadata.primaryColumns.map((column) =>\r\n this.buildAlias(alias.name, column.databaseName),\r\n ),\r\n )\r\n }\r\n for (const rawResult of rawResults) {\r\n const id = keys\r\n .map((key) => {\r\n const keyValue = rawResult[key]\r\n\r\n if (Buffer.isBuffer(keyValue)) {\r\n return keyValue.toString(\"hex\")\r\n }\r\n\r\n if (ObjectUtils.isObject(keyValue)) {\r\n return JSON.stringify(keyValue)\r\n }\r\n\r\n return keyValue\r\n })\r\n .join(\"_\") // todo: check partial\r\n\r\n const items = map.get(id)\r\n if (!items) {\r\n map.set(id, [rawResult])\r\n } else {\r\n items.push(rawResult)\r\n }\r\n }\r\n return map\r\n }\r\n\r\n /**\r\n * Transforms set of data results into single entity.\r\n */\r\n protected transformRawResultsGroup(\r\n rawResults: any[],\r\n alias: Alias,\r\n ): ObjectLiteral | undefined {\r\n // let hasColumns = false; // , hasEmbeddedColumns = false, hasParentColumns = false, hasParentEmbeddedColumns = false;\r\n let metadata = alias.metadata\r\n\r\n if (metadata.discriminatorColumn) {\r\n const discriminatorValues = rawResults.map(\r\n (result) =>\r\n result[\r\n this.buildAlias(\r\n alias.name,\r\n alias.metadata.discriminatorColumn!.databaseName,\r\n )\r\n ],\r\n )\r\n const discriminatorMetadata = metadata.childEntityMetadatas.find(\r\n (childEntityMetadata) => {\r\n return (\r\n typeof discriminatorValues.find(\r\n (value) =>\r\n value ===\r\n childEntityMetadata.discriminatorValue,\r\n ) !== \"undefined\"\r\n )\r\n },\r\n )\r\n if (discriminatorMetadata) metadata = discriminatorMetadata\r\n }\r\n let entity: any = metadata.create(this.queryRunner, {\r\n fromDeserializer: true,\r\n pojo: this.pojo,\r\n })\r\n\r\n // get value from columns selections and put them into newly created entity\r\n const hasColumns = this.transformColumns(\r\n rawResults,\r\n alias,\r\n entity,\r\n metadata,\r\n )\r\n const hasRelations = this.transformJoins(\r\n rawResults,\r\n entity,\r\n alias,\r\n metadata,\r\n )\r\n const hasRelationIds = this.transformRelationIds(\r\n rawResults,\r\n alias,\r\n entity,\r\n metadata,\r\n )\r\n const hasRelationCounts = this.transformRelationCounts(\r\n rawResults,\r\n alias,\r\n entity,\r\n )\r\n\r\n // if we have at least one selected column then return this entity\r\n // since entity must have at least primary columns to be really selected and transformed into entity\r\n if (hasColumns) return entity\r\n\r\n // if we don't have any selected column we should not return entity,\r\n // except for the case when entity only contain a primary column as a relation to another entity\r\n // in this case its absolutely possible our entity to not have any columns except a single relation\r\n const hasOnlyVirtualPrimaryColumns = metadata.primaryColumns.every(\r\n (column) => column.isVirtual === true,\r\n ) // todo: create metadata.hasOnlyVirtualPrimaryColumns\r\n if (\r\n hasOnlyVirtualPrimaryColumns &&\r\n (hasRelations || hasRelationIds || hasRelationCounts)\r\n )\r\n return entity\r\n\r\n return undefined\r\n }\r\n\r\n // get value from columns selections and put them into object\r\n protected transformColumns(\r\n rawResults: any[],\r\n alias: Alias,\r\n entity: ObjectLiteral,\r\n metadata: EntityMetadata,\r\n ): boolean {\r\n let hasData = false\r\n const result = rawResults[0]\r\n for (const [key, column] of this.getColumnsToProcess(\r\n alias.name,\r\n metadata,\r\n )) {\r\n const value = result[key]\r\n\r\n if (value === undefined) continue\r\n // we don't mark it as has data because if we will have all nulls in our object - we don't need such object\r\n else if (value !== null) hasData = true\r\n\r\n column.setEntityValue(\r\n entity,\r\n this.driver.prepareHydratedValue(value, column),\r\n )\r\n }\r\n return hasData\r\n }\r\n\r\n /**\r\n * Transforms joined entities in the given raw results by a given alias and stores to the given (parent) entity\r\n */\r\n protected transformJoins(\r\n rawResults: any[],\r\n entity: ObjectLiteral,\r\n alias: Alias,\r\n metadata: EntityMetadata,\r\n ) {\r\n let hasData = false\r\n\r\n // let discriminatorValue: string = \"\";\r\n // if (metadata.discriminatorColumn)\r\n // discriminatorValue = rawResults[0][this.buildAlias(alias.name, alias.metadata.discriminatorColumn!.databaseName)];\r\n\r\n for (const join of this.expressionMap.joinAttributes) {\r\n // todo: we have problem here - when inner joins are used without selects it still create empty array\r\n\r\n // skip joins without metadata\r\n if (!join.metadata) continue\r\n\r\n // if simple left or inner join was performed without selection then we don't need to do anything\r\n if (!join.isSelected) continue\r\n\r\n // this check need to avoid setting properties than not belong to entity when single table inheritance used. (todo: check if we still need it)\r\n // const metadata = metadata.childEntityMetadatas.find(childEntityMetadata => discriminatorValue === childEntityMetadata.discriminatorValue);\r\n if (\r\n join.relation &&\r\n !metadata.relations.find(\r\n (relation) => relation === join.relation,\r\n )\r\n )\r\n continue\r\n\r\n // some checks to make sure this join is for current alias\r\n if (join.mapToProperty) {\r\n if (join.mapToPropertyParentAlias !== alias.name) continue\r\n } else {\r\n if (\r\n !join.relation ||\r\n join.parentAlias !== alias.name ||\r\n join.relationPropertyPath !== join.relation!.propertyPath\r\n )\r\n continue\r\n }\r\n\r\n // transform joined data into entities\r\n let result: any = this.transform(rawResults, join.alias)\r\n result = !join.isMany ? result[0] : result\r\n result = !join.isMany && result === undefined ? null : result // this is needed to make relations to return null when its joined but nothing was found in the database\r\n // if nothing was joined then simply continue\r\n if (result === undefined) continue\r\n\r\n // if join was mapped to some property then save result to that property\r\n if (join.mapToPropertyPropertyName) {\r\n entity[join.mapToPropertyPropertyName] = result // todo: fix embeds\r\n } else {\r\n // otherwise set to relation\r\n join.relation!.setEntityValue(entity, result)\r\n }\r\n\r\n hasData = true\r\n }\r\n return hasData\r\n }\r\n\r\n protected transformRelationIds(\r\n rawSqlResults: any[],\r\n alias: Alias,\r\n entity: ObjectLiteral,\r\n metadata: EntityMetadata,\r\n ): boolean {\r\n let hasData = false\r\n for (const [\r\n index,\r\n rawRelationIdResult,\r\n ] of this.rawRelationIdResults.entries()) {\r\n if (\r\n rawRelationIdResult.relationIdAttribute.parentAlias !==\r\n alias.name\r\n )\r\n continue\r\n\r\n const relation = rawRelationIdResult.relationIdAttribute.relation\r\n const valueMap = this.createValueMapFromJoinColumns(\r\n relation,\r\n rawRelationIdResult.relationIdAttribute.parentAlias,\r\n rawSqlResults,\r\n )\r\n if (valueMap === undefined || valueMap === null) {\r\n continue\r\n }\r\n\r\n // prepare common data for this call\r\n this.prepareDataForTransformRelationIds()\r\n\r\n // Extract idMaps from prepared data by hash\r\n const hash = this.hashEntityIds(relation, valueMap)\r\n const idMaps = this.relationIdMaps[index][hash] || []\r\n\r\n // Map data to properties\r\n const properties =\r\n rawRelationIdResult.relationIdAttribute.mapToPropertyPropertyPath.split(\r\n \".\",\r\n )\r\n const mapToProperty = (\r\n properties: string[],\r\n map: ObjectLiteral,\r\n value: any,\r\n ): any => {\r\n const property = properties.shift()\r\n if (property && properties.length === 0) {\r\n map[property] = value\r\n return map\r\n }\r\n if (property && properties.length > 0) {\r\n mapToProperty(properties, map[property], value)\r\n } else {\r\n return map\r\n }\r\n }\r\n if (relation.isOneToOne || relation.isManyToOne) {\r\n if (idMaps[0] !== undefined) {\r\n mapToProperty(properties, entity, idMaps[0])\r\n hasData = true\r\n }\r\n } else {\r\n mapToProperty(properties, entity, idMaps)\r\n hasData = hasData || idMaps.length > 0\r\n }\r\n }\r\n\r\n return hasData\r\n }\r\n\r\n protected transformRelationCounts(\r\n rawSqlResults: any[],\r\n alias: Alias,\r\n entity: ObjectLiteral,\r\n ): boolean {\r\n let hasData = false\r\n for (const rawRelationCountResult of this.rawRelationCountResults) {\r\n if (\r\n rawRelationCountResult.relationCountAttribute.parentAlias !==\r\n alias.name\r\n )\r\n continue\r\n const relation =\r\n rawRelationCountResult.relationCountAttribute.relation\r\n let referenceColumnName: string\r\n\r\n if (relation.isOneToMany) {\r\n referenceColumnName =\r\n relation.inverseRelation!.joinColumns[0].referencedColumn!\r\n .databaseName // todo: fix joinColumns[0]\r\n } else {\r\n referenceColumnName = relation.isOwning\r\n ? relation.joinColumns[0].referencedColumn!.databaseName\r\n : relation.inverseRelation!.joinColumns[0].referencedColumn!\r\n .databaseName\r\n }\r\n\r\n const referenceColumnValue =\r\n rawSqlResults[0][\r\n this.buildAlias(alias.name, referenceColumnName)\r\n ] // we use zero index since its grouped data // todo: selection with alias for entity columns wont work\r\n if (\r\n referenceColumnValue !== undefined &&\r\n referenceColumnValue !== null\r\n ) {\r\n entity[\r\n rawRelationCountResult.relationCountAttribute.mapToPropertyPropertyName\r\n ] = 0\r\n for (const result of rawRelationCountResult.results) {\r\n if (result[\"parentId\"] !== referenceColumnValue) continue\r\n entity[\r\n rawRelationCountResult.relationCountAttribute.mapToPropertyPropertyName\r\n ] = parseInt(result[\"cnt\"])\r\n hasData = true\r\n }\r\n }\r\n }\r\n\r\n return hasData\r\n }\r\n\r\n private getColumnsToProcess(aliasName: string, metadata: EntityMetadata) {\r\n let metadatas = this.columnsCache.get(aliasName)\r\n if (!metadatas) {\r\n metadatas = new Map()\r\n this.columnsCache.set(aliasName, metadatas)\r\n }\r\n let columns = metadatas.get(metadata)\r\n if (!columns) {\r\n columns = metadata.columns\r\n .filter(\r\n (column) =>\r\n !column.isVirtual &&\r\n // if user does not selected the whole entity or he used partial selection and does not select this particular column\r\n // then we don't add this column and its value into the entity\r\n (this.selections.has(aliasName) ||\r\n this.selections.has(\r\n `${aliasName}.${column.propertyPath}`,\r\n )) &&\r\n // if table inheritance is used make sure this column is not child's column\r\n !metadata.childEntityMetadatas.some(\r\n (childMetadata) =>\r\n childMetadata.target === column.target,\r\n ),\r\n )\r\n .map((column) => [\r\n this.buildAlias(aliasName, column.databaseName),\r\n column,\r\n ])\r\n metadatas.set(metadata, columns)\r\n }\r\n return columns\r\n }\r\n\r\n private createValueMapFromJoinColumns(\r\n relation: RelationMetadata,\r\n parentAlias: string,\r\n rawSqlResults: any[],\r\n ): ObjectLiteral {\r\n let columns: ColumnMetadata[]\r\n if (relation.isManyToOne || relation.isOneToOneOwner) {\r\n columns = relation.entityMetadata.primaryColumns.map(\r\n (joinColumn) => joinColumn,\r\n )\r\n } else if (relation.isOneToMany || relation.isOneToOneNotOwner) {\r\n columns = relation.inverseRelation!.joinColumns.map(\r\n (joinColumn) => joinColumn,\r\n )\r\n } else {\r\n if (relation.isOwning) {\r\n columns = relation.joinColumns.map((joinColumn) => joinColumn)\r\n } else {\r\n columns = relation.inverseRelation!.inverseJoinColumns.map(\r\n (joinColumn) => joinColumn,\r\n )\r\n }\r\n }\r\n return columns.reduce((valueMap, column) => {\r\n for (const rawSqlResult of rawSqlResults) {\r\n if (relation.isManyToOne || relation.isOneToOneOwner) {\r\n valueMap[column.databaseName] =\r\n this.driver.prepareHydratedValue(\r\n rawSqlResult[\r\n this.buildAlias(\r\n parentAlias,\r\n column.databaseName,\r\n )\r\n ],\r\n column,\r\n )\r\n } else {\r\n valueMap[column.databaseName] =\r\n this.driver.prepareHydratedValue(\r\n rawSqlResult[\r\n this.buildAlias(\r\n parentAlias,\r\n column.referencedColumn!.databaseName,\r\n )\r\n ],\r\n column.referencedColumn!,\r\n )\r\n }\r\n }\r\n return valueMap\r\n }, {} as ObjectLiteral)\r\n }\r\n\r\n private extractEntityPrimaryIds(\r\n relation: RelationMetadata,\r\n relationIdRawResult: any,\r\n ) {\r\n let columns: ColumnMetadata[]\r\n if (relation.isManyToOne || relation.isOneToOneOwner) {\r\n columns = relation.entityMetadata.primaryColumns.map(\r\n (joinColumn) => joinColumn,\r\n )\r\n } else if (relation.isOneToMany || relation.isOneToOneNotOwner) {\r\n columns = relation.inverseRelation!.joinColumns.map(\r\n (joinColumn) => joinColumn,\r\n )\r\n } else {\r\n if (relation.isOwning) {\r\n columns = relation.joinColumns.map((joinColumn) => joinColumn)\r\n } else {\r\n columns = relation.inverseRelation!.inverseJoinColumns.map(\r\n (joinColumn) => joinColumn,\r\n )\r\n }\r\n }\r\n return columns.reduce((data, column) => {\r\n data[column.databaseName] = relationIdRawResult[column.databaseName]\r\n return data\r\n }, {} as ObjectLiteral)\r\n }\r\n\r\n /*private removeVirtualColumns(entity: ObjectLiteral, alias: Alias) {\r\n const virtualColumns = this.expressionMap.selects\r\n .filter(select => select.virtual)\r\n .map(select => select.selection.replace(alias.name + \".\", \"\"));\r\n\r\n virtualColumns.forEach(virtualColumn => delete entity[virtualColumn]);\r\n }*/\r\n\r\n /** Prepare data to run #transformRelationIds, as a lot of result independent data is needed in every call */\r\n private prepareDataForTransformRelationIds() {\r\n // Return early if the relationIdMaps were already calculated\r\n if (this.relationIdMaps) {\r\n return\r\n }\r\n\r\n // Ensure this prepare function is only called once\r\n this.relationIdMaps = this.rawRelationIdResults.map(\r\n (rawRelationIdResult) => {\r\n const relation =\r\n rawRelationIdResult.relationIdAttribute.relation\r\n\r\n // Calculate column metadata\r\n let columns: ColumnMetadata[]\r\n if (relation.isManyToOne || relation.isOneToOneOwner) {\r\n columns = relation.joinColumns\r\n } else if (\r\n relation.isOneToMany ||\r\n relation.isOneToOneNotOwner\r\n ) {\r\n columns = relation.inverseEntityMetadata.primaryColumns\r\n } else {\r\n // ManyToMany\r\n if (relation.isOwning) {\r\n columns = relation.inverseJoinColumns\r\n } else {\r\n columns = relation.inverseRelation!.joinColumns\r\n }\r\n }\r\n\r\n // Calculate the idMaps for the rawRelationIdResult\r\n return rawRelationIdResult.results.reduce((agg, result) => {\r\n let idMap = columns.reduce((idMap, column) => {\r\n let value = result[column.databaseName]\r\n if (\r\n relation.isOneToMany ||\r\n relation.isOneToOneNotOwner\r\n ) {\r\n if (\r\n column.isVirtual &&\r\n column.referencedColumn &&\r\n column.referencedColumn.propertyName !==\r\n column.propertyName\r\n ) {\r\n // if column is a relation\r\n value =\r\n column.referencedColumn.createValueMap(\r\n value,\r\n )\r\n }\r\n\r\n return OrmUtils.mergeDeep(\r\n idMap,\r\n column.createValueMap(value),\r\n )\r\n }\r\n if (\r\n !column.isPrimary &&\r\n column.referencedColumn!.referencedColumn\r\n ) {\r\n // if column is a relation\r\n value =\r\n column.referencedColumn!.referencedColumn!.createValueMap(\r\n value,\r\n )\r\n }\r\n\r\n return OrmUtils.mergeDeep(\r\n idMap,\r\n column.referencedColumn!.createValueMap(value),\r\n )\r\n }, {} as ObjectLiteral)\r\n\r\n if (\r\n columns.length === 1 &&\r\n !rawRelationIdResult.relationIdAttribute.disableMixedMap\r\n ) {\r\n if (\r\n relation.isOneToMany ||\r\n relation.isOneToOneNotOwner\r\n ) {\r\n idMap = columns[0].getEntityValue(idMap)\r\n } else {\r\n idMap =\r\n columns[0].referencedColumn!.getEntityValue(\r\n idMap,\r\n )\r\n }\r\n }\r\n\r\n // If an idMap is found, set it in the aggregator under the correct hash\r\n if (idMap !== undefined) {\r\n const hash = this.hashEntityIds(relation, result)\r\n\r\n if (agg[hash]) {\r\n agg[hash].push(idMap)\r\n } else {\r\n agg[hash] = [idMap]\r\n }\r\n }\r\n\r\n return agg\r\n }, {})\r\n },\r\n )\r\n }\r\n\r\n /**\r\n * Use a simple JSON.stringify to create a simple hash of the primary ids of an entity.\r\n * As this.extractEntityPrimaryIds always creates the primary id object in the same order, if the same relation is\r\n * given, a simple JSON.stringify should be enough to get a unique hash per entity!\r\n */\r\n private hashEntityIds(relation: RelationMetadata, data: ObjectLiteral) {\r\n const entityPrimaryIds = this.extractEntityPrimaryIds(relation, data)\r\n return JSON.stringify(entityPrimaryIds)\r\n }\r\n}\r\n"],"sourceRoot":"../.."}
1
+ {"version":3,"sources":["../../src/query-builder/transformer/RawSqlResultsToEntityTransformer.ts"],"names":[],"mappings":"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","file":"RawSqlResultsToEntityTransformer.js","sourcesContent":["import { Driver } from \"../../driver/Driver\"\nimport { RelationIdLoadResult } from \"../relation-id/RelationIdLoadResult\"\nimport { ObjectLiteral } from \"../../common/ObjectLiteral\"\nimport { ColumnMetadata } from \"../../metadata/ColumnMetadata\"\nimport { Alias } from \"../Alias\"\nimport { RelationCountLoadResult } from \"../relation-count/RelationCountLoadResult\"\nimport { RelationMetadata } from \"../../metadata/RelationMetadata\"\nimport { OrmUtils } from \"../../util/OrmUtils\"\nimport { QueryExpressionMap } from \"../QueryExpressionMap\"\nimport { EntityMetadata } from \"../../metadata/EntityMetadata\"\nimport { QueryRunner } from \"../..\"\nimport { DriverUtils } from \"../../driver/DriverUtils\"\nimport { ObjectUtils } from \"../../util/ObjectUtils\"\n\n/**\n * Transforms raw sql results returned from the database into entity object.\n * Entity is constructed based on its entity metadata.\n */\nexport class RawSqlResultsToEntityTransformer {\n /**\n * Contains a hashmap for every rawRelationIdResults given.\n * In the hashmap you will find the idMaps of a result under the hash of this.hashEntityIds for the result.\n */\n private relationIdMaps: Array<{ [idHash: string]: any[] }>\n\n private pojo: boolean\n private selections: Set<string>\n private aliasCache: Map<string, Map<string, string>>\n private columnsCache: Map<\n string,\n Map<EntityMetadata, [string, ColumnMetadata][]>\n >\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(\n protected expressionMap: QueryExpressionMap,\n protected driver: Driver,\n protected rawRelationIdResults: RelationIdLoadResult[],\n protected rawRelationCountResults: RelationCountLoadResult[],\n protected queryRunner?: QueryRunner,\n ) {\n this.pojo = this.expressionMap.options.includes(\"create-pojo\")\n this.selections = new Set(\n this.expressionMap.selects.map((s) => s.selection),\n )\n this.aliasCache = new Map()\n this.columnsCache = new Map()\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Since db returns a duplicated rows of the data where accuracies of the same object can be duplicated\n * we need to group our result and we must have some unique id (primary key in our case)\n */\n transform(rawResults: any[], alias: Alias): any[] {\n const group = this.group(rawResults, alias)\n const entities: any[] = []\n for (const results of group.values()) {\n const entity = this.transformRawResultsGroup(results, alias)\n if (entity !== undefined) entities.push(entity)\n }\n return entities\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Build an alias from a name and column name.\n */\n protected buildAlias(aliasName: string, columnName: string) {\n let aliases = this.aliasCache.get(aliasName)\n if (!aliases) {\n aliases = new Map()\n this.aliasCache.set(aliasName, aliases)\n }\n let columnAlias = aliases.get(columnName)\n if (!columnAlias) {\n columnAlias = DriverUtils.buildAlias(\n this.driver,\n undefined,\n aliasName,\n columnName,\n )\n aliases.set(columnName, columnAlias)\n }\n return columnAlias\n }\n\n /**\n * Groups given raw results by ids of given alias.\n */\n protected group(rawResults: any[], alias: Alias): Map<string, any[]> {\n const map = new Map()\n const keys: string[] = []\n if (alias.metadata.tableType === \"view\") {\n keys.push(\n ...alias.metadata.columns.map((column) =>\n this.buildAlias(alias.name, column.databaseName),\n ),\n )\n } else {\n keys.push(\n ...alias.metadata.primaryColumns.map((column) =>\n this.buildAlias(alias.name, column.databaseName),\n ),\n )\n }\n for (const rawResult of rawResults) {\n const id = keys\n .map((key) => {\n const keyValue = rawResult[key]\n\n if (Buffer.isBuffer(keyValue)) {\n return keyValue.toString(\"hex\")\n }\n\n if (ObjectUtils.isObject(keyValue)) {\n return JSON.stringify(keyValue)\n }\n\n return keyValue\n })\n .join(\"_\") // todo: check partial\n\n const items = map.get(id)\n if (!items) {\n map.set(id, [rawResult])\n } else {\n items.push(rawResult)\n }\n }\n return map\n }\n\n /**\n * Transforms set of data results into single entity.\n */\n protected transformRawResultsGroup(\n rawResults: any[],\n alias: Alias,\n ): ObjectLiteral | undefined {\n // let hasColumns = false; // , hasEmbeddedColumns = false, hasParentColumns = false, hasParentEmbeddedColumns = false;\n let metadata = alias.metadata\n\n if (metadata.discriminatorColumn) {\n const discriminatorValues = rawResults.map(\n (result) =>\n result[\n this.buildAlias(\n alias.name,\n alias.metadata.discriminatorColumn!.databaseName,\n )\n ],\n )\n const discriminatorMetadata = metadata.childEntityMetadatas.find(\n (childEntityMetadata) => {\n return (\n typeof discriminatorValues.find(\n (value) =>\n value ===\n childEntityMetadata.discriminatorValue,\n ) !== \"undefined\"\n )\n },\n )\n if (discriminatorMetadata) metadata = discriminatorMetadata\n }\n const entity: any = metadata.create(this.queryRunner, {\n fromDeserializer: true,\n pojo: this.pojo,\n })\n\n // get value from columns selections and put them into newly created entity\n const hasColumns = this.transformColumns(\n rawResults,\n alias,\n entity,\n metadata,\n )\n const hasRelations = this.transformJoins(\n rawResults,\n entity,\n alias,\n metadata,\n )\n const hasRelationIds = this.transformRelationIds(\n rawResults,\n alias,\n entity,\n metadata,\n )\n const hasRelationCounts = this.transformRelationCounts(\n rawResults,\n alias,\n entity,\n )\n\n // if we have at least one selected column then return this entity\n // since entity must have at least primary columns to be really selected and transformed into entity\n if (hasColumns) return entity\n\n // if we don't have any selected column we should not return entity,\n // except for the case when entity only contain a primary column as a relation to another entity\n // in this case its absolutely possible our entity to not have any columns except a single relation\n const hasOnlyVirtualPrimaryColumns = metadata.primaryColumns.every(\n (column) => column.isVirtual === true,\n ) // todo: create metadata.hasOnlyVirtualPrimaryColumns\n if (\n hasOnlyVirtualPrimaryColumns &&\n (hasRelations || hasRelationIds || hasRelationCounts)\n )\n return entity\n\n return undefined\n }\n\n // get value from columns selections and put them into object\n protected transformColumns(\n rawResults: any[],\n alias: Alias,\n entity: ObjectLiteral,\n metadata: EntityMetadata,\n ): boolean {\n let hasData = false\n const result = rawResults[0]\n for (const [key, column] of this.getColumnsToProcess(\n alias.name,\n metadata,\n )) {\n const value = result[key]\n\n if (value === undefined) continue\n // we don't mark it as has data because if we will have all nulls in our object - we don't need such object\n else if (value !== null && !column.isVirtualProperty) hasData = true\n\n column.setEntityValue(\n entity,\n this.driver.prepareHydratedValue(value, column),\n )\n }\n return hasData\n }\n\n /**\n * Transforms joined entities in the given raw results by a given alias and stores to the given (parent) entity\n */\n protected transformJoins(\n rawResults: any[],\n entity: ObjectLiteral,\n alias: Alias,\n metadata: EntityMetadata,\n ) {\n let hasData = false\n\n // let discriminatorValue: string = \"\";\n // if (metadata.discriminatorColumn)\n // discriminatorValue = rawResults[0][this.buildAlias(alias.name, alias.metadata.discriminatorColumn!.databaseName)];\n\n for (const join of this.expressionMap.joinAttributes) {\n // todo: we have problem here - when inner joins are used without selects it still create empty array\n\n // skip joins without metadata\n if (!join.metadata) continue\n\n // if simple left or inner join was performed without selection then we don't need to do anything\n if (!join.isSelected) continue\n\n // this check need to avoid setting properties than not belong to entity when single table inheritance used. (todo: check if we still need it)\n // const metadata = metadata.childEntityMetadatas.find(childEntityMetadata => discriminatorValue === childEntityMetadata.discriminatorValue);\n if (\n join.relation &&\n !metadata.relations.find(\n (relation) => relation === join.relation,\n )\n )\n continue\n\n // some checks to make sure this join is for current alias\n if (join.mapToProperty) {\n if (join.mapToPropertyParentAlias !== alias.name) continue\n } else {\n if (\n !join.relation ||\n join.parentAlias !== alias.name ||\n join.relationPropertyPath !== join.relation!.propertyPath\n )\n continue\n }\n\n // transform joined data into entities\n let result: any = this.transform(rawResults, join.alias)\n result = !join.isMany ? result[0] : result\n result = !join.isMany && result === undefined ? null : result // this is needed to make relations to return null when its joined but nothing was found in the database\n // if nothing was joined then simply continue\n if (result === undefined) continue\n\n // if join was mapped to some property then save result to that property\n if (join.mapToPropertyPropertyName) {\n entity[join.mapToPropertyPropertyName] = result // todo: fix embeds\n } else {\n // otherwise set to relation\n join.relation!.setEntityValue(entity, result)\n }\n\n hasData = true\n }\n return hasData\n }\n\n protected transformRelationIds(\n rawSqlResults: any[],\n alias: Alias,\n entity: ObjectLiteral,\n metadata: EntityMetadata,\n ): boolean {\n let hasData = false\n for (const [\n index,\n rawRelationIdResult,\n ] of this.rawRelationIdResults.entries()) {\n if (\n rawRelationIdResult.relationIdAttribute.parentAlias !==\n alias.name\n )\n continue\n\n const relation = rawRelationIdResult.relationIdAttribute.relation\n const valueMap = this.createValueMapFromJoinColumns(\n relation,\n rawRelationIdResult.relationIdAttribute.parentAlias,\n rawSqlResults,\n )\n if (valueMap === undefined || valueMap === null) {\n continue\n }\n\n // prepare common data for this call\n this.prepareDataForTransformRelationIds()\n\n // Extract idMaps from prepared data by hash\n const hash = this.hashEntityIds(relation, valueMap)\n const idMaps = this.relationIdMaps[index][hash] || []\n\n // Map data to properties\n const properties =\n rawRelationIdResult.relationIdAttribute.mapToPropertyPropertyPath.split(\n \".\",\n )\n const mapToProperty = (\n properties: string[],\n map: ObjectLiteral,\n value: any,\n ): any => {\n const property = properties.shift()\n if (property && properties.length === 0) {\n map[property] = value\n return map\n }\n if (property && properties.length > 0) {\n mapToProperty(properties, map[property], value)\n } else {\n return map\n }\n }\n if (relation.isOneToOne || relation.isManyToOne) {\n if (idMaps[0] !== undefined) {\n mapToProperty(properties, entity, idMaps[0])\n hasData = true\n }\n } else {\n mapToProperty(properties, entity, idMaps)\n hasData = hasData || idMaps.length > 0\n }\n }\n\n return hasData\n }\n\n protected transformRelationCounts(\n rawSqlResults: any[],\n alias: Alias,\n entity: ObjectLiteral,\n ): boolean {\n let hasData = false\n for (const rawRelationCountResult of this.rawRelationCountResults) {\n if (\n rawRelationCountResult.relationCountAttribute.parentAlias !==\n alias.name\n )\n continue\n const relation =\n rawRelationCountResult.relationCountAttribute.relation\n let referenceColumnName: string\n\n if (relation.isOneToMany) {\n referenceColumnName =\n relation.inverseRelation!.joinColumns[0].referencedColumn!\n .databaseName // todo: fix joinColumns[0]\n } else {\n referenceColumnName = relation.isOwning\n ? relation.joinColumns[0].referencedColumn!.databaseName\n : relation.inverseRelation!.joinColumns[0].referencedColumn!\n .databaseName\n }\n\n const referenceColumnValue =\n rawSqlResults[0][\n this.buildAlias(alias.name, referenceColumnName)\n ] // we use zero index since its grouped data // todo: selection with alias for entity columns wont work\n if (\n referenceColumnValue !== undefined &&\n referenceColumnValue !== null\n ) {\n entity[\n rawRelationCountResult.relationCountAttribute.mapToPropertyPropertyName\n ] = 0\n for (const result of rawRelationCountResult.results) {\n if (result[\"parentId\"] !== referenceColumnValue) continue\n entity[\n rawRelationCountResult.relationCountAttribute.mapToPropertyPropertyName\n ] = parseInt(result[\"cnt\"])\n hasData = true\n }\n }\n }\n\n return hasData\n }\n\n private getColumnsToProcess(aliasName: string, metadata: EntityMetadata) {\n let metadatas = this.columnsCache.get(aliasName)\n if (!metadatas) {\n metadatas = new Map()\n this.columnsCache.set(aliasName, metadatas)\n }\n let columns = metadatas.get(metadata)\n if (!columns) {\n columns = metadata.columns\n .filter(\n (column) =>\n !column.isVirtual &&\n // if user does not selected the whole entity or he used partial selection and does not select this particular column\n // then we don't add this column and its value into the entity\n (this.selections.has(aliasName) ||\n this.selections.has(\n `${aliasName}.${column.propertyPath}`,\n )) &&\n // if table inheritance is used make sure this column is not child's column\n !metadata.childEntityMetadatas.some(\n (childMetadata) =>\n childMetadata.target === column.target,\n ),\n )\n .map((column) => [\n this.buildAlias(aliasName, column.databaseName),\n column,\n ])\n metadatas.set(metadata, columns)\n }\n return columns\n }\n\n private createValueMapFromJoinColumns(\n relation: RelationMetadata,\n parentAlias: string,\n rawSqlResults: any[],\n ): ObjectLiteral {\n let columns: ColumnMetadata[]\n if (relation.isManyToOne || relation.isOneToOneOwner) {\n columns = relation.entityMetadata.primaryColumns.map(\n (joinColumn) => joinColumn,\n )\n } else if (relation.isOneToMany || relation.isOneToOneNotOwner) {\n columns = relation.inverseRelation!.joinColumns.map(\n (joinColumn) => joinColumn,\n )\n } else {\n if (relation.isOwning) {\n columns = relation.joinColumns.map((joinColumn) => joinColumn)\n } else {\n columns = relation.inverseRelation!.inverseJoinColumns.map(\n (joinColumn) => joinColumn,\n )\n }\n }\n return columns.reduce((valueMap, column) => {\n for (const rawSqlResult of rawSqlResults) {\n if (relation.isManyToOne || relation.isOneToOneOwner) {\n valueMap[column.databaseName] =\n this.driver.prepareHydratedValue(\n rawSqlResult[\n this.buildAlias(\n parentAlias,\n column.databaseName,\n )\n ],\n column,\n )\n } else {\n valueMap[column.databaseName] =\n this.driver.prepareHydratedValue(\n rawSqlResult[\n this.buildAlias(\n parentAlias,\n column.referencedColumn!.databaseName,\n )\n ],\n column.referencedColumn!,\n )\n }\n }\n return valueMap\n }, {} as ObjectLiteral)\n }\n\n private extractEntityPrimaryIds(\n relation: RelationMetadata,\n relationIdRawResult: any,\n ) {\n let columns: ColumnMetadata[]\n if (relation.isManyToOne || relation.isOneToOneOwner) {\n columns = relation.entityMetadata.primaryColumns.map(\n (joinColumn) => joinColumn,\n )\n } else if (relation.isOneToMany || relation.isOneToOneNotOwner) {\n columns = relation.inverseRelation!.joinColumns.map(\n (joinColumn) => joinColumn,\n )\n } else {\n if (relation.isOwning) {\n columns = relation.joinColumns.map((joinColumn) => joinColumn)\n } else {\n columns = relation.inverseRelation!.inverseJoinColumns.map(\n (joinColumn) => joinColumn,\n )\n }\n }\n return columns.reduce((data, column) => {\n data[column.databaseName] = relationIdRawResult[column.databaseName]\n return data\n }, {} as ObjectLiteral)\n }\n\n /*private removeVirtualColumns(entity: ObjectLiteral, alias: Alias) {\n const virtualColumns = this.expressionMap.selects\n .filter(select => select.virtual)\n .map(select => select.selection.replace(alias.name + \".\", \"\"));\n\n virtualColumns.forEach(virtualColumn => delete entity[virtualColumn]);\n }*/\n\n /** Prepare data to run #transformRelationIds, as a lot of result independent data is needed in every call */\n private prepareDataForTransformRelationIds() {\n // Return early if the relationIdMaps were already calculated\n if (this.relationIdMaps) {\n return\n }\n\n // Ensure this prepare function is only called once\n this.relationIdMaps = this.rawRelationIdResults.map(\n (rawRelationIdResult) => {\n const relation =\n rawRelationIdResult.relationIdAttribute.relation\n\n // Calculate column metadata\n let columns: ColumnMetadata[]\n if (relation.isManyToOne || relation.isOneToOneOwner) {\n columns = relation.joinColumns\n } else if (\n relation.isOneToMany ||\n relation.isOneToOneNotOwner\n ) {\n columns = relation.inverseEntityMetadata.primaryColumns\n } else {\n // ManyToMany\n if (relation.isOwning) {\n columns = relation.inverseJoinColumns\n } else {\n columns = relation.inverseRelation!.joinColumns\n }\n }\n\n // Calculate the idMaps for the rawRelationIdResult\n return rawRelationIdResult.results.reduce((agg, result) => {\n let idMap = columns.reduce((idMap, column) => {\n let value = result[column.databaseName]\n if (\n relation.isOneToMany ||\n relation.isOneToOneNotOwner\n ) {\n if (\n column.isVirtual &&\n column.referencedColumn &&\n column.referencedColumn.propertyName !==\n column.propertyName\n ) {\n // if column is a relation\n value =\n column.referencedColumn.createValueMap(\n value,\n )\n }\n\n return OrmUtils.mergeDeep(\n idMap,\n column.createValueMap(value),\n )\n }\n if (\n !column.isPrimary &&\n column.referencedColumn!.referencedColumn\n ) {\n // if column is a relation\n value =\n column.referencedColumn!.referencedColumn!.createValueMap(\n value,\n )\n }\n\n return OrmUtils.mergeDeep(\n idMap,\n column.referencedColumn!.createValueMap(value),\n )\n }, {} as ObjectLiteral)\n\n if (\n columns.length === 1 &&\n !rawRelationIdResult.relationIdAttribute.disableMixedMap\n ) {\n if (\n relation.isOneToMany ||\n relation.isOneToOneNotOwner\n ) {\n idMap = columns[0].getEntityValue(idMap)\n } else {\n idMap =\n columns[0].referencedColumn!.getEntityValue(\n idMap,\n )\n }\n }\n\n // If an idMap is found, set it in the aggregator under the correct hash\n if (idMap !== undefined) {\n const hash = this.hashEntityIds(relation, result)\n\n if (agg[hash]) {\n agg[hash].push(idMap)\n } else {\n agg[hash] = [idMap]\n }\n }\n\n return agg\n }, {})\n },\n )\n }\n\n /**\n * Use a simple JSON.stringify to create a simple hash of the primary ids of an entity.\n * As this.extractEntityPrimaryIds always creates the primary id object in the same order, if the same relation is\n * given, a simple JSON.stringify should be enough to get a unique hash per entity!\n */\n private hashEntityIds(relation: RelationMetadata, data: ObjectLiteral) {\n const entityPrimaryIds = this.extractEntityPrimaryIds(relation, data)\n return JSON.stringify(entityPrimaryIds)\n }\n}\n"],"sourceRoot":"../.."}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/query-runner/BaseQueryRunner.ts"],"names":[],"mappings":"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","file":"BaseQueryRunner.js","sourcesContent":["import { PostgresConnectionOptions } from \"../driver/postgres/PostgresConnectionOptions\"\r\nimport { Query } from \"../driver/Query\"\r\nimport { SqlInMemory } from \"../driver/SqlInMemory\"\r\nimport { SqlServerConnectionOptions } from \"../driver/sqlserver/SqlServerConnectionOptions\"\r\nimport { TableIndex } from \"../schema-builder/table/TableIndex\"\r\nimport { View } from \"../schema-builder/view/View\"\r\nimport { DataSource } from \"../data-source/DataSource\"\r\nimport { Table } from \"../schema-builder/table/Table\"\r\nimport { EntityManager } from \"../entity-manager/EntityManager\"\r\nimport { TableColumn } from \"../schema-builder/table/TableColumn\"\r\nimport { Broadcaster } from \"../subscriber/Broadcaster\"\r\nimport { ReplicationMode } from \"../driver/types/ReplicationMode\"\r\nimport { TypeORMError } from \"../error/TypeORMError\"\r\nimport { EntityMetadata } from \"../metadata/EntityMetadata\"\r\nimport { TableForeignKey } from \"../schema-builder/table/TableForeignKey\"\r\nimport { OrmUtils } from \"../util/OrmUtils\"\r\nimport { MetadataTableType } from \"../driver/types/MetadataTableType\"\r\nimport { InstanceChecker } from \"../util/InstanceChecker\"\r\n\r\nexport abstract class BaseQueryRunner {\r\n // -------------------------------------------------------------------------\r\n // Public Properties\r\n // -------------------------------------------------------------------------\r\n\r\n /**\r\n * Connection used by this query runner.\r\n */\r\n connection: DataSource\r\n\r\n /**\r\n * Entity manager working only with current query runner.\r\n */\r\n manager: EntityManager\r\n\r\n /**\r\n * Indicates if connection for this query runner is released.\r\n * Once its released, query runner cannot run queries anymore.\r\n */\r\n isReleased = false\r\n\r\n /**\r\n * Indicates if transaction is in progress.\r\n */\r\n isTransactionActive = false\r\n\r\n /**\r\n * Stores temporarily user data.\r\n * Useful for sharing data with subscribers.\r\n */\r\n data = {}\r\n\r\n /**\r\n * All synchronized tables in the database.\r\n */\r\n loadedTables: Table[] = []\r\n\r\n /**\r\n * All synchronized views in the database.\r\n */\r\n loadedViews: View[] = []\r\n\r\n /**\r\n * Broadcaster used on this query runner to broadcast entity events.\r\n */\r\n broadcaster: Broadcaster\r\n\r\n // -------------------------------------------------------------------------\r\n // Protected Properties\r\n // -------------------------------------------------------------------------\r\n\r\n /**\r\n * Real database connection from a connection pool used to perform queries.\r\n */\r\n protected databaseConnection: any\r\n\r\n /**\r\n * Indicates if special query runner mode in which sql queries won't be executed is enabled.\r\n */\r\n protected sqlMemoryMode: boolean = false\r\n\r\n /**\r\n * Sql-s stored if \"sql in memory\" mode is enabled.\r\n */\r\n protected sqlInMemory: SqlInMemory = new SqlInMemory()\r\n\r\n /**\r\n * Mode in which query runner executes.\r\n * Used for replication.\r\n * If replication is not setup its value is ignored.\r\n */\r\n protected mode: ReplicationMode\r\n\r\n /**\r\n * current depth of transaction.\r\n * for transactionDepth > 0 will use SAVEPOINT to start and commit/rollback transaction blocks\r\n */\r\n protected transactionDepth = 0\r\n\r\n private cachedTablePaths: Record<string, string> = {}\r\n\r\n // -------------------------------------------------------------------------\r\n // Public Abstract Methods\r\n // -------------------------------------------------------------------------\r\n\r\n /**\r\n * Executes a given SQL query.\r\n */\r\n abstract query(\r\n query: string,\r\n parameters?: any[],\r\n useStructuredResult?: boolean,\r\n ): Promise<any>\r\n\r\n // -------------------------------------------------------------------------\r\n // Protected Abstract Methods\r\n // -------------------------------------------------------------------------\r\n\r\n protected abstract loadTables(tablePaths?: string[]): Promise<Table[]>\r\n\r\n protected abstract loadViews(tablePaths?: string[]): Promise<View[]>\r\n\r\n // -------------------------------------------------------------------------\r\n // Public Methods\r\n // -------------------------------------------------------------------------\r\n\r\n /**\r\n * Called before migrations are run.\r\n */\r\n async beforeMigration(): Promise<void> {\r\n // Do nothing\r\n }\r\n\r\n /**\r\n * Called after migrations are run.\r\n */\r\n async afterMigration(): Promise<void> {\r\n // Do nothing\r\n }\r\n\r\n /**\r\n * Loads given table's data from the database.\r\n */\r\n async getTable(tablePath: string): Promise<Table | undefined> {\r\n this.loadedTables = await this.loadTables([tablePath])\r\n return this.loadedTables.length > 0 ? this.loadedTables[0] : undefined\r\n }\r\n\r\n /**\r\n * Loads all tables (with given names) from the database.\r\n */\r\n async getTables(tableNames?: string[]): Promise<Table[]> {\r\n if (!tableNames) {\r\n // Don't cache in this case.\r\n // This is the new case & isn't used anywhere else anyway.\r\n return await this.loadTables(tableNames)\r\n }\r\n\r\n this.loadedTables = await this.loadTables(tableNames)\r\n return this.loadedTables\r\n }\r\n\r\n /**\r\n * Loads given view's data from the database.\r\n */\r\n async getView(viewPath: string): Promise<View | undefined> {\r\n this.loadedViews = await this.loadViews([viewPath])\r\n return this.loadedViews.length > 0 ? this.loadedViews[0] : undefined\r\n }\r\n\r\n /**\r\n * Loads given view's data from the database.\r\n */\r\n async getViews(viewPaths?: string[]): Promise<View[]> {\r\n this.loadedViews = await this.loadViews(viewPaths)\r\n return this.loadedViews\r\n }\r\n\r\n /**\r\n * Enables special query runner mode in which sql queries won't be executed,\r\n * instead they will be memorized into a special variable inside query runner.\r\n * You can get memorized sql using getMemorySql() method.\r\n */\r\n enableSqlMemory(): void {\r\n this.sqlInMemory = new SqlInMemory()\r\n this.sqlMemoryMode = true\r\n }\r\n\r\n /**\r\n * Disables special query runner mode in which sql queries won't be executed\r\n * started by calling enableSqlMemory() method.\r\n *\r\n * Previously memorized sql will be flushed.\r\n */\r\n disableSqlMemory(): void {\r\n this.sqlInMemory = new SqlInMemory()\r\n this.sqlMemoryMode = false\r\n }\r\n\r\n /**\r\n * Flushes all memorized sqls.\r\n */\r\n clearSqlMemory(): void {\r\n this.sqlInMemory = new SqlInMemory()\r\n }\r\n\r\n /**\r\n * Gets sql stored in the memory. Parameters in the sql are already replaced.\r\n */\r\n getMemorySql(): SqlInMemory {\r\n return this.sqlInMemory\r\n }\r\n\r\n /**\r\n * Executes up sql queries.\r\n */\r\n async executeMemoryUpSql(): Promise<void> {\r\n for (const { query, parameters } of this.sqlInMemory.upQueries) {\r\n await this.query(query, parameters)\r\n }\r\n }\r\n\r\n /**\r\n * Executes down sql queries.\r\n */\r\n async executeMemoryDownSql(): Promise<void> {\r\n for (const {\r\n query,\r\n parameters,\r\n } of this.sqlInMemory.downQueries.reverse()) {\r\n await this.query(query, parameters)\r\n }\r\n }\r\n\r\n getReplicationMode(): ReplicationMode {\r\n return this.mode\r\n }\r\n\r\n // -------------------------------------------------------------------------\r\n // Protected Methods\r\n // -------------------------------------------------------------------------\r\n\r\n /**\r\n * Gets view from previously loaded views, otherwise loads it from database.\r\n */\r\n protected async getCachedView(viewName: string): Promise<View> {\r\n const view = this.loadedViews.find((view) => view.name === viewName)\r\n if (view) return view\r\n\r\n const foundViews = await this.loadViews([viewName])\r\n if (foundViews.length > 0) {\r\n this.loadedViews.push(foundViews[0])\r\n return foundViews[0]\r\n } else {\r\n throw new TypeORMError(`View \"${viewName}\" does not exist.`)\r\n }\r\n }\r\n\r\n /**\r\n * Gets table from previously loaded tables, otherwise loads it from database.\r\n */\r\n protected async getCachedTable(tableName: string): Promise<Table> {\r\n if (tableName in this.cachedTablePaths) {\r\n const tablePath = this.cachedTablePaths[tableName]\r\n const table = this.loadedTables.find(\r\n (table) => this.getTablePath(table) === tablePath,\r\n )\r\n\r\n if (table) {\r\n return table\r\n }\r\n }\r\n\r\n const foundTables = await this.loadTables([tableName])\r\n\r\n if (foundTables.length > 0) {\r\n const foundTablePath = this.getTablePath(foundTables[0])\r\n\r\n const cachedTable = this.loadedTables.find(\r\n (table) => this.getTablePath(table) === foundTablePath,\r\n )\r\n\r\n if (!cachedTable) {\r\n this.cachedTablePaths[tableName] = this.getTablePath(\r\n foundTables[0],\r\n )\r\n this.loadedTables.push(foundTables[0])\r\n return foundTables[0]\r\n } else {\r\n return cachedTable\r\n }\r\n } else {\r\n throw new TypeORMError(`Table \"${tableName}\" does not exist.`)\r\n }\r\n }\r\n\r\n /**\r\n * Replaces loaded table with given changed table.\r\n */\r\n protected replaceCachedTable(table: Table, changedTable: Table): void {\r\n const oldTablePath = this.getTablePath(table)\r\n const foundTable = this.loadedTables.find(\r\n (loadedTable) => this.getTablePath(loadedTable) === oldTablePath,\r\n )\r\n\r\n // Clean up the lookup cache..\r\n for (const [key, cachedPath] of Object.entries(this.cachedTablePaths)) {\r\n if (cachedPath === oldTablePath) {\r\n this.cachedTablePaths[key] = this.getTablePath(changedTable)\r\n }\r\n }\r\n\r\n if (foundTable) {\r\n foundTable.database = changedTable.database\r\n foundTable.schema = changedTable.schema\r\n foundTable.name = changedTable.name\r\n foundTable.columns = changedTable.columns\r\n foundTable.indices = changedTable.indices\r\n foundTable.foreignKeys = changedTable.foreignKeys\r\n foundTable.uniques = changedTable.uniques\r\n foundTable.checks = changedTable.checks\r\n foundTable.justCreated = changedTable.justCreated\r\n foundTable.engine = changedTable.engine\r\n foundTable.comment = changedTable.comment\r\n }\r\n }\r\n\r\n protected getTablePath(\r\n target: EntityMetadata | Table | View | TableForeignKey | string,\r\n ): string {\r\n const parsed = this.connection.driver.parseTableName(target)\r\n\r\n return this.connection.driver.buildTableName(\r\n parsed.tableName,\r\n parsed.schema,\r\n parsed.database,\r\n )\r\n }\r\n\r\n protected getTypeormMetadataTableName(): string {\r\n const options = <\r\n SqlServerConnectionOptions | PostgresConnectionOptions\r\n >this.connection.driver.options\r\n return this.connection.driver.buildTableName(\r\n this.connection.metadataTableName,\r\n options.schema,\r\n options.database,\r\n )\r\n }\r\n\r\n /**\r\n * Generates SQL query to select record from typeorm metadata table.\r\n */\r\n protected selectTypeormMetadataSql({\r\n database,\r\n schema,\r\n table,\r\n type,\r\n name,\r\n }: {\r\n database?: string\r\n schema?: string\r\n table?: string\r\n type: MetadataTableType\r\n name: string\r\n }): Query {\r\n const qb = this.connection.createQueryBuilder()\r\n const selectQb = qb\r\n .select()\r\n .from(this.getTypeormMetadataTableName(), \"t\")\r\n .where(`${qb.escape(\"type\")} = :type`, { type })\r\n .andWhere(`${qb.escape(\"name\")} = :name`, { name })\r\n\r\n if (database) {\r\n selectQb.andWhere(`${qb.escape(\"database\")} = :database`, {\r\n database,\r\n })\r\n }\r\n\r\n if (schema) {\r\n selectQb.andWhere(`${qb.escape(\"schema\")} = :schema`, { schema })\r\n }\r\n\r\n if (table) {\r\n selectQb.andWhere(`${qb.escape(\"table\")} = :table`, { table })\r\n }\r\n\r\n const [query, parameters] = selectQb.getQueryAndParameters()\r\n return new Query(query, parameters)\r\n }\r\n\r\n /**\r\n * Generates SQL query to insert a record into typeorm metadata table.\r\n */\r\n protected insertTypeormMetadataSql({\r\n database,\r\n schema,\r\n table,\r\n type,\r\n name,\r\n value,\r\n }: {\r\n database?: string\r\n schema?: string\r\n table?: string\r\n type: MetadataTableType\r\n name: string\r\n value?: string\r\n }): Query {\r\n const [query, parameters] = this.connection\r\n .createQueryBuilder()\r\n .insert()\r\n .into(this.getTypeormMetadataTableName())\r\n .values({\r\n database: database,\r\n schema: schema,\r\n table: table,\r\n type: type,\r\n name: name,\r\n value: value,\r\n })\r\n .getQueryAndParameters()\r\n\r\n return new Query(query, parameters)\r\n }\r\n\r\n /**\r\n * Generates SQL query to delete a record from typeorm metadata table.\r\n */\r\n protected deleteTypeormMetadataSql({\r\n database,\r\n schema,\r\n table,\r\n type,\r\n name,\r\n }: {\r\n database?: string\r\n schema?: string\r\n table?: string\r\n type: MetadataTableType\r\n name: string\r\n }): Query {\r\n const qb = this.connection.createQueryBuilder()\r\n const deleteQb = qb\r\n .delete()\r\n .from(this.getTypeormMetadataTableName())\r\n .where(`${qb.escape(\"type\")} = :type`, { type })\r\n .andWhere(`${qb.escape(\"name\")} = :name`, { name })\r\n\r\n if (database) {\r\n deleteQb.andWhere(`${qb.escape(\"database\")} = :database`, {\r\n database,\r\n })\r\n }\r\n\r\n if (schema) {\r\n deleteQb.andWhere(`${qb.escape(\"schema\")} = :schema`, { schema })\r\n }\r\n\r\n if (table) {\r\n deleteQb.andWhere(`${qb.escape(\"table\")} = :table`, { table })\r\n }\r\n\r\n const [query, parameters] = deleteQb.getQueryAndParameters()\r\n return new Query(query, parameters)\r\n }\r\n\r\n /**\r\n * Checks if at least one of column properties was changed.\r\n * Does not checks column type, length and autoincrement, because these properties changes separately.\r\n */\r\n protected isColumnChanged(\r\n oldColumn: TableColumn,\r\n newColumn: TableColumn,\r\n checkDefault?: boolean,\r\n checkComment?: boolean,\r\n checkEnum = true,\r\n ): boolean {\r\n // this logs need to debug issues in column change detection. Do not delete it!\r\n\r\n // console.log(\"charset ---------------\");\r\n // console.log(oldColumn.charset !== newColumn.charset);\r\n // console.log(oldColumn.charset, newColumn.charset);\r\n // console.log(\"collation ---------------\");\r\n // console.log(oldColumn.collation !== newColumn.collation);\r\n // console.log(oldColumn.collation, newColumn.collation);\r\n // console.log(\"precision ---------------\");\r\n // console.log(oldColumn.precision !== newColumn.precision);\r\n // console.log(oldColumn.precision, newColumn.precision);\r\n // console.log(\"scale ---------------\");\r\n // console.log(oldColumn.scale !== newColumn.scale);\r\n // console.log(oldColumn.scale, newColumn.scale);\r\n // console.log(\"default ---------------\");\r\n // console.log((checkDefault && oldColumn.default !== newColumn.default));\r\n // console.log(oldColumn.default, newColumn.default);\r\n // console.log(\"isNullable ---------------\");\r\n // console.log(oldColumn.isNullable !== newColumn.isNullable);\r\n // console.log(oldColumn.isNullable, newColumn.isNullable);\r\n // console.log(\"comment ---------------\");\r\n // console.log((checkComment && oldColumn.comment !== newColumn.comment));\r\n // console.log(oldColumn.comment, newColumn.comment);\r\n // console.log(\"enum ---------------\");\r\n // console.log(!OrmUtils.isArraysEqual(oldColumn.enum || [], newColumn.enum || []));\r\n // console.log(oldColumn.enum, newColumn.enum);\r\n\r\n return (\r\n oldColumn.charset !== newColumn.charset ||\r\n oldColumn.collation !== newColumn.collation ||\r\n oldColumn.precision !== newColumn.precision ||\r\n oldColumn.scale !== newColumn.scale ||\r\n oldColumn.width !== newColumn.width || // MySQL only\r\n oldColumn.zerofill !== newColumn.zerofill || // MySQL only\r\n oldColumn.unsigned !== newColumn.unsigned || // MySQL only\r\n oldColumn.asExpression !== newColumn.asExpression ||\r\n (checkDefault && oldColumn.default !== newColumn.default) ||\r\n oldColumn.onUpdate !== newColumn.onUpdate || // MySQL only\r\n oldColumn.isNullable !== newColumn.isNullable ||\r\n (checkComment && oldColumn.comment !== newColumn.comment) ||\r\n (checkEnum && this.isEnumChanged(oldColumn, newColumn))\r\n )\r\n }\r\n\r\n protected isEnumChanged(oldColumn: TableColumn, newColumn: TableColumn) {\r\n return !OrmUtils.isArraysEqual(\r\n oldColumn.enum || [],\r\n newColumn.enum || [],\r\n )\r\n }\r\n\r\n /**\r\n * Checks if column length is by default.\r\n */\r\n protected isDefaultColumnLength(\r\n table: Table,\r\n column: TableColumn,\r\n length: string,\r\n ): boolean {\r\n // if table have metadata, we check if length is specified in column metadata\r\n if (this.connection.hasMetadata(table.name)) {\r\n const metadata = this.connection.getMetadata(table.name)\r\n const columnMetadata = metadata.findColumnWithDatabaseName(\r\n column.name,\r\n )\r\n\r\n if (columnMetadata) {\r\n const columnMetadataLength =\r\n this.connection.driver.getColumnLength(columnMetadata)\r\n if (columnMetadataLength) return false\r\n }\r\n }\r\n\r\n if (\r\n this.connection.driver.dataTypeDefaults &&\r\n this.connection.driver.dataTypeDefaults[column.type] &&\r\n this.connection.driver.dataTypeDefaults[column.type].length\r\n ) {\r\n return (\r\n this.connection.driver.dataTypeDefaults[\r\n column.type\r\n ].length!.toString() === length.toString()\r\n )\r\n }\r\n\r\n return false\r\n }\r\n\r\n /**\r\n * Checks if column precision is by default.\r\n */\r\n protected isDefaultColumnPrecision(\r\n table: Table,\r\n column: TableColumn,\r\n precision: number,\r\n ): boolean {\r\n // if table have metadata, we check if length is specified in column metadata\r\n if (this.connection.hasMetadata(table.name)) {\r\n const metadata = this.connection.getMetadata(table.name)\r\n const columnMetadata = metadata.findColumnWithDatabaseName(\r\n column.name,\r\n )\r\n if (\r\n columnMetadata &&\r\n columnMetadata.precision !== null &&\r\n columnMetadata.precision !== undefined\r\n )\r\n return false\r\n }\r\n\r\n if (\r\n this.connection.driver.dataTypeDefaults &&\r\n this.connection.driver.dataTypeDefaults[column.type] &&\r\n this.connection.driver.dataTypeDefaults[column.type].precision !==\r\n null &&\r\n this.connection.driver.dataTypeDefaults[column.type].precision !==\r\n undefined\r\n )\r\n return (\r\n this.connection.driver.dataTypeDefaults[column.type]\r\n .precision === precision\r\n )\r\n\r\n return false\r\n }\r\n\r\n /**\r\n * Checks if column scale is by default.\r\n */\r\n protected isDefaultColumnScale(\r\n table: Table,\r\n column: TableColumn,\r\n scale: number,\r\n ): boolean {\r\n // if table have metadata, we check if length is specified in column metadata\r\n if (this.connection.hasMetadata(table.name)) {\r\n const metadata = this.connection.getMetadata(table.name)\r\n const columnMetadata = metadata.findColumnWithDatabaseName(\r\n column.name,\r\n )\r\n if (\r\n columnMetadata &&\r\n columnMetadata.scale !== null &&\r\n columnMetadata.scale !== undefined\r\n )\r\n return false\r\n }\r\n\r\n if (\r\n this.connection.driver.dataTypeDefaults &&\r\n this.connection.driver.dataTypeDefaults[column.type] &&\r\n this.connection.driver.dataTypeDefaults[column.type].scale !==\r\n null &&\r\n this.connection.driver.dataTypeDefaults[column.type].scale !==\r\n undefined\r\n )\r\n return (\r\n this.connection.driver.dataTypeDefaults[column.type].scale ===\r\n scale\r\n )\r\n\r\n return false\r\n }\r\n\r\n /**\r\n * Executes sql used special for schema build.\r\n */\r\n protected async executeQueries(\r\n upQueries: Query | Query[],\r\n downQueries: Query | Query[],\r\n ): Promise<void> {\r\n if (InstanceChecker.isQuery(upQueries)) upQueries = [upQueries]\r\n if (InstanceChecker.isQuery(downQueries)) downQueries = [downQueries]\r\n\r\n this.sqlInMemory.upQueries.push(...upQueries)\r\n this.sqlInMemory.downQueries.push(...downQueries)\r\n\r\n // if sql-in-memory mode is enabled then simply store sql in memory and return\r\n if (this.sqlMemoryMode === true)\r\n return Promise.resolve() as Promise<any>\r\n\r\n for (const { query, parameters } of upQueries) {\r\n await this.query(query, parameters)\r\n }\r\n }\r\n\r\n /**\r\n * Generated an index name for a table and index\r\n */\r\n protected generateIndexName(\r\n table: Table | View,\r\n index: TableIndex,\r\n ): string {\r\n // new index may be passed without name. In this case we generate index name manually.\r\n return this.connection.namingStrategy.indexName(\r\n table,\r\n index.columnNames,\r\n index.where,\r\n )\r\n }\r\n}\r\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../src/query-runner/BaseQueryRunner.ts"],"names":[],"mappings":"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","file":"BaseQueryRunner.js","sourcesContent":["import { PostgresConnectionOptions } from \"../driver/postgres/PostgresConnectionOptions\"\nimport { Query } from \"../driver/Query\"\nimport { SqlInMemory } from \"../driver/SqlInMemory\"\nimport { SqlServerConnectionOptions } from \"../driver/sqlserver/SqlServerConnectionOptions\"\nimport { TableIndex } from \"../schema-builder/table/TableIndex\"\nimport { View } from \"../schema-builder/view/View\"\nimport { DataSource } from \"../data-source/DataSource\"\nimport { Table } from \"../schema-builder/table/Table\"\nimport { EntityManager } from \"../entity-manager/EntityManager\"\nimport { TableColumn } from \"../schema-builder/table/TableColumn\"\nimport { Broadcaster } from \"../subscriber/Broadcaster\"\nimport { ReplicationMode } from \"../driver/types/ReplicationMode\"\nimport { TypeORMError } from \"../error/TypeORMError\"\nimport { EntityMetadata } from \"../metadata/EntityMetadata\"\nimport { TableForeignKey } from \"../schema-builder/table/TableForeignKey\"\nimport { OrmUtils } from \"../util/OrmUtils\"\nimport { MetadataTableType } from \"../driver/types/MetadataTableType\"\nimport { InstanceChecker } from \"../util/InstanceChecker\"\n\nexport abstract class BaseQueryRunner {\n // -------------------------------------------------------------------------\n // Public Properties\n // -------------------------------------------------------------------------\n\n /**\n * Connection used by this query runner.\n */\n connection: DataSource\n\n /**\n * Entity manager working only with current query runner.\n */\n manager: EntityManager\n\n /**\n * Indicates if connection for this query runner is released.\n * Once its released, query runner cannot run queries anymore.\n */\n isReleased = false\n\n /**\n * Indicates if transaction is in progress.\n */\n isTransactionActive = false\n\n /**\n * Stores temporarily user data.\n * Useful for sharing data with subscribers.\n */\n data = {}\n\n /**\n * All synchronized tables in the database.\n */\n loadedTables: Table[] = []\n\n /**\n * All synchronized views in the database.\n */\n loadedViews: View[] = []\n\n /**\n * Broadcaster used on this query runner to broadcast entity events.\n */\n broadcaster: Broadcaster\n\n // -------------------------------------------------------------------------\n // Protected Properties\n // -------------------------------------------------------------------------\n\n /**\n * Real database connection from a connection pool used to perform queries.\n */\n protected databaseConnection: any\n\n /**\n * Indicates if special query runner mode in which sql queries won't be executed is enabled.\n */\n protected sqlMemoryMode: boolean = false\n\n /**\n * Sql-s stored if \"sql in memory\" mode is enabled.\n */\n protected sqlInMemory: SqlInMemory = new SqlInMemory()\n\n /**\n * Mode in which query runner executes.\n * Used for replication.\n * If replication is not setup its value is ignored.\n */\n protected mode: ReplicationMode\n\n /**\n * current depth of transaction.\n * for transactionDepth > 0 will use SAVEPOINT to start and commit/rollback transaction blocks\n */\n protected transactionDepth = 0\n\n private cachedTablePaths: Record<string, string> = {}\n\n // -------------------------------------------------------------------------\n // Public Abstract Methods\n // -------------------------------------------------------------------------\n\n /**\n * Executes a given SQL query.\n */\n abstract query(\n query: string,\n parameters?: any[],\n useStructuredResult?: boolean,\n ): Promise<any>\n\n // -------------------------------------------------------------------------\n // Protected Abstract Methods\n // -------------------------------------------------------------------------\n\n protected abstract loadTables(tablePaths?: string[]): Promise<Table[]>\n\n protected abstract loadViews(tablePaths?: string[]): Promise<View[]>\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Called before migrations are run.\n */\n async beforeMigration(): Promise<void> {\n // Do nothing\n }\n\n /**\n * Called after migrations are run.\n */\n async afterMigration(): Promise<void> {\n // Do nothing\n }\n\n /**\n * Loads given table's data from the database.\n */\n async getTable(tablePath: string): Promise<Table | undefined> {\n this.loadedTables = await this.loadTables([tablePath])\n return this.loadedTables.length > 0 ? this.loadedTables[0] : undefined\n }\n\n /**\n * Loads all tables (with given names) from the database.\n */\n async getTables(tableNames?: string[]): Promise<Table[]> {\n if (!tableNames) {\n // Don't cache in this case.\n // This is the new case & isn't used anywhere else anyway.\n return await this.loadTables(tableNames)\n }\n\n this.loadedTables = await this.loadTables(tableNames)\n return this.loadedTables\n }\n\n /**\n * Loads given view's data from the database.\n */\n async getView(viewPath: string): Promise<View | undefined> {\n this.loadedViews = await this.loadViews([viewPath])\n return this.loadedViews.length > 0 ? this.loadedViews[0] : undefined\n }\n\n /**\n * Loads given view's data from the database.\n */\n async getViews(viewPaths?: string[]): Promise<View[]> {\n this.loadedViews = await this.loadViews(viewPaths)\n return this.loadedViews\n }\n\n /**\n * Enables special query runner mode in which sql queries won't be executed,\n * instead they will be memorized into a special variable inside query runner.\n * You can get memorized sql using getMemorySql() method.\n */\n enableSqlMemory(): void {\n this.sqlInMemory = new SqlInMemory()\n this.sqlMemoryMode = true\n }\n\n /**\n * Disables special query runner mode in which sql queries won't be executed\n * started by calling enableSqlMemory() method.\n *\n * Previously memorized sql will be flushed.\n */\n disableSqlMemory(): void {\n this.sqlInMemory = new SqlInMemory()\n this.sqlMemoryMode = false\n }\n\n /**\n * Flushes all memorized sqls.\n */\n clearSqlMemory(): void {\n this.sqlInMemory = new SqlInMemory()\n }\n\n /**\n * Gets sql stored in the memory. Parameters in the sql are already replaced.\n */\n getMemorySql(): SqlInMemory {\n return this.sqlInMemory\n }\n\n /**\n * Executes up sql queries.\n */\n async executeMemoryUpSql(): Promise<void> {\n for (const { query, parameters } of this.sqlInMemory.upQueries) {\n await this.query(query, parameters)\n }\n }\n\n /**\n * Executes down sql queries.\n */\n async executeMemoryDownSql(): Promise<void> {\n for (const {\n query,\n parameters,\n } of this.sqlInMemory.downQueries.reverse()) {\n await this.query(query, parameters)\n }\n }\n\n getReplicationMode(): ReplicationMode {\n return this.mode\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Gets view from previously loaded views, otherwise loads it from database.\n */\n protected async getCachedView(viewName: string): Promise<View> {\n const view = this.loadedViews.find((view) => view.name === viewName)\n if (view) return view\n\n const foundViews = await this.loadViews([viewName])\n if (foundViews.length > 0) {\n this.loadedViews.push(foundViews[0])\n return foundViews[0]\n } else {\n throw new TypeORMError(`View \"${viewName}\" does not exist.`)\n }\n }\n\n /**\n * Gets table from previously loaded tables, otherwise loads it from database.\n */\n protected async getCachedTable(tableName: string): Promise<Table> {\n if (tableName in this.cachedTablePaths) {\n const tablePath = this.cachedTablePaths[tableName]\n const table = this.loadedTables.find(\n (table) => this.getTablePath(table) === tablePath,\n )\n\n if (table) {\n return table\n }\n }\n\n const foundTables = await this.loadTables([tableName])\n\n if (foundTables.length > 0) {\n const foundTablePath = this.getTablePath(foundTables[0])\n\n const cachedTable = this.loadedTables.find(\n (table) => this.getTablePath(table) === foundTablePath,\n )\n\n if (!cachedTable) {\n this.cachedTablePaths[tableName] = this.getTablePath(\n foundTables[0],\n )\n this.loadedTables.push(foundTables[0])\n return foundTables[0]\n } else {\n return cachedTable\n }\n } else {\n throw new TypeORMError(`Table \"${tableName}\" does not exist.`)\n }\n }\n\n /**\n * Replaces loaded table with given changed table.\n */\n protected replaceCachedTable(table: Table, changedTable: Table): void {\n const oldTablePath = this.getTablePath(table)\n const foundTable = this.loadedTables.find(\n (loadedTable) => this.getTablePath(loadedTable) === oldTablePath,\n )\n\n // Clean up the lookup cache..\n for (const [key, cachedPath] of Object.entries(this.cachedTablePaths)) {\n if (cachedPath === oldTablePath) {\n this.cachedTablePaths[key] = this.getTablePath(changedTable)\n }\n }\n\n if (foundTable) {\n foundTable.database = changedTable.database\n foundTable.schema = changedTable.schema\n foundTable.name = changedTable.name\n foundTable.columns = changedTable.columns\n foundTable.indices = changedTable.indices\n foundTable.foreignKeys = changedTable.foreignKeys\n foundTable.uniques = changedTable.uniques\n foundTable.checks = changedTable.checks\n foundTable.justCreated = changedTable.justCreated\n foundTable.engine = changedTable.engine\n foundTable.comment = changedTable.comment\n }\n }\n\n protected getTablePath(\n target: EntityMetadata | Table | View | TableForeignKey | string,\n ): string {\n const parsed = this.connection.driver.parseTableName(target)\n\n return this.connection.driver.buildTableName(\n parsed.tableName,\n parsed.schema,\n parsed.database,\n )\n }\n\n protected getTypeormMetadataTableName(): string {\n const options = <\n SqlServerConnectionOptions | PostgresConnectionOptions\n >this.connection.driver.options\n return this.connection.driver.buildTableName(\n this.connection.metadataTableName,\n options.schema,\n options.database,\n )\n }\n\n /**\n * Generates SQL query to select record from typeorm metadata table.\n */\n protected selectTypeormMetadataSql({\n database,\n schema,\n table,\n type,\n name,\n }: {\n database?: string\n schema?: string\n table?: string\n type: MetadataTableType\n name: string\n }): Query {\n const qb = this.connection.createQueryBuilder()\n const selectQb = qb\n .select()\n .from(this.getTypeormMetadataTableName(), \"t\")\n .where(`${qb.escape(\"type\")} = :type`, { type })\n .andWhere(`${qb.escape(\"name\")} = :name`, { name })\n\n if (database) {\n selectQb.andWhere(`${qb.escape(\"database\")} = :database`, {\n database,\n })\n }\n\n if (schema) {\n selectQb.andWhere(`${qb.escape(\"schema\")} = :schema`, { schema })\n }\n\n if (table) {\n selectQb.andWhere(`${qb.escape(\"table\")} = :table`, { table })\n }\n\n const [query, parameters] = selectQb.getQueryAndParameters()\n return new Query(query, parameters)\n }\n\n /**\n * Generates SQL query to insert a record into typeorm metadata table.\n */\n protected insertTypeormMetadataSql({\n database,\n schema,\n table,\n type,\n name,\n value,\n }: {\n database?: string\n schema?: string\n table?: string\n type: MetadataTableType\n name: string\n value?: string\n }): Query {\n const [query, parameters] = this.connection\n .createQueryBuilder()\n .insert()\n .into(this.getTypeormMetadataTableName())\n .values({\n database: database,\n schema: schema,\n table: table,\n type: type,\n name: name,\n value: value,\n })\n .getQueryAndParameters()\n\n return new Query(query, parameters)\n }\n\n /**\n * Generates SQL query to delete a record from typeorm metadata table.\n */\n protected deleteTypeormMetadataSql({\n database,\n schema,\n table,\n type,\n name,\n }: {\n database?: string\n schema?: string\n table?: string\n type: MetadataTableType\n name: string\n }): Query {\n const qb = this.connection.createQueryBuilder()\n const deleteQb = qb\n .delete()\n .from(this.getTypeormMetadataTableName())\n .where(`${qb.escape(\"type\")} = :type`, { type })\n .andWhere(`${qb.escape(\"name\")} = :name`, { name })\n\n if (database) {\n deleteQb.andWhere(`${qb.escape(\"database\")} = :database`, {\n database,\n })\n }\n\n if (schema) {\n deleteQb.andWhere(`${qb.escape(\"schema\")} = :schema`, { schema })\n }\n\n if (table) {\n deleteQb.andWhere(`${qb.escape(\"table\")} = :table`, { table })\n }\n\n const [query, parameters] = deleteQb.getQueryAndParameters()\n return new Query(query, parameters)\n }\n\n /**\n * Checks if at least one of column properties was changed.\n * Does not checks column type, length and autoincrement, because these properties changes separately.\n */\n protected isColumnChanged(\n oldColumn: TableColumn,\n newColumn: TableColumn,\n checkDefault?: boolean,\n checkComment?: boolean,\n checkEnum = true,\n ): boolean {\n // this logs need to debug issues in column change detection. Do not delete it!\n\n // console.log(\"charset ---------------\");\n // console.log(oldColumn.charset !== newColumn.charset);\n // console.log(oldColumn.charset, newColumn.charset);\n // console.log(\"collation ---------------\");\n // console.log(oldColumn.collation !== newColumn.collation);\n // console.log(oldColumn.collation, newColumn.collation);\n // console.log(\"precision ---------------\");\n // console.log(oldColumn.precision !== newColumn.precision);\n // console.log(oldColumn.precision, newColumn.precision);\n // console.log(\"scale ---------------\");\n // console.log(oldColumn.scale !== newColumn.scale);\n // console.log(oldColumn.scale, newColumn.scale);\n // console.log(\"default ---------------\");\n // console.log((checkDefault && oldColumn.default !== newColumn.default));\n // console.log(oldColumn.default, newColumn.default);\n // console.log(\"isNullable ---------------\");\n // console.log(oldColumn.isNullable !== newColumn.isNullable);\n // console.log(oldColumn.isNullable, newColumn.isNullable);\n // console.log(\"comment ---------------\");\n // console.log((checkComment && oldColumn.comment !== newColumn.comment));\n // console.log(oldColumn.comment, newColumn.comment);\n // console.log(\"enum ---------------\");\n // console.log(!OrmUtils.isArraysEqual(oldColumn.enum || [], newColumn.enum || []));\n // console.log(oldColumn.enum, newColumn.enum);\n\n return (\n oldColumn.charset !== newColumn.charset ||\n oldColumn.collation !== newColumn.collation ||\n oldColumn.precision !== newColumn.precision ||\n oldColumn.scale !== newColumn.scale ||\n oldColumn.width !== newColumn.width || // MySQL only\n oldColumn.zerofill !== newColumn.zerofill || // MySQL only\n oldColumn.unsigned !== newColumn.unsigned || // MySQL only\n oldColumn.asExpression !== newColumn.asExpression ||\n (checkDefault && oldColumn.default !== newColumn.default) ||\n oldColumn.onUpdate !== newColumn.onUpdate || // MySQL only\n oldColumn.isNullable !== newColumn.isNullable ||\n (checkComment && oldColumn.comment !== newColumn.comment) ||\n (checkEnum && this.isEnumChanged(oldColumn, newColumn))\n )\n }\n\n protected isEnumChanged(oldColumn: TableColumn, newColumn: TableColumn) {\n return !OrmUtils.isArraysEqual(\n oldColumn.enum || [],\n newColumn.enum || [],\n )\n }\n\n /**\n * Checks if column length is by default.\n */\n protected isDefaultColumnLength(\n table: Table,\n column: TableColumn,\n length: string,\n ): boolean {\n // if table have metadata, we check if length is specified in column metadata\n if (this.connection.hasMetadata(table.name)) {\n const metadata = this.connection.getMetadata(table.name)\n const columnMetadata = metadata.findColumnWithDatabaseName(\n column.name,\n )\n\n if (columnMetadata) {\n const columnMetadataLength =\n this.connection.driver.getColumnLength(columnMetadata)\n if (columnMetadataLength) return false\n }\n }\n\n if (\n this.connection.driver.dataTypeDefaults &&\n this.connection.driver.dataTypeDefaults[column.type] &&\n this.connection.driver.dataTypeDefaults[column.type].length\n ) {\n return (\n this.connection.driver.dataTypeDefaults[\n column.type\n ].length!.toString() === length.toString()\n )\n }\n\n return false\n }\n\n /**\n * Checks if column precision is by default.\n */\n protected isDefaultColumnPrecision(\n table: Table,\n column: TableColumn,\n precision: number,\n ): boolean {\n // if table have metadata, we check if length is specified in column metadata\n if (this.connection.hasMetadata(table.name)) {\n const metadata = this.connection.getMetadata(table.name)\n const columnMetadata = metadata.findColumnWithDatabaseName(\n column.name,\n )\n if (\n columnMetadata &&\n columnMetadata.precision !== null &&\n columnMetadata.precision !== undefined\n )\n return false\n }\n\n if (\n this.connection.driver.dataTypeDefaults &&\n this.connection.driver.dataTypeDefaults[column.type] &&\n this.connection.driver.dataTypeDefaults[column.type].precision !==\n null &&\n this.connection.driver.dataTypeDefaults[column.type].precision !==\n undefined\n )\n return (\n this.connection.driver.dataTypeDefaults[column.type]\n .precision === precision\n )\n\n return false\n }\n\n /**\n * Checks if column scale is by default.\n */\n protected isDefaultColumnScale(\n table: Table,\n column: TableColumn,\n scale: number,\n ): boolean {\n // if table have metadata, we check if length is specified in column metadata\n if (this.connection.hasMetadata(table.name)) {\n const metadata = this.connection.getMetadata(table.name)\n const columnMetadata = metadata.findColumnWithDatabaseName(\n column.name,\n )\n if (\n columnMetadata &&\n columnMetadata.scale !== null &&\n columnMetadata.scale !== undefined\n )\n return false\n }\n\n if (\n this.connection.driver.dataTypeDefaults &&\n this.connection.driver.dataTypeDefaults[column.type] &&\n this.connection.driver.dataTypeDefaults[column.type].scale !==\n null &&\n this.connection.driver.dataTypeDefaults[column.type].scale !==\n undefined\n )\n return (\n this.connection.driver.dataTypeDefaults[column.type].scale ===\n scale\n )\n\n return false\n }\n\n /**\n * Executes sql used special for schema build.\n */\n protected async executeQueries(\n upQueries: Query | Query[],\n downQueries: Query | Query[],\n ): Promise<void> {\n if (InstanceChecker.isQuery(upQueries)) upQueries = [upQueries]\n if (InstanceChecker.isQuery(downQueries)) downQueries = [downQueries]\n\n this.sqlInMemory.upQueries.push(...upQueries)\n this.sqlInMemory.downQueries.push(...downQueries)\n\n // if sql-in-memory mode is enabled then simply store sql in memory and return\n if (this.sqlMemoryMode === true)\n return Promise.resolve() as Promise<any>\n\n for (const { query, parameters } of upQueries) {\n await this.query(query, parameters)\n }\n }\n\n /**\n * Generated an index name for a table and index\n */\n protected generateIndexName(\n table: Table | View,\n index: TableIndex,\n ): string {\n // new index may be passed without name. In this case we generate index name manually.\n return this.connection.namingStrategy.indexName(\n table,\n index.columnNames,\n index.where,\n )\n }\n}\n"],"sourceRoot":".."}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/query-runner/QueryLock.ts"],"names":[],"mappings":";;;AAAA,MAAa,SAAS;IAAtB;QACqB,UAAK,GAAoB,EAAE,CAAA;IAuBhD,CAAC;IArBG,KAAK,CAAC,OAAO;QACT,IAAI,OAAiB,CAAA;QACrB,MAAM,cAAc,GAAG,IAAI,OAAO,CAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,CAAA;QAEhE,6CAA6C;QAC7C,MAAM,oBAAoB,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAA;QAC5C,0CAA0C;QAC1C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QAE/B,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,MAAM,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;QAC3C,CAAC;QAED,OAAO,GAAG,EAAE;YACR,OAAO,EAAE,CAAA;YAET,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;gBACtC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAA;YAC5D,CAAC;QACL,CAAC,CAAA;IACL,CAAC;CACJ;AAxBD,8BAwBC","file":"QueryLock.js","sourcesContent":["export class QueryLock {\r\n private readonly queue: Promise<void>[] = []\r\n\r\n async acquire(): Promise<() => void> {\r\n let release: Function\r\n const waitingPromise = new Promise<void>((ok) => (release = ok))\r\n\r\n // Get track of everyone we need to wait on..\r\n const otherWaitingPromises = [...this.queue]\r\n // Put ourselves onto the end of the queue\r\n this.queue.push(waitingPromise)\r\n\r\n if (otherWaitingPromises.length > 0) {\r\n await Promise.all(otherWaitingPromises)\r\n }\r\n\r\n return () => {\r\n release()\r\n\r\n if (this.queue.includes(waitingPromise)) {\r\n this.queue.splice(this.queue.indexOf(waitingPromise), 1)\r\n }\r\n }\r\n }\r\n}\r\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../src/query-runner/QueryLock.ts"],"names":[],"mappings":";;;AAAA,MAAa,SAAS;IAAtB;QACqB,UAAK,GAAoB,EAAE,CAAA;IAuBhD,CAAC;IArBG,KAAK,CAAC,OAAO;QACT,IAAI,OAAiB,CAAA;QACrB,MAAM,cAAc,GAAG,IAAI,OAAO,CAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,CAAA;QAEhE,6CAA6C;QAC7C,MAAM,oBAAoB,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAA;QAC5C,0CAA0C;QAC1C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QAE/B,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,MAAM,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;QAC3C,CAAC;QAED,OAAO,GAAG,EAAE;YACR,OAAO,EAAE,CAAA;YAET,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;gBACtC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAA;YAC5D,CAAC;QACL,CAAC,CAAA;IACL,CAAC;CACJ;AAxBD,8BAwBC","file":"QueryLock.js","sourcesContent":["export class QueryLock {\n private readonly queue: Promise<void>[] = []\n\n async acquire(): Promise<() => void> {\n let release: Function\n const waitingPromise = new Promise<void>((ok) => (release = ok))\n\n // Get track of everyone we need to wait on..\n const otherWaitingPromises = [...this.queue]\n // Put ourselves onto the end of the queue\n this.queue.push(waitingPromise)\n\n if (otherWaitingPromises.length > 0) {\n await Promise.all(otherWaitingPromises)\n }\n\n return () => {\n release()\n\n if (this.queue.includes(waitingPromise)) {\n this.queue.splice(this.queue.indexOf(waitingPromise), 1)\n }\n }\n }\n}\n"],"sourceRoot":".."}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/query-runner/QueryResult.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,MAAa,WAAW;IAAxB;QAMI;;WAEG;QACH,YAAO,GAAU,EAAE,CAAA;IAMvB,CAAC;CAAA;AAfD,kCAeC","file":"QueryResult.js","sourcesContent":["/**\r\n * Result object returned by UpdateQueryBuilder execution.\r\n */\r\nexport class QueryResult {\r\n /**\r\n * Raw SQL result returned by executed query.\r\n */\r\n raw: any\r\n\r\n /**\r\n * Rows\r\n */\r\n records: any[] = []\r\n\r\n /**\r\n * Number of affected rows/documents\r\n */\r\n affected?: number\r\n}\r\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../src/query-runner/QueryResult.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,MAAa,WAAW;IAAxB;QAMI;;WAEG;QACH,YAAO,GAAU,EAAE,CAAA;IAMvB,CAAC;CAAA;AAfD,kCAeC","file":"QueryResult.js","sourcesContent":["/**\n * Result object returned by UpdateQueryBuilder execution.\n */\nexport class QueryResult {\n /**\n * Raw SQL result returned by executed query.\n */\n raw: any\n\n /**\n * Rows\n */\n records: any[] = []\n\n /**\n * Number of affected rows/documents\n */\n affected?: number\n}\n"],"sourceRoot":".."}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/query-runner/QueryRunner.ts"],"names":[],"mappings":"","file":"QueryRunner.js","sourcesContent":["import { TableColumn } from \"../schema-builder/table/TableColumn\"\r\nimport { Table } from \"../schema-builder/table/Table\"\r\nimport { TableForeignKey } from \"../schema-builder/table/TableForeignKey\"\r\nimport { TableIndex } from \"../schema-builder/table/TableIndex\"\r\nimport { DataSource } from \"../data-source/DataSource\"\r\nimport { ReadStream } from \"../platform/PlatformTools\"\r\nimport { EntityManager } from \"../entity-manager/EntityManager\"\r\nimport { ObjectLiteral } from \"../common/ObjectLiteral\"\r\nimport { SqlInMemory } from \"../driver/SqlInMemory\"\r\nimport { TableUnique } from \"../schema-builder/table/TableUnique\"\r\nimport { View } from \"../schema-builder/view/View\"\r\nimport { Broadcaster } from \"../subscriber/Broadcaster\"\r\nimport { TableCheck } from \"../schema-builder/table/TableCheck\"\r\nimport { IsolationLevel } from \"../driver/types/IsolationLevel\"\r\nimport { TableExclusion } from \"../schema-builder/table/TableExclusion\"\r\nimport { QueryResult } from \"./QueryResult\"\r\nimport { ReplicationMode } from \"../driver/types/ReplicationMode\"\r\n\r\n/**\r\n * Runs queries on a single database connection.\r\n */\r\nexport interface QueryRunner {\r\n /**\r\n * Connection used by this query runner.\r\n */\r\n readonly connection: DataSource\r\n\r\n /**\r\n * Broadcaster used on this query runner to broadcast entity events.\r\n */\r\n readonly broadcaster: Broadcaster\r\n\r\n /**\r\n * Entity manager working only with this query runner.\r\n */\r\n readonly manager: EntityManager\r\n\r\n /**\r\n * Indicates if connection for this query runner is released.\r\n * Once its released, query runner cannot run queries anymore.\r\n */\r\n readonly isReleased: boolean\r\n\r\n /**\r\n * Indicates if transaction is in progress.\r\n */\r\n readonly isTransactionActive: boolean\r\n\r\n /**\r\n * Stores temporarily user data.\r\n * Useful for sharing data with subscribers.\r\n */\r\n data: ObjectLiteral\r\n\r\n /**\r\n * All synchronized tables in the database.\r\n *\r\n * @deprecated Call `getTables()`\r\n */\r\n loadedTables: Table[]\r\n\r\n /**\r\n * All synchronized views in the database.\r\n *\r\n * @deprecated Call `getViews()`\r\n */\r\n loadedViews: View[]\r\n\r\n /**\r\n * Creates/uses database connection from the connection pool to perform further operations.\r\n * Returns obtained database connection.\r\n */\r\n connect(): Promise<any>\r\n\r\n /**\r\n * Called before migrations are run.\r\n */\r\n beforeMigration(): Promise<void>\r\n\r\n /**\r\n * Called after migrations are run.\r\n */\r\n afterMigration(): Promise<void>\r\n\r\n /**\r\n * Releases used database connection.\r\n * You cannot use query runner methods after connection is released.\r\n */\r\n release(): Promise<void>\r\n\r\n /**\r\n * Removes all tables from the currently connected database.\r\n * Be careful with using this method and avoid using it in production or migrations\r\n * (because it can clear all your database).\r\n */\r\n clearDatabase(database?: string): Promise<void>\r\n\r\n /**\r\n * Starts transaction.\r\n */\r\n startTransaction(isolationLevel?: IsolationLevel): Promise<void>\r\n\r\n /**\r\n * Commits transaction.\r\n * Error will be thrown if transaction was not started.\r\n */\r\n commitTransaction(): Promise<void>\r\n\r\n /**\r\n * Rollbacks transaction.\r\n * Error will be thrown if transaction was not started.\r\n */\r\n rollbackTransaction(): Promise<void>\r\n\r\n /**\r\n * Executes a given SQL query and returns raw database results.\r\n */\r\n query(\r\n query: string,\r\n parameters: any[] | undefined,\r\n useStructuredResult: true,\r\n ): Promise<QueryResult>\r\n\r\n /**\r\n * Executes a given SQL query and returns raw database results.\r\n */\r\n query(query: string, parameters?: any[]): Promise<any>\r\n\r\n /**\r\n * Returns raw data stream.\r\n */\r\n stream(\r\n query: string,\r\n parameters?: any[],\r\n onEnd?: Function,\r\n onError?: Function,\r\n ): Promise<ReadStream>\r\n\r\n /**\r\n * Returns all available database names including system databases.\r\n */\r\n getDatabases(): Promise<string[]>\r\n\r\n /**\r\n * Returns all available schema names including system schemas.\r\n * If database parameter specified, returns schemas of that database.\r\n * Useful for SQLServer and Postgres only.\r\n */\r\n getSchemas(database?: string): Promise<string[]>\r\n\r\n /**\r\n * Loads a table by a given name from the database.\r\n */\r\n getTable(tablePath: string): Promise<Table | undefined>\r\n\r\n /**\r\n * Loads all tables from the database and returns them.\r\n */\r\n getTables(tablePaths?: string[]): Promise<Table[]>\r\n\r\n /**\r\n * Loads a view by a given name from the database.\r\n */\r\n getView(viewPath: string): Promise<View | undefined>\r\n\r\n /**\r\n * Loads all views from the database and returns them.\r\n */\r\n getViews(viewPaths?: string[]): Promise<View[]>\r\n\r\n /**\r\n * Returns replication mode (ex: `master` or `slave`).\r\n */\r\n getReplicationMode(): ReplicationMode\r\n\r\n /**\r\n * Checks if a database with the given name exist.\r\n */\r\n hasDatabase(database: string): Promise<boolean>\r\n\r\n /**\r\n * Loads currently using database\r\n */\r\n getCurrentDatabase(): Promise<string | undefined>\r\n\r\n /**\r\n * Checks if a schema with the given name exist.\r\n */\r\n hasSchema(schema: string): Promise<boolean>\r\n\r\n /**\r\n * Loads currently using database schema\r\n */\r\n getCurrentSchema(): Promise<string | undefined>\r\n\r\n /**\r\n * Checks if a table with the given name exist.\r\n */\r\n hasTable(table: Table | string): Promise<boolean>\r\n\r\n /**\r\n * Checks if a column exist in the table.\r\n */\r\n hasColumn(table: Table | string, columnName: string): Promise<boolean>\r\n\r\n /**\r\n * Creates a new database.\r\n */\r\n createDatabase(database: string, ifNotExist?: boolean): Promise<void>\r\n\r\n /**\r\n * Drops database.\r\n */\r\n dropDatabase(database: string, ifExist?: boolean): Promise<void>\r\n\r\n /**\r\n * Creates a new table schema.\r\n */\r\n createSchema(schemaPath: string, ifNotExist?: boolean): Promise<void>\r\n\r\n /**\r\n * Drops table schema.\r\n * For SqlServer can accept schema path (e.g. 'dbName.schemaName') as parameter.\r\n * If schema path passed, it will drop schema in specified database.\r\n */\r\n dropSchema(\r\n schemaPath: string,\r\n ifExist?: boolean,\r\n isCascade?: boolean,\r\n ): Promise<void>\r\n\r\n /**\r\n * Creates a new table.\r\n */\r\n createTable(\r\n table: Table,\r\n ifNotExist?: boolean,\r\n createForeignKeys?: boolean,\r\n createIndices?: boolean,\r\n ): Promise<void>\r\n\r\n /**\r\n * Drops a table.\r\n */\r\n dropTable(\r\n table: Table | string,\r\n ifExist?: boolean,\r\n dropForeignKeys?: boolean,\r\n dropIndices?: boolean,\r\n ): Promise<void>\r\n\r\n /**\r\n * Creates a new view.\r\n */\r\n createView(\r\n view: View,\r\n syncWithMetadata?: boolean,\r\n oldView?: View,\r\n ): Promise<void>\r\n\r\n /**\r\n * Drops a view.\r\n */\r\n dropView(view: View | string): Promise<void>\r\n\r\n /**\r\n * Renames a table.\r\n */\r\n renameTable(\r\n oldTableOrName: Table | string,\r\n newTableName: string,\r\n ): Promise<void>\r\n\r\n /**\r\n * Change table comment. Only supports MySQL and MariaDB\r\n */\r\n changeTableComment(\r\n tableOrName: Table | string,\r\n comment?: string,\r\n ): Promise<void>\r\n\r\n /**\r\n * Adds a new column.\r\n */\r\n addColumn(table: Table | string, column: TableColumn): Promise<void>\r\n\r\n /**\r\n * Adds new columns.\r\n */\r\n addColumns(table: Table | string, columns: TableColumn[]): Promise<void>\r\n\r\n /**\r\n * Renames a column.\r\n */\r\n renameColumn(\r\n table: Table | string,\r\n oldColumnOrName: TableColumn | string,\r\n newColumnOrName: TableColumn | string,\r\n ): Promise<void>\r\n\r\n /**\r\n * Changes a column in the table.\r\n */\r\n changeColumn(\r\n table: Table | string,\r\n oldColumn: TableColumn | string,\r\n newColumn: TableColumn,\r\n ): Promise<void>\r\n\r\n /**\r\n * Changes columns in the table.\r\n */\r\n changeColumns(\r\n table: Table | string,\r\n changedColumns: { oldColumn: TableColumn; newColumn: TableColumn }[],\r\n ): Promise<void>\r\n\r\n /**\r\n * Drops a column in the table.\r\n */\r\n dropColumn(\r\n table: Table | string,\r\n column: TableColumn | string,\r\n ): Promise<void>\r\n\r\n /**\r\n * Drops columns in the table.\r\n */\r\n dropColumns(\r\n table: Table | string,\r\n columns: TableColumn[] | string[],\r\n ): Promise<void>\r\n\r\n /**\r\n * Creates a new primary key.\r\n */\r\n createPrimaryKey(\r\n table: Table | string,\r\n columnNames: string[],\r\n constraintName?: string,\r\n ): Promise<void>\r\n\r\n /**\r\n * Updates composite primary keys.\r\n */\r\n updatePrimaryKeys(\r\n table: Table | string,\r\n columns: TableColumn[],\r\n ): Promise<void>\r\n\r\n /**\r\n * Drops a primary key.\r\n */\r\n dropPrimaryKey(\r\n table: Table | string,\r\n constraintName?: string,\r\n ): Promise<void>\r\n\r\n /**\r\n * Creates a new unique constraint.\r\n */\r\n createUniqueConstraint(\r\n table: Table | string,\r\n uniqueConstraint: TableUnique,\r\n ): Promise<void>\r\n\r\n /**\r\n * Creates new unique constraints.\r\n */\r\n createUniqueConstraints(\r\n table: Table | string,\r\n uniqueConstraints: TableUnique[],\r\n ): Promise<void>\r\n\r\n /**\r\n * Drops an unique constraint.\r\n */\r\n dropUniqueConstraint(\r\n table: Table | string,\r\n uniqueOrName: TableUnique | string,\r\n ): Promise<void>\r\n\r\n /**\r\n * Drops unique constraints.\r\n */\r\n dropUniqueConstraints(\r\n table: Table | string,\r\n uniqueConstraints: TableUnique[],\r\n ): Promise<void>\r\n\r\n /**\r\n * Creates a new check constraint.\r\n */\r\n createCheckConstraint(\r\n table: Table | string,\r\n checkConstraint: TableCheck,\r\n ): Promise<void>\r\n\r\n /**\r\n * Creates new check constraints.\r\n */\r\n createCheckConstraints(\r\n table: Table | string,\r\n checkConstraints: TableCheck[],\r\n ): Promise<void>\r\n\r\n /**\r\n * Drops a check constraint.\r\n */\r\n dropCheckConstraint(\r\n table: Table | string,\r\n checkOrName: TableCheck | string,\r\n ): Promise<void>\r\n\r\n /**\r\n * Drops check constraints.\r\n */\r\n dropCheckConstraints(\r\n table: Table | string,\r\n checkConstraints: TableCheck[],\r\n ): Promise<void>\r\n\r\n /**\r\n * Creates a new exclusion constraint.\r\n */\r\n createExclusionConstraint(\r\n table: Table | string,\r\n exclusionConstraint: TableExclusion,\r\n ): Promise<void>\r\n\r\n /**\r\n * Creates new exclusion constraints.\r\n */\r\n createExclusionConstraints(\r\n table: Table | string,\r\n exclusionConstraints: TableExclusion[],\r\n ): Promise<void>\r\n\r\n /**\r\n * Drops a exclusion constraint.\r\n */\r\n dropExclusionConstraint(\r\n table: Table | string,\r\n exclusionOrName: TableExclusion | string,\r\n ): Promise<void>\r\n\r\n /**\r\n * Drops exclusion constraints.\r\n */\r\n dropExclusionConstraints(\r\n table: Table | string,\r\n exclusionConstraints: TableExclusion[],\r\n ): Promise<void>\r\n\r\n /**\r\n * Creates a new foreign key.\r\n */\r\n createForeignKey(\r\n table: Table | string,\r\n foreignKey: TableForeignKey,\r\n ): Promise<void>\r\n\r\n /**\r\n * Creates new foreign keys.\r\n */\r\n createForeignKeys(\r\n table: Table | string,\r\n foreignKeys: TableForeignKey[],\r\n ): Promise<void>\r\n\r\n /**\r\n * Drops a foreign key.\r\n */\r\n dropForeignKey(\r\n table: Table | string,\r\n foreignKeyOrName: TableForeignKey | string,\r\n ): Promise<void>\r\n\r\n /**\r\n * Drops foreign keys.\r\n */\r\n dropForeignKeys(\r\n table: Table | string,\r\n foreignKeys: TableForeignKey[],\r\n ): Promise<void>\r\n\r\n /**\r\n * Creates a new index.\r\n */\r\n createIndex(table: Table | string, index: TableIndex): Promise<void>\r\n\r\n /**\r\n * Creates new indices.\r\n */\r\n createIndices(table: Table | string, indices: TableIndex[]): Promise<void>\r\n\r\n /**\r\n * Drops an index.\r\n */\r\n dropIndex(table: Table | string, index: TableIndex | string): Promise<void>\r\n\r\n /**\r\n * Drops indices.\r\n */\r\n dropIndices(table: Table | string, indices: TableIndex[]): Promise<void>\r\n\r\n /**\r\n * Clears all table contents.\r\n * Note: this operation uses SQL's TRUNCATE query which cannot be reverted in transactions.\r\n */\r\n clearTable(tableName: string): Promise<void>\r\n\r\n /**\r\n * Enables special query runner mode in which sql queries won't be executed,\r\n * instead they will be memorized into a special variable inside query runner.\r\n * You can get memorized sql using getMemorySql() method.\r\n */\r\n enableSqlMemory(): void\r\n\r\n /**\r\n * Disables special query runner mode in which sql queries won't be executed\r\n * started by calling enableSqlMemory() method.\r\n *\r\n * Previously memorized sql will be flushed.\r\n */\r\n disableSqlMemory(): void\r\n\r\n /**\r\n * Flushes all memorized sqls.\r\n */\r\n clearSqlMemory(): void\r\n\r\n /**\r\n * Gets sql stored in the memory. Parameters in the sql are already replaced.\r\n */\r\n getMemorySql(): SqlInMemory\r\n\r\n /**\r\n * Executes up sql queries.\r\n */\r\n executeMemoryUpSql(): Promise<void>\r\n\r\n /**\r\n * Executes down sql queries.\r\n */\r\n executeMemoryDownSql(): Promise<void>\r\n}\r\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../src/query-runner/QueryRunner.ts"],"names":[],"mappings":"","file":"QueryRunner.js","sourcesContent":["import { TableColumn } from \"../schema-builder/table/TableColumn\"\nimport { Table } from \"../schema-builder/table/Table\"\nimport { TableForeignKey } from \"../schema-builder/table/TableForeignKey\"\nimport { TableIndex } from \"../schema-builder/table/TableIndex\"\nimport { DataSource } from \"../data-source/DataSource\"\nimport { ReadStream } from \"../platform/PlatformTools\"\nimport { EntityManager } from \"../entity-manager/EntityManager\"\nimport { ObjectLiteral } from \"../common/ObjectLiteral\"\nimport { SqlInMemory } from \"../driver/SqlInMemory\"\nimport { TableUnique } from \"../schema-builder/table/TableUnique\"\nimport { View } from \"../schema-builder/view/View\"\nimport { Broadcaster } from \"../subscriber/Broadcaster\"\nimport { TableCheck } from \"../schema-builder/table/TableCheck\"\nimport { IsolationLevel } from \"../driver/types/IsolationLevel\"\nimport { TableExclusion } from \"../schema-builder/table/TableExclusion\"\nimport { QueryResult } from \"./QueryResult\"\nimport { ReplicationMode } from \"../driver/types/ReplicationMode\"\n\n/**\n * Runs queries on a single database connection.\n */\nexport interface QueryRunner {\n /**\n * Connection used by this query runner.\n */\n readonly connection: DataSource\n\n /**\n * Broadcaster used on this query runner to broadcast entity events.\n */\n readonly broadcaster: Broadcaster\n\n /**\n * Entity manager working only with this query runner.\n */\n readonly manager: EntityManager\n\n /**\n * Indicates if connection for this query runner is released.\n * Once its released, query runner cannot run queries anymore.\n */\n readonly isReleased: boolean\n\n /**\n * Indicates if transaction is in progress.\n */\n readonly isTransactionActive: boolean\n\n /**\n * Stores temporarily user data.\n * Useful for sharing data with subscribers.\n */\n data: ObjectLiteral\n\n /**\n * All synchronized tables in the database.\n *\n * @deprecated Call `getTables()`\n */\n loadedTables: Table[]\n\n /**\n * All synchronized views in the database.\n *\n * @deprecated Call `getViews()`\n */\n loadedViews: View[]\n\n /**\n * Creates/uses database connection from the connection pool to perform further operations.\n * Returns obtained database connection.\n */\n connect(): Promise<any>\n\n /**\n * Called before migrations are run.\n */\n beforeMigration(): Promise<void>\n\n /**\n * Called after migrations are run.\n */\n afterMigration(): Promise<void>\n\n /**\n * Releases used database connection.\n * You cannot use query runner methods after connection is released.\n */\n release(): Promise<void>\n\n /**\n * Removes all tables from the currently connected database.\n * Be careful with using this method and avoid using it in production or migrations\n * (because it can clear all your database).\n */\n clearDatabase(database?: string): Promise<void>\n\n /**\n * Starts transaction.\n */\n startTransaction(isolationLevel?: IsolationLevel): Promise<void>\n\n /**\n * Commits transaction.\n * Error will be thrown if transaction was not started.\n */\n commitTransaction(): Promise<void>\n\n /**\n * Rollbacks transaction.\n * Error will be thrown if transaction was not started.\n */\n rollbackTransaction(): Promise<void>\n\n /**\n * Executes a given SQL query and returns raw database results.\n */\n query(\n query: string,\n parameters: any[] | undefined,\n useStructuredResult: true,\n ): Promise<QueryResult>\n\n /**\n * Executes a given SQL query and returns raw database results.\n */\n query(query: string, parameters?: any[]): Promise<any>\n\n /**\n * Returns raw data stream.\n */\n stream(\n query: string,\n parameters?: any[],\n onEnd?: Function,\n onError?: Function,\n ): Promise<ReadStream>\n\n /**\n * Returns all available database names including system databases.\n */\n getDatabases(): Promise<string[]>\n\n /**\n * Returns all available schema names including system schemas.\n * If database parameter specified, returns schemas of that database.\n * Useful for SQLServer and Postgres only.\n */\n getSchemas(database?: string): Promise<string[]>\n\n /**\n * Loads a table by a given name from the database.\n */\n getTable(tablePath: string): Promise<Table | undefined>\n\n /**\n * Loads all tables from the database and returns them.\n */\n getTables(tablePaths?: string[]): Promise<Table[]>\n\n /**\n * Loads a view by a given name from the database.\n */\n getView(viewPath: string): Promise<View | undefined>\n\n /**\n * Loads all views from the database and returns them.\n */\n getViews(viewPaths?: string[]): Promise<View[]>\n\n /**\n * Returns replication mode (ex: `master` or `slave`).\n */\n getReplicationMode(): ReplicationMode\n\n /**\n * Checks if a database with the given name exist.\n */\n hasDatabase(database: string): Promise<boolean>\n\n /**\n * Loads currently using database\n */\n getCurrentDatabase(): Promise<string | undefined>\n\n /**\n * Checks if a schema with the given name exist.\n */\n hasSchema(schema: string): Promise<boolean>\n\n /**\n * Loads currently using database schema\n */\n getCurrentSchema(): Promise<string | undefined>\n\n /**\n * Checks if a table with the given name exist.\n */\n hasTable(table: Table | string): Promise<boolean>\n\n /**\n * Checks if a column exist in the table.\n */\n hasColumn(table: Table | string, columnName: string): Promise<boolean>\n\n /**\n * Creates a new database.\n */\n createDatabase(database: string, ifNotExist?: boolean): Promise<void>\n\n /**\n * Drops database.\n */\n dropDatabase(database: string, ifExist?: boolean): Promise<void>\n\n /**\n * Creates a new table schema.\n */\n createSchema(schemaPath: string, ifNotExist?: boolean): Promise<void>\n\n /**\n * Drops table schema.\n * For SqlServer can accept schema path (e.g. 'dbName.schemaName') as parameter.\n * If schema path passed, it will drop schema in specified database.\n */\n dropSchema(\n schemaPath: string,\n ifExist?: boolean,\n isCascade?: boolean,\n ): Promise<void>\n\n /**\n * Creates a new table.\n */\n createTable(\n table: Table,\n ifNotExist?: boolean,\n createForeignKeys?: boolean,\n createIndices?: boolean,\n ): Promise<void>\n\n /**\n * Drops a table.\n */\n dropTable(\n table: Table | string,\n ifExist?: boolean,\n dropForeignKeys?: boolean,\n dropIndices?: boolean,\n ): Promise<void>\n\n /**\n * Creates a new view.\n */\n createView(\n view: View,\n syncWithMetadata?: boolean,\n oldView?: View,\n ): Promise<void>\n\n /**\n * Drops a view.\n */\n dropView(view: View | string): Promise<void>\n\n /**\n * Renames a table.\n */\n renameTable(\n oldTableOrName: Table | string,\n newTableName: string,\n ): Promise<void>\n\n /**\n * Change table comment. Only supports MySQL and MariaDB\n */\n changeTableComment(\n tableOrName: Table | string,\n comment?: string,\n ): Promise<void>\n\n /**\n * Adds a new column.\n */\n addColumn(table: Table | string, column: TableColumn): Promise<void>\n\n /**\n * Adds new columns.\n */\n addColumns(table: Table | string, columns: TableColumn[]): Promise<void>\n\n /**\n * Renames a column.\n */\n renameColumn(\n table: Table | string,\n oldColumnOrName: TableColumn | string,\n newColumnOrName: TableColumn | string,\n ): Promise<void>\n\n /**\n * Changes a column in the table.\n */\n changeColumn(\n table: Table | string,\n oldColumn: TableColumn | string,\n newColumn: TableColumn,\n ): Promise<void>\n\n /**\n * Changes columns in the table.\n */\n changeColumns(\n table: Table | string,\n changedColumns: { oldColumn: TableColumn; newColumn: TableColumn }[],\n ): Promise<void>\n\n /**\n * Drops a column in the table.\n */\n dropColumn(\n table: Table | string,\n column: TableColumn | string,\n ): Promise<void>\n\n /**\n * Drops columns in the table.\n */\n dropColumns(\n table: Table | string,\n columns: TableColumn[] | string[],\n ): Promise<void>\n\n /**\n * Creates a new primary key.\n */\n createPrimaryKey(\n table: Table | string,\n columnNames: string[],\n constraintName?: string,\n ): Promise<void>\n\n /**\n * Updates composite primary keys.\n */\n updatePrimaryKeys(\n table: Table | string,\n columns: TableColumn[],\n ): Promise<void>\n\n /**\n * Drops a primary key.\n */\n dropPrimaryKey(\n table: Table | string,\n constraintName?: string,\n ): Promise<void>\n\n /**\n * Creates a new unique constraint.\n */\n createUniqueConstraint(\n table: Table | string,\n uniqueConstraint: TableUnique,\n ): Promise<void>\n\n /**\n * Creates new unique constraints.\n */\n createUniqueConstraints(\n table: Table | string,\n uniqueConstraints: TableUnique[],\n ): Promise<void>\n\n /**\n * Drops an unique constraint.\n */\n dropUniqueConstraint(\n table: Table | string,\n uniqueOrName: TableUnique | string,\n ): Promise<void>\n\n /**\n * Drops unique constraints.\n */\n dropUniqueConstraints(\n table: Table | string,\n uniqueConstraints: TableUnique[],\n ): Promise<void>\n\n /**\n * Creates a new check constraint.\n */\n createCheckConstraint(\n table: Table | string,\n checkConstraint: TableCheck,\n ): Promise<void>\n\n /**\n * Creates new check constraints.\n */\n createCheckConstraints(\n table: Table | string,\n checkConstraints: TableCheck[],\n ): Promise<void>\n\n /**\n * Drops a check constraint.\n */\n dropCheckConstraint(\n table: Table | string,\n checkOrName: TableCheck | string,\n ): Promise<void>\n\n /**\n * Drops check constraints.\n */\n dropCheckConstraints(\n table: Table | string,\n checkConstraints: TableCheck[],\n ): Promise<void>\n\n /**\n * Creates a new exclusion constraint.\n */\n createExclusionConstraint(\n table: Table | string,\n exclusionConstraint: TableExclusion,\n ): Promise<void>\n\n /**\n * Creates new exclusion constraints.\n */\n createExclusionConstraints(\n table: Table | string,\n exclusionConstraints: TableExclusion[],\n ): Promise<void>\n\n /**\n * Drops a exclusion constraint.\n */\n dropExclusionConstraint(\n table: Table | string,\n exclusionOrName: TableExclusion | string,\n ): Promise<void>\n\n /**\n * Drops exclusion constraints.\n */\n dropExclusionConstraints(\n table: Table | string,\n exclusionConstraints: TableExclusion[],\n ): Promise<void>\n\n /**\n * Creates a new foreign key.\n */\n createForeignKey(\n table: Table | string,\n foreignKey: TableForeignKey,\n ): Promise<void>\n\n /**\n * Creates new foreign keys.\n */\n createForeignKeys(\n table: Table | string,\n foreignKeys: TableForeignKey[],\n ): Promise<void>\n\n /**\n * Drops a foreign key.\n */\n dropForeignKey(\n table: Table | string,\n foreignKeyOrName: TableForeignKey | string,\n ): Promise<void>\n\n /**\n * Drops foreign keys.\n */\n dropForeignKeys(\n table: Table | string,\n foreignKeys: TableForeignKey[],\n ): Promise<void>\n\n /**\n * Creates a new index.\n */\n createIndex(table: Table | string, index: TableIndex): Promise<void>\n\n /**\n * Creates new indices.\n */\n createIndices(table: Table | string, indices: TableIndex[]): Promise<void>\n\n /**\n * Drops an index.\n */\n dropIndex(table: Table | string, index: TableIndex | string): Promise<void>\n\n /**\n * Drops indices.\n */\n dropIndices(table: Table | string, indices: TableIndex[]): Promise<void>\n\n /**\n * Clears all table contents.\n * Note: this operation uses SQL's TRUNCATE query which cannot be reverted in transactions.\n */\n clearTable(tableName: string): Promise<void>\n\n /**\n * Enables special query runner mode in which sql queries won't be executed,\n * instead they will be memorized into a special variable inside query runner.\n * You can get memorized sql using getMemorySql() method.\n */\n enableSqlMemory(): void\n\n /**\n * Disables special query runner mode in which sql queries won't be executed\n * started by calling enableSqlMemory() method.\n *\n * Previously memorized sql will be flushed.\n */\n disableSqlMemory(): void\n\n /**\n * Flushes all memorized sqls.\n */\n clearSqlMemory(): void\n\n /**\n * Gets sql stored in the memory. Parameters in the sql are already replaced.\n */\n getMemorySql(): SqlInMemory\n\n /**\n * Executes up sql queries.\n */\n executeMemoryUpSql(): Promise<void>\n\n /**\n * Executes down sql queries.\n */\n executeMemoryDownSql(): Promise<void>\n}\n"],"sourceRoot":".."}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/repository/AbstractRepository.ts"],"names":[],"mappings":";;;AAMA,4GAAwG;AACxG,wCAAmD;AACnD,0FAAsF;AAGtF;;;;;;GAMG;AACH,MAAa,kBAAkB;IAU3B,4EAA4E;IAC5E,sBAAsB;IACtB,4EAA4E;IAE5E;;;OAGG;IACH,IAAc,UAAU;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAW,CAAC,CAAA;QAC1D,IAAI,CAAC,MAAM;YACP,MAAM,IAAI,+EAAsC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QAEtE,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAS,MAAM,CAAC,CAAA;IACrD,CAAC;IAED;;;OAGG;IACH,IAAc,cAAc;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAW,CAAC,CAAA;QAC1D,IAAI,CAAC,MAAM;YACP,MAAM,IAAI,+EAAsC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QAEtE,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAS,MAAM,CAAC,CAAA;IACzD,CAAC;IAED,4EAA4E;IAC5E,oBAAoB;IACpB,4EAA4E;IAE5E;;;OAGG;IACO,kBAAkB,CAAC,KAAa;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QAC/D,IAAI,CAAC,MAAM;YACP,MAAM,IAAI,+EAAsC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QAEtE,OAAO,IAAI,CAAC,OAAO;aACd,aAAa,CAAS,MAAM,CAAC;aAC7B,kBAAkB,CAAC,KAAK,CAAC,CAAA;IAClC,CAAC;IAED;;OAEG;IACO,qBAAqB,CAC3B,MAAqB,EACrB,KAAa;QAEb,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAA;IAClE,CAAC;IAED;;OAEG;IACO,gBAAgB,CACtB,MAAqB;QAErB,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;IAC7C,CAAC;IAED;;OAEG;IACO,oBAAoB,CAC1B,MAAqB;QAErB,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAA;IACjD,CAAC;IAED,4EAA4E;IAC5E,kBAAkB;IAClB,4EAA4E;IAE5E;;;OAGG;IACK,yBAAyB,CAC7B,gBAAqB;QAErB,MAAM,4BAA4B,GAC9B,IAAA,gCAAsB,GAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE;YAC5D,OAAO,CACH,UAAU,CAAC,MAAM;gBACjB,CAAC,OAAO,gBAAgB,KAAK,UAAU;oBACnC,CAAC,CAAC,gBAAgB;oBAClB,CAAC,CAAE,gBAAwB,CAAC,WAAW,CAAC,CAC/C,CAAA;QACL,CAAC,CAAC,CAAA;QACN,IAAI,CAAC,4BAA4B;YAC7B,MAAM,IAAI,6DAA6B,CAAC,gBAAgB,CAAC,CAAA;QAE7D,OAAO,4BAA4B,CAAC,MAAM,CAAA;IAC9C,CAAC;CACJ;AA7GD,gDA6GC","file":"AbstractRepository.js","sourcesContent":["import { ObjectLiteral } from \"../common/ObjectLiteral\"\r\nimport { EntityManager } from \"../entity-manager/EntityManager\"\r\nimport { Repository } from \"./Repository\"\r\nimport { TreeRepository } from \"./TreeRepository\"\r\nimport { EntityTarget } from \"../common/EntityTarget\"\r\nimport { ObjectType } from \"../common/ObjectType\"\r\nimport { CustomRepositoryDoesNotHaveEntityError } from \"../error/CustomRepositoryDoesNotHaveEntityError\"\r\nimport { getMetadataArgsStorage } from \"../globals\"\r\nimport { CustomRepositoryNotFoundError } from \"../error/CustomRepositoryNotFoundError\"\r\nimport { SelectQueryBuilder } from \"../query-builder/SelectQueryBuilder\"\r\n\r\n/**\r\n * Provides abstract class for custom repositories that do not inherit from original orm Repository.\r\n * Contains all most-necessary methods to simplify code in the custom repository.\r\n * All methods are protected thus not exposed and it allows to create encapsulated custom repository.\r\n *\r\n * @deprecated use Repository.extend function to create a custom repository\r\n */\r\nexport class AbstractRepository<Entity extends ObjectLiteral> {\r\n // -------------------------------------------------------------------------\r\n // Protected Methods Set Dynamically\r\n // -------------------------------------------------------------------------\r\n\r\n /**\r\n * Gets entity manager that allows to perform repository operations with any entity.\r\n */\r\n protected manager: EntityManager\r\n\r\n // -------------------------------------------------------------------------\r\n // Protected Accessors\r\n // -------------------------------------------------------------------------\r\n\r\n /**\r\n * Gets the original ORM repository for the entity that is managed by this repository.\r\n * If current repository does not manage any entity, then exception will be thrown.\r\n */\r\n protected get repository(): Repository<Entity> {\r\n const target = this.getCustomRepositoryTarget(this as any)\r\n if (!target)\r\n throw new CustomRepositoryDoesNotHaveEntityError(this.constructor)\r\n\r\n return this.manager.getRepository<Entity>(target)\r\n }\r\n\r\n /**\r\n * Gets the original ORM tree repository for the entity that is managed by this repository.\r\n * If current repository does not manage any entity, then exception will be thrown.\r\n */\r\n protected get treeRepository(): TreeRepository<Entity> {\r\n const target = this.getCustomRepositoryTarget(this as any)\r\n if (!target)\r\n throw new CustomRepositoryDoesNotHaveEntityError(this.constructor)\r\n\r\n return this.manager.getTreeRepository<Entity>(target)\r\n }\r\n\r\n // -------------------------------------------------------------------------\r\n // Protected Methods\r\n // -------------------------------------------------------------------------\r\n\r\n /**\r\n * Creates a new query builder for the repository's entity that can be used to build a SQL query.\r\n * If current repository does not manage any entity, then exception will be thrown.\r\n */\r\n protected createQueryBuilder(alias: string): SelectQueryBuilder<Entity> {\r\n const target = this.getCustomRepositoryTarget(this.constructor)\r\n if (!target)\r\n throw new CustomRepositoryDoesNotHaveEntityError(this.constructor)\r\n\r\n return this.manager\r\n .getRepository<Entity>(target)\r\n .createQueryBuilder(alias)\r\n }\r\n\r\n /**\r\n * Creates a new query builder for the given entity that can be used to build a SQL query.\r\n */\r\n protected createQueryBuilderFor<T extends ObjectLiteral>(\r\n entity: ObjectType<T>,\r\n alias: string,\r\n ): SelectQueryBuilder<T> {\r\n return this.getRepositoryFor(entity).createQueryBuilder(alias)\r\n }\r\n\r\n /**\r\n * Gets the original ORM repository for the given entity class.\r\n */\r\n protected getRepositoryFor<T extends ObjectLiteral>(\r\n entity: ObjectType<T>,\r\n ): Repository<T> {\r\n return this.manager.getRepository(entity)\r\n }\r\n\r\n /**\r\n * Gets the original ORM tree repository for the given entity class.\r\n */\r\n protected getTreeRepositoryFor<T extends ObjectLiteral>(\r\n entity: ObjectType<T>,\r\n ): TreeRepository<T> {\r\n return this.manager.getTreeRepository(entity)\r\n }\r\n\r\n // -------------------------------------------------------------------------\r\n // Private Methods\r\n // -------------------------------------------------------------------------\r\n\r\n /**\r\n * Gets custom repository's managed entity.\r\n * If given custom repository does not manage any entity then undefined will be returned.\r\n */\r\n private getCustomRepositoryTarget(\r\n customRepository: any,\r\n ): EntityTarget<any> | undefined {\r\n const entityRepositoryMetadataArgs =\r\n getMetadataArgsStorage().entityRepositories.find((repository) => {\r\n return (\r\n repository.target ===\r\n (typeof customRepository === \"function\"\r\n ? customRepository\r\n : (customRepository as any).constructor)\r\n )\r\n })\r\n if (!entityRepositoryMetadataArgs)\r\n throw new CustomRepositoryNotFoundError(customRepository)\r\n\r\n return entityRepositoryMetadataArgs.entity\r\n }\r\n}\r\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../src/repository/AbstractRepository.ts"],"names":[],"mappings":";;;AAMA,4GAAwG;AACxG,wCAAmD;AACnD,0FAAsF;AAGtF;;;;;;GAMG;AACH,MAAa,kBAAkB;IAU3B,4EAA4E;IAC5E,sBAAsB;IACtB,4EAA4E;IAE5E;;;OAGG;IACH,IAAc,UAAU;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAW,CAAC,CAAA;QAC1D,IAAI,CAAC,MAAM;YACP,MAAM,IAAI,+EAAsC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QAEtE,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAS,MAAM,CAAC,CAAA;IACrD,CAAC;IAED;;;OAGG;IACH,IAAc,cAAc;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAW,CAAC,CAAA;QAC1D,IAAI,CAAC,MAAM;YACP,MAAM,IAAI,+EAAsC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QAEtE,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAS,MAAM,CAAC,CAAA;IACzD,CAAC;IAED,4EAA4E;IAC5E,oBAAoB;IACpB,4EAA4E;IAE5E;;;OAGG;IACO,kBAAkB,CAAC,KAAa;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QAC/D,IAAI,CAAC,MAAM;YACP,MAAM,IAAI,+EAAsC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QAEtE,OAAO,IAAI,CAAC,OAAO;aACd,aAAa,CAAS,MAAM,CAAC;aAC7B,kBAAkB,CAAC,KAAK,CAAC,CAAA;IAClC,CAAC;IAED;;OAEG;IACO,qBAAqB,CAC3B,MAAqB,EACrB,KAAa;QAEb,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAA;IAClE,CAAC;IAED;;OAEG;IACO,gBAAgB,CACtB,MAAqB;QAErB,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;IAC7C,CAAC;IAED;;OAEG;IACO,oBAAoB,CAC1B,MAAqB;QAErB,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAA;IACjD,CAAC;IAED,4EAA4E;IAC5E,kBAAkB;IAClB,4EAA4E;IAE5E;;;OAGG;IACK,yBAAyB,CAC7B,gBAAqB;QAErB,MAAM,4BAA4B,GAC9B,IAAA,gCAAsB,GAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE;YAC5D,OAAO,CACH,UAAU,CAAC,MAAM;gBACjB,CAAC,OAAO,gBAAgB,KAAK,UAAU;oBACnC,CAAC,CAAC,gBAAgB;oBAClB,CAAC,CAAE,gBAAwB,CAAC,WAAW,CAAC,CAC/C,CAAA;QACL,CAAC,CAAC,CAAA;QACN,IAAI,CAAC,4BAA4B;YAC7B,MAAM,IAAI,6DAA6B,CAAC,gBAAgB,CAAC,CAAA;QAE7D,OAAO,4BAA4B,CAAC,MAAM,CAAA;IAC9C,CAAC;CACJ;AA7GD,gDA6GC","file":"AbstractRepository.js","sourcesContent":["import { ObjectLiteral } from \"../common/ObjectLiteral\"\nimport { EntityManager } from \"../entity-manager/EntityManager\"\nimport { Repository } from \"./Repository\"\nimport { TreeRepository } from \"./TreeRepository\"\nimport { EntityTarget } from \"../common/EntityTarget\"\nimport { ObjectType } from \"../common/ObjectType\"\nimport { CustomRepositoryDoesNotHaveEntityError } from \"../error/CustomRepositoryDoesNotHaveEntityError\"\nimport { getMetadataArgsStorage } from \"../globals\"\nimport { CustomRepositoryNotFoundError } from \"../error/CustomRepositoryNotFoundError\"\nimport { SelectQueryBuilder } from \"../query-builder/SelectQueryBuilder\"\n\n/**\n * Provides abstract class for custom repositories that do not inherit from original orm Repository.\n * Contains all most-necessary methods to simplify code in the custom repository.\n * All methods are protected thus not exposed and it allows to create encapsulated custom repository.\n *\n * @deprecated use Repository.extend function to create a custom repository\n */\nexport class AbstractRepository<Entity extends ObjectLiteral> {\n // -------------------------------------------------------------------------\n // Protected Methods Set Dynamically\n // -------------------------------------------------------------------------\n\n /**\n * Gets entity manager that allows to perform repository operations with any entity.\n */\n protected manager: EntityManager\n\n // -------------------------------------------------------------------------\n // Protected Accessors\n // -------------------------------------------------------------------------\n\n /**\n * Gets the original ORM repository for the entity that is managed by this repository.\n * If current repository does not manage any entity, then exception will be thrown.\n */\n protected get repository(): Repository<Entity> {\n const target = this.getCustomRepositoryTarget(this as any)\n if (!target)\n throw new CustomRepositoryDoesNotHaveEntityError(this.constructor)\n\n return this.manager.getRepository<Entity>(target)\n }\n\n /**\n * Gets the original ORM tree repository for the entity that is managed by this repository.\n * If current repository does not manage any entity, then exception will be thrown.\n */\n protected get treeRepository(): TreeRepository<Entity> {\n const target = this.getCustomRepositoryTarget(this as any)\n if (!target)\n throw new CustomRepositoryDoesNotHaveEntityError(this.constructor)\n\n return this.manager.getTreeRepository<Entity>(target)\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates a new query builder for the repository's entity that can be used to build a SQL query.\n * If current repository does not manage any entity, then exception will be thrown.\n */\n protected createQueryBuilder(alias: string): SelectQueryBuilder<Entity> {\n const target = this.getCustomRepositoryTarget(this.constructor)\n if (!target)\n throw new CustomRepositoryDoesNotHaveEntityError(this.constructor)\n\n return this.manager\n .getRepository<Entity>(target)\n .createQueryBuilder(alias)\n }\n\n /**\n * Creates a new query builder for the given entity that can be used to build a SQL query.\n */\n protected createQueryBuilderFor<T extends ObjectLiteral>(\n entity: ObjectType<T>,\n alias: string,\n ): SelectQueryBuilder<T> {\n return this.getRepositoryFor(entity).createQueryBuilder(alias)\n }\n\n /**\n * Gets the original ORM repository for the given entity class.\n */\n protected getRepositoryFor<T extends ObjectLiteral>(\n entity: ObjectType<T>,\n ): Repository<T> {\n return this.manager.getRepository(entity)\n }\n\n /**\n * Gets the original ORM tree repository for the given entity class.\n */\n protected getTreeRepositoryFor<T extends ObjectLiteral>(\n entity: ObjectType<T>,\n ): TreeRepository<T> {\n return this.manager.getTreeRepository(entity)\n }\n\n // -------------------------------------------------------------------------\n // Private Methods\n // -------------------------------------------------------------------------\n\n /**\n * Gets custom repository's managed entity.\n * If given custom repository does not manage any entity then undefined will be returned.\n */\n private getCustomRepositoryTarget(\n customRepository: any,\n ): EntityTarget<any> | undefined {\n const entityRepositoryMetadataArgs =\n getMetadataArgsStorage().entityRepositories.find((repository) => {\n return (\n repository.target ===\n (typeof customRepository === \"function\"\n ? customRepository\n : (customRepository as any).constructor)\n )\n })\n if (!entityRepositoryMetadataArgs)\n throw new CustomRepositoryNotFoundError(customRepository)\n\n return entityRepositoryMetadataArgs.entity\n }\n}\n"],"sourceRoot":".."}