typeorm 0.3.21 → 0.3.22-dev.00d5639

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 (1125) 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.map +1 -1
  24. package/browser/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
  25. package/browser/container.js.map +1 -1
  26. package/browser/data-source/BaseDataSourceOptions.js.map +1 -1
  27. package/browser/data-source/DataSource.js +2 -2
  28. package/browser/data-source/DataSource.js.map +1 -1
  29. package/browser/data-source/DataSourceOptions.js.map +1 -1
  30. package/browser/data-source/index.js.map +1 -1
  31. package/browser/decorator/Check.js.map +1 -1
  32. package/browser/decorator/EntityRepository.js.map +1 -1
  33. package/browser/decorator/Exclusion.js.map +1 -1
  34. package/browser/decorator/Generated.js.map +1 -1
  35. package/browser/decorator/Index.js.map +1 -1
  36. package/browser/decorator/Unique.js.map +1 -1
  37. package/browser/decorator/columns/Column.js.map +1 -1
  38. package/browser/decorator/columns/CreateDateColumn.js.map +1 -1
  39. package/browser/decorator/columns/DeleteDateColumn.js.map +1 -1
  40. package/browser/decorator/columns/ObjectIdColumn.js.map +1 -1
  41. package/browser/decorator/columns/PrimaryColumn.js.map +1 -1
  42. package/browser/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
  43. package/browser/decorator/columns/UpdateDateColumn.js.map +1 -1
  44. package/browser/decorator/columns/VersionColumn.js.map +1 -1
  45. package/browser/decorator/columns/ViewColumn.js.map +1 -1
  46. package/browser/decorator/columns/VirtualColumn.js.map +1 -1
  47. package/browser/decorator/entity/ChildEntity.js.map +1 -1
  48. package/browser/decorator/entity/Entity.js.map +1 -1
  49. package/browser/decorator/entity/TableInheritance.js.map +1 -1
  50. package/browser/decorator/entity-view/ViewEntity.js.map +1 -1
  51. package/browser/decorator/listeners/AfterInsert.js.map +1 -1
  52. package/browser/decorator/listeners/AfterLoad.js.map +1 -1
  53. package/browser/decorator/listeners/AfterRecover.js.map +1 -1
  54. package/browser/decorator/listeners/AfterRemove.js.map +1 -1
  55. package/browser/decorator/listeners/AfterSoftRemove.js.map +1 -1
  56. package/browser/decorator/listeners/AfterUpdate.js.map +1 -1
  57. package/browser/decorator/listeners/BeforeInsert.js.map +1 -1
  58. package/browser/decorator/listeners/BeforeRecover.js.map +1 -1
  59. package/browser/decorator/listeners/BeforeRemove.js.map +1 -1
  60. package/browser/decorator/listeners/BeforeSoftRemove.js.map +1 -1
  61. package/browser/decorator/listeners/BeforeUpdate.js.map +1 -1
  62. package/browser/decorator/listeners/EventSubscriber.js.map +1 -1
  63. package/browser/decorator/options/ColumnCommonOptions.js.map +1 -1
  64. package/browser/decorator/options/ColumnEmbeddedOptions.js.map +1 -1
  65. package/browser/decorator/options/ColumnEnumOptions.js.map +1 -1
  66. package/browser/decorator/options/ColumnHstoreOptions.js.map +1 -1
  67. package/browser/decorator/options/ColumnNumericOptions.js.map +1 -1
  68. package/browser/decorator/options/ColumnOptions.js.map +1 -1
  69. package/browser/decorator/options/ColumnWithLengthOptions.js.map +1 -1
  70. package/browser/decorator/options/ColumnWithWidthOptions.js.map +1 -1
  71. package/browser/decorator/options/EntityOptions.js.map +1 -1
  72. package/browser/decorator/options/IndexOptions.js.map +1 -1
  73. package/browser/decorator/options/JoinColumnOptions.js.map +1 -1
  74. package/browser/decorator/options/JoinTableMultipleColumnsOptions.js.map +1 -1
  75. package/browser/decorator/options/JoinTableOptions.js.map +1 -1
  76. package/browser/decorator/options/PrimaryGeneratedColumnIdentityOptions.js.map +1 -1
  77. package/browser/decorator/options/PrimaryGeneratedColumnNumericOptions.js.map +1 -1
  78. package/browser/decorator/options/PrimaryGeneratedColumnUUIDOptions.js.map +1 -1
  79. package/browser/decorator/options/RelationOptions.js.map +1 -1
  80. package/browser/decorator/options/SpatialColumnOptions.js.map +1 -1
  81. package/browser/decorator/options/TransactionOptions.js.map +1 -1
  82. package/browser/decorator/options/UniqueOptions.js.map +1 -1
  83. package/browser/decorator/options/ValueTransformer.js.map +1 -1
  84. package/browser/decorator/options/ViewColumnOptions.js.map +1 -1
  85. package/browser/decorator/options/ViewEntityOptions.js.map +1 -1
  86. package/browser/decorator/options/VirtualColumnOptions.js.map +1 -1
  87. package/browser/decorator/relations/JoinColumn.js.map +1 -1
  88. package/browser/decorator/relations/JoinTable.js.map +1 -1
  89. package/browser/decorator/relations/ManyToMany.js.map +1 -1
  90. package/browser/decorator/relations/ManyToOne.js.map +1 -1
  91. package/browser/decorator/relations/OneToMany.js.map +1 -1
  92. package/browser/decorator/relations/OneToOne.js.map +1 -1
  93. package/browser/decorator/relations/RelationCount.d.ts +2 -1
  94. package/browser/decorator/relations/RelationCount.js +2 -1
  95. package/browser/decorator/relations/RelationCount.js.map +1 -1
  96. package/browser/decorator/relations/RelationId.js.map +1 -1
  97. package/browser/decorator/tree/Tree.js.map +1 -1
  98. package/browser/decorator/tree/TreeChildren.js.map +1 -1
  99. package/browser/decorator/tree/TreeLevelColumn.js.map +1 -1
  100. package/browser/decorator/tree/TreeParent.js.map +1 -1
  101. package/browser/driver/Driver.js.map +1 -1
  102. package/browser/driver/DriverFactory.js.map +1 -1
  103. package/browser/driver/DriverUtils.js +3 -3
  104. package/browser/driver/DriverUtils.js.map +1 -1
  105. package/browser/driver/Query.js.map +1 -1
  106. package/browser/driver/SqlInMemory.js.map +1 -1
  107. package/browser/driver/aurora-mysql/AuroraMysqlConnection.js.map +1 -1
  108. package/browser/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js.map +1 -1
  109. package/browser/driver/aurora-mysql/AuroraMysqlConnectionOptions.js.map +1 -1
  110. package/browser/driver/aurora-mysql/AuroraMysqlDriver.js +2 -2
  111. package/browser/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
  112. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js +7 -10
  113. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
  114. package/browser/driver/aurora-postgres/AuroraPostgresConnectionOptions.js.map +1 -1
  115. package/browser/driver/aurora-postgres/AuroraPostgresDriver.js.map +1 -1
  116. package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.js +6 -9
  117. package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.js.map +1 -1
  118. package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -1
  119. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
  120. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
  121. package/browser/driver/capacitor/CapacitorConnectionOptions.js.map +1 -1
  122. package/browser/driver/capacitor/CapacitorDriver.js.map +1 -1
  123. package/browser/driver/capacitor/CapacitorQueryRunner.js.map +1 -1
  124. package/browser/driver/cockroachdb/CockroachConnectionCredentialsOptions.js.map +1 -1
  125. package/browser/driver/cockroachdb/CockroachConnectionOptions.js.map +1 -1
  126. package/browser/driver/cockroachdb/CockroachDriver.js +2 -2
  127. package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
  128. package/browser/driver/cockroachdb/CockroachQueryRunner.js +7 -11
  129. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  130. package/browser/driver/cordova/CordovaConnectionOptions.js.map +1 -1
  131. package/browser/driver/cordova/CordovaDriver.js.map +1 -1
  132. package/browser/driver/cordova/CordovaQueryRunner.js +1 -1
  133. package/browser/driver/cordova/CordovaQueryRunner.js.map +1 -1
  134. package/browser/driver/expo/ExpoConnectionOptions.js.map +1 -1
  135. package/browser/driver/expo/ExpoDriver.js.map +1 -1
  136. package/browser/driver/expo/ExpoQueryRunner.js +1 -1
  137. package/browser/driver/expo/ExpoQueryRunner.js.map +1 -1
  138. package/browser/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  139. package/browser/driver/mongodb/MongoDriver.js.map +1 -1
  140. package/browser/driver/mongodb/MongoQueryRunner.js.map +1 -1
  141. package/browser/driver/mongodb/bson.typings.js.map +1 -1
  142. package/browser/driver/mongodb/typings.js.map +1 -1
  143. package/browser/driver/mysql/MysqlConnectionCredentialsOptions.js.map +1 -1
  144. package/browser/driver/mysql/MysqlConnectionOptions.js.map +1 -1
  145. package/browser/driver/mysql/MysqlDriver.js +2 -2
  146. package/browser/driver/mysql/MysqlDriver.js.map +1 -1
  147. package/browser/driver/mysql/MysqlQueryRunner.js +78 -81
  148. package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
  149. package/browser/driver/nativescript/NativescriptConnectionOptions.js.map +1 -1
  150. package/browser/driver/nativescript/NativescriptDriver.js.map +1 -1
  151. package/browser/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  152. package/browser/driver/oracle/OracleConnectionCredentialsOptions.js.map +1 -1
  153. package/browser/driver/oracle/OracleConnectionOptions.js.map +1 -1
  154. package/browser/driver/oracle/OracleDriver.js +2 -2
  155. package/browser/driver/oracle/OracleDriver.js.map +1 -1
  156. package/browser/driver/oracle/OracleQueryRunner.js +6 -8
  157. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  158. package/browser/driver/postgres/PostgresConnectionCredentialsOptions.js.map +1 -1
  159. package/browser/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  160. package/browser/driver/postgres/PostgresDriver.js +3 -2
  161. package/browser/driver/postgres/PostgresDriver.js.map +1 -1
  162. package/browser/driver/postgres/PostgresQueryRunner.js +7 -10
  163. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  164. package/browser/driver/react-native/ReactNativeConnectionOptions.js.map +1 -1
  165. package/browser/driver/react-native/ReactNativeDriver.js +1 -1
  166. package/browser/driver/react-native/ReactNativeDriver.js.map +1 -1
  167. package/browser/driver/react-native/ReactNativeQueryRunner.js +1 -1
  168. package/browser/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  169. package/browser/driver/sap/SapConnectionCredentialsOptions.js.map +1 -1
  170. package/browser/driver/sap/SapConnectionOptions.js.map +1 -1
  171. package/browser/driver/sap/SapDriver.d.ts +2 -1
  172. package/browser/driver/sap/SapDriver.js +19 -13
  173. package/browser/driver/sap/SapDriver.js.map +1 -1
  174. package/browser/driver/sap/SapQueryRunner.js +1 -1
  175. package/browser/driver/sap/SapQueryRunner.js.map +1 -1
  176. package/browser/driver/spanner/SpannerConnectionCredentialsOptions.js.map +1 -1
  177. package/browser/driver/spanner/SpannerConnectionOptions.js.map +1 -1
  178. package/browser/driver/spanner/SpannerDriver.js +3 -3
  179. package/browser/driver/spanner/SpannerDriver.js.map +1 -1
  180. package/browser/driver/spanner/SpannerQueryRunner.js +7 -7
  181. package/browser/driver/spanner/SpannerQueryRunner.js.map +1 -1
  182. package/browser/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
  183. package/browser/driver/sqlite/SqliteDriver.js.map +1 -1
  184. package/browser/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  185. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js +1 -1
  186. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  187. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +13 -16
  188. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  189. package/browser/driver/sqljs/SqljsConnectionOptions.js.map +1 -1
  190. package/browser/driver/sqljs/SqljsDriver.js +1 -1
  191. package/browser/driver/sqljs/SqljsDriver.js.map +1 -1
  192. package/browser/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  193. package/browser/driver/sqlserver/MssqlParameter.js.map +1 -1
  194. package/browser/driver/sqlserver/SqlServerConnectionCredentialsOptions.js.map +1 -1
  195. package/browser/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
  196. package/browser/driver/sqlserver/SqlServerDriver.js +2 -2
  197. package/browser/driver/sqlserver/SqlServerDriver.js.map +1 -1
  198. package/browser/driver/sqlserver/SqlServerQueryRunner.js +35 -36
  199. package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  200. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js.map +1 -1
  201. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryDefaultAuthentication.js.map +1 -1
  202. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js.map +1 -1
  203. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js.map +1 -1
  204. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js.map +1 -1
  205. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js.map +1 -1
  206. package/browser/driver/sqlserver/authentication/DefaultAuthentication.js.map +1 -1
  207. package/browser/driver/sqlserver/authentication/NtlmAuthentication.js.map +1 -1
  208. package/browser/driver/types/ColumnTypes.d.ts +1 -1
  209. package/browser/driver/types/ColumnTypes.js.map +1 -1
  210. package/browser/driver/types/CteCapabilities.js.map +1 -1
  211. package/browser/driver/types/DataTypeDefaults.js.map +1 -1
  212. package/browser/driver/types/DatabaseType.js.map +1 -1
  213. package/browser/driver/types/GeoJsonTypes.js.map +1 -1
  214. package/browser/driver/types/IsolationLevel.js.map +1 -1
  215. package/browser/driver/types/MappedColumnTypes.js.map +1 -1
  216. package/browser/driver/types/MetadataTableType.js.map +1 -1
  217. package/browser/driver/types/ReplicationMode.js.map +1 -1
  218. package/browser/driver/types/UpsertType.js.map +1 -1
  219. package/browser/entity-manager/EntityManager.js.map +1 -1
  220. package/browser/entity-manager/EntityManagerFactory.js.map +1 -1
  221. package/browser/entity-manager/MongoEntityManager.js +1 -1
  222. package/browser/entity-manager/MongoEntityManager.js.map +1 -1
  223. package/browser/entity-manager/SqljsEntityManager.js.map +1 -1
  224. package/browser/entity-schema/EntitySchema.js.map +1 -1
  225. package/browser/entity-schema/EntitySchemaCheckOptions.js.map +1 -1
  226. package/browser/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
  227. package/browser/entity-schema/EntitySchemaEmbeddedColumnOptions.js.map +1 -1
  228. package/browser/entity-schema/EntitySchemaEmbeddedError.js.map +1 -1
  229. package/browser/entity-schema/EntitySchemaExclusionOptions.js.map +1 -1
  230. package/browser/entity-schema/EntitySchemaIndexOptions.js.map +1 -1
  231. package/browser/entity-schema/EntitySchemaInheritanceOptions.js.map +1 -1
  232. package/browser/entity-schema/EntitySchemaOptions.js.map +1 -1
  233. package/browser/entity-schema/EntitySchemaRelationIdOptions.js.map +1 -1
  234. package/browser/entity-schema/EntitySchemaRelationOptions.js.map +1 -1
  235. package/browser/entity-schema/EntitySchemaTransformer.js.map +1 -1
  236. package/browser/entity-schema/EntitySchemaUniqueOptions.js.map +1 -1
  237. package/browser/error/AlreadyHasActiveConnectionError.js.map +1 -1
  238. package/browser/error/CannotAttachTreeChildrenEntityError.js.map +1 -1
  239. package/browser/error/CannotConnectAlreadyConnectedError.js.map +1 -1
  240. package/browser/error/CannotCreateEntityIdMapError.js.map +1 -1
  241. package/browser/error/CannotDetermineEntityError.js.map +1 -1
  242. package/browser/error/CannotExecuteNotConnectedError.js.map +1 -1
  243. package/browser/error/CannotGetEntityManagerNotConnectedError.js.map +1 -1
  244. package/browser/error/CannotReflectMethodParameterTypeError.js.map +1 -1
  245. package/browser/error/CircularRelationsError.js.map +1 -1
  246. package/browser/error/ColumnTypeUndefinedError.js.map +1 -1
  247. package/browser/error/ConnectionIsNotSetError.js.map +1 -1
  248. package/browser/error/ConnectionNotFoundError.js.map +1 -1
  249. package/browser/error/CustomRepositoryCannotInheritRepositoryError.js.map +1 -1
  250. package/browser/error/CustomRepositoryDoesNotHaveEntityError.js.map +1 -1
  251. package/browser/error/CustomRepositoryNotFoundError.js.map +1 -1
  252. package/browser/error/DataTypeNotSupportedError.js.map +1 -1
  253. package/browser/error/DriverOptionNotSetError.js.map +1 -1
  254. package/browser/error/DriverPackageNotInstalledError.js.map +1 -1
  255. package/browser/error/EntityMetadataNotFoundError.js.map +1 -1
  256. package/browser/error/EntityNotFoundError.js.map +1 -1
  257. package/browser/error/EntityPropertyNotFoundError.js.map +1 -1
  258. package/browser/error/FindRelationsNotFoundError.js.map +1 -1
  259. package/browser/error/ForbiddenTransactionModeOverrideError.js.map +1 -1
  260. package/browser/error/InitializedRelationError.js.map +1 -1
  261. package/browser/error/InsertValuesMissingError.js.map +1 -1
  262. package/browser/error/LimitOnUpdateNotSupportedError.js.map +1 -1
  263. package/browser/error/LockNotSupportedOnGivenDriverError.js.map +1 -1
  264. package/browser/error/MetadataAlreadyExistsError.js.map +1 -1
  265. package/browser/error/MetadataWithSuchNameAlreadyExistsError.js.map +1 -1
  266. package/browser/error/MissingDeleteDateColumnError.js.map +1 -1
  267. package/browser/error/MissingDriverError.js.map +1 -1
  268. package/browser/error/MissingJoinColumnError.js.map +1 -1
  269. package/browser/error/MissingJoinTableError.js.map +1 -1
  270. package/browser/error/MissingPrimaryColumnError.js.map +1 -1
  271. package/browser/error/MustBeEntityError.js.map +1 -1
  272. package/browser/error/NamingStrategyNotFoundError.js.map +1 -1
  273. package/browser/error/NestedSetMultipleRootError.js.map +1 -1
  274. package/browser/error/NoConnectionForRepositoryError.js.map +1 -1
  275. package/browser/error/NoConnectionOptionError.js.map +1 -1
  276. package/browser/error/NoNeedToReleaseEntityManagerError.js.map +1 -1
  277. package/browser/error/NoVersionOrUpdateDateColumnError.js.map +1 -1
  278. package/browser/error/OffsetWithoutLimitNotSupportedError.js.map +1 -1
  279. package/browser/error/OptimisticLockCanNotBeUsedError.js.map +1 -1
  280. package/browser/error/OptimisticLockVersionMismatchError.js.map +1 -1
  281. package/browser/error/PersistedEntityNotFoundError.js.map +1 -1
  282. package/browser/error/PessimisticLockTransactionRequiredError.js.map +1 -1
  283. package/browser/error/PrimaryColumnCannotBeNullableError.js.map +1 -1
  284. package/browser/error/QueryFailedError.js.map +1 -1
  285. package/browser/error/QueryRunnerAlreadyReleasedError.js.map +1 -1
  286. package/browser/error/QueryRunnerProviderAlreadyReleasedError.js.map +1 -1
  287. package/browser/error/RepositoryNotTreeError.js.map +1 -1
  288. package/browser/error/ReturningStatementNotSupportedError.js.map +1 -1
  289. package/browser/error/SubjectRemovedAndUpdatedError.js.map +1 -1
  290. package/browser/error/SubjectWithoutIdentifierError.js.map +1 -1
  291. package/browser/error/TransactionAlreadyStartedError.js.map +1 -1
  292. package/browser/error/TransactionNotStartedError.js.map +1 -1
  293. package/browser/error/TreeRepositoryNotSupportedError.js.map +1 -1
  294. package/browser/error/TypeORMError.js.map +1 -1
  295. package/browser/error/UpdateValuesMissingError.js.map +1 -1
  296. package/browser/error/UsingJoinColumnIsNotAllowedError.js.map +1 -1
  297. package/browser/error/UsingJoinColumnOnlyOnOneSideAllowedError.js.map +1 -1
  298. package/browser/error/UsingJoinTableIsNotAllowedError.js.map +1 -1
  299. package/browser/error/UsingJoinTableOnlyOnOneSideAllowedError.js.map +1 -1
  300. package/browser/error/index.js.map +1 -1
  301. package/browser/find-options/EqualOperator.js.map +1 -1
  302. package/browser/find-options/FindManyOptions.js.map +1 -1
  303. package/browser/find-options/FindOneOptions.js.map +1 -1
  304. package/browser/find-options/FindOperator.js.map +1 -1
  305. package/browser/find-options/FindOperatorType.js.map +1 -1
  306. package/browser/find-options/FindOptionsOrder.js.map +1 -1
  307. package/browser/find-options/FindOptionsRelations.js.map +1 -1
  308. package/browser/find-options/FindOptionsSelect.js.map +1 -1
  309. package/browser/find-options/FindOptionsUtils.js +1 -1
  310. package/browser/find-options/FindOptionsUtils.js.map +1 -1
  311. package/browser/find-options/FindOptionsWhere.js.map +1 -1
  312. package/browser/find-options/FindTreeOptions.js.map +1 -1
  313. package/browser/find-options/JoinOptions.js.map +1 -1
  314. package/browser/find-options/OrderByCondition.js.map +1 -1
  315. package/browser/find-options/mongodb/MongoFindManyOptions.js.map +1 -1
  316. package/browser/find-options/mongodb/MongoFindOneOptions.js.map +1 -1
  317. package/browser/find-options/operator/And.js.map +1 -1
  318. package/browser/find-options/operator/Any.js.map +1 -1
  319. package/browser/find-options/operator/ArrayContainedBy.js.map +1 -1
  320. package/browser/find-options/operator/ArrayContains.js.map +1 -1
  321. package/browser/find-options/operator/ArrayOverlap.js.map +1 -1
  322. package/browser/find-options/operator/Between.js.map +1 -1
  323. package/browser/find-options/operator/Equal.js.map +1 -1
  324. package/browser/find-options/operator/ILike.js.map +1 -1
  325. package/browser/find-options/operator/In.js.map +1 -1
  326. package/browser/find-options/operator/IsNull.js.map +1 -1
  327. package/browser/find-options/operator/JsonContains.js.map +1 -1
  328. package/browser/find-options/operator/LessThan.js.map +1 -1
  329. package/browser/find-options/operator/LessThanOrEqual.js.map +1 -1
  330. package/browser/find-options/operator/Like.js.map +1 -1
  331. package/browser/find-options/operator/MoreThan.js.map +1 -1
  332. package/browser/find-options/operator/MoreThanOrEqual.js.map +1 -1
  333. package/browser/find-options/operator/Not.js.map +1 -1
  334. package/browser/find-options/operator/Or.js.map +1 -1
  335. package/browser/find-options/operator/Raw.js.map +1 -1
  336. package/browser/globals.js.map +1 -1
  337. package/browser/index.js.map +1 -1
  338. package/browser/logger/AbstractLogger.js.map +1 -1
  339. package/browser/logger/AdvancedConsoleLogger.js +1 -1
  340. package/browser/logger/AdvancedConsoleLogger.js.map +1 -1
  341. package/browser/logger/DebugLogger.js +1 -1
  342. package/browser/logger/DebugLogger.js.map +1 -1
  343. package/browser/logger/FileLogger.js +1 -1
  344. package/browser/logger/FileLogger.js.map +1 -1
  345. package/browser/logger/Logger.js.map +1 -1
  346. package/browser/logger/LoggerFactory.js.map +1 -1
  347. package/browser/logger/LoggerOptions.js.map +1 -1
  348. package/browser/logger/SimpleConsoleLogger.js +1 -1
  349. package/browser/logger/SimpleConsoleLogger.js.map +1 -1
  350. package/browser/metadata/CheckMetadata.js.map +1 -1
  351. package/browser/metadata/ColumnMetadata.js +1 -1
  352. package/browser/metadata/ColumnMetadata.js.map +1 -1
  353. package/browser/metadata/EmbeddedMetadata.js +1 -1
  354. package/browser/metadata/EmbeddedMetadata.js.map +1 -1
  355. package/browser/metadata/EntityListenerMetadata.js.map +1 -1
  356. package/browser/metadata/EntityMetadata.js.map +1 -1
  357. package/browser/metadata/ExclusionMetadata.js.map +1 -1
  358. package/browser/metadata/ForeignKeyMetadata.js.map +1 -1
  359. package/browser/metadata/IndexMetadata.js.map +1 -1
  360. package/browser/metadata/RelationCountMetadata.js.map +1 -1
  361. package/browser/metadata/RelationIdMetadata.js.map +1 -1
  362. package/browser/metadata/RelationMetadata.js.map +1 -1
  363. package/browser/metadata/UniqueMetadata.js.map +1 -1
  364. package/browser/metadata/types/ClosureTreeOptions.js.map +1 -1
  365. package/browser/metadata/types/DeferrableType.js.map +1 -1
  366. package/browser/metadata/types/EventListenerTypes.js.map +1 -1
  367. package/browser/metadata/types/OnDeleteType.js.map +1 -1
  368. package/browser/metadata/types/OnUpdateType.js.map +1 -1
  369. package/browser/metadata/types/PropertyTypeInFunction.js.map +1 -1
  370. package/browser/metadata/types/RelationTypeInFunction.js.map +1 -1
  371. package/browser/metadata/types/RelationTypes.js.map +1 -1
  372. package/browser/metadata/types/TableTypes.js.map +1 -1
  373. package/browser/metadata/types/TreeTypes.js.map +1 -1
  374. package/browser/metadata-args/CheckMetadataArgs.js.map +1 -1
  375. package/browser/metadata-args/ColumnMetadataArgs.js.map +1 -1
  376. package/browser/metadata-args/DiscriminatorValueMetadataArgs.js.map +1 -1
  377. package/browser/metadata-args/EmbeddedMetadataArgs.js.map +1 -1
  378. package/browser/metadata-args/EntityListenerMetadataArgs.js.map +1 -1
  379. package/browser/metadata-args/EntityRepositoryMetadataArgs.js.map +1 -1
  380. package/browser/metadata-args/EntitySubscriberMetadataArgs.js.map +1 -1
  381. package/browser/metadata-args/ExclusionMetadataArgs.js.map +1 -1
  382. package/browser/metadata-args/GeneratedMetadataArgs.js.map +1 -1
  383. package/browser/metadata-args/IndexMetadataArgs.js.map +1 -1
  384. package/browser/metadata-args/InheritanceMetadataArgs.js.map +1 -1
  385. package/browser/metadata-args/JoinColumnMetadataArgs.js.map +1 -1
  386. package/browser/metadata-args/JoinTableMetadataArgs.js.map +1 -1
  387. package/browser/metadata-args/MetadataArgsStorage.js.map +1 -1
  388. package/browser/metadata-args/NamingStrategyMetadataArgs.js.map +1 -1
  389. package/browser/metadata-args/RelationCountMetadataArgs.js.map +1 -1
  390. package/browser/metadata-args/RelationIdMetadataArgs.js.map +1 -1
  391. package/browser/metadata-args/RelationMetadataArgs.js.map +1 -1
  392. package/browser/metadata-args/TableMetadataArgs.js.map +1 -1
  393. package/browser/metadata-args/TransactionEntityMetadataArgs.js.map +1 -1
  394. package/browser/metadata-args/TransactionRepositoryMetadataArgs.js.map +1 -1
  395. package/browser/metadata-args/TreeMetadataArgs.js.map +1 -1
  396. package/browser/metadata-args/UniqueMetadataArgs.js.map +1 -1
  397. package/browser/metadata-args/types/ColumnMode.js.map +1 -1
  398. package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -1
  399. package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  400. package/browser/metadata-builder/EntityMetadataValidator.js.map +1 -1
  401. package/browser/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  402. package/browser/metadata-builder/MetadataUtils.js.map +1 -1
  403. package/browser/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
  404. package/browser/migration/Migration.js.map +1 -1
  405. package/browser/migration/MigrationExecutor.js +2 -2
  406. package/browser/migration/MigrationExecutor.js.map +1 -1
  407. package/browser/migration/MigrationInterface.js.map +1 -1
  408. package/browser/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  409. package/browser/naming-strategy/LegacyOracleNamingStrategy.js.map +1 -1
  410. package/browser/naming-strategy/NamingStrategyInterface.js.map +1 -1
  411. package/browser/persistence/EntityPersistExecutor.js +2 -2
  412. package/browser/persistence/EntityPersistExecutor.js.map +1 -1
  413. package/browser/persistence/Subject.js.map +1 -1
  414. package/browser/persistence/SubjectChangeMap.js.map +1 -1
  415. package/browser/persistence/SubjectChangedColumnsComputer.js.map +1 -1
  416. package/browser/persistence/SubjectDatabaseEntityLoader.js +1 -1
  417. package/browser/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  418. package/browser/persistence/SubjectExecutor.js +1 -1
  419. package/browser/persistence/SubjectExecutor.js.map +1 -1
  420. package/browser/persistence/SubjectTopologicalSorter.js +5 -5
  421. package/browser/persistence/SubjectTopologicalSorter.js.map +1 -1
  422. package/browser/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
  423. package/browser/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
  424. package/browser/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
  425. package/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js +1 -1
  426. package/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -1
  427. package/browser/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
  428. package/browser/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
  429. package/browser/persistence/tree/NestedSetSubjectExecutor.js +2 -2
  430. package/browser/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
  431. package/browser/platform/BrowserConnectionOptionsReaderDummy.js.map +1 -1
  432. package/browser/platform/BrowserDirectoryExportedClassesLoader.js.map +1 -1
  433. package/browser/platform/BrowserDisabledDriversDummy.js.map +1 -1
  434. package/browser/platform/BrowserFileLoggerDummy.js.map +1 -1
  435. package/browser/platform/BrowserPlatformTools.js.map +1 -1
  436. package/browser/platform/PlatformTools.js.map +1 -1
  437. package/browser/query-builder/Alias.js.map +1 -1
  438. package/browser/query-builder/Brackets.js.map +1 -1
  439. package/browser/query-builder/DeleteQueryBuilder.js.map +1 -1
  440. package/browser/query-builder/InsertOrUpdateOptions.js.map +1 -1
  441. package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
  442. package/browser/query-builder/JoinAttribute.js +2 -2
  443. package/browser/query-builder/JoinAttribute.js.map +1 -1
  444. package/browser/query-builder/JoinOptions.js.map +1 -1
  445. package/browser/query-builder/NotBrackets.js.map +1 -1
  446. package/browser/query-builder/QueryBuilder.js +2 -2
  447. package/browser/query-builder/QueryBuilder.js.map +1 -1
  448. package/browser/query-builder/QueryBuilderCte.js.map +1 -1
  449. package/browser/query-builder/QueryBuilderUtils.js.map +1 -1
  450. package/browser/query-builder/QueryExpressionMap.js.map +1 -1
  451. package/browser/query-builder/QueryPartialEntity.js.map +1 -1
  452. package/browser/query-builder/RelationIdLoader.js +5 -4
  453. package/browser/query-builder/RelationIdLoader.js.map +1 -1
  454. package/browser/query-builder/RelationLoader.js.map +1 -1
  455. package/browser/query-builder/RelationQueryBuilder.js.map +1 -1
  456. package/browser/query-builder/RelationRemover.js.map +1 -1
  457. package/browser/query-builder/RelationUpdater.js.map +1 -1
  458. package/browser/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
  459. package/browser/query-builder/SelectQuery.js.map +1 -1
  460. package/browser/query-builder/SelectQueryBuilder.js +27 -14
  461. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  462. package/browser/query-builder/SelectQueryBuilderOption.js.map +1 -1
  463. package/browser/query-builder/SoftDeleteQueryBuilder.js +1 -1
  464. package/browser/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  465. package/browser/query-builder/UpdateQueryBuilder.js +3 -3
  466. package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
  467. package/browser/query-builder/WhereClause.js.map +1 -1
  468. package/browser/query-builder/WhereExpressionBuilder.js.map +1 -1
  469. package/browser/query-builder/index.js.map +1 -1
  470. package/browser/query-builder/relation-count/RelationCountAttribute.js.map +1 -1
  471. package/browser/query-builder/relation-count/RelationCountLoadResult.js.map +1 -1
  472. package/browser/query-builder/relation-count/RelationCountLoader.js.map +1 -1
  473. package/browser/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js.map +1 -1
  474. package/browser/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
  475. package/browser/query-builder/relation-id/RelationIdLoadResult.js.map +1 -1
  476. package/browser/query-builder/relation-id/RelationIdLoader.js.map +1 -1
  477. package/browser/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js.map +1 -1
  478. package/browser/query-builder/result/DeleteResult.js.map +1 -1
  479. package/browser/query-builder/result/InsertResult.js.map +1 -1
  480. package/browser/query-builder/result/UpdateResult.js.map +1 -1
  481. package/browser/query-builder/transformer/DocumentToEntityTransformer.js.map +1 -1
  482. package/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
  483. package/browser/query-builder/transformer/PlainObjectToNewEntityTransformer.js.map +1 -1
  484. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js +2 -2
  485. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  486. package/browser/query-runner/BaseQueryRunner.js.map +1 -1
  487. package/browser/query-runner/QueryLock.js.map +1 -1
  488. package/browser/query-runner/QueryResult.js.map +1 -1
  489. package/browser/query-runner/QueryRunner.js.map +1 -1
  490. package/browser/repository/AbstractRepository.js.map +1 -1
  491. package/browser/repository/BaseEntity.js.map +1 -1
  492. package/browser/repository/EntityId.js.map +1 -1
  493. package/browser/repository/FindTreesOptions.js.map +1 -1
  494. package/browser/repository/MongoRepository.js.map +1 -1
  495. package/browser/repository/RemoveOptions.js.map +1 -1
  496. package/browser/repository/Repository.js.map +1 -1
  497. package/browser/repository/SaveOptions.js.map +1 -1
  498. package/browser/repository/TreeRepository.js.map +1 -1
  499. package/browser/repository/UpsertOptions.js.map +1 -1
  500. package/browser/schema-builder/MongoSchemaBuilder.js.map +1 -1
  501. package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  502. package/browser/schema-builder/SchemaBuilder.js.map +1 -1
  503. package/browser/schema-builder/options/TableCheckOptions.js.map +1 -1
  504. package/browser/schema-builder/options/TableColumnOptions.js.map +1 -1
  505. package/browser/schema-builder/options/TableExclusionOptions.js.map +1 -1
  506. package/browser/schema-builder/options/TableForeignKeyOptions.js.map +1 -1
  507. package/browser/schema-builder/options/TableIndexOptions.js.map +1 -1
  508. package/browser/schema-builder/options/TableOptions.js.map +1 -1
  509. package/browser/schema-builder/options/TableUniqueOptions.js.map +1 -1
  510. package/browser/schema-builder/options/ViewOptions.js.map +1 -1
  511. package/browser/schema-builder/table/Table.js.map +1 -1
  512. package/browser/schema-builder/table/TableCheck.js.map +1 -1
  513. package/browser/schema-builder/table/TableColumn.js.map +1 -1
  514. package/browser/schema-builder/table/TableExclusion.js.map +1 -1
  515. package/browser/schema-builder/table/TableForeignKey.js.map +1 -1
  516. package/browser/schema-builder/table/TableIndex.js.map +1 -1
  517. package/browser/schema-builder/table/TableUnique.js.map +1 -1
  518. package/browser/schema-builder/util/TableUtils.js.map +1 -1
  519. package/browser/schema-builder/util/ViewUtils.js.map +1 -1
  520. package/browser/schema-builder/view/View.js.map +1 -1
  521. package/browser/subscriber/Broadcaster.js.map +1 -1
  522. package/browser/subscriber/BroadcasterResult.js.map +1 -1
  523. package/browser/subscriber/EntitySubscriberInterface.js.map +1 -1
  524. package/browser/subscriber/event/InsertEvent.js.map +1 -1
  525. package/browser/subscriber/event/LoadEvent.js.map +1 -1
  526. package/browser/subscriber/event/QueryEvent.js.map +1 -1
  527. package/browser/subscriber/event/RecoverEvent.js.map +1 -1
  528. package/browser/subscriber/event/RemoveEvent.js.map +1 -1
  529. package/browser/subscriber/event/SoftRemoveEvent.js.map +1 -1
  530. package/browser/subscriber/event/TransactionCommitEvent.js.map +1 -1
  531. package/browser/subscriber/event/TransactionRollbackEvent.js.map +1 -1
  532. package/browser/subscriber/event/TransactionStartEvent.js.map +1 -1
  533. package/browser/subscriber/event/UpdateEvent.js.map +1 -1
  534. package/browser/util/ApplyValueTransformers.js.map +1 -1
  535. package/browser/util/DateUtils.js.map +1 -1
  536. package/browser/util/DepGraph.js +13 -13
  537. package/browser/util/DepGraph.js.map +1 -1
  538. package/browser/util/DirectoryExportedClassesLoader.js +2 -2
  539. package/browser/util/DirectoryExportedClassesLoader.js.map +1 -1
  540. package/browser/util/ImportUtils.js.map +1 -1
  541. package/browser/util/InstanceChecker.js.map +1 -1
  542. package/browser/util/ObjectUtils.d.ts +2 -2
  543. package/browser/util/ObjectUtils.js.map +1 -1
  544. package/browser/util/OrmUtils.js +4 -4
  545. package/browser/util/OrmUtils.js.map +1 -1
  546. package/browser/util/PathUtils.js.map +1 -1
  547. package/browser/util/RandomGenerator.js +6 -6
  548. package/browser/util/RandomGenerator.js.map +1 -1
  549. package/browser/util/StringUtils.js.map +1 -1
  550. package/browser/util/TreeRepositoryUtils.js.map +1 -1
  551. package/browser/util/VersionUtils.js.map +1 -1
  552. package/browser/util/escapeRegExp.d.ts +1 -1
  553. package/browser/util/escapeRegExp.js.map +1 -1
  554. package/cache/DbQueryResultCache.js +1 -1
  555. package/cache/DbQueryResultCache.js.map +1 -1
  556. package/cache/QueryResultCache.js.map +1 -1
  557. package/cache/QueryResultCacheFactory.js.map +1 -1
  558. package/cache/QueryResultCacheOptions.js.map +1 -1
  559. package/cache/RedisQueryResultCache.js.map +1 -1
  560. package/cli-ts-node-commonjs.js.map +1 -1
  561. package/cli-ts-node-esm.js.map +1 -1
  562. package/cli.js.map +1 -1
  563. package/commands/CacheClearCommand.js.map +1 -1
  564. package/commands/CommandUtils.js +1 -0
  565. package/commands/CommandUtils.js.map +1 -1
  566. package/commands/EntityCreateCommand.js +6 -6
  567. package/commands/EntityCreateCommand.js.map +1 -1
  568. package/commands/InitCommand.js +316 -322
  569. package/commands/InitCommand.js.map +1 -1
  570. package/commands/MigrationCreateCommand.js +20 -22
  571. package/commands/MigrationCreateCommand.js.map +1 -1
  572. package/commands/MigrationGenerateCommand.js +29 -31
  573. package/commands/MigrationGenerateCommand.js.map +1 -1
  574. package/commands/MigrationRevertCommand.js.map +1 -1
  575. package/commands/MigrationRunCommand.js.map +1 -1
  576. package/commands/MigrationShowCommand.js.map +1 -1
  577. package/commands/QueryCommand.js.map +1 -1
  578. package/commands/SchemaDropCommand.js.map +1 -1
  579. package/commands/SchemaLogCommand.js.map +1 -1
  580. package/commands/SchemaSyncCommand.js.map +1 -1
  581. package/commands/SubscriberCreateCommand.js +6 -6
  582. package/commands/SubscriberCreateCommand.js.map +1 -1
  583. package/commands/VersionCommand.js.map +1 -1
  584. package/common/DeepPartial.js.map +1 -1
  585. package/common/EntityTarget.js.map +1 -1
  586. package/common/MixedList.js.map +1 -1
  587. package/common/NonNever.js.map +1 -1
  588. package/common/ObjectLiteral.js.map +1 -1
  589. package/common/ObjectType.js.map +1 -1
  590. package/common/PickKeysByType.js.map +1 -1
  591. package/common/RelationType.js.map +1 -1
  592. package/connection/BaseConnectionOptions.js.map +1 -1
  593. package/connection/Connection.js.map +1 -1
  594. package/connection/ConnectionManager.js.map +1 -1
  595. package/connection/ConnectionMetadataBuilder.js.map +1 -1
  596. package/connection/ConnectionOptions.js.map +1 -1
  597. package/connection/ConnectionOptionsReader.js.map +1 -1
  598. package/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
  599. package/container.js.map +1 -1
  600. package/data-source/BaseDataSourceOptions.js.map +1 -1
  601. package/data-source/DataSource.js +2 -2
  602. package/data-source/DataSource.js.map +1 -1
  603. package/data-source/DataSourceOptions.js.map +1 -1
  604. package/data-source/index.js.map +1 -1
  605. package/decorator/Check.js.map +1 -1
  606. package/decorator/EntityRepository.js.map +1 -1
  607. package/decorator/Exclusion.js.map +1 -1
  608. package/decorator/Generated.js.map +1 -1
  609. package/decorator/Index.js.map +1 -1
  610. package/decorator/Unique.js.map +1 -1
  611. package/decorator/columns/Column.js.map +1 -1
  612. package/decorator/columns/CreateDateColumn.js.map +1 -1
  613. package/decorator/columns/DeleteDateColumn.js.map +1 -1
  614. package/decorator/columns/ObjectIdColumn.js.map +1 -1
  615. package/decorator/columns/PrimaryColumn.js.map +1 -1
  616. package/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
  617. package/decorator/columns/UpdateDateColumn.js.map +1 -1
  618. package/decorator/columns/VersionColumn.js.map +1 -1
  619. package/decorator/columns/ViewColumn.js.map +1 -1
  620. package/decorator/columns/VirtualColumn.js.map +1 -1
  621. package/decorator/entity/ChildEntity.js.map +1 -1
  622. package/decorator/entity/Entity.js.map +1 -1
  623. package/decorator/entity/TableInheritance.js.map +1 -1
  624. package/decorator/entity-view/ViewEntity.js.map +1 -1
  625. package/decorator/listeners/AfterInsert.js.map +1 -1
  626. package/decorator/listeners/AfterLoad.js.map +1 -1
  627. package/decorator/listeners/AfterRecover.js.map +1 -1
  628. package/decorator/listeners/AfterRemove.js.map +1 -1
  629. package/decorator/listeners/AfterSoftRemove.js.map +1 -1
  630. package/decorator/listeners/AfterUpdate.js.map +1 -1
  631. package/decorator/listeners/BeforeInsert.js.map +1 -1
  632. package/decorator/listeners/BeforeRecover.js.map +1 -1
  633. package/decorator/listeners/BeforeRemove.js.map +1 -1
  634. package/decorator/listeners/BeforeSoftRemove.js.map +1 -1
  635. package/decorator/listeners/BeforeUpdate.js.map +1 -1
  636. package/decorator/listeners/EventSubscriber.js.map +1 -1
  637. package/decorator/options/ColumnCommonOptions.js.map +1 -1
  638. package/decorator/options/ColumnEmbeddedOptions.js.map +1 -1
  639. package/decorator/options/ColumnEnumOptions.js.map +1 -1
  640. package/decorator/options/ColumnHstoreOptions.js.map +1 -1
  641. package/decorator/options/ColumnNumericOptions.js.map +1 -1
  642. package/decorator/options/ColumnOptions.js.map +1 -1
  643. package/decorator/options/ColumnWithLengthOptions.js.map +1 -1
  644. package/decorator/options/ColumnWithWidthOptions.js.map +1 -1
  645. package/decorator/options/EntityOptions.js.map +1 -1
  646. package/decorator/options/IndexOptions.js.map +1 -1
  647. package/decorator/options/JoinColumnOptions.js.map +1 -1
  648. package/decorator/options/JoinTableMultipleColumnsOptions.js.map +1 -1
  649. package/decorator/options/JoinTableOptions.js.map +1 -1
  650. package/decorator/options/PrimaryGeneratedColumnIdentityOptions.js.map +1 -1
  651. package/decorator/options/PrimaryGeneratedColumnNumericOptions.js.map +1 -1
  652. package/decorator/options/PrimaryGeneratedColumnUUIDOptions.js.map +1 -1
  653. package/decorator/options/RelationOptions.js.map +1 -1
  654. package/decorator/options/SpatialColumnOptions.js.map +1 -1
  655. package/decorator/options/TransactionOptions.js.map +1 -1
  656. package/decorator/options/UniqueOptions.js.map +1 -1
  657. package/decorator/options/ValueTransformer.js.map +1 -1
  658. package/decorator/options/ViewColumnOptions.js.map +1 -1
  659. package/decorator/options/ViewEntityOptions.js.map +1 -1
  660. package/decorator/options/VirtualColumnOptions.js.map +1 -1
  661. package/decorator/relations/JoinColumn.js.map +1 -1
  662. package/decorator/relations/JoinTable.js.map +1 -1
  663. package/decorator/relations/ManyToMany.js.map +1 -1
  664. package/decorator/relations/ManyToOne.js.map +1 -1
  665. package/decorator/relations/OneToMany.js.map +1 -1
  666. package/decorator/relations/OneToOne.js.map +1 -1
  667. package/decorator/relations/RelationCount.d.ts +2 -1
  668. package/decorator/relations/RelationCount.js +2 -1
  669. package/decorator/relations/RelationCount.js.map +1 -1
  670. package/decorator/relations/RelationId.js.map +1 -1
  671. package/decorator/tree/Tree.js.map +1 -1
  672. package/decorator/tree/TreeChildren.js.map +1 -1
  673. package/decorator/tree/TreeLevelColumn.js.map +1 -1
  674. package/decorator/tree/TreeParent.js.map +1 -1
  675. package/driver/Driver.js.map +1 -1
  676. package/driver/DriverFactory.js.map +1 -1
  677. package/driver/DriverUtils.js +3 -3
  678. package/driver/DriverUtils.js.map +1 -1
  679. package/driver/Query.js.map +1 -1
  680. package/driver/SqlInMemory.js.map +1 -1
  681. package/driver/aurora-mysql/AuroraMysqlConnection.js.map +1 -1
  682. package/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js.map +1 -1
  683. package/driver/aurora-mysql/AuroraMysqlConnectionOptions.js.map +1 -1
  684. package/driver/aurora-mysql/AuroraMysqlDriver.js +2 -2
  685. package/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
  686. package/driver/aurora-mysql/AuroraMysqlQueryRunner.js +7 -10
  687. package/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
  688. package/driver/aurora-postgres/AuroraPostgresConnectionOptions.js.map +1 -1
  689. package/driver/aurora-postgres/AuroraPostgresDriver.js.map +1 -1
  690. package/driver/aurora-postgres/AuroraPostgresQueryRunner.js +6 -9
  691. package/driver/aurora-postgres/AuroraPostgresQueryRunner.js.map +1 -1
  692. package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -1
  693. package/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
  694. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
  695. package/driver/capacitor/CapacitorConnectionOptions.js.map +1 -1
  696. package/driver/capacitor/CapacitorDriver.js.map +1 -1
  697. package/driver/capacitor/CapacitorQueryRunner.js.map +1 -1
  698. package/driver/cockroachdb/CockroachConnectionCredentialsOptions.js.map +1 -1
  699. package/driver/cockroachdb/CockroachConnectionOptions.js.map +1 -1
  700. package/driver/cockroachdb/CockroachDriver.js +2 -2
  701. package/driver/cockroachdb/CockroachDriver.js.map +1 -1
  702. package/driver/cockroachdb/CockroachQueryRunner.js +7 -11
  703. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  704. package/driver/cordova/CordovaConnectionOptions.js.map +1 -1
  705. package/driver/cordova/CordovaDriver.js.map +1 -1
  706. package/driver/cordova/CordovaQueryRunner.js +1 -1
  707. package/driver/cordova/CordovaQueryRunner.js.map +1 -1
  708. package/driver/expo/ExpoConnectionOptions.js.map +1 -1
  709. package/driver/expo/ExpoDriver.js.map +1 -1
  710. package/driver/expo/ExpoQueryRunner.js +1 -1
  711. package/driver/expo/ExpoQueryRunner.js.map +1 -1
  712. package/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  713. package/driver/mongodb/MongoDriver.js.map +1 -1
  714. package/driver/mongodb/MongoQueryRunner.js.map +1 -1
  715. package/driver/mongodb/bson.typings.js.map +1 -1
  716. package/driver/mongodb/typings.js.map +1 -1
  717. package/driver/mysql/MysqlConnectionCredentialsOptions.js.map +1 -1
  718. package/driver/mysql/MysqlConnectionOptions.js.map +1 -1
  719. package/driver/mysql/MysqlDriver.js +2 -2
  720. package/driver/mysql/MysqlDriver.js.map +1 -1
  721. package/driver/mysql/MysqlQueryRunner.js +78 -81
  722. package/driver/mysql/MysqlQueryRunner.js.map +1 -1
  723. package/driver/nativescript/NativescriptConnectionOptions.js.map +1 -1
  724. package/driver/nativescript/NativescriptDriver.js.map +1 -1
  725. package/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  726. package/driver/oracle/OracleConnectionCredentialsOptions.js.map +1 -1
  727. package/driver/oracle/OracleConnectionOptions.js.map +1 -1
  728. package/driver/oracle/OracleDriver.js +2 -2
  729. package/driver/oracle/OracleDriver.js.map +1 -1
  730. package/driver/oracle/OracleQueryRunner.js +6 -8
  731. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  732. package/driver/postgres/PostgresConnectionCredentialsOptions.js.map +1 -1
  733. package/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  734. package/driver/postgres/PostgresDriver.js +3 -2
  735. package/driver/postgres/PostgresDriver.js.map +1 -1
  736. package/driver/postgres/PostgresQueryRunner.js +7 -10
  737. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  738. package/driver/react-native/ReactNativeConnectionOptions.js.map +1 -1
  739. package/driver/react-native/ReactNativeDriver.js +1 -1
  740. package/driver/react-native/ReactNativeDriver.js.map +1 -1
  741. package/driver/react-native/ReactNativeQueryRunner.js +1 -1
  742. package/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  743. package/driver/sap/SapConnectionCredentialsOptions.js.map +1 -1
  744. package/driver/sap/SapConnectionOptions.js.map +1 -1
  745. package/driver/sap/SapDriver.d.ts +2 -1
  746. package/driver/sap/SapDriver.js +19 -13
  747. package/driver/sap/SapDriver.js.map +1 -1
  748. package/driver/sap/SapQueryRunner.js +1 -1
  749. package/driver/sap/SapQueryRunner.js.map +1 -1
  750. package/driver/spanner/SpannerConnectionCredentialsOptions.js.map +1 -1
  751. package/driver/spanner/SpannerConnectionOptions.js.map +1 -1
  752. package/driver/spanner/SpannerDriver.js +3 -3
  753. package/driver/spanner/SpannerDriver.js.map +1 -1
  754. package/driver/spanner/SpannerQueryRunner.js +7 -7
  755. package/driver/spanner/SpannerQueryRunner.js.map +1 -1
  756. package/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
  757. package/driver/sqlite/SqliteDriver.js.map +1 -1
  758. package/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  759. package/driver/sqlite-abstract/AbstractSqliteDriver.js +1 -1
  760. package/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  761. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +13 -16
  762. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  763. package/driver/sqljs/SqljsConnectionOptions.js.map +1 -1
  764. package/driver/sqljs/SqljsDriver.js +1 -1
  765. package/driver/sqljs/SqljsDriver.js.map +1 -1
  766. package/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  767. package/driver/sqlserver/MssqlParameter.js.map +1 -1
  768. package/driver/sqlserver/SqlServerConnectionCredentialsOptions.js.map +1 -1
  769. package/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
  770. package/driver/sqlserver/SqlServerDriver.js +2 -2
  771. package/driver/sqlserver/SqlServerDriver.js.map +1 -1
  772. package/driver/sqlserver/SqlServerQueryRunner.js +35 -36
  773. package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  774. package/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js.map +1 -1
  775. package/driver/sqlserver/authentication/AzureActiveDirectoryDefaultAuthentication.js.map +1 -1
  776. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js.map +1 -1
  777. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js.map +1 -1
  778. package/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js.map +1 -1
  779. package/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js.map +1 -1
  780. package/driver/sqlserver/authentication/DefaultAuthentication.js.map +1 -1
  781. package/driver/sqlserver/authentication/NtlmAuthentication.js.map +1 -1
  782. package/driver/types/ColumnTypes.d.ts +1 -1
  783. package/driver/types/ColumnTypes.js.map +1 -1
  784. package/driver/types/CteCapabilities.js.map +1 -1
  785. package/driver/types/DataTypeDefaults.js.map +1 -1
  786. package/driver/types/DatabaseType.js.map +1 -1
  787. package/driver/types/GeoJsonTypes.js.map +1 -1
  788. package/driver/types/IsolationLevel.js.map +1 -1
  789. package/driver/types/MappedColumnTypes.js.map +1 -1
  790. package/driver/types/MetadataTableType.js.map +1 -1
  791. package/driver/types/ReplicationMode.js.map +1 -1
  792. package/driver/types/UpsertType.js.map +1 -1
  793. package/entity-manager/EntityManager.js.map +1 -1
  794. package/entity-manager/EntityManagerFactory.js.map +1 -1
  795. package/entity-manager/MongoEntityManager.js +1 -1
  796. package/entity-manager/MongoEntityManager.js.map +1 -1
  797. package/entity-manager/SqljsEntityManager.js.map +1 -1
  798. package/entity-schema/EntitySchema.js.map +1 -1
  799. package/entity-schema/EntitySchemaCheckOptions.js.map +1 -1
  800. package/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
  801. package/entity-schema/EntitySchemaEmbeddedColumnOptions.js.map +1 -1
  802. package/entity-schema/EntitySchemaEmbeddedError.js.map +1 -1
  803. package/entity-schema/EntitySchemaExclusionOptions.js.map +1 -1
  804. package/entity-schema/EntitySchemaIndexOptions.js.map +1 -1
  805. package/entity-schema/EntitySchemaInheritanceOptions.js.map +1 -1
  806. package/entity-schema/EntitySchemaOptions.js.map +1 -1
  807. package/entity-schema/EntitySchemaRelationIdOptions.js.map +1 -1
  808. package/entity-schema/EntitySchemaRelationOptions.js.map +1 -1
  809. package/entity-schema/EntitySchemaTransformer.js.map +1 -1
  810. package/entity-schema/EntitySchemaUniqueOptions.js.map +1 -1
  811. package/error/AlreadyHasActiveConnectionError.js.map +1 -1
  812. package/error/CannotAttachTreeChildrenEntityError.js.map +1 -1
  813. package/error/CannotConnectAlreadyConnectedError.js.map +1 -1
  814. package/error/CannotCreateEntityIdMapError.js.map +1 -1
  815. package/error/CannotDetermineEntityError.js.map +1 -1
  816. package/error/CannotExecuteNotConnectedError.js.map +1 -1
  817. package/error/CannotGetEntityManagerNotConnectedError.js.map +1 -1
  818. package/error/CannotReflectMethodParameterTypeError.js.map +1 -1
  819. package/error/CircularRelationsError.js.map +1 -1
  820. package/error/ColumnTypeUndefinedError.js.map +1 -1
  821. package/error/ConnectionIsNotSetError.js.map +1 -1
  822. package/error/ConnectionNotFoundError.js.map +1 -1
  823. package/error/CustomRepositoryCannotInheritRepositoryError.js.map +1 -1
  824. package/error/CustomRepositoryDoesNotHaveEntityError.js.map +1 -1
  825. package/error/CustomRepositoryNotFoundError.js.map +1 -1
  826. package/error/DataTypeNotSupportedError.js.map +1 -1
  827. package/error/DriverOptionNotSetError.js.map +1 -1
  828. package/error/DriverPackageNotInstalledError.js.map +1 -1
  829. package/error/EntityMetadataNotFoundError.js.map +1 -1
  830. package/error/EntityNotFoundError.js.map +1 -1
  831. package/error/EntityPropertyNotFoundError.js.map +1 -1
  832. package/error/FindRelationsNotFoundError.js.map +1 -1
  833. package/error/ForbiddenTransactionModeOverrideError.js.map +1 -1
  834. package/error/InitializedRelationError.js.map +1 -1
  835. package/error/InsertValuesMissingError.js.map +1 -1
  836. package/error/LimitOnUpdateNotSupportedError.js.map +1 -1
  837. package/error/LockNotSupportedOnGivenDriverError.js.map +1 -1
  838. package/error/MetadataAlreadyExistsError.js.map +1 -1
  839. package/error/MetadataWithSuchNameAlreadyExistsError.js.map +1 -1
  840. package/error/MissingDeleteDateColumnError.js.map +1 -1
  841. package/error/MissingDriverError.js.map +1 -1
  842. package/error/MissingJoinColumnError.js.map +1 -1
  843. package/error/MissingJoinTableError.js.map +1 -1
  844. package/error/MissingPrimaryColumnError.js.map +1 -1
  845. package/error/MustBeEntityError.js.map +1 -1
  846. package/error/NamingStrategyNotFoundError.js.map +1 -1
  847. package/error/NestedSetMultipleRootError.js.map +1 -1
  848. package/error/NoConnectionForRepositoryError.js.map +1 -1
  849. package/error/NoConnectionOptionError.js.map +1 -1
  850. package/error/NoNeedToReleaseEntityManagerError.js.map +1 -1
  851. package/error/NoVersionOrUpdateDateColumnError.js.map +1 -1
  852. package/error/OffsetWithoutLimitNotSupportedError.js.map +1 -1
  853. package/error/OptimisticLockCanNotBeUsedError.js.map +1 -1
  854. package/error/OptimisticLockVersionMismatchError.js.map +1 -1
  855. package/error/PersistedEntityNotFoundError.js.map +1 -1
  856. package/error/PessimisticLockTransactionRequiredError.js.map +1 -1
  857. package/error/PrimaryColumnCannotBeNullableError.js.map +1 -1
  858. package/error/QueryFailedError.js.map +1 -1
  859. package/error/QueryRunnerAlreadyReleasedError.js.map +1 -1
  860. package/error/QueryRunnerProviderAlreadyReleasedError.js.map +1 -1
  861. package/error/RepositoryNotTreeError.js.map +1 -1
  862. package/error/ReturningStatementNotSupportedError.js.map +1 -1
  863. package/error/SubjectRemovedAndUpdatedError.js.map +1 -1
  864. package/error/SubjectWithoutIdentifierError.js.map +1 -1
  865. package/error/TransactionAlreadyStartedError.js.map +1 -1
  866. package/error/TransactionNotStartedError.js.map +1 -1
  867. package/error/TreeRepositoryNotSupportedError.js.map +1 -1
  868. package/error/TypeORMError.js.map +1 -1
  869. package/error/UpdateValuesMissingError.js.map +1 -1
  870. package/error/UsingJoinColumnIsNotAllowedError.js.map +1 -1
  871. package/error/UsingJoinColumnOnlyOnOneSideAllowedError.js.map +1 -1
  872. package/error/UsingJoinTableIsNotAllowedError.js.map +1 -1
  873. package/error/UsingJoinTableOnlyOnOneSideAllowedError.js.map +1 -1
  874. package/error/index.js.map +1 -1
  875. package/find-options/EqualOperator.js.map +1 -1
  876. package/find-options/FindManyOptions.js.map +1 -1
  877. package/find-options/FindOneOptions.js.map +1 -1
  878. package/find-options/FindOperator.js.map +1 -1
  879. package/find-options/FindOperatorType.js.map +1 -1
  880. package/find-options/FindOptionsOrder.js.map +1 -1
  881. package/find-options/FindOptionsRelations.js.map +1 -1
  882. package/find-options/FindOptionsSelect.js.map +1 -1
  883. package/find-options/FindOptionsUtils.js +1 -1
  884. package/find-options/FindOptionsUtils.js.map +1 -1
  885. package/find-options/FindOptionsWhere.js.map +1 -1
  886. package/find-options/FindTreeOptions.js.map +1 -1
  887. package/find-options/JoinOptions.js.map +1 -1
  888. package/find-options/OrderByCondition.js.map +1 -1
  889. package/find-options/mongodb/MongoFindManyOptions.js.map +1 -1
  890. package/find-options/mongodb/MongoFindOneOptions.js.map +1 -1
  891. package/find-options/operator/And.js.map +1 -1
  892. package/find-options/operator/Any.js.map +1 -1
  893. package/find-options/operator/ArrayContainedBy.js.map +1 -1
  894. package/find-options/operator/ArrayContains.js.map +1 -1
  895. package/find-options/operator/ArrayOverlap.js.map +1 -1
  896. package/find-options/operator/Between.js.map +1 -1
  897. package/find-options/operator/Equal.js.map +1 -1
  898. package/find-options/operator/ILike.js.map +1 -1
  899. package/find-options/operator/In.js.map +1 -1
  900. package/find-options/operator/IsNull.js.map +1 -1
  901. package/find-options/operator/JsonContains.js.map +1 -1
  902. package/find-options/operator/LessThan.js.map +1 -1
  903. package/find-options/operator/LessThanOrEqual.js.map +1 -1
  904. package/find-options/operator/Like.js.map +1 -1
  905. package/find-options/operator/MoreThan.js.map +1 -1
  906. package/find-options/operator/MoreThanOrEqual.js.map +1 -1
  907. package/find-options/operator/Not.js.map +1 -1
  908. package/find-options/operator/Or.js.map +1 -1
  909. package/find-options/operator/Raw.js.map +1 -1
  910. package/globals.js.map +1 -1
  911. package/index.js.map +1 -1
  912. package/logger/AbstractLogger.js.map +1 -1
  913. package/logger/AdvancedConsoleLogger.js +1 -1
  914. package/logger/AdvancedConsoleLogger.js.map +1 -1
  915. package/logger/DebugLogger.js +1 -1
  916. package/logger/DebugLogger.js.map +1 -1
  917. package/logger/FileLogger.js +1 -1
  918. package/logger/FileLogger.js.map +1 -1
  919. package/logger/Logger.js.map +1 -1
  920. package/logger/LoggerFactory.js.map +1 -1
  921. package/logger/LoggerOptions.js.map +1 -1
  922. package/logger/SimpleConsoleLogger.js +1 -1
  923. package/logger/SimpleConsoleLogger.js.map +1 -1
  924. package/metadata/CheckMetadata.js.map +1 -1
  925. package/metadata/ColumnMetadata.js +1 -1
  926. package/metadata/ColumnMetadata.js.map +1 -1
  927. package/metadata/EmbeddedMetadata.js +1 -1
  928. package/metadata/EmbeddedMetadata.js.map +1 -1
  929. package/metadata/EntityListenerMetadata.js.map +1 -1
  930. package/metadata/EntityMetadata.js.map +1 -1
  931. package/metadata/ExclusionMetadata.js.map +1 -1
  932. package/metadata/ForeignKeyMetadata.js.map +1 -1
  933. package/metadata/IndexMetadata.js.map +1 -1
  934. package/metadata/RelationCountMetadata.js.map +1 -1
  935. package/metadata/RelationIdMetadata.js.map +1 -1
  936. package/metadata/RelationMetadata.js.map +1 -1
  937. package/metadata/UniqueMetadata.js.map +1 -1
  938. package/metadata/types/ClosureTreeOptions.js.map +1 -1
  939. package/metadata/types/DeferrableType.js.map +1 -1
  940. package/metadata/types/EventListenerTypes.js.map +1 -1
  941. package/metadata/types/OnDeleteType.js.map +1 -1
  942. package/metadata/types/OnUpdateType.js.map +1 -1
  943. package/metadata/types/PropertyTypeInFunction.js.map +1 -1
  944. package/metadata/types/RelationTypeInFunction.js.map +1 -1
  945. package/metadata/types/RelationTypes.js.map +1 -1
  946. package/metadata/types/TableTypes.js.map +1 -1
  947. package/metadata/types/TreeTypes.js.map +1 -1
  948. package/metadata-args/CheckMetadataArgs.js.map +1 -1
  949. package/metadata-args/ColumnMetadataArgs.js.map +1 -1
  950. package/metadata-args/DiscriminatorValueMetadataArgs.js.map +1 -1
  951. package/metadata-args/EmbeddedMetadataArgs.js.map +1 -1
  952. package/metadata-args/EntityListenerMetadataArgs.js.map +1 -1
  953. package/metadata-args/EntityRepositoryMetadataArgs.js.map +1 -1
  954. package/metadata-args/EntitySubscriberMetadataArgs.js.map +1 -1
  955. package/metadata-args/ExclusionMetadataArgs.js.map +1 -1
  956. package/metadata-args/GeneratedMetadataArgs.js.map +1 -1
  957. package/metadata-args/IndexMetadataArgs.js.map +1 -1
  958. package/metadata-args/InheritanceMetadataArgs.js.map +1 -1
  959. package/metadata-args/JoinColumnMetadataArgs.js.map +1 -1
  960. package/metadata-args/JoinTableMetadataArgs.js.map +1 -1
  961. package/metadata-args/MetadataArgsStorage.js.map +1 -1
  962. package/metadata-args/NamingStrategyMetadataArgs.js.map +1 -1
  963. package/metadata-args/RelationCountMetadataArgs.js.map +1 -1
  964. package/metadata-args/RelationIdMetadataArgs.js.map +1 -1
  965. package/metadata-args/RelationMetadataArgs.js.map +1 -1
  966. package/metadata-args/TableMetadataArgs.js.map +1 -1
  967. package/metadata-args/TransactionEntityMetadataArgs.js.map +1 -1
  968. package/metadata-args/TransactionRepositoryMetadataArgs.js.map +1 -1
  969. package/metadata-args/TreeMetadataArgs.js.map +1 -1
  970. package/metadata-args/UniqueMetadataArgs.js.map +1 -1
  971. package/metadata-args/types/ColumnMode.js.map +1 -1
  972. package/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -1
  973. package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  974. package/metadata-builder/EntityMetadataValidator.js.map +1 -1
  975. package/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  976. package/metadata-builder/MetadataUtils.js.map +1 -1
  977. package/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
  978. package/migration/Migration.js.map +1 -1
  979. package/migration/MigrationExecutor.js +2 -2
  980. package/migration/MigrationExecutor.js.map +1 -1
  981. package/migration/MigrationInterface.js.map +1 -1
  982. package/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  983. package/naming-strategy/LegacyOracleNamingStrategy.js.map +1 -1
  984. package/naming-strategy/NamingStrategyInterface.js.map +1 -1
  985. package/package.json +1 -260
  986. package/persistence/EntityPersistExecutor.js +2 -2
  987. package/persistence/EntityPersistExecutor.js.map +1 -1
  988. package/persistence/Subject.js.map +1 -1
  989. package/persistence/SubjectChangeMap.js.map +1 -1
  990. package/persistence/SubjectChangedColumnsComputer.js.map +1 -1
  991. package/persistence/SubjectDatabaseEntityLoader.js +1 -1
  992. package/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  993. package/persistence/SubjectExecutor.js +1 -1
  994. package/persistence/SubjectExecutor.js.map +1 -1
  995. package/persistence/SubjectTopologicalSorter.js +5 -5
  996. package/persistence/SubjectTopologicalSorter.js.map +1 -1
  997. package/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
  998. package/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
  999. package/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
  1000. package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js +1 -1
  1001. package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -1
  1002. package/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
  1003. package/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
  1004. package/persistence/tree/NestedSetSubjectExecutor.js +2 -2
  1005. package/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
  1006. package/platform/PlatformTools.js.map +1 -1
  1007. package/query-builder/Alias.js.map +1 -1
  1008. package/query-builder/Brackets.js.map +1 -1
  1009. package/query-builder/DeleteQueryBuilder.js.map +1 -1
  1010. package/query-builder/InsertOrUpdateOptions.js.map +1 -1
  1011. package/query-builder/InsertQueryBuilder.js.map +1 -1
  1012. package/query-builder/JoinAttribute.js +2 -2
  1013. package/query-builder/JoinAttribute.js.map +1 -1
  1014. package/query-builder/JoinOptions.js.map +1 -1
  1015. package/query-builder/NotBrackets.js.map +1 -1
  1016. package/query-builder/QueryBuilder.js +2 -2
  1017. package/query-builder/QueryBuilder.js.map +1 -1
  1018. package/query-builder/QueryBuilderCte.js.map +1 -1
  1019. package/query-builder/QueryBuilderUtils.js.map +1 -1
  1020. package/query-builder/QueryExpressionMap.js.map +1 -1
  1021. package/query-builder/QueryPartialEntity.js.map +1 -1
  1022. package/query-builder/RelationIdLoader.js +5 -4
  1023. package/query-builder/RelationIdLoader.js.map +1 -1
  1024. package/query-builder/RelationLoader.js.map +1 -1
  1025. package/query-builder/RelationQueryBuilder.js.map +1 -1
  1026. package/query-builder/RelationRemover.js.map +1 -1
  1027. package/query-builder/RelationUpdater.js.map +1 -1
  1028. package/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
  1029. package/query-builder/SelectQuery.js.map +1 -1
  1030. package/query-builder/SelectQueryBuilder.js +27 -14
  1031. package/query-builder/SelectQueryBuilder.js.map +1 -1
  1032. package/query-builder/SelectQueryBuilderOption.js.map +1 -1
  1033. package/query-builder/SoftDeleteQueryBuilder.js +1 -1
  1034. package/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  1035. package/query-builder/UpdateQueryBuilder.js +3 -3
  1036. package/query-builder/UpdateQueryBuilder.js.map +1 -1
  1037. package/query-builder/WhereClause.js.map +1 -1
  1038. package/query-builder/WhereExpressionBuilder.js.map +1 -1
  1039. package/query-builder/index.js.map +1 -1
  1040. package/query-builder/relation-count/RelationCountAttribute.js.map +1 -1
  1041. package/query-builder/relation-count/RelationCountLoadResult.js.map +1 -1
  1042. package/query-builder/relation-count/RelationCountLoader.js.map +1 -1
  1043. package/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js.map +1 -1
  1044. package/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
  1045. package/query-builder/relation-id/RelationIdLoadResult.js.map +1 -1
  1046. package/query-builder/relation-id/RelationIdLoader.js.map +1 -1
  1047. package/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js.map +1 -1
  1048. package/query-builder/result/DeleteResult.js.map +1 -1
  1049. package/query-builder/result/InsertResult.js.map +1 -1
  1050. package/query-builder/result/UpdateResult.js.map +1 -1
  1051. package/query-builder/transformer/DocumentToEntityTransformer.js.map +1 -1
  1052. package/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
  1053. package/query-builder/transformer/PlainObjectToNewEntityTransformer.js.map +1 -1
  1054. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js +2 -2
  1055. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  1056. package/query-runner/BaseQueryRunner.js.map +1 -1
  1057. package/query-runner/QueryLock.js.map +1 -1
  1058. package/query-runner/QueryResult.js.map +1 -1
  1059. package/query-runner/QueryRunner.js.map +1 -1
  1060. package/repository/AbstractRepository.js.map +1 -1
  1061. package/repository/BaseEntity.js.map +1 -1
  1062. package/repository/EntityId.js.map +1 -1
  1063. package/repository/FindTreesOptions.js.map +1 -1
  1064. package/repository/MongoRepository.js.map +1 -1
  1065. package/repository/RemoveOptions.js.map +1 -1
  1066. package/repository/Repository.js.map +1 -1
  1067. package/repository/SaveOptions.js.map +1 -1
  1068. package/repository/TreeRepository.js.map +1 -1
  1069. package/repository/UpsertOptions.js.map +1 -1
  1070. package/schema-builder/MongoSchemaBuilder.js.map +1 -1
  1071. package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  1072. package/schema-builder/SchemaBuilder.js.map +1 -1
  1073. package/schema-builder/options/TableCheckOptions.js.map +1 -1
  1074. package/schema-builder/options/TableColumnOptions.js.map +1 -1
  1075. package/schema-builder/options/TableExclusionOptions.js.map +1 -1
  1076. package/schema-builder/options/TableForeignKeyOptions.js.map +1 -1
  1077. package/schema-builder/options/TableIndexOptions.js.map +1 -1
  1078. package/schema-builder/options/TableOptions.js.map +1 -1
  1079. package/schema-builder/options/TableUniqueOptions.js.map +1 -1
  1080. package/schema-builder/options/ViewOptions.js.map +1 -1
  1081. package/schema-builder/table/Table.js.map +1 -1
  1082. package/schema-builder/table/TableCheck.js.map +1 -1
  1083. package/schema-builder/table/TableColumn.js.map +1 -1
  1084. package/schema-builder/table/TableExclusion.js.map +1 -1
  1085. package/schema-builder/table/TableForeignKey.js.map +1 -1
  1086. package/schema-builder/table/TableIndex.js.map +1 -1
  1087. package/schema-builder/table/TableUnique.js.map +1 -1
  1088. package/schema-builder/util/TableUtils.js.map +1 -1
  1089. package/schema-builder/util/ViewUtils.js.map +1 -1
  1090. package/schema-builder/view/View.js.map +1 -1
  1091. package/subscriber/Broadcaster.js.map +1 -1
  1092. package/subscriber/BroadcasterResult.js.map +1 -1
  1093. package/subscriber/EntitySubscriberInterface.js.map +1 -1
  1094. package/subscriber/event/InsertEvent.js.map +1 -1
  1095. package/subscriber/event/LoadEvent.js.map +1 -1
  1096. package/subscriber/event/QueryEvent.js.map +1 -1
  1097. package/subscriber/event/RecoverEvent.js.map +1 -1
  1098. package/subscriber/event/RemoveEvent.js.map +1 -1
  1099. package/subscriber/event/SoftRemoveEvent.js.map +1 -1
  1100. package/subscriber/event/TransactionCommitEvent.js.map +1 -1
  1101. package/subscriber/event/TransactionRollbackEvent.js.map +1 -1
  1102. package/subscriber/event/TransactionStartEvent.js.map +1 -1
  1103. package/subscriber/event/UpdateEvent.js.map +1 -1
  1104. package/typeorm-class-transformer-shim.js +271 -271
  1105. package/typeorm-model-shim.js +298 -295
  1106. package/util/ApplyValueTransformers.js.map +1 -1
  1107. package/util/DateUtils.js.map +1 -1
  1108. package/util/DepGraph.js +13 -13
  1109. package/util/DepGraph.js.map +1 -1
  1110. package/util/DirectoryExportedClassesLoader.js +2 -2
  1111. package/util/DirectoryExportedClassesLoader.js.map +1 -1
  1112. package/util/ImportUtils.js.map +1 -1
  1113. package/util/InstanceChecker.js.map +1 -1
  1114. package/util/ObjectUtils.d.ts +2 -2
  1115. package/util/ObjectUtils.js.map +1 -1
  1116. package/util/OrmUtils.js +4 -4
  1117. package/util/OrmUtils.js.map +1 -1
  1118. package/util/PathUtils.js.map +1 -1
  1119. package/util/RandomGenerator.js +6 -6
  1120. package/util/RandomGenerator.js.map +1 -1
  1121. package/util/StringUtils.js.map +1 -1
  1122. package/util/TreeRepositoryUtils.js.map +1 -1
  1123. package/util/VersionUtils.js.map +1 -1
  1124. package/util/escapeRegExp.d.ts +1 -1
  1125. package/util/escapeRegExp.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/query-builder/SelectQueryBuilderOption.ts"],"names":[],"mappings":"","file":"SelectQueryBuilderOption.js","sourcesContent":["export type SelectQueryBuilderOption = \"disable-global-order\" | \"create-pojo\"\r\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../browser/src/query-builder/SelectQueryBuilderOption.ts"],"names":[],"mappings":"","file":"SelectQueryBuilderOption.js","sourcesContent":["export type SelectQueryBuilderOption = \"disable-global-order\" | \"create-pojo\"\n"],"sourceRoot":".."}
@@ -348,7 +348,7 @@ export class SoftDeleteQueryBuilder extends QueryBuilder {
348
348
  * Creates "LIMIT" parts of SQL query.
349
349
  */
350
350
  createLimitExpression() {
351
- let limit = this.expressionMap.limit;
351
+ const limit = this.expressionMap.limit;
352
352
  if (limit) {
353
353
  if (DriverUtils.isMySQLFamily(this.connection.driver)) {
354
354
  return " LIMIT " + limit;
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/query-builder/SoftDeleteQueryBuilder.ts"],"names":[],"mappings":"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","file":"SoftDeleteQueryBuilder.js","sourcesContent":["import { QueryBuilder } from \"./QueryBuilder\"\r\nimport { ObjectLiteral } from \"../common/ObjectLiteral\"\r\nimport { EntityTarget } from \"../common/EntityTarget\"\r\nimport { DataSource } from \"../data-source/DataSource\"\r\nimport { QueryRunner } from \"../query-runner/QueryRunner\"\r\nimport { WhereExpressionBuilder } from \"./WhereExpressionBuilder\"\r\nimport { Brackets } from \"./Brackets\"\r\nimport { UpdateResult } from \"./result/UpdateResult\"\r\nimport { ReturningStatementNotSupportedError } from \"../error/ReturningStatementNotSupportedError\"\r\nimport { ReturningResultsEntityUpdator } from \"./ReturningResultsEntityUpdator\"\r\nimport { OrderByCondition } from \"../find-options/OrderByCondition\"\r\nimport { LimitOnUpdateNotSupportedError } from \"../error/LimitOnUpdateNotSupportedError\"\r\nimport { MissingDeleteDateColumnError } from \"../error/MissingDeleteDateColumnError\"\r\nimport { UpdateValuesMissingError } from \"../error/UpdateValuesMissingError\"\r\nimport { TypeORMError } from \"../error\"\r\nimport { DriverUtils } from \"../driver/DriverUtils\"\r\nimport { InstanceChecker } from \"../util/InstanceChecker\"\r\n\r\n/**\r\n * Allows to build complex sql queries in a fashion way and execute those queries.\r\n */\r\nexport class SoftDeleteQueryBuilder<Entity extends ObjectLiteral>\r\n extends QueryBuilder<Entity>\r\n implements WhereExpressionBuilder\r\n{\r\n readonly \"@instanceof\" = Symbol.for(\"SoftDeleteQueryBuilder\")\r\n\r\n // -------------------------------------------------------------------------\r\n // Constructor\r\n // -------------------------------------------------------------------------\r\n\r\n constructor(\r\n connectionOrQueryBuilder: DataSource | QueryBuilder<any>,\r\n queryRunner?: QueryRunner,\r\n ) {\r\n super(connectionOrQueryBuilder as any, queryRunner)\r\n this.expressionMap.aliasNamePrefixingEnabled = false\r\n }\r\n\r\n // -------------------------------------------------------------------------\r\n // Public Implemented Methods\r\n // -------------------------------------------------------------------------\r\n\r\n /**\r\n * Gets generated SQL query without parameters being replaced.\r\n */\r\n getQuery(): string {\r\n let sql = this.createUpdateExpression()\r\n sql += this.createCteExpression()\r\n sql += this.createOrderByExpression()\r\n sql += this.createLimitExpression()\r\n return this.replacePropertyNamesForTheWholeQuery(sql.trim())\r\n }\r\n\r\n /**\r\n * Executes sql generated by query builder and returns raw database results.\r\n */\r\n async execute(): Promise<UpdateResult> {\r\n const queryRunner = this.obtainQueryRunner()\r\n let transactionStartedByUs: boolean = false\r\n\r\n try {\r\n // start transaction if it was enabled\r\n if (\r\n this.expressionMap.useTransaction === true &&\r\n queryRunner.isTransactionActive === false\r\n ) {\r\n await queryRunner.startTransaction()\r\n transactionStartedByUs = true\r\n }\r\n\r\n // call before soft remove and recover methods in listeners and subscribers\r\n if (\r\n this.expressionMap.callListeners === true &&\r\n this.expressionMap.mainAlias!.hasMetadata\r\n ) {\r\n if (this.expressionMap.queryType === \"soft-delete\")\r\n await queryRunner.broadcaster.broadcast(\r\n \"BeforeSoftRemove\",\r\n this.expressionMap.mainAlias!.metadata,\r\n )\r\n else if (this.expressionMap.queryType === \"restore\")\r\n await queryRunner.broadcaster.broadcast(\r\n \"BeforeRecover\",\r\n this.expressionMap.mainAlias!.metadata,\r\n )\r\n }\r\n\r\n // if update entity mode is enabled we may need extra columns for the returning statement\r\n const returningResultsEntityUpdator =\r\n new ReturningResultsEntityUpdator(\r\n queryRunner,\r\n this.expressionMap,\r\n )\r\n if (\r\n this.expressionMap.updateEntity === true &&\r\n this.expressionMap.mainAlias!.hasMetadata &&\r\n this.expressionMap.whereEntities.length > 0\r\n ) {\r\n this.expressionMap.extraReturningColumns =\r\n returningResultsEntityUpdator.getSoftDeletionReturningColumns()\r\n }\r\n\r\n // execute update query\r\n const [sql, parameters] = this.getQueryAndParameters()\r\n\r\n const queryResult = await queryRunner.query(sql, parameters, true)\r\n const updateResult = UpdateResult.from(queryResult)\r\n\r\n // if we are updating entities and entity updation is enabled we must update some of entity columns (like version, update date, etc.)\r\n if (\r\n this.expressionMap.updateEntity === true &&\r\n this.expressionMap.mainAlias!.hasMetadata &&\r\n this.expressionMap.whereEntities.length > 0\r\n ) {\r\n await returningResultsEntityUpdator.update(\r\n updateResult,\r\n this.expressionMap.whereEntities,\r\n )\r\n }\r\n\r\n // call after soft remove and recover methods in listeners and subscribers\r\n if (\r\n this.expressionMap.callListeners === true &&\r\n this.expressionMap.mainAlias!.hasMetadata\r\n ) {\r\n if (this.expressionMap.queryType === \"soft-delete\")\r\n await queryRunner.broadcaster.broadcast(\r\n \"AfterSoftRemove\",\r\n this.expressionMap.mainAlias!.metadata,\r\n )\r\n else if (this.expressionMap.queryType === \"restore\")\r\n await queryRunner.broadcaster.broadcast(\r\n \"AfterRecover\",\r\n this.expressionMap.mainAlias!.metadata,\r\n )\r\n }\r\n\r\n // close transaction if we started it\r\n if (transactionStartedByUs) await queryRunner.commitTransaction()\r\n\r\n return updateResult\r\n } catch (error) {\r\n // rollback transaction if we started it\r\n if (transactionStartedByUs) {\r\n try {\r\n await queryRunner.rollbackTransaction()\r\n } catch (rollbackError) {}\r\n }\r\n throw error\r\n } finally {\r\n if (queryRunner !== this.queryRunner) {\r\n // means we created our own query runner\r\n await queryRunner.release()\r\n }\r\n }\r\n }\r\n\r\n // -------------------------------------------------------------------------\r\n // Public Methods\r\n // -------------------------------------------------------------------------\r\n\r\n /**\r\n * Specifies FROM which entity's table select/update/delete/soft-delete will be executed.\r\n * Also sets a main string alias of the selection data.\r\n */\r\n from<T extends ObjectLiteral>(\r\n entityTarget: EntityTarget<T>,\r\n aliasName?: string,\r\n ): SoftDeleteQueryBuilder<T> {\r\n entityTarget = InstanceChecker.isEntitySchema(entityTarget)\r\n ? entityTarget.options.name\r\n : entityTarget\r\n const mainAlias = this.createFromAlias(entityTarget, aliasName)\r\n this.expressionMap.setMainAlias(mainAlias)\r\n return this as any as SoftDeleteQueryBuilder<T>\r\n }\r\n\r\n /**\r\n * Sets WHERE condition in the query builder.\r\n * If you had previously WHERE expression defined,\r\n * calling this function will override previously set WHERE conditions.\r\n * Additionally you can add parameters used in where expression.\r\n */\r\n where(\r\n where:\r\n | string\r\n | ((qb: this) => string)\r\n | Brackets\r\n | ObjectLiteral\r\n | ObjectLiteral[],\r\n parameters?: ObjectLiteral,\r\n ): this {\r\n this.expressionMap.wheres = [] // don't move this block below since computeWhereParameter can add where expressions\r\n const condition = this.getWhereCondition(where)\r\n if (condition)\r\n this.expressionMap.wheres = [\r\n { type: \"simple\", condition: condition },\r\n ]\r\n if (parameters) this.setParameters(parameters)\r\n return this\r\n }\r\n\r\n /**\r\n * Adds new AND WHERE condition in the query builder.\r\n * Additionally you can add parameters used in where expression.\r\n */\r\n andWhere(\r\n where:\r\n | string\r\n | ((qb: this) => string)\r\n | Brackets\r\n | ObjectLiteral\r\n | ObjectLiteral[],\r\n parameters?: ObjectLiteral,\r\n ): this {\r\n this.expressionMap.wheres.push({\r\n type: \"and\",\r\n condition: this.getWhereCondition(where),\r\n })\r\n if (parameters) this.setParameters(parameters)\r\n return this\r\n }\r\n\r\n /**\r\n * Adds new OR WHERE condition in the query builder.\r\n * Additionally you can add parameters used in where expression.\r\n */\r\n orWhere(\r\n where:\r\n | string\r\n | ((qb: this) => string)\r\n | Brackets\r\n | ObjectLiteral\r\n | ObjectLiteral[],\r\n parameters?: ObjectLiteral,\r\n ): this {\r\n this.expressionMap.wheres.push({\r\n type: \"or\",\r\n condition: this.getWhereCondition(where),\r\n })\r\n if (parameters) this.setParameters(parameters)\r\n return this\r\n }\r\n\r\n /**\r\n * Adds new AND WHERE with conditions for the given ids.\r\n */\r\n whereInIds(ids: any | any[]): this {\r\n return this.where(this.getWhereInIdsCondition(ids))\r\n }\r\n\r\n /**\r\n * Adds new AND WHERE with conditions for the given ids.\r\n */\r\n andWhereInIds(ids: any | any[]): this {\r\n return this.andWhere(this.getWhereInIdsCondition(ids))\r\n }\r\n\r\n /**\r\n * Adds new OR WHERE with conditions for the given ids.\r\n */\r\n orWhereInIds(ids: any | any[]): this {\r\n return this.orWhere(this.getWhereInIdsCondition(ids))\r\n }\r\n /**\r\n * Optional returning/output clause.\r\n * This will return given column values.\r\n */\r\n output(columns: string[]): this\r\n\r\n /**\r\n * Optional returning/output clause.\r\n * Returning is a SQL string containing returning statement.\r\n */\r\n output(output: string): this\r\n\r\n /**\r\n * Optional returning/output clause.\r\n */\r\n output(output: string | string[]): this\r\n\r\n /**\r\n * Optional returning/output clause.\r\n */\r\n output(output: string | string[]): this {\r\n return this.returning(output)\r\n }\r\n\r\n /**\r\n * Optional returning/output clause.\r\n * This will return given column values.\r\n */\r\n returning(columns: string[]): this\r\n\r\n /**\r\n * Optional returning/output clause.\r\n * Returning is a SQL string containing returning statement.\r\n */\r\n returning(returning: string): this\r\n\r\n /**\r\n * Optional returning/output clause.\r\n */\r\n returning(returning: string | string[]): this\r\n\r\n /**\r\n * Optional returning/output clause.\r\n */\r\n returning(returning: string | string[]): this {\r\n // not all databases support returning/output cause\r\n if (!this.connection.driver.isReturningSqlSupported(\"update\")) {\r\n throw new ReturningStatementNotSupportedError()\r\n }\r\n\r\n this.expressionMap.returning = returning\r\n return this\r\n }\r\n\r\n /**\r\n * Sets ORDER BY condition in the query builder.\r\n * If you had previously ORDER BY expression defined,\r\n * calling this function will override previously set ORDER BY conditions.\r\n *\r\n * Calling order by without order set will remove all previously set order bys.\r\n */\r\n orderBy(): this\r\n\r\n /**\r\n * Sets ORDER BY condition in the query builder.\r\n * If you had previously ORDER BY expression defined,\r\n * calling this function will override previously set ORDER BY conditions.\r\n */\r\n orderBy(\r\n sort: string,\r\n order?: \"ASC\" | \"DESC\",\r\n nulls?: \"NULLS FIRST\" | \"NULLS LAST\",\r\n ): this\r\n\r\n /**\r\n * Sets ORDER BY condition in the query builder.\r\n * If you had previously ORDER BY expression defined,\r\n * calling this function will override previously set ORDER BY conditions.\r\n */\r\n orderBy(order: OrderByCondition): this\r\n\r\n /**\r\n * Sets ORDER BY condition in the query builder.\r\n * If you had previously ORDER BY expression defined,\r\n * calling this function will override previously set ORDER BY conditions.\r\n */\r\n orderBy(\r\n sort?: string | OrderByCondition,\r\n order: \"ASC\" | \"DESC\" = \"ASC\",\r\n nulls?: \"NULLS FIRST\" | \"NULLS LAST\",\r\n ): this {\r\n if (sort) {\r\n if (typeof sort === \"object\") {\r\n this.expressionMap.orderBys = sort as OrderByCondition\r\n } else {\r\n if (nulls) {\r\n this.expressionMap.orderBys = {\r\n [sort as string]: { order, nulls },\r\n }\r\n } else {\r\n this.expressionMap.orderBys = { [sort as string]: order }\r\n }\r\n }\r\n } else {\r\n this.expressionMap.orderBys = {}\r\n }\r\n return this\r\n }\r\n\r\n /**\r\n * Adds ORDER BY condition in the query builder.\r\n */\r\n addOrderBy(\r\n sort: string,\r\n order: \"ASC\" | \"DESC\" = \"ASC\",\r\n nulls?: \"NULLS FIRST\" | \"NULLS LAST\",\r\n ): this {\r\n if (nulls) {\r\n this.expressionMap.orderBys[sort] = { order, nulls }\r\n } else {\r\n this.expressionMap.orderBys[sort] = order\r\n }\r\n return this\r\n }\r\n\r\n /**\r\n * Sets LIMIT - maximum number of rows to be selected.\r\n */\r\n limit(limit?: number): this {\r\n this.expressionMap.limit = limit\r\n return this\r\n }\r\n\r\n /**\r\n * Indicates if entity must be updated after update operation.\r\n * This may produce extra query or use RETURNING / OUTPUT statement (depend on database).\r\n * Enabled by default.\r\n */\r\n whereEntity(entity: Entity | Entity[]): this {\r\n if (!this.expressionMap.mainAlias!.hasMetadata)\r\n throw new TypeORMError(\r\n `.whereEntity method can only be used on queries which update real entity table.`,\r\n )\r\n\r\n this.expressionMap.wheres = []\r\n const entities: Entity[] = Array.isArray(entity) ? entity : [entity]\r\n entities.forEach((entity) => {\r\n const entityIdMap =\r\n this.expressionMap.mainAlias!.metadata.getEntityIdMap(entity)\r\n if (!entityIdMap)\r\n throw new TypeORMError(\r\n `Provided entity does not have ids set, cannot perform operation.`,\r\n )\r\n\r\n this.orWhereInIds(entityIdMap)\r\n })\r\n\r\n this.expressionMap.whereEntities = entities\r\n return this\r\n }\r\n\r\n /**\r\n * Indicates if entity must be updated after update operation.\r\n * This may produce extra query or use RETURNING / OUTPUT statement (depend on database).\r\n * Enabled by default.\r\n */\r\n updateEntity(enabled: boolean): this {\r\n this.expressionMap.updateEntity = enabled\r\n return this\r\n }\r\n\r\n // -------------------------------------------------------------------------\r\n // Protected Methods\r\n // -------------------------------------------------------------------------\r\n\r\n /**\r\n * Creates UPDATE express used to perform insert query.\r\n */\r\n protected createUpdateExpression() {\r\n const metadata = this.expressionMap.mainAlias!.hasMetadata\r\n ? this.expressionMap.mainAlias!.metadata\r\n : undefined\r\n if (!metadata)\r\n throw new TypeORMError(\r\n `Cannot get entity metadata for the given alias \"${this.expressionMap.mainAlias}\"`,\r\n )\r\n if (!metadata.deleteDateColumn) {\r\n throw new MissingDeleteDateColumnError(metadata)\r\n }\r\n\r\n // prepare columns and values to be updated\r\n const updateColumnAndValues: string[] = []\r\n\r\n switch (this.expressionMap.queryType) {\r\n case \"soft-delete\":\r\n updateColumnAndValues.push(\r\n this.escape(metadata.deleteDateColumn.databaseName) +\r\n \" = CURRENT_TIMESTAMP\",\r\n )\r\n break\r\n case \"restore\":\r\n updateColumnAndValues.push(\r\n this.escape(metadata.deleteDateColumn.databaseName) +\r\n \" = NULL\",\r\n )\r\n break\r\n default:\r\n throw new TypeORMError(\r\n `The queryType must be \"soft-delete\" or \"restore\"`,\r\n )\r\n }\r\n if (metadata.versionColumn)\r\n updateColumnAndValues.push(\r\n this.escape(metadata.versionColumn.databaseName) +\r\n \" = \" +\r\n this.escape(metadata.versionColumn.databaseName) +\r\n \" + 1\",\r\n )\r\n if (metadata.updateDateColumn)\r\n updateColumnAndValues.push(\r\n this.escape(metadata.updateDateColumn.databaseName) +\r\n \" = CURRENT_TIMESTAMP\",\r\n ) // todo: fix issue with CURRENT_TIMESTAMP(6) being used, can \"DEFAULT\" be used?!\r\n\r\n if (updateColumnAndValues.length <= 0) {\r\n throw new UpdateValuesMissingError()\r\n }\r\n\r\n // get a table name and all column database names\r\n const whereExpression = this.createWhereExpression()\r\n const returningExpression = this.createReturningExpression(\"update\")\r\n\r\n if (returningExpression === \"\") {\r\n return `UPDATE ${this.getTableName(\r\n this.getMainTableName(),\r\n )} SET ${updateColumnAndValues.join(\", \")}${whereExpression}` // todo: how do we replace aliases in where to nothing?\r\n }\r\n if (this.connection.driver.options.type === \"mssql\") {\r\n return `UPDATE ${this.getTableName(\r\n this.getMainTableName(),\r\n )} SET ${updateColumnAndValues.join(\r\n \", \",\r\n )} OUTPUT ${returningExpression}${whereExpression}`\r\n }\r\n return `UPDATE ${this.getTableName(\r\n this.getMainTableName(),\r\n )} SET ${updateColumnAndValues.join(\r\n \", \",\r\n )}${whereExpression} RETURNING ${returningExpression}`\r\n }\r\n\r\n /**\r\n * Creates \"ORDER BY\" part of SQL query.\r\n */\r\n protected createOrderByExpression() {\r\n const orderBys = this.expressionMap.orderBys\r\n if (Object.keys(orderBys).length > 0)\r\n return (\r\n \" ORDER BY \" +\r\n Object.keys(orderBys)\r\n .map((columnName) => {\r\n if (typeof orderBys[columnName] === \"string\") {\r\n return (\r\n this.replacePropertyNames(columnName) +\r\n \" \" +\r\n orderBys[columnName]\r\n )\r\n } else {\r\n return (\r\n this.replacePropertyNames(columnName) +\r\n \" \" +\r\n (orderBys[columnName] as any).order +\r\n \" \" +\r\n (orderBys[columnName] as any).nulls\r\n )\r\n }\r\n })\r\n .join(\", \")\r\n )\r\n\r\n return \"\"\r\n }\r\n\r\n /**\r\n * Creates \"LIMIT\" parts of SQL query.\r\n */\r\n protected createLimitExpression(): string {\r\n let limit: number | undefined = this.expressionMap.limit\r\n\r\n if (limit) {\r\n if (DriverUtils.isMySQLFamily(this.connection.driver)) {\r\n return \" LIMIT \" + limit\r\n } else {\r\n throw new LimitOnUpdateNotSupportedError()\r\n }\r\n }\r\n\r\n return \"\"\r\n }\r\n}\r\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../browser/src/query-builder/SoftDeleteQueryBuilder.ts"],"names":[],"mappings":"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","file":"SoftDeleteQueryBuilder.js","sourcesContent":["import { QueryBuilder } from \"./QueryBuilder\"\nimport { ObjectLiteral } from \"../common/ObjectLiteral\"\nimport { EntityTarget } from \"../common/EntityTarget\"\nimport { DataSource } from \"../data-source/DataSource\"\nimport { QueryRunner } from \"../query-runner/QueryRunner\"\nimport { WhereExpressionBuilder } from \"./WhereExpressionBuilder\"\nimport { Brackets } from \"./Brackets\"\nimport { UpdateResult } from \"./result/UpdateResult\"\nimport { ReturningStatementNotSupportedError } from \"../error/ReturningStatementNotSupportedError\"\nimport { ReturningResultsEntityUpdator } from \"./ReturningResultsEntityUpdator\"\nimport { OrderByCondition } from \"../find-options/OrderByCondition\"\nimport { LimitOnUpdateNotSupportedError } from \"../error/LimitOnUpdateNotSupportedError\"\nimport { MissingDeleteDateColumnError } from \"../error/MissingDeleteDateColumnError\"\nimport { UpdateValuesMissingError } from \"../error/UpdateValuesMissingError\"\nimport { TypeORMError } from \"../error\"\nimport { DriverUtils } from \"../driver/DriverUtils\"\nimport { InstanceChecker } from \"../util/InstanceChecker\"\n\n/**\n * Allows to build complex sql queries in a fashion way and execute those queries.\n */\nexport class SoftDeleteQueryBuilder<Entity extends ObjectLiteral>\n extends QueryBuilder<Entity>\n implements WhereExpressionBuilder\n{\n readonly \"@instanceof\" = Symbol.for(\"SoftDeleteQueryBuilder\")\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(\n connectionOrQueryBuilder: DataSource | QueryBuilder<any>,\n queryRunner?: QueryRunner,\n ) {\n super(connectionOrQueryBuilder as any, queryRunner)\n this.expressionMap.aliasNamePrefixingEnabled = false\n }\n\n // -------------------------------------------------------------------------\n // Public Implemented Methods\n // -------------------------------------------------------------------------\n\n /**\n * Gets generated SQL query without parameters being replaced.\n */\n getQuery(): string {\n let sql = this.createUpdateExpression()\n sql += this.createCteExpression()\n sql += this.createOrderByExpression()\n sql += this.createLimitExpression()\n return this.replacePropertyNamesForTheWholeQuery(sql.trim())\n }\n\n /**\n * Executes sql generated by query builder and returns raw database results.\n */\n async execute(): Promise<UpdateResult> {\n const queryRunner = this.obtainQueryRunner()\n let transactionStartedByUs: boolean = false\n\n try {\n // start transaction if it was enabled\n if (\n this.expressionMap.useTransaction === true &&\n queryRunner.isTransactionActive === false\n ) {\n await queryRunner.startTransaction()\n transactionStartedByUs = true\n }\n\n // call before soft remove and recover methods in listeners and subscribers\n if (\n this.expressionMap.callListeners === true &&\n this.expressionMap.mainAlias!.hasMetadata\n ) {\n if (this.expressionMap.queryType === \"soft-delete\")\n await queryRunner.broadcaster.broadcast(\n \"BeforeSoftRemove\",\n this.expressionMap.mainAlias!.metadata,\n )\n else if (this.expressionMap.queryType === \"restore\")\n await queryRunner.broadcaster.broadcast(\n \"BeforeRecover\",\n this.expressionMap.mainAlias!.metadata,\n )\n }\n\n // if update entity mode is enabled we may need extra columns for the returning statement\n const returningResultsEntityUpdator =\n new ReturningResultsEntityUpdator(\n queryRunner,\n this.expressionMap,\n )\n if (\n this.expressionMap.updateEntity === true &&\n this.expressionMap.mainAlias!.hasMetadata &&\n this.expressionMap.whereEntities.length > 0\n ) {\n this.expressionMap.extraReturningColumns =\n returningResultsEntityUpdator.getSoftDeletionReturningColumns()\n }\n\n // execute update query\n const [sql, parameters] = this.getQueryAndParameters()\n\n const queryResult = await queryRunner.query(sql, parameters, true)\n const updateResult = UpdateResult.from(queryResult)\n\n // if we are updating entities and entity updation is enabled we must update some of entity columns (like version, update date, etc.)\n if (\n this.expressionMap.updateEntity === true &&\n this.expressionMap.mainAlias!.hasMetadata &&\n this.expressionMap.whereEntities.length > 0\n ) {\n await returningResultsEntityUpdator.update(\n updateResult,\n this.expressionMap.whereEntities,\n )\n }\n\n // call after soft remove and recover methods in listeners and subscribers\n if (\n this.expressionMap.callListeners === true &&\n this.expressionMap.mainAlias!.hasMetadata\n ) {\n if (this.expressionMap.queryType === \"soft-delete\")\n await queryRunner.broadcaster.broadcast(\n \"AfterSoftRemove\",\n this.expressionMap.mainAlias!.metadata,\n )\n else if (this.expressionMap.queryType === \"restore\")\n await queryRunner.broadcaster.broadcast(\n \"AfterRecover\",\n this.expressionMap.mainAlias!.metadata,\n )\n }\n\n // close transaction if we started it\n if (transactionStartedByUs) await queryRunner.commitTransaction()\n\n return updateResult\n } catch (error) {\n // rollback transaction if we started it\n if (transactionStartedByUs) {\n try {\n await queryRunner.rollbackTransaction()\n } catch (rollbackError) {}\n }\n throw error\n } finally {\n if (queryRunner !== this.queryRunner) {\n // means we created our own query runner\n await queryRunner.release()\n }\n }\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Specifies FROM which entity's table select/update/delete/soft-delete will be executed.\n * Also sets a main string alias of the selection data.\n */\n from<T extends ObjectLiteral>(\n entityTarget: EntityTarget<T>,\n aliasName?: string,\n ): SoftDeleteQueryBuilder<T> {\n entityTarget = InstanceChecker.isEntitySchema(entityTarget)\n ? entityTarget.options.name\n : entityTarget\n const mainAlias = this.createFromAlias(entityTarget, aliasName)\n this.expressionMap.setMainAlias(mainAlias)\n return this as any as SoftDeleteQueryBuilder<T>\n }\n\n /**\n * Sets WHERE condition in the query builder.\n * If you had previously WHERE expression defined,\n * calling this function will override previously set WHERE conditions.\n * Additionally you can add parameters used in where expression.\n */\n where(\n where:\n | string\n | ((qb: this) => string)\n | Brackets\n | ObjectLiteral\n | ObjectLiteral[],\n parameters?: ObjectLiteral,\n ): this {\n this.expressionMap.wheres = [] // don't move this block below since computeWhereParameter can add where expressions\n const condition = this.getWhereCondition(where)\n if (condition)\n this.expressionMap.wheres = [\n { type: \"simple\", condition: condition },\n ]\n if (parameters) this.setParameters(parameters)\n return this\n }\n\n /**\n * Adds new AND WHERE condition in the query builder.\n * Additionally you can add parameters used in where expression.\n */\n andWhere(\n where:\n | string\n | ((qb: this) => string)\n | Brackets\n | ObjectLiteral\n | ObjectLiteral[],\n parameters?: ObjectLiteral,\n ): this {\n this.expressionMap.wheres.push({\n type: \"and\",\n condition: this.getWhereCondition(where),\n })\n if (parameters) this.setParameters(parameters)\n return this\n }\n\n /**\n * Adds new OR WHERE condition in the query builder.\n * Additionally you can add parameters used in where expression.\n */\n orWhere(\n where:\n | string\n | ((qb: this) => string)\n | Brackets\n | ObjectLiteral\n | ObjectLiteral[],\n parameters?: ObjectLiteral,\n ): this {\n this.expressionMap.wheres.push({\n type: \"or\",\n condition: this.getWhereCondition(where),\n })\n if (parameters) this.setParameters(parameters)\n return this\n }\n\n /**\n * Adds new AND WHERE with conditions for the given ids.\n */\n whereInIds(ids: any | any[]): this {\n return this.where(this.getWhereInIdsCondition(ids))\n }\n\n /**\n * Adds new AND WHERE with conditions for the given ids.\n */\n andWhereInIds(ids: any | any[]): this {\n return this.andWhere(this.getWhereInIdsCondition(ids))\n }\n\n /**\n * Adds new OR WHERE with conditions for the given ids.\n */\n orWhereInIds(ids: any | any[]): this {\n return this.orWhere(this.getWhereInIdsCondition(ids))\n }\n /**\n * Optional returning/output clause.\n * This will return given column values.\n */\n output(columns: string[]): this\n\n /**\n * Optional returning/output clause.\n * Returning is a SQL string containing returning statement.\n */\n output(output: string): this\n\n /**\n * Optional returning/output clause.\n */\n output(output: string | string[]): this\n\n /**\n * Optional returning/output clause.\n */\n output(output: string | string[]): this {\n return this.returning(output)\n }\n\n /**\n * Optional returning/output clause.\n * This will return given column values.\n */\n returning(columns: string[]): this\n\n /**\n * Optional returning/output clause.\n * Returning is a SQL string containing returning statement.\n */\n returning(returning: string): this\n\n /**\n * Optional returning/output clause.\n */\n returning(returning: string | string[]): this\n\n /**\n * Optional returning/output clause.\n */\n returning(returning: string | string[]): this {\n // not all databases support returning/output cause\n if (!this.connection.driver.isReturningSqlSupported(\"update\")) {\n throw new ReturningStatementNotSupportedError()\n }\n\n this.expressionMap.returning = returning\n return this\n }\n\n /**\n * Sets ORDER BY condition in the query builder.\n * If you had previously ORDER BY expression defined,\n * calling this function will override previously set ORDER BY conditions.\n *\n * Calling order by without order set will remove all previously set order bys.\n */\n orderBy(): this\n\n /**\n * Sets ORDER BY condition in the query builder.\n * If you had previously ORDER BY expression defined,\n * calling this function will override previously set ORDER BY conditions.\n */\n orderBy(\n sort: string,\n order?: \"ASC\" | \"DESC\",\n nulls?: \"NULLS FIRST\" | \"NULLS LAST\",\n ): this\n\n /**\n * Sets ORDER BY condition in the query builder.\n * If you had previously ORDER BY expression defined,\n * calling this function will override previously set ORDER BY conditions.\n */\n orderBy(order: OrderByCondition): this\n\n /**\n * Sets ORDER BY condition in the query builder.\n * If you had previously ORDER BY expression defined,\n * calling this function will override previously set ORDER BY conditions.\n */\n orderBy(\n sort?: string | OrderByCondition,\n order: \"ASC\" | \"DESC\" = \"ASC\",\n nulls?: \"NULLS FIRST\" | \"NULLS LAST\",\n ): this {\n if (sort) {\n if (typeof sort === \"object\") {\n this.expressionMap.orderBys = sort as OrderByCondition\n } else {\n if (nulls) {\n this.expressionMap.orderBys = {\n [sort as string]: { order, nulls },\n }\n } else {\n this.expressionMap.orderBys = { [sort as string]: order }\n }\n }\n } else {\n this.expressionMap.orderBys = {}\n }\n return this\n }\n\n /**\n * Adds ORDER BY condition in the query builder.\n */\n addOrderBy(\n sort: string,\n order: \"ASC\" | \"DESC\" = \"ASC\",\n nulls?: \"NULLS FIRST\" | \"NULLS LAST\",\n ): this {\n if (nulls) {\n this.expressionMap.orderBys[sort] = { order, nulls }\n } else {\n this.expressionMap.orderBys[sort] = order\n }\n return this\n }\n\n /**\n * Sets LIMIT - maximum number of rows to be selected.\n */\n limit(limit?: number): this {\n this.expressionMap.limit = limit\n return this\n }\n\n /**\n * Indicates if entity must be updated after update operation.\n * This may produce extra query or use RETURNING / OUTPUT statement (depend on database).\n * Enabled by default.\n */\n whereEntity(entity: Entity | Entity[]): this {\n if (!this.expressionMap.mainAlias!.hasMetadata)\n throw new TypeORMError(\n `.whereEntity method can only be used on queries which update real entity table.`,\n )\n\n this.expressionMap.wheres = []\n const entities: Entity[] = Array.isArray(entity) ? entity : [entity]\n entities.forEach((entity) => {\n const entityIdMap =\n this.expressionMap.mainAlias!.metadata.getEntityIdMap(entity)\n if (!entityIdMap)\n throw new TypeORMError(\n `Provided entity does not have ids set, cannot perform operation.`,\n )\n\n this.orWhereInIds(entityIdMap)\n })\n\n this.expressionMap.whereEntities = entities\n return this\n }\n\n /**\n * Indicates if entity must be updated after update operation.\n * This may produce extra query or use RETURNING / OUTPUT statement (depend on database).\n * Enabled by default.\n */\n updateEntity(enabled: boolean): this {\n this.expressionMap.updateEntity = enabled\n return this\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates UPDATE express used to perform insert query.\n */\n protected createUpdateExpression() {\n const metadata = this.expressionMap.mainAlias!.hasMetadata\n ? this.expressionMap.mainAlias!.metadata\n : undefined\n if (!metadata)\n throw new TypeORMError(\n `Cannot get entity metadata for the given alias \"${this.expressionMap.mainAlias}\"`,\n )\n if (!metadata.deleteDateColumn) {\n throw new MissingDeleteDateColumnError(metadata)\n }\n\n // prepare columns and values to be updated\n const updateColumnAndValues: string[] = []\n\n switch (this.expressionMap.queryType) {\n case \"soft-delete\":\n updateColumnAndValues.push(\n this.escape(metadata.deleteDateColumn.databaseName) +\n \" = CURRENT_TIMESTAMP\",\n )\n break\n case \"restore\":\n updateColumnAndValues.push(\n this.escape(metadata.deleteDateColumn.databaseName) +\n \" = NULL\",\n )\n break\n default:\n throw new TypeORMError(\n `The queryType must be \"soft-delete\" or \"restore\"`,\n )\n }\n if (metadata.versionColumn)\n updateColumnAndValues.push(\n this.escape(metadata.versionColumn.databaseName) +\n \" = \" +\n this.escape(metadata.versionColumn.databaseName) +\n \" + 1\",\n )\n if (metadata.updateDateColumn)\n updateColumnAndValues.push(\n this.escape(metadata.updateDateColumn.databaseName) +\n \" = CURRENT_TIMESTAMP\",\n ) // todo: fix issue with CURRENT_TIMESTAMP(6) being used, can \"DEFAULT\" be used?!\n\n if (updateColumnAndValues.length <= 0) {\n throw new UpdateValuesMissingError()\n }\n\n // get a table name and all column database names\n const whereExpression = this.createWhereExpression()\n const returningExpression = this.createReturningExpression(\"update\")\n\n if (returningExpression === \"\") {\n return `UPDATE ${this.getTableName(\n this.getMainTableName(),\n )} SET ${updateColumnAndValues.join(\", \")}${whereExpression}` // todo: how do we replace aliases in where to nothing?\n }\n if (this.connection.driver.options.type === \"mssql\") {\n return `UPDATE ${this.getTableName(\n this.getMainTableName(),\n )} SET ${updateColumnAndValues.join(\n \", \",\n )} OUTPUT ${returningExpression}${whereExpression}`\n }\n return `UPDATE ${this.getTableName(\n this.getMainTableName(),\n )} SET ${updateColumnAndValues.join(\n \", \",\n )}${whereExpression} RETURNING ${returningExpression}`\n }\n\n /**\n * Creates \"ORDER BY\" part of SQL query.\n */\n protected createOrderByExpression() {\n const orderBys = this.expressionMap.orderBys\n if (Object.keys(orderBys).length > 0)\n return (\n \" ORDER BY \" +\n Object.keys(orderBys)\n .map((columnName) => {\n if (typeof orderBys[columnName] === \"string\") {\n return (\n this.replacePropertyNames(columnName) +\n \" \" +\n orderBys[columnName]\n )\n } else {\n return (\n this.replacePropertyNames(columnName) +\n \" \" +\n (orderBys[columnName] as any).order +\n \" \" +\n (orderBys[columnName] as any).nulls\n )\n }\n })\n .join(\", \")\n )\n\n return \"\"\n }\n\n /**\n * Creates \"LIMIT\" parts of SQL query.\n */\n protected createLimitExpression(): string {\n const limit: number | undefined = this.expressionMap.limit\n\n if (limit) {\n if (DriverUtils.isMySQLFamily(this.connection.driver)) {\n return \" LIMIT \" + limit\n } else {\n throw new LimitOnUpdateNotSupportedError()\n }\n }\n\n return \"\"\n }\n}\n"],"sourceRoot":".."}
@@ -288,7 +288,7 @@ export class UpdateQueryBuilder extends QueryBuilder {
288
288
  : undefined;
289
289
  // it doesn't make sense to update undefined properties, so just skip them
290
290
  const valuesSetNormalized = {};
291
- for (let key in valuesSet) {
291
+ for (const key in valuesSet) {
292
292
  if (valuesSet[key] !== undefined) {
293
293
  valuesSetNormalized[key] = valuesSet[key];
294
294
  }
@@ -403,7 +403,7 @@ export class UpdateQueryBuilder extends QueryBuilder {
403
403
  }
404
404
  else {
405
405
  Object.keys(valuesSetNormalized).map((key) => {
406
- let value = valuesSetNormalized[key];
406
+ const value = valuesSetNormalized[key];
407
407
  // todo: duplication zone
408
408
  if (typeof value === "function") {
409
409
  // support for SQL expressions in update query
@@ -466,7 +466,7 @@ export class UpdateQueryBuilder extends QueryBuilder {
466
466
  * Creates "LIMIT" parts of SQL query.
467
467
  */
468
468
  createLimitExpression() {
469
- let limit = this.expressionMap.limit;
469
+ const limit = this.expressionMap.limit;
470
470
  if (limit) {
471
471
  if (DriverUtils.isMySQLFamily(this.connection.driver) ||
472
472
  this.connection.driver.options.type === "aurora-mysql") {
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/query-builder/UpdateQueryBuilder.ts"],"names":[],"mappings":"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","file":"UpdateQueryBuilder.js","sourcesContent":["import { ColumnMetadata } from \"../metadata/ColumnMetadata\"\r\nimport { QueryBuilder } from \"./QueryBuilder\"\r\nimport { ObjectLiteral } from \"../common/ObjectLiteral\"\r\nimport { DataSource } from \"../data-source/DataSource\"\r\nimport { QueryRunner } from \"../query-runner/QueryRunner\"\r\nimport { WhereExpressionBuilder } from \"./WhereExpressionBuilder\"\r\nimport { Brackets } from \"./Brackets\"\r\nimport { UpdateResult } from \"./result/UpdateResult\"\r\nimport { ReturningStatementNotSupportedError } from \"../error/ReturningStatementNotSupportedError\"\r\nimport { ReturningResultsEntityUpdator } from \"./ReturningResultsEntityUpdator\"\r\nimport { MysqlDriver } from \"../driver/mysql/MysqlDriver\"\r\nimport { OrderByCondition } from \"../find-options/OrderByCondition\"\r\nimport { LimitOnUpdateNotSupportedError } from \"../error/LimitOnUpdateNotSupportedError\"\r\nimport { UpdateValuesMissingError } from \"../error/UpdateValuesMissingError\"\r\nimport { QueryDeepPartialEntity } from \"./QueryPartialEntity\"\r\nimport { AuroraMysqlDriver } from \"../driver/aurora-mysql/AuroraMysqlDriver\"\r\nimport { TypeORMError } from \"../error\"\r\nimport { EntityPropertyNotFoundError } from \"../error/EntityPropertyNotFoundError\"\r\nimport { SqlServerDriver } from \"../driver/sqlserver/SqlServerDriver\"\r\nimport { DriverUtils } from \"../driver/DriverUtils\"\r\n\r\n/**\r\n * Allows to build complex sql queries in a fashion way and execute those queries.\r\n */\r\nexport class UpdateQueryBuilder<Entity extends ObjectLiteral>\r\n extends QueryBuilder<Entity>\r\n implements WhereExpressionBuilder\r\n{\r\n readonly \"@instanceof\" = Symbol.for(\"UpdateQueryBuilder\")\r\n\r\n // -------------------------------------------------------------------------\r\n // Constructor\r\n // -------------------------------------------------------------------------\r\n\r\n constructor(\r\n connectionOrQueryBuilder: DataSource | QueryBuilder<any>,\r\n queryRunner?: QueryRunner,\r\n ) {\r\n super(connectionOrQueryBuilder as any, queryRunner)\r\n this.expressionMap.aliasNamePrefixingEnabled = false\r\n }\r\n\r\n // -------------------------------------------------------------------------\r\n // Public Implemented Methods\r\n // -------------------------------------------------------------------------\r\n\r\n /**\r\n * Gets generated SQL query without parameters being replaced.\r\n */\r\n getQuery(): string {\r\n let sql = this.createComment()\r\n sql += this.createCteExpression()\r\n sql += this.createUpdateExpression()\r\n sql += this.createOrderByExpression()\r\n sql += this.createLimitExpression()\r\n return this.replacePropertyNamesForTheWholeQuery(sql.trim())\r\n }\r\n\r\n /**\r\n * Executes sql generated by query builder and returns raw database results.\r\n */\r\n async execute(): Promise<UpdateResult> {\r\n const queryRunner = this.obtainQueryRunner()\r\n let transactionStartedByUs: boolean = false\r\n\r\n try {\r\n // start transaction if it was enabled\r\n if (\r\n this.expressionMap.useTransaction === true &&\r\n queryRunner.isTransactionActive === false\r\n ) {\r\n await queryRunner.startTransaction()\r\n transactionStartedByUs = true\r\n }\r\n\r\n // call before updation methods in listeners and subscribers\r\n if (\r\n this.expressionMap.callListeners === true &&\r\n this.expressionMap.mainAlias!.hasMetadata\r\n ) {\r\n await queryRunner.broadcaster.broadcast(\r\n \"BeforeUpdate\",\r\n this.expressionMap.mainAlias!.metadata,\r\n this.expressionMap.valuesSet,\r\n )\r\n }\r\n\r\n let declareSql: string | null = null\r\n let selectOutputSql: string | null = null\r\n\r\n // if update entity mode is enabled we may need extra columns for the returning statement\r\n const returningResultsEntityUpdator =\r\n new ReturningResultsEntityUpdator(\r\n queryRunner,\r\n this.expressionMap,\r\n )\r\n\r\n const returningColumns: ColumnMetadata[] = []\r\n\r\n if (\r\n Array.isArray(this.expressionMap.returning) &&\r\n this.expressionMap.mainAlias!.hasMetadata\r\n ) {\r\n for (const columnPath of this.expressionMap.returning) {\r\n returningColumns.push(\r\n ...this.expressionMap.mainAlias!.metadata.findColumnsWithPropertyPath(\r\n columnPath,\r\n ),\r\n )\r\n }\r\n }\r\n\r\n if (\r\n this.expressionMap.updateEntity === true &&\r\n this.expressionMap.mainAlias!.hasMetadata &&\r\n this.expressionMap.whereEntities.length > 0\r\n ) {\r\n this.expressionMap.extraReturningColumns =\r\n returningResultsEntityUpdator.getUpdationReturningColumns()\r\n\r\n returningColumns.push(\r\n ...this.expressionMap.extraReturningColumns.filter(\r\n (c) => !returningColumns.includes(c),\r\n ),\r\n )\r\n }\r\n\r\n if (\r\n returningColumns.length > 0 &&\r\n this.connection.driver.options.type === \"mssql\"\r\n ) {\r\n declareSql = (\r\n this.connection.driver as SqlServerDriver\r\n ).buildTableVariableDeclaration(\r\n \"@OutputTable\",\r\n returningColumns,\r\n )\r\n selectOutputSql = `SELECT * FROM @OutputTable`\r\n }\r\n\r\n // execute update query\r\n const [updateSql, parameters] = this.getQueryAndParameters()\r\n\r\n const statements = [declareSql, updateSql, selectOutputSql]\r\n const queryResult = await queryRunner.query(\r\n statements.filter((sql) => sql != null).join(\";\\n\\n\"),\r\n parameters,\r\n true,\r\n )\r\n const updateResult = UpdateResult.from(queryResult)\r\n\r\n // if we are updating entities and entity updation is enabled we must update some of entity columns (like version, update date, etc.)\r\n if (\r\n this.expressionMap.updateEntity === true &&\r\n this.expressionMap.mainAlias!.hasMetadata &&\r\n this.expressionMap.whereEntities.length > 0\r\n ) {\r\n await returningResultsEntityUpdator.update(\r\n updateResult,\r\n this.expressionMap.whereEntities,\r\n )\r\n }\r\n\r\n // call after updation methods in listeners and subscribers\r\n if (\r\n this.expressionMap.callListeners === true &&\r\n this.expressionMap.mainAlias!.hasMetadata\r\n ) {\r\n await queryRunner.broadcaster.broadcast(\r\n \"AfterUpdate\",\r\n this.expressionMap.mainAlias!.metadata,\r\n this.expressionMap.valuesSet,\r\n )\r\n }\r\n\r\n // close transaction if we started it\r\n if (transactionStartedByUs) await queryRunner.commitTransaction()\r\n\r\n return updateResult\r\n } catch (error) {\r\n // rollback transaction if we started it\r\n if (transactionStartedByUs) {\r\n try {\r\n await queryRunner.rollbackTransaction()\r\n } catch (rollbackError) {}\r\n }\r\n throw error\r\n } finally {\r\n if (queryRunner !== this.queryRunner) {\r\n // means we created our own query runner\r\n await queryRunner.release()\r\n }\r\n }\r\n }\r\n\r\n // -------------------------------------------------------------------------\r\n // Public Methods\r\n // -------------------------------------------------------------------------\r\n\r\n /**\r\n * Values needs to be updated.\r\n */\r\n set(values: QueryDeepPartialEntity<Entity>): this {\r\n this.expressionMap.valuesSet = values\r\n return this\r\n }\r\n\r\n /**\r\n * Sets WHERE condition in the query builder.\r\n * If you had previously WHERE expression defined,\r\n * calling this function will override previously set WHERE conditions.\r\n * Additionally you can add parameters used in where expression.\r\n */\r\n where(\r\n where:\r\n | string\r\n | ((qb: this) => string)\r\n | Brackets\r\n | ObjectLiteral\r\n | ObjectLiteral[],\r\n parameters?: ObjectLiteral,\r\n ): this {\r\n this.expressionMap.wheres = [] // don't move this block below since computeWhereParameter can add where expressions\r\n const condition = this.getWhereCondition(where)\r\n if (condition)\r\n this.expressionMap.wheres = [\r\n { type: \"simple\", condition: condition },\r\n ]\r\n if (parameters) this.setParameters(parameters)\r\n return this\r\n }\r\n\r\n /**\r\n * Adds new AND WHERE condition in the query builder.\r\n * Additionally you can add parameters used in where expression.\r\n */\r\n andWhere(\r\n where:\r\n | string\r\n | ((qb: this) => string)\r\n | Brackets\r\n | ObjectLiteral\r\n | ObjectLiteral[],\r\n parameters?: ObjectLiteral,\r\n ): this {\r\n this.expressionMap.wheres.push({\r\n type: \"and\",\r\n condition: this.getWhereCondition(where),\r\n })\r\n if (parameters) this.setParameters(parameters)\r\n return this\r\n }\r\n\r\n /**\r\n * Adds new OR WHERE condition in the query builder.\r\n * Additionally you can add parameters used in where expression.\r\n */\r\n orWhere(\r\n where:\r\n | string\r\n | ((qb: this) => string)\r\n | Brackets\r\n | ObjectLiteral\r\n | ObjectLiteral[],\r\n parameters?: ObjectLiteral,\r\n ): this {\r\n this.expressionMap.wheres.push({\r\n type: \"or\",\r\n condition: this.getWhereCondition(where),\r\n })\r\n if (parameters) this.setParameters(parameters)\r\n return this\r\n }\r\n\r\n /**\r\n * Sets WHERE condition in the query builder with a condition for the given ids.\r\n * If you had previously WHERE expression defined,\r\n * calling this function will override previously set WHERE conditions.\r\n */\r\n whereInIds(ids: any | any[]): this {\r\n return this.where(this.getWhereInIdsCondition(ids))\r\n }\r\n\r\n /**\r\n * Adds new AND WHERE with conditions for the given ids.\r\n */\r\n andWhereInIds(ids: any | any[]): this {\r\n return this.andWhere(this.getWhereInIdsCondition(ids))\r\n }\r\n\r\n /**\r\n * Adds new OR WHERE with conditions for the given ids.\r\n */\r\n orWhereInIds(ids: any | any[]): this {\r\n return this.orWhere(this.getWhereInIdsCondition(ids))\r\n }\r\n /**\r\n * Optional returning/output clause.\r\n * This will return given column values.\r\n */\r\n output(columns: string[]): this\r\n\r\n /**\r\n * Optional returning/output clause.\r\n * Returning is a SQL string containing returning statement.\r\n */\r\n output(output: string): this\r\n\r\n /**\r\n * Optional returning/output clause.\r\n */\r\n output(output: string | string[]): this\r\n\r\n /**\r\n * Optional returning/output clause.\r\n */\r\n output(output: string | string[]): this {\r\n return this.returning(output)\r\n }\r\n\r\n /**\r\n * Optional returning/output clause.\r\n * This will return given column values.\r\n */\r\n returning(columns: string[]): this\r\n\r\n /**\r\n * Optional returning/output clause.\r\n * Returning is a SQL string containing returning statement.\r\n */\r\n returning(returning: string): this\r\n\r\n /**\r\n * Optional returning/output clause.\r\n */\r\n returning(returning: string | string[]): this\r\n\r\n /**\r\n * Optional returning/output clause.\r\n */\r\n returning(returning: string | string[]): this {\r\n // not all databases support returning/output cause\r\n if (!this.connection.driver.isReturningSqlSupported(\"update\")) {\r\n throw new ReturningStatementNotSupportedError()\r\n }\r\n\r\n this.expressionMap.returning = returning\r\n return this\r\n }\r\n\r\n /**\r\n * Sets ORDER BY condition in the query builder.\r\n * If you had previously ORDER BY expression defined,\r\n * calling this function will override previously set ORDER BY conditions.\r\n *\r\n * Calling order by without order set will remove all previously set order bys.\r\n */\r\n orderBy(): this\r\n\r\n /**\r\n * Sets ORDER BY condition in the query builder.\r\n * If you had previously ORDER BY expression defined,\r\n * calling this function will override previously set ORDER BY conditions.\r\n */\r\n orderBy(\r\n sort: string,\r\n order?: \"ASC\" | \"DESC\",\r\n nulls?: \"NULLS FIRST\" | \"NULLS LAST\",\r\n ): this\r\n\r\n /**\r\n * Sets ORDER BY condition in the query builder.\r\n * If you had previously ORDER BY expression defined,\r\n * calling this function will override previously set ORDER BY conditions.\r\n */\r\n orderBy(order: OrderByCondition): this\r\n\r\n /**\r\n * Sets ORDER BY condition in the query builder.\r\n * If you had previously ORDER BY expression defined,\r\n * calling this function will override previously set ORDER BY conditions.\r\n */\r\n orderBy(\r\n sort?: string | OrderByCondition,\r\n order: \"ASC\" | \"DESC\" = \"ASC\",\r\n nulls?: \"NULLS FIRST\" | \"NULLS LAST\",\r\n ): this {\r\n if (sort) {\r\n if (typeof sort === \"object\") {\r\n this.expressionMap.orderBys = sort as OrderByCondition\r\n } else {\r\n if (nulls) {\r\n this.expressionMap.orderBys = {\r\n [sort as string]: { order, nulls },\r\n }\r\n } else {\r\n this.expressionMap.orderBys = { [sort as string]: order }\r\n }\r\n }\r\n } else {\r\n this.expressionMap.orderBys = {}\r\n }\r\n return this\r\n }\r\n\r\n /**\r\n * Adds ORDER BY condition in the query builder.\r\n */\r\n addOrderBy(\r\n sort: string,\r\n order: \"ASC\" | \"DESC\" = \"ASC\",\r\n nulls?: \"NULLS FIRST\" | \"NULLS LAST\",\r\n ): this {\r\n if (nulls) {\r\n this.expressionMap.orderBys[sort] = { order, nulls }\r\n } else {\r\n this.expressionMap.orderBys[sort] = order\r\n }\r\n return this\r\n }\r\n\r\n /**\r\n * Sets LIMIT - maximum number of rows to be selected.\r\n */\r\n limit(limit?: number): this {\r\n this.expressionMap.limit = limit\r\n return this\r\n }\r\n\r\n /**\r\n * Indicates if entity must be updated after update operation.\r\n * This may produce extra query or use RETURNING / OUTPUT statement (depend on database).\r\n * Enabled by default.\r\n */\r\n whereEntity(entity: Entity | Entity[]): this {\r\n if (!this.expressionMap.mainAlias!.hasMetadata)\r\n throw new TypeORMError(\r\n `.whereEntity method can only be used on queries which update real entity table.`,\r\n )\r\n\r\n this.expressionMap.wheres = []\r\n const entities: Entity[] = Array.isArray(entity) ? entity : [entity]\r\n entities.forEach((entity) => {\r\n const entityIdMap =\r\n this.expressionMap.mainAlias!.metadata.getEntityIdMap(entity)\r\n if (!entityIdMap)\r\n throw new TypeORMError(\r\n `Provided entity does not have ids set, cannot perform operation.`,\r\n )\r\n\r\n this.orWhereInIds(entityIdMap)\r\n })\r\n\r\n this.expressionMap.whereEntities = entities\r\n return this\r\n }\r\n\r\n /**\r\n * Indicates if entity must be updated after update operation.\r\n * This may produce extra query or use RETURNING / OUTPUT statement (depend on database).\r\n * Enabled by default.\r\n */\r\n updateEntity(enabled: boolean): this {\r\n this.expressionMap.updateEntity = enabled\r\n return this\r\n }\r\n\r\n // -------------------------------------------------------------------------\r\n // Protected Methods\r\n // -------------------------------------------------------------------------\r\n\r\n /**\r\n * Creates UPDATE express used to perform insert query.\r\n */\r\n protected createUpdateExpression() {\r\n const valuesSet = this.getValueSet()\r\n const metadata = this.expressionMap.mainAlias!.hasMetadata\r\n ? this.expressionMap.mainAlias!.metadata\r\n : undefined\r\n\r\n // it doesn't make sense to update undefined properties, so just skip them\r\n const valuesSetNormalized: ObjectLiteral = {}\r\n for (let key in valuesSet) {\r\n if (valuesSet[key] !== undefined) {\r\n valuesSetNormalized[key] = valuesSet[key]\r\n }\r\n }\r\n\r\n // prepare columns and values to be updated\r\n const updateColumnAndValues: string[] = []\r\n const updatedColumns: ColumnMetadata[] = []\r\n if (metadata) {\r\n this.createPropertyPath(metadata, valuesSetNormalized).forEach(\r\n (propertyPath) => {\r\n // todo: make this and other query builder to work with properly with tables without metadata\r\n const columns =\r\n metadata.findColumnsWithPropertyPath(propertyPath)\r\n\r\n if (columns.length <= 0) {\r\n throw new EntityPropertyNotFoundError(\r\n propertyPath,\r\n metadata,\r\n )\r\n }\r\n\r\n columns.forEach((column) => {\r\n if (\r\n !column.isUpdate ||\r\n updatedColumns.includes(column)\r\n ) {\r\n return\r\n }\r\n\r\n updatedColumns.push(column)\r\n\r\n //\r\n let value = column.getEntityValue(valuesSetNormalized)\r\n if (\r\n column.referencedColumn &&\r\n typeof value === \"object\" &&\r\n !(value instanceof Date) &&\r\n value !== null &&\r\n !Buffer.isBuffer(value)\r\n ) {\r\n value =\r\n column.referencedColumn.getEntityValue(value)\r\n } else if (!(typeof value === \"function\")) {\r\n value =\r\n this.connection.driver.preparePersistentValue(\r\n value,\r\n column,\r\n )\r\n }\r\n\r\n // todo: duplication zone\r\n if (typeof value === \"function\") {\r\n // support for SQL expressions in update query\r\n updateColumnAndValues.push(\r\n this.escape(column.databaseName) +\r\n \" = \" +\r\n value(),\r\n )\r\n } else if (\r\n (this.connection.driver.options.type === \"sap\" ||\r\n this.connection.driver.options.type ===\r\n \"spanner\") &&\r\n value === null\r\n ) {\r\n updateColumnAndValues.push(\r\n this.escape(column.databaseName) + \" = NULL\",\r\n )\r\n } else {\r\n if (\r\n this.connection.driver.options.type === \"mssql\"\r\n ) {\r\n value = (\r\n this.connection.driver as SqlServerDriver\r\n ).parametrizeValue(column, value)\r\n }\r\n\r\n const paramName = this.createParameter(value)\r\n\r\n let expression = null\r\n if (\r\n (DriverUtils.isMySQLFamily(\r\n this.connection.driver,\r\n ) ||\r\n this.connection.driver.options.type ===\r\n \"aurora-mysql\") &&\r\n this.connection.driver.spatialTypes.indexOf(\r\n column.type,\r\n ) !== -1\r\n ) {\r\n const useLegacy = (\r\n this.connection.driver as\r\n | MysqlDriver\r\n | AuroraMysqlDriver\r\n ).options.legacySpatialSupport\r\n const geomFromText = useLegacy\r\n ? \"GeomFromText\"\r\n : \"ST_GeomFromText\"\r\n if (column.srid != null) {\r\n expression = `${geomFromText}(${paramName}, ${column.srid})`\r\n } else {\r\n expression = `${geomFromText}(${paramName})`\r\n }\r\n } else if (\r\n DriverUtils.isPostgresFamily(\r\n this.connection.driver,\r\n ) &&\r\n this.connection.driver.spatialTypes.indexOf(\r\n column.type,\r\n ) !== -1\r\n ) {\r\n if (column.srid != null) {\r\n expression = `ST_SetSRID(ST_GeomFromGeoJSON(${paramName}), ${column.srid})::${column.type}`\r\n } else {\r\n expression = `ST_GeomFromGeoJSON(${paramName})::${column.type}`\r\n }\r\n } else if (\r\n this.connection.driver.options.type ===\r\n \"mssql\" &&\r\n this.connection.driver.spatialTypes.indexOf(\r\n column.type,\r\n ) !== -1\r\n ) {\r\n expression =\r\n column.type +\r\n \"::STGeomFromText(\" +\r\n paramName +\r\n \", \" +\r\n (column.srid || \"0\") +\r\n \")\"\r\n } else {\r\n expression = paramName\r\n }\r\n updateColumnAndValues.push(\r\n this.escape(column.databaseName) +\r\n \" = \" +\r\n expression,\r\n )\r\n }\r\n })\r\n },\r\n )\r\n\r\n // Don't allow calling update only with columns that are `update: false`\r\n if (\r\n updateColumnAndValues.length > 0 ||\r\n Object.keys(valuesSetNormalized).length === 0\r\n ) {\r\n if (\r\n metadata.versionColumn &&\r\n updatedColumns.indexOf(metadata.versionColumn) === -1\r\n )\r\n updateColumnAndValues.push(\r\n this.escape(metadata.versionColumn.databaseName) +\r\n \" = \" +\r\n this.escape(metadata.versionColumn.databaseName) +\r\n \" + 1\",\r\n )\r\n if (\r\n metadata.updateDateColumn &&\r\n updatedColumns.indexOf(metadata.updateDateColumn) === -1\r\n )\r\n updateColumnAndValues.push(\r\n this.escape(metadata.updateDateColumn.databaseName) +\r\n \" = CURRENT_TIMESTAMP\",\r\n ) // todo: fix issue with CURRENT_TIMESTAMP(6) being used, can \"DEFAULT\" be used?!\r\n }\r\n } else {\r\n Object.keys(valuesSetNormalized).map((key) => {\r\n let value = valuesSetNormalized[key]\r\n\r\n // todo: duplication zone\r\n if (typeof value === \"function\") {\r\n // support for SQL expressions in update query\r\n updateColumnAndValues.push(\r\n this.escape(key) + \" = \" + value(),\r\n )\r\n } else if (\r\n (this.connection.driver.options.type === \"sap\" ||\r\n this.connection.driver.options.type === \"spanner\") &&\r\n value === null\r\n ) {\r\n updateColumnAndValues.push(this.escape(key) + \" = NULL\")\r\n } else {\r\n // we need to store array values in a special class to make sure parameter replacement will work correctly\r\n // if (value instanceof Array)\r\n // value = new ArrayParameter(value);\r\n\r\n const paramName = this.createParameter(value)\r\n updateColumnAndValues.push(\r\n this.escape(key) + \" = \" + paramName,\r\n )\r\n }\r\n })\r\n }\r\n\r\n if (updateColumnAndValues.length <= 0) {\r\n throw new UpdateValuesMissingError()\r\n }\r\n\r\n // get a table name and all column database names\r\n const whereExpression = this.createWhereExpression()\r\n const returningExpression = this.createReturningExpression(\"update\")\r\n\r\n if (returningExpression === \"\") {\r\n return `UPDATE ${this.getTableName(\r\n this.getMainTableName(),\r\n )} SET ${updateColumnAndValues.join(\", \")}${whereExpression}` // todo: how do we replace aliases in where to nothing?\r\n }\r\n if (this.connection.driver.options.type === \"mssql\") {\r\n return `UPDATE ${this.getTableName(\r\n this.getMainTableName(),\r\n )} SET ${updateColumnAndValues.join(\r\n \", \",\r\n )} OUTPUT ${returningExpression}${whereExpression}`\r\n }\r\n return `UPDATE ${this.getTableName(\r\n this.getMainTableName(),\r\n )} SET ${updateColumnAndValues.join(\r\n \", \",\r\n )}${whereExpression} RETURNING ${returningExpression}`\r\n }\r\n\r\n /**\r\n * Creates \"ORDER BY\" part of SQL query.\r\n */\r\n protected createOrderByExpression() {\r\n const orderBys = this.expressionMap.orderBys\r\n if (Object.keys(orderBys).length > 0)\r\n return (\r\n \" ORDER BY \" +\r\n Object.keys(orderBys)\r\n .map((columnName) => {\r\n if (typeof orderBys[columnName] === \"string\") {\r\n return (\r\n this.replacePropertyNames(columnName) +\r\n \" \" +\r\n orderBys[columnName]\r\n )\r\n } else {\r\n return (\r\n this.replacePropertyNames(columnName) +\r\n \" \" +\r\n (orderBys[columnName] as any).order +\r\n \" \" +\r\n (orderBys[columnName] as any).nulls\r\n )\r\n }\r\n })\r\n .join(\", \")\r\n )\r\n\r\n return \"\"\r\n }\r\n\r\n /**\r\n * Creates \"LIMIT\" parts of SQL query.\r\n */\r\n protected createLimitExpression(): string {\r\n let limit: number | undefined = this.expressionMap.limit\r\n\r\n if (limit) {\r\n if (\r\n DriverUtils.isMySQLFamily(this.connection.driver) ||\r\n this.connection.driver.options.type === \"aurora-mysql\"\r\n ) {\r\n return \" LIMIT \" + limit\r\n } else {\r\n throw new LimitOnUpdateNotSupportedError()\r\n }\r\n }\r\n\r\n return \"\"\r\n }\r\n\r\n /**\r\n * Gets array of values need to be inserted into the target table.\r\n */\r\n protected getValueSet(): ObjectLiteral {\r\n if (typeof this.expressionMap.valuesSet === \"object\")\r\n return this.expressionMap.valuesSet\r\n\r\n throw new UpdateValuesMissingError()\r\n }\r\n}\r\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../browser/src/query-builder/UpdateQueryBuilder.ts"],"names":[],"mappings":"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","file":"UpdateQueryBuilder.js","sourcesContent":["import { ColumnMetadata } from \"../metadata/ColumnMetadata\"\nimport { QueryBuilder } from \"./QueryBuilder\"\nimport { ObjectLiteral } from \"../common/ObjectLiteral\"\nimport { DataSource } from \"../data-source/DataSource\"\nimport { QueryRunner } from \"../query-runner/QueryRunner\"\nimport { WhereExpressionBuilder } from \"./WhereExpressionBuilder\"\nimport { Brackets } from \"./Brackets\"\nimport { UpdateResult } from \"./result/UpdateResult\"\nimport { ReturningStatementNotSupportedError } from \"../error/ReturningStatementNotSupportedError\"\nimport { ReturningResultsEntityUpdator } from \"./ReturningResultsEntityUpdator\"\nimport { MysqlDriver } from \"../driver/mysql/MysqlDriver\"\nimport { OrderByCondition } from \"../find-options/OrderByCondition\"\nimport { LimitOnUpdateNotSupportedError } from \"../error/LimitOnUpdateNotSupportedError\"\nimport { UpdateValuesMissingError } from \"../error/UpdateValuesMissingError\"\nimport { QueryDeepPartialEntity } from \"./QueryPartialEntity\"\nimport { AuroraMysqlDriver } from \"../driver/aurora-mysql/AuroraMysqlDriver\"\nimport { TypeORMError } from \"../error\"\nimport { EntityPropertyNotFoundError } from \"../error/EntityPropertyNotFoundError\"\nimport { SqlServerDriver } from \"../driver/sqlserver/SqlServerDriver\"\nimport { DriverUtils } from \"../driver/DriverUtils\"\n\n/**\n * Allows to build complex sql queries in a fashion way and execute those queries.\n */\nexport class UpdateQueryBuilder<Entity extends ObjectLiteral>\n extends QueryBuilder<Entity>\n implements WhereExpressionBuilder\n{\n readonly \"@instanceof\" = Symbol.for(\"UpdateQueryBuilder\")\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(\n connectionOrQueryBuilder: DataSource | QueryBuilder<any>,\n queryRunner?: QueryRunner,\n ) {\n super(connectionOrQueryBuilder as any, queryRunner)\n this.expressionMap.aliasNamePrefixingEnabled = false\n }\n\n // -------------------------------------------------------------------------\n // Public Implemented Methods\n // -------------------------------------------------------------------------\n\n /**\n * Gets generated SQL query without parameters being replaced.\n */\n getQuery(): string {\n let sql = this.createComment()\n sql += this.createCteExpression()\n sql += this.createUpdateExpression()\n sql += this.createOrderByExpression()\n sql += this.createLimitExpression()\n return this.replacePropertyNamesForTheWholeQuery(sql.trim())\n }\n\n /**\n * Executes sql generated by query builder and returns raw database results.\n */\n async execute(): Promise<UpdateResult> {\n const queryRunner = this.obtainQueryRunner()\n let transactionStartedByUs: boolean = false\n\n try {\n // start transaction if it was enabled\n if (\n this.expressionMap.useTransaction === true &&\n queryRunner.isTransactionActive === false\n ) {\n await queryRunner.startTransaction()\n transactionStartedByUs = true\n }\n\n // call before updation methods in listeners and subscribers\n if (\n this.expressionMap.callListeners === true &&\n this.expressionMap.mainAlias!.hasMetadata\n ) {\n await queryRunner.broadcaster.broadcast(\n \"BeforeUpdate\",\n this.expressionMap.mainAlias!.metadata,\n this.expressionMap.valuesSet,\n )\n }\n\n let declareSql: string | null = null\n let selectOutputSql: string | null = null\n\n // if update entity mode is enabled we may need extra columns for the returning statement\n const returningResultsEntityUpdator =\n new ReturningResultsEntityUpdator(\n queryRunner,\n this.expressionMap,\n )\n\n const returningColumns: ColumnMetadata[] = []\n\n if (\n Array.isArray(this.expressionMap.returning) &&\n this.expressionMap.mainAlias!.hasMetadata\n ) {\n for (const columnPath of this.expressionMap.returning) {\n returningColumns.push(\n ...this.expressionMap.mainAlias!.metadata.findColumnsWithPropertyPath(\n columnPath,\n ),\n )\n }\n }\n\n if (\n this.expressionMap.updateEntity === true &&\n this.expressionMap.mainAlias!.hasMetadata &&\n this.expressionMap.whereEntities.length > 0\n ) {\n this.expressionMap.extraReturningColumns =\n returningResultsEntityUpdator.getUpdationReturningColumns()\n\n returningColumns.push(\n ...this.expressionMap.extraReturningColumns.filter(\n (c) => !returningColumns.includes(c),\n ),\n )\n }\n\n if (\n returningColumns.length > 0 &&\n this.connection.driver.options.type === \"mssql\"\n ) {\n declareSql = (\n this.connection.driver as SqlServerDriver\n ).buildTableVariableDeclaration(\n \"@OutputTable\",\n returningColumns,\n )\n selectOutputSql = `SELECT * FROM @OutputTable`\n }\n\n // execute update query\n const [updateSql, parameters] = this.getQueryAndParameters()\n\n const statements = [declareSql, updateSql, selectOutputSql]\n const queryResult = await queryRunner.query(\n statements.filter((sql) => sql != null).join(\";\\n\\n\"),\n parameters,\n true,\n )\n const updateResult = UpdateResult.from(queryResult)\n\n // if we are updating entities and entity updation is enabled we must update some of entity columns (like version, update date, etc.)\n if (\n this.expressionMap.updateEntity === true &&\n this.expressionMap.mainAlias!.hasMetadata &&\n this.expressionMap.whereEntities.length > 0\n ) {\n await returningResultsEntityUpdator.update(\n updateResult,\n this.expressionMap.whereEntities,\n )\n }\n\n // call after updation methods in listeners and subscribers\n if (\n this.expressionMap.callListeners === true &&\n this.expressionMap.mainAlias!.hasMetadata\n ) {\n await queryRunner.broadcaster.broadcast(\n \"AfterUpdate\",\n this.expressionMap.mainAlias!.metadata,\n this.expressionMap.valuesSet,\n )\n }\n\n // close transaction if we started it\n if (transactionStartedByUs) await queryRunner.commitTransaction()\n\n return updateResult\n } catch (error) {\n // rollback transaction if we started it\n if (transactionStartedByUs) {\n try {\n await queryRunner.rollbackTransaction()\n } catch (rollbackError) {}\n }\n throw error\n } finally {\n if (queryRunner !== this.queryRunner) {\n // means we created our own query runner\n await queryRunner.release()\n }\n }\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Values needs to be updated.\n */\n set(values: QueryDeepPartialEntity<Entity>): this {\n this.expressionMap.valuesSet = values\n return this\n }\n\n /**\n * Sets WHERE condition in the query builder.\n * If you had previously WHERE expression defined,\n * calling this function will override previously set WHERE conditions.\n * Additionally you can add parameters used in where expression.\n */\n where(\n where:\n | string\n | ((qb: this) => string)\n | Brackets\n | ObjectLiteral\n | ObjectLiteral[],\n parameters?: ObjectLiteral,\n ): this {\n this.expressionMap.wheres = [] // don't move this block below since computeWhereParameter can add where expressions\n const condition = this.getWhereCondition(where)\n if (condition)\n this.expressionMap.wheres = [\n { type: \"simple\", condition: condition },\n ]\n if (parameters) this.setParameters(parameters)\n return this\n }\n\n /**\n * Adds new AND WHERE condition in the query builder.\n * Additionally you can add parameters used in where expression.\n */\n andWhere(\n where:\n | string\n | ((qb: this) => string)\n | Brackets\n | ObjectLiteral\n | ObjectLiteral[],\n parameters?: ObjectLiteral,\n ): this {\n this.expressionMap.wheres.push({\n type: \"and\",\n condition: this.getWhereCondition(where),\n })\n if (parameters) this.setParameters(parameters)\n return this\n }\n\n /**\n * Adds new OR WHERE condition in the query builder.\n * Additionally you can add parameters used in where expression.\n */\n orWhere(\n where:\n | string\n | ((qb: this) => string)\n | Brackets\n | ObjectLiteral\n | ObjectLiteral[],\n parameters?: ObjectLiteral,\n ): this {\n this.expressionMap.wheres.push({\n type: \"or\",\n condition: this.getWhereCondition(where),\n })\n if (parameters) this.setParameters(parameters)\n return this\n }\n\n /**\n * Sets WHERE condition in the query builder with a condition for the given ids.\n * If you had previously WHERE expression defined,\n * calling this function will override previously set WHERE conditions.\n */\n whereInIds(ids: any | any[]): this {\n return this.where(this.getWhereInIdsCondition(ids))\n }\n\n /**\n * Adds new AND WHERE with conditions for the given ids.\n */\n andWhereInIds(ids: any | any[]): this {\n return this.andWhere(this.getWhereInIdsCondition(ids))\n }\n\n /**\n * Adds new OR WHERE with conditions for the given ids.\n */\n orWhereInIds(ids: any | any[]): this {\n return this.orWhere(this.getWhereInIdsCondition(ids))\n }\n /**\n * Optional returning/output clause.\n * This will return given column values.\n */\n output(columns: string[]): this\n\n /**\n * Optional returning/output clause.\n * Returning is a SQL string containing returning statement.\n */\n output(output: string): this\n\n /**\n * Optional returning/output clause.\n */\n output(output: string | string[]): this\n\n /**\n * Optional returning/output clause.\n */\n output(output: string | string[]): this {\n return this.returning(output)\n }\n\n /**\n * Optional returning/output clause.\n * This will return given column values.\n */\n returning(columns: string[]): this\n\n /**\n * Optional returning/output clause.\n * Returning is a SQL string containing returning statement.\n */\n returning(returning: string): this\n\n /**\n * Optional returning/output clause.\n */\n returning(returning: string | string[]): this\n\n /**\n * Optional returning/output clause.\n */\n returning(returning: string | string[]): this {\n // not all databases support returning/output cause\n if (!this.connection.driver.isReturningSqlSupported(\"update\")) {\n throw new ReturningStatementNotSupportedError()\n }\n\n this.expressionMap.returning = returning\n return this\n }\n\n /**\n * Sets ORDER BY condition in the query builder.\n * If you had previously ORDER BY expression defined,\n * calling this function will override previously set ORDER BY conditions.\n *\n * Calling order by without order set will remove all previously set order bys.\n */\n orderBy(): this\n\n /**\n * Sets ORDER BY condition in the query builder.\n * If you had previously ORDER BY expression defined,\n * calling this function will override previously set ORDER BY conditions.\n */\n orderBy(\n sort: string,\n order?: \"ASC\" | \"DESC\",\n nulls?: \"NULLS FIRST\" | \"NULLS LAST\",\n ): this\n\n /**\n * Sets ORDER BY condition in the query builder.\n * If you had previously ORDER BY expression defined,\n * calling this function will override previously set ORDER BY conditions.\n */\n orderBy(order: OrderByCondition): this\n\n /**\n * Sets ORDER BY condition in the query builder.\n * If you had previously ORDER BY expression defined,\n * calling this function will override previously set ORDER BY conditions.\n */\n orderBy(\n sort?: string | OrderByCondition,\n order: \"ASC\" | \"DESC\" = \"ASC\",\n nulls?: \"NULLS FIRST\" | \"NULLS LAST\",\n ): this {\n if (sort) {\n if (typeof sort === \"object\") {\n this.expressionMap.orderBys = sort as OrderByCondition\n } else {\n if (nulls) {\n this.expressionMap.orderBys = {\n [sort as string]: { order, nulls },\n }\n } else {\n this.expressionMap.orderBys = { [sort as string]: order }\n }\n }\n } else {\n this.expressionMap.orderBys = {}\n }\n return this\n }\n\n /**\n * Adds ORDER BY condition in the query builder.\n */\n addOrderBy(\n sort: string,\n order: \"ASC\" | \"DESC\" = \"ASC\",\n nulls?: \"NULLS FIRST\" | \"NULLS LAST\",\n ): this {\n if (nulls) {\n this.expressionMap.orderBys[sort] = { order, nulls }\n } else {\n this.expressionMap.orderBys[sort] = order\n }\n return this\n }\n\n /**\n * Sets LIMIT - maximum number of rows to be selected.\n */\n limit(limit?: number): this {\n this.expressionMap.limit = limit\n return this\n }\n\n /**\n * Indicates if entity must be updated after update operation.\n * This may produce extra query or use RETURNING / OUTPUT statement (depend on database).\n * Enabled by default.\n */\n whereEntity(entity: Entity | Entity[]): this {\n if (!this.expressionMap.mainAlias!.hasMetadata)\n throw new TypeORMError(\n `.whereEntity method can only be used on queries which update real entity table.`,\n )\n\n this.expressionMap.wheres = []\n const entities: Entity[] = Array.isArray(entity) ? entity : [entity]\n entities.forEach((entity) => {\n const entityIdMap =\n this.expressionMap.mainAlias!.metadata.getEntityIdMap(entity)\n if (!entityIdMap)\n throw new TypeORMError(\n `Provided entity does not have ids set, cannot perform operation.`,\n )\n\n this.orWhereInIds(entityIdMap)\n })\n\n this.expressionMap.whereEntities = entities\n return this\n }\n\n /**\n * Indicates if entity must be updated after update operation.\n * This may produce extra query or use RETURNING / OUTPUT statement (depend on database).\n * Enabled by default.\n */\n updateEntity(enabled: boolean): this {\n this.expressionMap.updateEntity = enabled\n return this\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates UPDATE express used to perform insert query.\n */\n protected createUpdateExpression() {\n const valuesSet = this.getValueSet()\n const metadata = this.expressionMap.mainAlias!.hasMetadata\n ? this.expressionMap.mainAlias!.metadata\n : undefined\n\n // it doesn't make sense to update undefined properties, so just skip them\n const valuesSetNormalized: ObjectLiteral = {}\n for (const key in valuesSet) {\n if (valuesSet[key] !== undefined) {\n valuesSetNormalized[key] = valuesSet[key]\n }\n }\n\n // prepare columns and values to be updated\n const updateColumnAndValues: string[] = []\n const updatedColumns: ColumnMetadata[] = []\n if (metadata) {\n this.createPropertyPath(metadata, valuesSetNormalized).forEach(\n (propertyPath) => {\n // todo: make this and other query builder to work with properly with tables without metadata\n const columns =\n metadata.findColumnsWithPropertyPath(propertyPath)\n\n if (columns.length <= 0) {\n throw new EntityPropertyNotFoundError(\n propertyPath,\n metadata,\n )\n }\n\n columns.forEach((column) => {\n if (\n !column.isUpdate ||\n updatedColumns.includes(column)\n ) {\n return\n }\n\n updatedColumns.push(column)\n\n //\n let value = column.getEntityValue(valuesSetNormalized)\n if (\n column.referencedColumn &&\n typeof value === \"object\" &&\n !(value instanceof Date) &&\n value !== null &&\n !Buffer.isBuffer(value)\n ) {\n value =\n column.referencedColumn.getEntityValue(value)\n } else if (!(typeof value === \"function\")) {\n value =\n this.connection.driver.preparePersistentValue(\n value,\n column,\n )\n }\n\n // todo: duplication zone\n if (typeof value === \"function\") {\n // support for SQL expressions in update query\n updateColumnAndValues.push(\n this.escape(column.databaseName) +\n \" = \" +\n value(),\n )\n } else if (\n (this.connection.driver.options.type === \"sap\" ||\n this.connection.driver.options.type ===\n \"spanner\") &&\n value === null\n ) {\n updateColumnAndValues.push(\n this.escape(column.databaseName) + \" = NULL\",\n )\n } else {\n if (\n this.connection.driver.options.type === \"mssql\"\n ) {\n value = (\n this.connection.driver as SqlServerDriver\n ).parametrizeValue(column, value)\n }\n\n const paramName = this.createParameter(value)\n\n let expression = null\n if (\n (DriverUtils.isMySQLFamily(\n this.connection.driver,\n ) ||\n this.connection.driver.options.type ===\n \"aurora-mysql\") &&\n this.connection.driver.spatialTypes.indexOf(\n column.type,\n ) !== -1\n ) {\n const useLegacy = (\n this.connection.driver as\n | MysqlDriver\n | AuroraMysqlDriver\n ).options.legacySpatialSupport\n const geomFromText = useLegacy\n ? \"GeomFromText\"\n : \"ST_GeomFromText\"\n if (column.srid != null) {\n expression = `${geomFromText}(${paramName}, ${column.srid})`\n } else {\n expression = `${geomFromText}(${paramName})`\n }\n } else if (\n DriverUtils.isPostgresFamily(\n this.connection.driver,\n ) &&\n this.connection.driver.spatialTypes.indexOf(\n column.type,\n ) !== -1\n ) {\n if (column.srid != null) {\n expression = `ST_SetSRID(ST_GeomFromGeoJSON(${paramName}), ${column.srid})::${column.type}`\n } else {\n expression = `ST_GeomFromGeoJSON(${paramName})::${column.type}`\n }\n } else if (\n this.connection.driver.options.type ===\n \"mssql\" &&\n this.connection.driver.spatialTypes.indexOf(\n column.type,\n ) !== -1\n ) {\n expression =\n column.type +\n \"::STGeomFromText(\" +\n paramName +\n \", \" +\n (column.srid || \"0\") +\n \")\"\n } else {\n expression = paramName\n }\n updateColumnAndValues.push(\n this.escape(column.databaseName) +\n \" = \" +\n expression,\n )\n }\n })\n },\n )\n\n // Don't allow calling update only with columns that are `update: false`\n if (\n updateColumnAndValues.length > 0 ||\n Object.keys(valuesSetNormalized).length === 0\n ) {\n if (\n metadata.versionColumn &&\n updatedColumns.indexOf(metadata.versionColumn) === -1\n )\n updateColumnAndValues.push(\n this.escape(metadata.versionColumn.databaseName) +\n \" = \" +\n this.escape(metadata.versionColumn.databaseName) +\n \" + 1\",\n )\n if (\n metadata.updateDateColumn &&\n updatedColumns.indexOf(metadata.updateDateColumn) === -1\n )\n updateColumnAndValues.push(\n this.escape(metadata.updateDateColumn.databaseName) +\n \" = CURRENT_TIMESTAMP\",\n ) // todo: fix issue with CURRENT_TIMESTAMP(6) being used, can \"DEFAULT\" be used?!\n }\n } else {\n Object.keys(valuesSetNormalized).map((key) => {\n const value = valuesSetNormalized[key]\n\n // todo: duplication zone\n if (typeof value === \"function\") {\n // support for SQL expressions in update query\n updateColumnAndValues.push(\n this.escape(key) + \" = \" + value(),\n )\n } else if (\n (this.connection.driver.options.type === \"sap\" ||\n this.connection.driver.options.type === \"spanner\") &&\n value === null\n ) {\n updateColumnAndValues.push(this.escape(key) + \" = NULL\")\n } else {\n // we need to store array values in a special class to make sure parameter replacement will work correctly\n // if (value instanceof Array)\n // value = new ArrayParameter(value);\n\n const paramName = this.createParameter(value)\n updateColumnAndValues.push(\n this.escape(key) + \" = \" + paramName,\n )\n }\n })\n }\n\n if (updateColumnAndValues.length <= 0) {\n throw new UpdateValuesMissingError()\n }\n\n // get a table name and all column database names\n const whereExpression = this.createWhereExpression()\n const returningExpression = this.createReturningExpression(\"update\")\n\n if (returningExpression === \"\") {\n return `UPDATE ${this.getTableName(\n this.getMainTableName(),\n )} SET ${updateColumnAndValues.join(\", \")}${whereExpression}` // todo: how do we replace aliases in where to nothing?\n }\n if (this.connection.driver.options.type === \"mssql\") {\n return `UPDATE ${this.getTableName(\n this.getMainTableName(),\n )} SET ${updateColumnAndValues.join(\n \", \",\n )} OUTPUT ${returningExpression}${whereExpression}`\n }\n return `UPDATE ${this.getTableName(\n this.getMainTableName(),\n )} SET ${updateColumnAndValues.join(\n \", \",\n )}${whereExpression} RETURNING ${returningExpression}`\n }\n\n /**\n * Creates \"ORDER BY\" part of SQL query.\n */\n protected createOrderByExpression() {\n const orderBys = this.expressionMap.orderBys\n if (Object.keys(orderBys).length > 0)\n return (\n \" ORDER BY \" +\n Object.keys(orderBys)\n .map((columnName) => {\n if (typeof orderBys[columnName] === \"string\") {\n return (\n this.replacePropertyNames(columnName) +\n \" \" +\n orderBys[columnName]\n )\n } else {\n return (\n this.replacePropertyNames(columnName) +\n \" \" +\n (orderBys[columnName] as any).order +\n \" \" +\n (orderBys[columnName] as any).nulls\n )\n }\n })\n .join(\", \")\n )\n\n return \"\"\n }\n\n /**\n * Creates \"LIMIT\" parts of SQL query.\n */\n protected createLimitExpression(): string {\n const limit: number | undefined = this.expressionMap.limit\n\n if (limit) {\n if (\n DriverUtils.isMySQLFamily(this.connection.driver) ||\n this.connection.driver.options.type === \"aurora-mysql\"\n ) {\n return \" LIMIT \" + limit\n } else {\n throw new LimitOnUpdateNotSupportedError()\n }\n }\n\n return \"\"\n }\n\n /**\n * Gets array of values need to be inserted into the target table.\n */\n protected getValueSet(): ObjectLiteral {\n if (typeof this.expressionMap.valuesSet === \"object\")\n return this.expressionMap.valuesSet\n\n throw new UpdateValuesMissingError()\n }\n}\n"],"sourceRoot":".."}
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/query-builder/WhereClause.ts"],"names":[],"mappings":"","file":"WhereClause.js","sourcesContent":["type WrappingOperator = \"not\" | \"brackets\"\r\n\r\ntype PredicateOperator =\r\n | \"lessThan\"\r\n | \"lessThanOrEqual\"\r\n | \"moreThan\"\r\n | \"moreThanOrEqual\"\r\n | \"equal\"\r\n | \"notEqual\"\r\n | \"ilike\"\r\n | \"like\"\r\n | \"between\"\r\n | \"in\"\r\n | \"any\"\r\n | \"isNull\"\r\n | \"arrayContains\"\r\n | \"arrayContainedBy\"\r\n | \"arrayOverlap\"\r\n | \"and\"\r\n | \"jsonContains\"\r\n | \"or\"\r\n\r\nexport interface WherePredicateOperator {\r\n operator: PredicateOperator\r\n\r\n parameters: string[]\r\n}\r\n\r\nexport interface WhereWrappingOperator {\r\n operator: WrappingOperator\r\n\r\n condition: WhereClauseCondition\r\n}\r\n\r\nexport interface WhereClause {\r\n type: \"simple\" | \"and\" | \"or\"\r\n\r\n condition: WhereClauseCondition\r\n}\r\n\r\nexport type WhereClauseCondition =\r\n | string\r\n | WherePredicateOperator\r\n | WhereWrappingOperator\r\n | WhereClause[]\r\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../browser/src/query-builder/WhereClause.ts"],"names":[],"mappings":"","file":"WhereClause.js","sourcesContent":["type WrappingOperator = \"not\" | \"brackets\"\n\ntype PredicateOperator =\n | \"lessThan\"\n | \"lessThanOrEqual\"\n | \"moreThan\"\n | \"moreThanOrEqual\"\n | \"equal\"\n | \"notEqual\"\n | \"ilike\"\n | \"like\"\n | \"between\"\n | \"in\"\n | \"any\"\n | \"isNull\"\n | \"arrayContains\"\n | \"arrayContainedBy\"\n | \"arrayOverlap\"\n | \"and\"\n | \"jsonContains\"\n | \"or\"\n\nexport interface WherePredicateOperator {\n operator: PredicateOperator\n\n parameters: string[]\n}\n\nexport interface WhereWrappingOperator {\n operator: WrappingOperator\n\n condition: WhereClauseCondition\n}\n\nexport interface WhereClause {\n type: \"simple\" | \"and\" | \"or\"\n\n condition: WhereClauseCondition\n}\n\nexport type WhereClauseCondition =\n | string\n | WherePredicateOperator\n | WhereWrappingOperator\n | WhereClause[]\n"],"sourceRoot":".."}
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/query-builder/WhereExpressionBuilder.ts"],"names":[],"mappings":"","file":"WhereExpressionBuilder.js","sourcesContent":["import { ObjectLiteral } from \"../common/ObjectLiteral\"\r\nimport { Brackets } from \"./Brackets\"\r\n\r\n/**\r\n * Query Builders can implement this interface to support where expression\r\n */\r\nexport interface WhereExpressionBuilder {\r\n /**\r\n * Sets WHERE condition in the query builder.\r\n * If you had previously WHERE expression defined,\r\n * calling this function will override previously set WHERE conditions.\r\n * Additionally you can add parameters used in where expression.\r\n */\r\n where(where: string, parameters?: ObjectLiteral): this\r\n\r\n /**\r\n * Sets WHERE condition in the query builder.\r\n * If you had previously WHERE expression defined,\r\n * calling this function will override previously set WHERE conditions.\r\n * Additionally you can add parameters used in where expression.\r\n */\r\n where(where: Brackets, parameters?: ObjectLiteral): this\r\n\r\n /**\r\n * Sets WHERE condition in the query builder.\r\n * If you had previously WHERE expression defined,\r\n * calling this function will override previously set WHERE conditions.\r\n * Additionally you can add parameters used in where expression.\r\n */\r\n where(where: ObjectLiteral, parameters?: ObjectLiteral): this\r\n\r\n /**\r\n * Sets WHERE condition in the query builder.\r\n * If you had previously WHERE expression defined,\r\n * calling this function will override previously set WHERE conditions.\r\n * Additionally you can add parameters used in where expression.\r\n */\r\n where(where: ObjectLiteral[], parameters?: ObjectLiteral): this\r\n\r\n /**\r\n * Sets WHERE condition in the query builder.\r\n * If you had previously WHERE expression defined,\r\n * calling this function will override previously set WHERE conditions.\r\n * Additionally you can add parameters used in where expression.\r\n */\r\n where(subQuery: (qb: this) => string, parameters?: ObjectLiteral): this\r\n\r\n /**\r\n * Adds new AND WHERE condition in the query builder.\r\n * Additionally you can add parameters used in where expression.\r\n */\r\n andWhere(where: string, parameters?: ObjectLiteral): this\r\n\r\n /**\r\n * Adds new AND WHERE condition in the query builder.\r\n * Additionally you can add parameters used in where expression.\r\n */\r\n andWhere(where: Brackets, parameters?: ObjectLiteral): this\r\n\r\n /**\r\n * Adds new AND WHERE condition in the query builder.\r\n * Additionally you can add parameters used in where expression.\r\n */\r\n andWhere(where: ObjectLiteral, parameters?: ObjectLiteral): this\r\n\r\n /**\r\n * Adds new AND WHERE condition in the query builder.\r\n * Additionally you can add parameters used in where expression.\r\n */\r\n andWhere(where: ObjectLiteral[], parameters?: ObjectLiteral): this\r\n\r\n /**\r\n * Adds new AND WHERE condition in the query builder.\r\n * Additionally you can add parameters used in where expression.\r\n */\r\n andWhere(subQuery: (qb: this) => string, parameters?: ObjectLiteral): this\r\n\r\n /**\r\n * Adds new OR WHERE condition in the query builder.\r\n * Additionally you can add parameters used in where expression.\r\n */\r\n orWhere(where: string, parameters?: ObjectLiteral): this\r\n\r\n /**\r\n * Adds new OR WHERE condition in the query builder.\r\n * Additionally you can add parameters used in where expression.\r\n */\r\n orWhere(where: Brackets, parameters?: ObjectLiteral): this\r\n\r\n /**\r\n * Adds new OR WHERE condition in the query builder.\r\n * Additionally you can add parameters used in where expression.\r\n */\r\n orWhere(where: ObjectLiteral, parameters?: ObjectLiteral): this\r\n\r\n /**\r\n * Adds new OR WHERE condition in the query builder.\r\n * Additionally you can add parameters used in where expression.\r\n */\r\n orWhere(where: ObjectLiteral[], parameters?: ObjectLiteral): this\r\n\r\n /**\r\n * Adds new OR WHERE condition in the query builder.\r\n * Additionally you can add parameters used in where expression.\r\n */\r\n orWhere(subQuery: (qb: this) => string, parameters?: ObjectLiteral): this\r\n\r\n /**\r\n * Sets WHERE condition in the query builder with a condition for the given ids.\r\n * If you had previously WHERE expression defined,\r\n * calling this function will override previously set WHERE conditions.\r\n *\r\n * Ids are mixed.\r\n * It means if you have single primary key you can pass a simple id values, for example [1, 2, 3].\r\n * If you have multiple primary keys you need to pass object with property names and values specified,\r\n * for example [{ firstId: 1, secondId: 2 }, { firstId: 2, secondId: 3 }, ...]\r\n */\r\n whereInIds(ids: any | any[]): this\r\n\r\n /**\r\n * Adds new AND WHERE with conditions for the given ids.\r\n *\r\n * Ids are mixed.\r\n * It means if you have single primary key you can pass a simple id values, for example [1, 2, 3].\r\n * If you have multiple primary keys you need to pass object with property names and values specified,\r\n * for example [{ firstId: 1, secondId: 2 }, { firstId: 2, secondId: 3 }, ...]\r\n */\r\n andWhereInIds(ids: any | any[]): this\r\n\r\n /**\r\n * Adds new OR WHERE with conditions for the given ids.\r\n *\r\n * Ids are mixed.\r\n * It means if you have single primary key you can pass a simple id values, for example [1, 2, 3].\r\n * If you have multiple primary keys you need to pass object with property names and values specified,\r\n * for example [{ firstId: 1, secondId: 2 }, { firstId: 2, secondId: 3 }, ...]\r\n */\r\n orWhereInIds(ids: any | any[]): this\r\n}\r\n\r\n/**\r\n * @deprecated Use `WhereExpressionBuilder` instead\r\n */\r\nexport interface WhereExpression extends WhereExpressionBuilder {}\r\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../browser/src/query-builder/WhereExpressionBuilder.ts"],"names":[],"mappings":"","file":"WhereExpressionBuilder.js","sourcesContent":["import { ObjectLiteral } from \"../common/ObjectLiteral\"\nimport { Brackets } from \"./Brackets\"\n\n/**\n * Query Builders can implement this interface to support where expression\n */\nexport interface WhereExpressionBuilder {\n /**\n * Sets WHERE condition in the query builder.\n * If you had previously WHERE expression defined,\n * calling this function will override previously set WHERE conditions.\n * Additionally you can add parameters used in where expression.\n */\n where(where: string, parameters?: ObjectLiteral): this\n\n /**\n * Sets WHERE condition in the query builder.\n * If you had previously WHERE expression defined,\n * calling this function will override previously set WHERE conditions.\n * Additionally you can add parameters used in where expression.\n */\n where(where: Brackets, parameters?: ObjectLiteral): this\n\n /**\n * Sets WHERE condition in the query builder.\n * If you had previously WHERE expression defined,\n * calling this function will override previously set WHERE conditions.\n * Additionally you can add parameters used in where expression.\n */\n where(where: ObjectLiteral, parameters?: ObjectLiteral): this\n\n /**\n * Sets WHERE condition in the query builder.\n * If you had previously WHERE expression defined,\n * calling this function will override previously set WHERE conditions.\n * Additionally you can add parameters used in where expression.\n */\n where(where: ObjectLiteral[], parameters?: ObjectLiteral): this\n\n /**\n * Sets WHERE condition in the query builder.\n * If you had previously WHERE expression defined,\n * calling this function will override previously set WHERE conditions.\n * Additionally you can add parameters used in where expression.\n */\n where(subQuery: (qb: this) => string, parameters?: ObjectLiteral): this\n\n /**\n * Adds new AND WHERE condition in the query builder.\n * Additionally you can add parameters used in where expression.\n */\n andWhere(where: string, parameters?: ObjectLiteral): this\n\n /**\n * Adds new AND WHERE condition in the query builder.\n * Additionally you can add parameters used in where expression.\n */\n andWhere(where: Brackets, parameters?: ObjectLiteral): this\n\n /**\n * Adds new AND WHERE condition in the query builder.\n * Additionally you can add parameters used in where expression.\n */\n andWhere(where: ObjectLiteral, parameters?: ObjectLiteral): this\n\n /**\n * Adds new AND WHERE condition in the query builder.\n * Additionally you can add parameters used in where expression.\n */\n andWhere(where: ObjectLiteral[], parameters?: ObjectLiteral): this\n\n /**\n * Adds new AND WHERE condition in the query builder.\n * Additionally you can add parameters used in where expression.\n */\n andWhere(subQuery: (qb: this) => string, parameters?: ObjectLiteral): this\n\n /**\n * Adds new OR WHERE condition in the query builder.\n * Additionally you can add parameters used in where expression.\n */\n orWhere(where: string, parameters?: ObjectLiteral): this\n\n /**\n * Adds new OR WHERE condition in the query builder.\n * Additionally you can add parameters used in where expression.\n */\n orWhere(where: Brackets, parameters?: ObjectLiteral): this\n\n /**\n * Adds new OR WHERE condition in the query builder.\n * Additionally you can add parameters used in where expression.\n */\n orWhere(where: ObjectLiteral, parameters?: ObjectLiteral): this\n\n /**\n * Adds new OR WHERE condition in the query builder.\n * Additionally you can add parameters used in where expression.\n */\n orWhere(where: ObjectLiteral[], parameters?: ObjectLiteral): this\n\n /**\n * Adds new OR WHERE condition in the query builder.\n * Additionally you can add parameters used in where expression.\n */\n orWhere(subQuery: (qb: this) => string, parameters?: ObjectLiteral): this\n\n /**\n * Sets WHERE condition in the query builder with a condition for the given ids.\n * If you had previously WHERE expression defined,\n * calling this function will override previously set WHERE conditions.\n *\n * Ids are mixed.\n * It means if you have single primary key you can pass a simple id values, for example [1, 2, 3].\n * If you have multiple primary keys you need to pass object with property names and values specified,\n * for example [{ firstId: 1, secondId: 2 }, { firstId: 2, secondId: 3 }, ...]\n */\n whereInIds(ids: any | any[]): this\n\n /**\n * Adds new AND WHERE with conditions for the given ids.\n *\n * Ids are mixed.\n * It means if you have single primary key you can pass a simple id values, for example [1, 2, 3].\n * If you have multiple primary keys you need to pass object with property names and values specified,\n * for example [{ firstId: 1, secondId: 2 }, { firstId: 2, secondId: 3 }, ...]\n */\n andWhereInIds(ids: any | any[]): this\n\n /**\n * Adds new OR WHERE with conditions for the given ids.\n *\n * Ids are mixed.\n * It means if you have single primary key you can pass a simple id values, for example [1, 2, 3].\n * If you have multiple primary keys you need to pass object with property names and values specified,\n * for example [{ firstId: 1, secondId: 2 }, { firstId: 2, secondId: 3 }, ...]\n */\n orWhereInIds(ids: any | any[]): this\n}\n\n/**\n * @deprecated Use `WhereExpressionBuilder` instead\n */\nexport interface WhereExpression extends WhereExpressionBuilder {}\n"],"sourceRoot":".."}
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/query-builder/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAEzD,MAAM,UAAU,qBAAqB;IACjC,YAAY,CAAC,yBAAyB,CAClC,oBAAoB,EACpB,CAAC,EAAqB,EAAE,EAAE,CAAC,IAAI,kBAAkB,CAAC,EAAE,CAAC,CACxD,CAAA;IACD,YAAY,CAAC,yBAAyB,CAClC,oBAAoB,EACpB,CAAC,EAAqB,EAAE,EAAE,CAAC,IAAI,kBAAkB,CAAC,EAAE,CAAC,CACxD,CAAA;IACD,YAAY,CAAC,yBAAyB,CAClC,sBAAsB,EACtB,CAAC,EAAqB,EAAE,EAAE,CAAC,IAAI,oBAAoB,CAAC,EAAE,CAAC,CAC1D,CAAA;IACD,YAAY,CAAC,yBAAyB,CAClC,oBAAoB,EACpB,CAAC,EAAqB,EAAE,EAAE,CAAC,IAAI,kBAAkB,CAAC,EAAE,CAAC,CACxD,CAAA;IACD,YAAY,CAAC,yBAAyB,CAClC,wBAAwB,EACxB,CAAC,EAAqB,EAAE,EAAE,CAAC,IAAI,sBAAsB,CAAC,EAAE,CAAC,CAC5D,CAAA;IACD,YAAY,CAAC,yBAAyB,CAClC,oBAAoB,EACpB,CAAC,EAAqB,EAAE,EAAE,CAAC,IAAI,kBAAkB,CAAC,EAAE,CAAC,CACxD,CAAA;AACL,CAAC","file":"index.js","sourcesContent":["import { DeleteQueryBuilder } from \"./DeleteQueryBuilder\"\r\nimport { InsertQueryBuilder } from \"./InsertQueryBuilder\"\r\nimport { QueryBuilder } from \"./QueryBuilder\"\r\nimport { RelationQueryBuilder } from \"./RelationQueryBuilder\"\r\nimport { SelectQueryBuilder } from \"./SelectQueryBuilder\"\r\nimport { SoftDeleteQueryBuilder } from \"./SoftDeleteQueryBuilder\"\r\nimport { UpdateQueryBuilder } from \"./UpdateQueryBuilder\"\r\n\r\nexport function registerQueryBuilders() {\r\n QueryBuilder.registerQueryBuilderClass(\r\n \"DeleteQueryBuilder\",\r\n (qb: QueryBuilder<any>) => new DeleteQueryBuilder(qb),\r\n )\r\n QueryBuilder.registerQueryBuilderClass(\r\n \"InsertQueryBuilder\",\r\n (qb: QueryBuilder<any>) => new InsertQueryBuilder(qb),\r\n )\r\n QueryBuilder.registerQueryBuilderClass(\r\n \"RelationQueryBuilder\",\r\n (qb: QueryBuilder<any>) => new RelationQueryBuilder(qb),\r\n )\r\n QueryBuilder.registerQueryBuilderClass(\r\n \"SelectQueryBuilder\",\r\n (qb: QueryBuilder<any>) => new SelectQueryBuilder(qb),\r\n )\r\n QueryBuilder.registerQueryBuilderClass(\r\n \"SoftDeleteQueryBuilder\",\r\n (qb: QueryBuilder<any>) => new SoftDeleteQueryBuilder(qb),\r\n )\r\n QueryBuilder.registerQueryBuilderClass(\r\n \"UpdateQueryBuilder\",\r\n (qb: QueryBuilder<any>) => new UpdateQueryBuilder(qb),\r\n )\r\n}\r\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../browser/src/query-builder/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAEzD,MAAM,UAAU,qBAAqB;IACjC,YAAY,CAAC,yBAAyB,CAClC,oBAAoB,EACpB,CAAC,EAAqB,EAAE,EAAE,CAAC,IAAI,kBAAkB,CAAC,EAAE,CAAC,CACxD,CAAA;IACD,YAAY,CAAC,yBAAyB,CAClC,oBAAoB,EACpB,CAAC,EAAqB,EAAE,EAAE,CAAC,IAAI,kBAAkB,CAAC,EAAE,CAAC,CACxD,CAAA;IACD,YAAY,CAAC,yBAAyB,CAClC,sBAAsB,EACtB,CAAC,EAAqB,EAAE,EAAE,CAAC,IAAI,oBAAoB,CAAC,EAAE,CAAC,CAC1D,CAAA;IACD,YAAY,CAAC,yBAAyB,CAClC,oBAAoB,EACpB,CAAC,EAAqB,EAAE,EAAE,CAAC,IAAI,kBAAkB,CAAC,EAAE,CAAC,CACxD,CAAA;IACD,YAAY,CAAC,yBAAyB,CAClC,wBAAwB,EACxB,CAAC,EAAqB,EAAE,EAAE,CAAC,IAAI,sBAAsB,CAAC,EAAE,CAAC,CAC5D,CAAA;IACD,YAAY,CAAC,yBAAyB,CAClC,oBAAoB,EACpB,CAAC,EAAqB,EAAE,EAAE,CAAC,IAAI,kBAAkB,CAAC,EAAE,CAAC,CACxD,CAAA;AACL,CAAC","file":"index.js","sourcesContent":["import { DeleteQueryBuilder } from \"./DeleteQueryBuilder\"\nimport { InsertQueryBuilder } from \"./InsertQueryBuilder\"\nimport { QueryBuilder } from \"./QueryBuilder\"\nimport { RelationQueryBuilder } from \"./RelationQueryBuilder\"\nimport { SelectQueryBuilder } from \"./SelectQueryBuilder\"\nimport { SoftDeleteQueryBuilder } from \"./SoftDeleteQueryBuilder\"\nimport { UpdateQueryBuilder } from \"./UpdateQueryBuilder\"\n\nexport function registerQueryBuilders() {\n QueryBuilder.registerQueryBuilderClass(\n \"DeleteQueryBuilder\",\n (qb: QueryBuilder<any>) => new DeleteQueryBuilder(qb),\n )\n QueryBuilder.registerQueryBuilderClass(\n \"InsertQueryBuilder\",\n (qb: QueryBuilder<any>) => new InsertQueryBuilder(qb),\n )\n QueryBuilder.registerQueryBuilderClass(\n \"RelationQueryBuilder\",\n (qb: QueryBuilder<any>) => new RelationQueryBuilder(qb),\n )\n QueryBuilder.registerQueryBuilderClass(\n \"SelectQueryBuilder\",\n (qb: QueryBuilder<any>) => new SelectQueryBuilder(qb),\n )\n QueryBuilder.registerQueryBuilderClass(\n \"SoftDeleteQueryBuilder\",\n (qb: QueryBuilder<any>) => new SoftDeleteQueryBuilder(qb),\n )\n QueryBuilder.registerQueryBuilderClass(\n \"UpdateQueryBuilder\",\n (qb: QueryBuilder<any>) => new UpdateQueryBuilder(qb),\n )\n}\n"],"sourceRoot":".."}
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/query-builder/relation-count/RelationCountAttribute.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAIxD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAEvD,MAAM,OAAO,sBAAsB;IAuB/B,4EAA4E;IAC5E,cAAc;IACd,4EAA4E;IAE5E,YACY,aAAiC,EACzC,sBAAwD;QADhD,kBAAa,GAAb,aAAa,CAAoB;QAGzC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,sBAAsB,IAAI,EAAE,CAAC,CAAA;IAC1D,CAAC;IAED,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAE5E,IAAI,uBAAuB;QACvB,OAAO,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAA;IAC9C,CAAC;IAED;;;;;OAKG;IACH,IAAI,WAAW;QACX,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC;YACrD,MAAM,IAAI,YAAY,CAClB,+DAA+D,CAClE,CAAA;QAEL,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAC1C,CAAC;IAED;;;;;;OAMG;IACH,IAAI,gBAAgB;QAChB,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC;YACrD,MAAM,IAAI,YAAY,CAClB,0DAA0D,CAC7D,CAAA;QAEL,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAC1C,CAAC;IAED,IAAI,aAAa;QACb,MAAM,CAAC,WAAW,EAAE,gBAAgB,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACpE,OAAO,WAAW,GAAG,GAAG,GAAG,gBAAgB,GAAG,KAAK,CAAA;IACvD,CAAC;IAED;;;;OAIG;IACH,IAAI,QAAQ;QACR,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC;YACrD,MAAM,IAAI,YAAY,CAClB,0DAA0D,CAC7D,CAAA;QAEL,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAChE,MAAM,sBAAsB,GACxB,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,WAAW,CAAC,CAAA;QACnD,MAAM,QAAQ,GACV,sBAAsB,CAAC,QAAQ,CAAC,4BAA4B,CACxD,YAAY,CACf,CAAA;QACL,IAAI,CAAC,QAAQ;YACT,MAAM,IAAI,YAAY,CAClB,+BAA+B,YAAY,2BAA2B,CACzE,CAAA;QACL,OAAO,QAAQ,CAAA;IACnB,CAAC;IAED;;;OAGG;IACH,IAAI,QAAQ;QACR,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC;YACrD,MAAM,IAAI,YAAY,CAClB,0DAA0D,CAC7D,CAAA;QAEL,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QACnD,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,WAAW,CAAC,CAAA;QACjE,OAAO,SAAS,CAAC,QAAQ,CAAA;IAC7B,CAAC;IAED,IAAI,yBAAyB;QACzB,OAAO,IAAI,CAAC,aAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAC5C,CAAC;CACJ","file":"RelationCountAttribute.js","sourcesContent":["import { EntityMetadata } from \"../../metadata/EntityMetadata\"\r\nimport { QueryBuilderUtils } from \"../QueryBuilderUtils\"\r\nimport { RelationMetadata } from \"../../metadata/RelationMetadata\"\r\nimport { QueryExpressionMap } from \"../QueryExpressionMap\"\r\nimport { SelectQueryBuilder } from \"../SelectQueryBuilder\"\r\nimport { ObjectUtils } from \"../../util/ObjectUtils\"\r\nimport { TypeORMError } from \"../../error/TypeORMError\"\r\n\r\nexport class RelationCountAttribute {\r\n /**\r\n * Alias of the joined (destination) table.\r\n */\r\n alias?: string\r\n\r\n /**\r\n * Name of relation.\r\n */\r\n relationName: string\r\n\r\n /**\r\n * Property + alias of the object where to joined data should be mapped.\r\n */\r\n mapToProperty: string\r\n\r\n /**\r\n * Extra condition applied to \"ON\" section of join.\r\n */\r\n queryBuilderFactory?: (\r\n qb: SelectQueryBuilder<any>,\r\n ) => SelectQueryBuilder<any>\r\n\r\n // -------------------------------------------------------------------------\r\n // Constructor\r\n // -------------------------------------------------------------------------\r\n\r\n constructor(\r\n private expressionMap: QueryExpressionMap,\r\n relationCountAttribute?: Partial<RelationCountAttribute>,\r\n ) {\r\n ObjectUtils.assign(this, relationCountAttribute || {})\r\n }\r\n\r\n // -------------------------------------------------------------------------\r\n // Public Methods\r\n // -------------------------------------------------------------------------\r\n\r\n get joinInverseSideMetadata(): EntityMetadata {\r\n return this.relation.inverseEntityMetadata\r\n }\r\n\r\n /**\r\n * Alias of the parent of this join.\r\n * For example, if we join (\"post.category\", \"categoryAlias\") then \"post\" is a parent alias.\r\n * This value is extracted from entityOrProperty value.\r\n * This is available when join was made using \"post.category\" syntax.\r\n */\r\n get parentAlias(): string {\r\n if (!QueryBuilderUtils.isAliasProperty(this.relationName))\r\n throw new TypeORMError(\r\n `Given value must be a string representation of alias property`,\r\n )\r\n\r\n return this.relationName.split(\".\")[0]\r\n }\r\n\r\n /**\r\n * Relation property name of the parent.\r\n * This is used to understand what is joined.\r\n * For example, if we join (\"post.category\", \"categoryAlias\") then \"category\" is a relation property.\r\n * This value is extracted from entityOrProperty value.\r\n * This is available when join was made using \"post.category\" syntax.\r\n */\r\n get relationProperty(): string | undefined {\r\n if (!QueryBuilderUtils.isAliasProperty(this.relationName))\r\n throw new TypeORMError(\r\n `Given value is a string representation of alias property`,\r\n )\r\n\r\n return this.relationName.split(\".\")[1]\r\n }\r\n\r\n get junctionAlias(): string {\r\n const [parentAlias, relationProperty] = this.relationName.split(\".\")\r\n return parentAlias + \"_\" + relationProperty + \"_rc\"\r\n }\r\n\r\n /**\r\n * Relation of the parent.\r\n * This is used to understand what is joined.\r\n * This is available when join was made using \"post.category\" syntax.\r\n */\r\n get relation(): RelationMetadata {\r\n if (!QueryBuilderUtils.isAliasProperty(this.relationName))\r\n throw new TypeORMError(\r\n `Given value is a string representation of alias property`,\r\n )\r\n\r\n const [parentAlias, propertyPath] = this.relationName.split(\".\")\r\n const relationOwnerSelection =\r\n this.expressionMap.findAliasByName(parentAlias)\r\n const relation =\r\n relationOwnerSelection.metadata.findRelationWithPropertyPath(\r\n propertyPath,\r\n )\r\n if (!relation)\r\n throw new TypeORMError(\r\n `Relation with property path ${propertyPath} in entity was not found.`,\r\n )\r\n return relation\r\n }\r\n\r\n /**\r\n * Metadata of the joined entity.\r\n * If table without entity was joined, then it will return undefined.\r\n */\r\n get metadata(): EntityMetadata {\r\n if (!QueryBuilderUtils.isAliasProperty(this.relationName))\r\n throw new TypeORMError(\r\n `Given value is a string representation of alias property`,\r\n )\r\n\r\n const parentAlias = this.relationName.split(\".\")[0]\r\n const selection = this.expressionMap.findAliasByName(parentAlias)\r\n return selection.metadata\r\n }\r\n\r\n get mapToPropertyPropertyName(): string {\r\n return this.mapToProperty!.split(\".\")[1]\r\n }\r\n}\r\n"],"sourceRoot":"../.."}
1
+ {"version":3,"sources":["../browser/src/query-builder/relation-count/RelationCountAttribute.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAIxD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAEvD,MAAM,OAAO,sBAAsB;IAuB/B,4EAA4E;IAC5E,cAAc;IACd,4EAA4E;IAE5E,YACY,aAAiC,EACzC,sBAAwD;QADhD,kBAAa,GAAb,aAAa,CAAoB;QAGzC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,sBAAsB,IAAI,EAAE,CAAC,CAAA;IAC1D,CAAC;IAED,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAE5E,IAAI,uBAAuB;QACvB,OAAO,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAA;IAC9C,CAAC;IAED;;;;;OAKG;IACH,IAAI,WAAW;QACX,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC;YACrD,MAAM,IAAI,YAAY,CAClB,+DAA+D,CAClE,CAAA;QAEL,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAC1C,CAAC;IAED;;;;;;OAMG;IACH,IAAI,gBAAgB;QAChB,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC;YACrD,MAAM,IAAI,YAAY,CAClB,0DAA0D,CAC7D,CAAA;QAEL,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAC1C,CAAC;IAED,IAAI,aAAa;QACb,MAAM,CAAC,WAAW,EAAE,gBAAgB,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACpE,OAAO,WAAW,GAAG,GAAG,GAAG,gBAAgB,GAAG,KAAK,CAAA;IACvD,CAAC;IAED;;;;OAIG;IACH,IAAI,QAAQ;QACR,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC;YACrD,MAAM,IAAI,YAAY,CAClB,0DAA0D,CAC7D,CAAA;QAEL,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAChE,MAAM,sBAAsB,GACxB,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,WAAW,CAAC,CAAA;QACnD,MAAM,QAAQ,GACV,sBAAsB,CAAC,QAAQ,CAAC,4BAA4B,CACxD,YAAY,CACf,CAAA;QACL,IAAI,CAAC,QAAQ;YACT,MAAM,IAAI,YAAY,CAClB,+BAA+B,YAAY,2BAA2B,CACzE,CAAA;QACL,OAAO,QAAQ,CAAA;IACnB,CAAC;IAED;;;OAGG;IACH,IAAI,QAAQ;QACR,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC;YACrD,MAAM,IAAI,YAAY,CAClB,0DAA0D,CAC7D,CAAA;QAEL,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QACnD,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,WAAW,CAAC,CAAA;QACjE,OAAO,SAAS,CAAC,QAAQ,CAAA;IAC7B,CAAC;IAED,IAAI,yBAAyB;QACzB,OAAO,IAAI,CAAC,aAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAC5C,CAAC;CACJ","file":"RelationCountAttribute.js","sourcesContent":["import { EntityMetadata } from \"../../metadata/EntityMetadata\"\nimport { QueryBuilderUtils } from \"../QueryBuilderUtils\"\nimport { RelationMetadata } from \"../../metadata/RelationMetadata\"\nimport { QueryExpressionMap } from \"../QueryExpressionMap\"\nimport { SelectQueryBuilder } from \"../SelectQueryBuilder\"\nimport { ObjectUtils } from \"../../util/ObjectUtils\"\nimport { TypeORMError } from \"../../error/TypeORMError\"\n\nexport class RelationCountAttribute {\n /**\n * Alias of the joined (destination) table.\n */\n alias?: string\n\n /**\n * Name of relation.\n */\n relationName: string\n\n /**\n * Property + alias of the object where to joined data should be mapped.\n */\n mapToProperty: string\n\n /**\n * Extra condition applied to \"ON\" section of join.\n */\n queryBuilderFactory?: (\n qb: SelectQueryBuilder<any>,\n ) => SelectQueryBuilder<any>\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(\n private expressionMap: QueryExpressionMap,\n relationCountAttribute?: Partial<RelationCountAttribute>,\n ) {\n ObjectUtils.assign(this, relationCountAttribute || {})\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n get joinInverseSideMetadata(): EntityMetadata {\n return this.relation.inverseEntityMetadata\n }\n\n /**\n * Alias of the parent of this join.\n * For example, if we join (\"post.category\", \"categoryAlias\") then \"post\" is a parent alias.\n * This value is extracted from entityOrProperty value.\n * This is available when join was made using \"post.category\" syntax.\n */\n get parentAlias(): string {\n if (!QueryBuilderUtils.isAliasProperty(this.relationName))\n throw new TypeORMError(\n `Given value must be a string representation of alias property`,\n )\n\n return this.relationName.split(\".\")[0]\n }\n\n /**\n * Relation property name of the parent.\n * This is used to understand what is joined.\n * For example, if we join (\"post.category\", \"categoryAlias\") then \"category\" is a relation property.\n * This value is extracted from entityOrProperty value.\n * This is available when join was made using \"post.category\" syntax.\n */\n get relationProperty(): string | undefined {\n if (!QueryBuilderUtils.isAliasProperty(this.relationName))\n throw new TypeORMError(\n `Given value is a string representation of alias property`,\n )\n\n return this.relationName.split(\".\")[1]\n }\n\n get junctionAlias(): string {\n const [parentAlias, relationProperty] = this.relationName.split(\".\")\n return parentAlias + \"_\" + relationProperty + \"_rc\"\n }\n\n /**\n * Relation of the parent.\n * This is used to understand what is joined.\n * This is available when join was made using \"post.category\" syntax.\n */\n get relation(): RelationMetadata {\n if (!QueryBuilderUtils.isAliasProperty(this.relationName))\n throw new TypeORMError(\n `Given value is a string representation of alias property`,\n )\n\n const [parentAlias, propertyPath] = this.relationName.split(\".\")\n const relationOwnerSelection =\n this.expressionMap.findAliasByName(parentAlias)\n const relation =\n relationOwnerSelection.metadata.findRelationWithPropertyPath(\n propertyPath,\n )\n if (!relation)\n throw new TypeORMError(\n `Relation with property path ${propertyPath} in entity was not found.`,\n )\n return relation\n }\n\n /**\n * Metadata of the joined entity.\n * If table without entity was joined, then it will return undefined.\n */\n get metadata(): EntityMetadata {\n if (!QueryBuilderUtils.isAliasProperty(this.relationName))\n throw new TypeORMError(\n `Given value is a string representation of alias property`,\n )\n\n const parentAlias = this.relationName.split(\".\")[0]\n const selection = this.expressionMap.findAliasByName(parentAlias)\n return selection.metadata\n }\n\n get mapToPropertyPropertyName(): string {\n return this.mapToProperty!.split(\".\")[1]\n }\n}\n"],"sourceRoot":"../.."}
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/query-builder/relation-count/RelationCountLoadResult.ts"],"names":[],"mappings":"","file":"RelationCountLoadResult.js","sourcesContent":["import { RelationCountAttribute } from \"./RelationCountAttribute\"\r\n\r\nexport interface RelationCountLoadResult {\r\n relationCountAttribute: RelationCountAttribute\r\n results: { cnt: any; parentId: any }[]\r\n}\r\n"],"sourceRoot":"../.."}
1
+ {"version":3,"sources":["../browser/src/query-builder/relation-count/RelationCountLoadResult.ts"],"names":[],"mappings":"","file":"RelationCountLoadResult.js","sourcesContent":["import { RelationCountAttribute } from \"./RelationCountAttribute\"\n\nexport interface RelationCountLoadResult {\n relationCountAttribute: RelationCountAttribute\n results: { cnt: any; parentId: any }[]\n}\n"],"sourceRoot":"../.."}