typeorm 0.3.21 → 0.3.22-dev.04ca83a

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 (1026) hide show
  1. package/README.md +1315 -1315
  2. package/browser/cache/DbQueryResultCache.js.map +1 -1
  3. package/browser/cache/QueryResultCache.js.map +1 -1
  4. package/browser/cache/QueryResultCacheFactory.js.map +1 -1
  5. package/browser/cache/QueryResultCacheOptions.js.map +1 -1
  6. package/browser/cache/RedisQueryResultCache.js.map +1 -1
  7. package/browser/cli-ts-node-commonjs.js.map +1 -1
  8. package/browser/cli-ts-node-esm.js.map +1 -1
  9. package/browser/common/DeepPartial.js.map +1 -1
  10. package/browser/common/EntityTarget.js.map +1 -1
  11. package/browser/common/MixedList.js.map +1 -1
  12. package/browser/common/NonNever.js.map +1 -1
  13. package/browser/common/ObjectLiteral.js.map +1 -1
  14. package/browser/common/ObjectType.js.map +1 -1
  15. package/browser/common/PickKeysByType.js.map +1 -1
  16. package/browser/common/RelationType.js.map +1 -1
  17. package/browser/connection/BaseConnectionOptions.js.map +1 -1
  18. package/browser/connection/Connection.js.map +1 -1
  19. package/browser/connection/ConnectionManager.js.map +1 -1
  20. package/browser/connection/ConnectionMetadataBuilder.js.map +1 -1
  21. package/browser/connection/ConnectionOptions.js.map +1 -1
  22. package/browser/connection/ConnectionOptionsReader.js.map +1 -1
  23. package/browser/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
  24. package/browser/container.js.map +1 -1
  25. package/browser/data-source/BaseDataSourceOptions.js.map +1 -1
  26. package/browser/data-source/DataSource.js.map +1 -1
  27. package/browser/data-source/DataSourceOptions.js.map +1 -1
  28. package/browser/data-source/index.js.map +1 -1
  29. package/browser/decorator/Check.js.map +1 -1
  30. package/browser/decorator/EntityRepository.js.map +1 -1
  31. package/browser/decorator/Exclusion.js.map +1 -1
  32. package/browser/decorator/Generated.js.map +1 -1
  33. package/browser/decorator/Index.js.map +1 -1
  34. package/browser/decorator/Unique.js.map +1 -1
  35. package/browser/decorator/columns/Column.js.map +1 -1
  36. package/browser/decorator/columns/CreateDateColumn.js.map +1 -1
  37. package/browser/decorator/columns/DeleteDateColumn.js.map +1 -1
  38. package/browser/decorator/columns/ObjectIdColumn.js.map +1 -1
  39. package/browser/decorator/columns/PrimaryColumn.js.map +1 -1
  40. package/browser/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
  41. package/browser/decorator/columns/UpdateDateColumn.js.map +1 -1
  42. package/browser/decorator/columns/VersionColumn.js.map +1 -1
  43. package/browser/decorator/columns/ViewColumn.js.map +1 -1
  44. package/browser/decorator/columns/VirtualColumn.js.map +1 -1
  45. package/browser/decorator/entity/ChildEntity.js.map +1 -1
  46. package/browser/decorator/entity/Entity.js.map +1 -1
  47. package/browser/decorator/entity/TableInheritance.js.map +1 -1
  48. package/browser/decorator/entity-view/ViewEntity.js.map +1 -1
  49. package/browser/decorator/listeners/AfterInsert.js.map +1 -1
  50. package/browser/decorator/listeners/AfterLoad.js.map +1 -1
  51. package/browser/decorator/listeners/AfterRecover.js.map +1 -1
  52. package/browser/decorator/listeners/AfterRemove.js.map +1 -1
  53. package/browser/decorator/listeners/AfterSoftRemove.js.map +1 -1
  54. package/browser/decorator/listeners/AfterUpdate.js.map +1 -1
  55. package/browser/decorator/listeners/BeforeInsert.js.map +1 -1
  56. package/browser/decorator/listeners/BeforeRecover.js.map +1 -1
  57. package/browser/decorator/listeners/BeforeRemove.js.map +1 -1
  58. package/browser/decorator/listeners/BeforeSoftRemove.js.map +1 -1
  59. package/browser/decorator/listeners/BeforeUpdate.js.map +1 -1
  60. package/browser/decorator/listeners/EventSubscriber.js.map +1 -1
  61. package/browser/decorator/options/ColumnCommonOptions.js.map +1 -1
  62. package/browser/decorator/options/ColumnEmbeddedOptions.js.map +1 -1
  63. package/browser/decorator/options/ColumnEnumOptions.js.map +1 -1
  64. package/browser/decorator/options/ColumnHstoreOptions.js.map +1 -1
  65. package/browser/decorator/options/ColumnNumericOptions.js.map +1 -1
  66. package/browser/decorator/options/ColumnOptions.js.map +1 -1
  67. package/browser/decorator/options/ColumnWithLengthOptions.js.map +1 -1
  68. package/browser/decorator/options/ColumnWithWidthOptions.js.map +1 -1
  69. package/browser/decorator/options/EntityOptions.js.map +1 -1
  70. package/browser/decorator/options/IndexOptions.js.map +1 -1
  71. package/browser/decorator/options/JoinColumnOptions.js.map +1 -1
  72. package/browser/decorator/options/JoinTableMultipleColumnsOptions.js.map +1 -1
  73. package/browser/decorator/options/JoinTableOptions.js.map +1 -1
  74. package/browser/decorator/options/PrimaryGeneratedColumnIdentityOptions.js.map +1 -1
  75. package/browser/decorator/options/PrimaryGeneratedColumnNumericOptions.js.map +1 -1
  76. package/browser/decorator/options/PrimaryGeneratedColumnUUIDOptions.js.map +1 -1
  77. package/browser/decorator/options/RelationOptions.js.map +1 -1
  78. package/browser/decorator/options/SpatialColumnOptions.js.map +1 -1
  79. package/browser/decorator/options/TransactionOptions.js.map +1 -1
  80. package/browser/decorator/options/UniqueOptions.js.map +1 -1
  81. package/browser/decorator/options/ValueTransformer.js.map +1 -1
  82. package/browser/decorator/options/ViewColumnOptions.js.map +1 -1
  83. package/browser/decorator/options/ViewEntityOptions.js.map +1 -1
  84. package/browser/decorator/options/VirtualColumnOptions.js.map +1 -1
  85. package/browser/decorator/relations/JoinColumn.js.map +1 -1
  86. package/browser/decorator/relations/JoinTable.js.map +1 -1
  87. package/browser/decorator/relations/ManyToMany.js.map +1 -1
  88. package/browser/decorator/relations/ManyToOne.js.map +1 -1
  89. package/browser/decorator/relations/OneToMany.js.map +1 -1
  90. package/browser/decorator/relations/OneToOne.js.map +1 -1
  91. package/browser/decorator/relations/RelationCount.js.map +1 -1
  92. package/browser/decorator/relations/RelationId.js.map +1 -1
  93. package/browser/decorator/tree/Tree.js.map +1 -1
  94. package/browser/decorator/tree/TreeChildren.js.map +1 -1
  95. package/browser/decorator/tree/TreeLevelColumn.js.map +1 -1
  96. package/browser/decorator/tree/TreeParent.js.map +1 -1
  97. package/browser/driver/Driver.js.map +1 -1
  98. package/browser/driver/DriverFactory.js.map +1 -1
  99. package/browser/driver/DriverUtils.js.map +1 -1
  100. package/browser/driver/Query.js.map +1 -1
  101. package/browser/driver/SqlInMemory.js.map +1 -1
  102. package/browser/driver/aurora-mysql/AuroraMysqlConnection.js.map +1 -1
  103. package/browser/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js.map +1 -1
  104. package/browser/driver/aurora-mysql/AuroraMysqlConnectionOptions.js.map +1 -1
  105. package/browser/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
  106. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js +6 -9
  107. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
  108. package/browser/driver/aurora-postgres/AuroraPostgresConnectionOptions.js.map +1 -1
  109. package/browser/driver/aurora-postgres/AuroraPostgresDriver.js.map +1 -1
  110. package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.js +6 -9
  111. package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.js.map +1 -1
  112. package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -1
  113. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
  114. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
  115. package/browser/driver/capacitor/CapacitorConnectionOptions.js.map +1 -1
  116. package/browser/driver/capacitor/CapacitorDriver.js.map +1 -1
  117. package/browser/driver/capacitor/CapacitorQueryRunner.js.map +1 -1
  118. package/browser/driver/cockroachdb/CockroachConnectionCredentialsOptions.js.map +1 -1
  119. package/browser/driver/cockroachdb/CockroachConnectionOptions.js.map +1 -1
  120. package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
  121. package/browser/driver/cockroachdb/CockroachQueryRunner.js +7 -11
  122. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  123. package/browser/driver/cordova/CordovaConnectionOptions.js.map +1 -1
  124. package/browser/driver/cordova/CordovaDriver.js.map +1 -1
  125. package/browser/driver/cordova/CordovaQueryRunner.js.map +1 -1
  126. package/browser/driver/expo/ExpoConnectionOptions.js.map +1 -1
  127. package/browser/driver/expo/ExpoDriver.js.map +1 -1
  128. package/browser/driver/expo/ExpoQueryRunner.js.map +1 -1
  129. package/browser/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  130. package/browser/driver/mongodb/MongoDriver.js.map +1 -1
  131. package/browser/driver/mongodb/MongoQueryRunner.js.map +1 -1
  132. package/browser/driver/mongodb/bson.typings.js.map +1 -1
  133. package/browser/driver/mongodb/typings.js.map +1 -1
  134. package/browser/driver/mysql/MysqlConnectionCredentialsOptions.js.map +1 -1
  135. package/browser/driver/mysql/MysqlConnectionOptions.js.map +1 -1
  136. package/browser/driver/mysql/MysqlDriver.js.map +1 -1
  137. package/browser/driver/mysql/MysqlQueryRunner.js +77 -80
  138. package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
  139. package/browser/driver/nativescript/NativescriptConnectionOptions.js.map +1 -1
  140. package/browser/driver/nativescript/NativescriptDriver.js.map +1 -1
  141. package/browser/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  142. package/browser/driver/oracle/OracleConnectionCredentialsOptions.js.map +1 -1
  143. package/browser/driver/oracle/OracleConnectionOptions.js.map +1 -1
  144. package/browser/driver/oracle/OracleDriver.js.map +1 -1
  145. package/browser/driver/oracle/OracleQueryRunner.js +4 -6
  146. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  147. package/browser/driver/postgres/PostgresConnectionCredentialsOptions.js.map +1 -1
  148. package/browser/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  149. package/browser/driver/postgres/PostgresDriver.js.map +1 -1
  150. package/browser/driver/postgres/PostgresQueryRunner.js +6 -9
  151. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  152. package/browser/driver/react-native/ReactNativeConnectionOptions.js.map +1 -1
  153. package/browser/driver/react-native/ReactNativeDriver.js.map +1 -1
  154. package/browser/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  155. package/browser/driver/sap/SapConnectionCredentialsOptions.js.map +1 -1
  156. package/browser/driver/sap/SapConnectionOptions.js.map +1 -1
  157. package/browser/driver/sap/SapDriver.js +2 -0
  158. package/browser/driver/sap/SapDriver.js.map +1 -1
  159. package/browser/driver/sap/SapQueryRunner.js.map +1 -1
  160. package/browser/driver/spanner/SpannerConnectionCredentialsOptions.js.map +1 -1
  161. package/browser/driver/spanner/SpannerConnectionOptions.js.map +1 -1
  162. package/browser/driver/spanner/SpannerDriver.js.map +1 -1
  163. package/browser/driver/spanner/SpannerQueryRunner.js.map +1 -1
  164. package/browser/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
  165. package/browser/driver/sqlite/SqliteDriver.js.map +1 -1
  166. package/browser/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  167. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  168. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +6 -9
  169. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  170. package/browser/driver/sqljs/SqljsConnectionOptions.js.map +1 -1
  171. package/browser/driver/sqljs/SqljsDriver.js.map +1 -1
  172. package/browser/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  173. package/browser/driver/sqlserver/MssqlParameter.js.map +1 -1
  174. package/browser/driver/sqlserver/SqlServerConnectionCredentialsOptions.js.map +1 -1
  175. package/browser/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
  176. package/browser/driver/sqlserver/SqlServerDriver.js.map +1 -1
  177. package/browser/driver/sqlserver/SqlServerQueryRunner.js +31 -32
  178. package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  179. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js.map +1 -1
  180. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryDefaultAuthentication.js.map +1 -1
  181. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js.map +1 -1
  182. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js.map +1 -1
  183. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js.map +1 -1
  184. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js.map +1 -1
  185. package/browser/driver/sqlserver/authentication/DefaultAuthentication.js.map +1 -1
  186. package/browser/driver/sqlserver/authentication/NtlmAuthentication.js.map +1 -1
  187. package/browser/driver/types/ColumnTypes.js.map +1 -1
  188. package/browser/driver/types/CteCapabilities.js.map +1 -1
  189. package/browser/driver/types/DataTypeDefaults.js.map +1 -1
  190. package/browser/driver/types/DatabaseType.js.map +1 -1
  191. package/browser/driver/types/GeoJsonTypes.js.map +1 -1
  192. package/browser/driver/types/IsolationLevel.js.map +1 -1
  193. package/browser/driver/types/MappedColumnTypes.js.map +1 -1
  194. package/browser/driver/types/MetadataTableType.js.map +1 -1
  195. package/browser/driver/types/ReplicationMode.js.map +1 -1
  196. package/browser/driver/types/UpsertType.js.map +1 -1
  197. package/browser/entity-manager/EntityManager.js.map +1 -1
  198. package/browser/entity-manager/EntityManagerFactory.js.map +1 -1
  199. package/browser/entity-manager/MongoEntityManager.js.map +1 -1
  200. package/browser/entity-manager/SqljsEntityManager.js.map +1 -1
  201. package/browser/entity-schema/EntitySchema.js.map +1 -1
  202. package/browser/entity-schema/EntitySchemaCheckOptions.js.map +1 -1
  203. package/browser/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
  204. package/browser/entity-schema/EntitySchemaEmbeddedColumnOptions.js.map +1 -1
  205. package/browser/entity-schema/EntitySchemaEmbeddedError.js.map +1 -1
  206. package/browser/entity-schema/EntitySchemaExclusionOptions.js.map +1 -1
  207. package/browser/entity-schema/EntitySchemaIndexOptions.js.map +1 -1
  208. package/browser/entity-schema/EntitySchemaInheritanceOptions.js.map +1 -1
  209. package/browser/entity-schema/EntitySchemaOptions.js.map +1 -1
  210. package/browser/entity-schema/EntitySchemaRelationIdOptions.js.map +1 -1
  211. package/browser/entity-schema/EntitySchemaRelationOptions.js.map +1 -1
  212. package/browser/entity-schema/EntitySchemaTransformer.js.map +1 -1
  213. package/browser/entity-schema/EntitySchemaUniqueOptions.js.map +1 -1
  214. package/browser/error/AlreadyHasActiveConnectionError.js.map +1 -1
  215. package/browser/error/CannotAttachTreeChildrenEntityError.js.map +1 -1
  216. package/browser/error/CannotConnectAlreadyConnectedError.js.map +1 -1
  217. package/browser/error/CannotCreateEntityIdMapError.js.map +1 -1
  218. package/browser/error/CannotDetermineEntityError.js.map +1 -1
  219. package/browser/error/CannotExecuteNotConnectedError.js.map +1 -1
  220. package/browser/error/CannotGetEntityManagerNotConnectedError.js.map +1 -1
  221. package/browser/error/CannotReflectMethodParameterTypeError.js.map +1 -1
  222. package/browser/error/CircularRelationsError.js.map +1 -1
  223. package/browser/error/ColumnTypeUndefinedError.js.map +1 -1
  224. package/browser/error/ConnectionIsNotSetError.js.map +1 -1
  225. package/browser/error/ConnectionNotFoundError.js.map +1 -1
  226. package/browser/error/CustomRepositoryCannotInheritRepositoryError.js.map +1 -1
  227. package/browser/error/CustomRepositoryDoesNotHaveEntityError.js.map +1 -1
  228. package/browser/error/CustomRepositoryNotFoundError.js.map +1 -1
  229. package/browser/error/DataTypeNotSupportedError.js.map +1 -1
  230. package/browser/error/DriverOptionNotSetError.js.map +1 -1
  231. package/browser/error/DriverPackageNotInstalledError.js.map +1 -1
  232. package/browser/error/EntityMetadataNotFoundError.js.map +1 -1
  233. package/browser/error/EntityNotFoundError.js.map +1 -1
  234. package/browser/error/EntityPropertyNotFoundError.js.map +1 -1
  235. package/browser/error/FindRelationsNotFoundError.js.map +1 -1
  236. package/browser/error/ForbiddenTransactionModeOverrideError.js.map +1 -1
  237. package/browser/error/InitializedRelationError.js.map +1 -1
  238. package/browser/error/InsertValuesMissingError.js.map +1 -1
  239. package/browser/error/LimitOnUpdateNotSupportedError.js.map +1 -1
  240. package/browser/error/LockNotSupportedOnGivenDriverError.js.map +1 -1
  241. package/browser/error/MetadataAlreadyExistsError.js.map +1 -1
  242. package/browser/error/MetadataWithSuchNameAlreadyExistsError.js.map +1 -1
  243. package/browser/error/MissingDeleteDateColumnError.js.map +1 -1
  244. package/browser/error/MissingDriverError.js.map +1 -1
  245. package/browser/error/MissingJoinColumnError.js.map +1 -1
  246. package/browser/error/MissingJoinTableError.js.map +1 -1
  247. package/browser/error/MissingPrimaryColumnError.js.map +1 -1
  248. package/browser/error/MustBeEntityError.js.map +1 -1
  249. package/browser/error/NamingStrategyNotFoundError.js.map +1 -1
  250. package/browser/error/NestedSetMultipleRootError.js.map +1 -1
  251. package/browser/error/NoConnectionForRepositoryError.js.map +1 -1
  252. package/browser/error/NoConnectionOptionError.js.map +1 -1
  253. package/browser/error/NoNeedToReleaseEntityManagerError.js.map +1 -1
  254. package/browser/error/NoVersionOrUpdateDateColumnError.js.map +1 -1
  255. package/browser/error/OffsetWithoutLimitNotSupportedError.js.map +1 -1
  256. package/browser/error/OptimisticLockCanNotBeUsedError.js.map +1 -1
  257. package/browser/error/OptimisticLockVersionMismatchError.js.map +1 -1
  258. package/browser/error/PersistedEntityNotFoundError.js.map +1 -1
  259. package/browser/error/PessimisticLockTransactionRequiredError.js.map +1 -1
  260. package/browser/error/PrimaryColumnCannotBeNullableError.js.map +1 -1
  261. package/browser/error/QueryFailedError.js.map +1 -1
  262. package/browser/error/QueryRunnerAlreadyReleasedError.js.map +1 -1
  263. package/browser/error/QueryRunnerProviderAlreadyReleasedError.js.map +1 -1
  264. package/browser/error/RepositoryNotTreeError.js.map +1 -1
  265. package/browser/error/ReturningStatementNotSupportedError.js.map +1 -1
  266. package/browser/error/SubjectRemovedAndUpdatedError.js.map +1 -1
  267. package/browser/error/SubjectWithoutIdentifierError.js.map +1 -1
  268. package/browser/error/TransactionAlreadyStartedError.js.map +1 -1
  269. package/browser/error/TransactionNotStartedError.js.map +1 -1
  270. package/browser/error/TreeRepositoryNotSupportedError.js.map +1 -1
  271. package/browser/error/TypeORMError.js.map +1 -1
  272. package/browser/error/UpdateValuesMissingError.js.map +1 -1
  273. package/browser/error/UsingJoinColumnIsNotAllowedError.js.map +1 -1
  274. package/browser/error/UsingJoinColumnOnlyOnOneSideAllowedError.js.map +1 -1
  275. package/browser/error/UsingJoinTableIsNotAllowedError.js.map +1 -1
  276. package/browser/error/UsingJoinTableOnlyOnOneSideAllowedError.js.map +1 -1
  277. package/browser/error/index.js.map +1 -1
  278. package/browser/find-options/EqualOperator.js.map +1 -1
  279. package/browser/find-options/FindManyOptions.js.map +1 -1
  280. package/browser/find-options/FindOneOptions.js.map +1 -1
  281. package/browser/find-options/FindOperator.js.map +1 -1
  282. package/browser/find-options/FindOperatorType.js.map +1 -1
  283. package/browser/find-options/FindOptionsOrder.js.map +1 -1
  284. package/browser/find-options/FindOptionsRelations.js.map +1 -1
  285. package/browser/find-options/FindOptionsSelect.js.map +1 -1
  286. package/browser/find-options/FindOptionsUtils.js.map +1 -1
  287. package/browser/find-options/FindOptionsWhere.js.map +1 -1
  288. package/browser/find-options/FindTreeOptions.js.map +1 -1
  289. package/browser/find-options/JoinOptions.js.map +1 -1
  290. package/browser/find-options/OrderByCondition.js.map +1 -1
  291. package/browser/find-options/mongodb/MongoFindManyOptions.js.map +1 -1
  292. package/browser/find-options/mongodb/MongoFindOneOptions.js.map +1 -1
  293. package/browser/find-options/operator/And.js.map +1 -1
  294. package/browser/find-options/operator/Any.js.map +1 -1
  295. package/browser/find-options/operator/ArrayContainedBy.js.map +1 -1
  296. package/browser/find-options/operator/ArrayContains.js.map +1 -1
  297. package/browser/find-options/operator/ArrayOverlap.js.map +1 -1
  298. package/browser/find-options/operator/Between.js.map +1 -1
  299. package/browser/find-options/operator/Equal.js.map +1 -1
  300. package/browser/find-options/operator/ILike.js.map +1 -1
  301. package/browser/find-options/operator/In.js.map +1 -1
  302. package/browser/find-options/operator/IsNull.js.map +1 -1
  303. package/browser/find-options/operator/JsonContains.js.map +1 -1
  304. package/browser/find-options/operator/LessThan.js.map +1 -1
  305. package/browser/find-options/operator/LessThanOrEqual.js.map +1 -1
  306. package/browser/find-options/operator/Like.js.map +1 -1
  307. package/browser/find-options/operator/MoreThan.js.map +1 -1
  308. package/browser/find-options/operator/MoreThanOrEqual.js.map +1 -1
  309. package/browser/find-options/operator/Not.js.map +1 -1
  310. package/browser/find-options/operator/Or.js.map +1 -1
  311. package/browser/find-options/operator/Raw.js.map +1 -1
  312. package/browser/globals.js.map +1 -1
  313. package/browser/index.js.map +1 -1
  314. package/browser/logger/AbstractLogger.js.map +1 -1
  315. package/browser/logger/AdvancedConsoleLogger.js.map +1 -1
  316. package/browser/logger/DebugLogger.js.map +1 -1
  317. package/browser/logger/FileLogger.js.map +1 -1
  318. package/browser/logger/Logger.js.map +1 -1
  319. package/browser/logger/LoggerFactory.js.map +1 -1
  320. package/browser/logger/LoggerOptions.js.map +1 -1
  321. package/browser/logger/SimpleConsoleLogger.js.map +1 -1
  322. package/browser/metadata/CheckMetadata.js.map +1 -1
  323. package/browser/metadata/ColumnMetadata.js.map +1 -1
  324. package/browser/metadata/EmbeddedMetadata.js.map +1 -1
  325. package/browser/metadata/EntityListenerMetadata.js.map +1 -1
  326. package/browser/metadata/EntityMetadata.js.map +1 -1
  327. package/browser/metadata/ExclusionMetadata.js.map +1 -1
  328. package/browser/metadata/ForeignKeyMetadata.js.map +1 -1
  329. package/browser/metadata/IndexMetadata.js.map +1 -1
  330. package/browser/metadata/RelationCountMetadata.js.map +1 -1
  331. package/browser/metadata/RelationIdMetadata.js.map +1 -1
  332. package/browser/metadata/RelationMetadata.js.map +1 -1
  333. package/browser/metadata/UniqueMetadata.js.map +1 -1
  334. package/browser/metadata/types/ClosureTreeOptions.js.map +1 -1
  335. package/browser/metadata/types/DeferrableType.js.map +1 -1
  336. package/browser/metadata/types/EventListenerTypes.js.map +1 -1
  337. package/browser/metadata/types/OnDeleteType.js.map +1 -1
  338. package/browser/metadata/types/OnUpdateType.js.map +1 -1
  339. package/browser/metadata/types/PropertyTypeInFunction.js.map +1 -1
  340. package/browser/metadata/types/RelationTypeInFunction.js.map +1 -1
  341. package/browser/metadata/types/RelationTypes.js.map +1 -1
  342. package/browser/metadata/types/TableTypes.js.map +1 -1
  343. package/browser/metadata/types/TreeTypes.js.map +1 -1
  344. package/browser/metadata-args/CheckMetadataArgs.js.map +1 -1
  345. package/browser/metadata-args/ColumnMetadataArgs.js.map +1 -1
  346. package/browser/metadata-args/DiscriminatorValueMetadataArgs.js.map +1 -1
  347. package/browser/metadata-args/EmbeddedMetadataArgs.js.map +1 -1
  348. package/browser/metadata-args/EntityListenerMetadataArgs.js.map +1 -1
  349. package/browser/metadata-args/EntityRepositoryMetadataArgs.js.map +1 -1
  350. package/browser/metadata-args/EntitySubscriberMetadataArgs.js.map +1 -1
  351. package/browser/metadata-args/ExclusionMetadataArgs.js.map +1 -1
  352. package/browser/metadata-args/GeneratedMetadataArgs.js.map +1 -1
  353. package/browser/metadata-args/IndexMetadataArgs.js.map +1 -1
  354. package/browser/metadata-args/InheritanceMetadataArgs.js.map +1 -1
  355. package/browser/metadata-args/JoinColumnMetadataArgs.js.map +1 -1
  356. package/browser/metadata-args/JoinTableMetadataArgs.js.map +1 -1
  357. package/browser/metadata-args/MetadataArgsStorage.js.map +1 -1
  358. package/browser/metadata-args/NamingStrategyMetadataArgs.js.map +1 -1
  359. package/browser/metadata-args/RelationCountMetadataArgs.js.map +1 -1
  360. package/browser/metadata-args/RelationIdMetadataArgs.js.map +1 -1
  361. package/browser/metadata-args/RelationMetadataArgs.js.map +1 -1
  362. package/browser/metadata-args/TableMetadataArgs.js.map +1 -1
  363. package/browser/metadata-args/TransactionEntityMetadataArgs.js.map +1 -1
  364. package/browser/metadata-args/TransactionRepositoryMetadataArgs.js.map +1 -1
  365. package/browser/metadata-args/TreeMetadataArgs.js.map +1 -1
  366. package/browser/metadata-args/UniqueMetadataArgs.js.map +1 -1
  367. package/browser/metadata-args/types/ColumnMode.js.map +1 -1
  368. package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -1
  369. package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  370. package/browser/metadata-builder/EntityMetadataValidator.js.map +1 -1
  371. package/browser/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  372. package/browser/metadata-builder/MetadataUtils.js.map +1 -1
  373. package/browser/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
  374. package/browser/migration/Migration.js.map +1 -1
  375. package/browser/migration/MigrationExecutor.js.map +1 -1
  376. package/browser/migration/MigrationInterface.js.map +1 -1
  377. package/browser/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  378. package/browser/naming-strategy/LegacyOracleNamingStrategy.js.map +1 -1
  379. package/browser/naming-strategy/NamingStrategyInterface.js.map +1 -1
  380. package/browser/persistence/EntityPersistExecutor.js.map +1 -1
  381. package/browser/persistence/Subject.js.map +1 -1
  382. package/browser/persistence/SubjectChangeMap.js.map +1 -1
  383. package/browser/persistence/SubjectChangedColumnsComputer.js.map +1 -1
  384. package/browser/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  385. package/browser/persistence/SubjectExecutor.js.map +1 -1
  386. package/browser/persistence/SubjectTopologicalSorter.js.map +1 -1
  387. package/browser/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
  388. package/browser/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
  389. package/browser/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
  390. package/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -1
  391. package/browser/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
  392. package/browser/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
  393. package/browser/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
  394. package/browser/platform/BrowserConnectionOptionsReaderDummy.js.map +1 -1
  395. package/browser/platform/BrowserDirectoryExportedClassesLoader.js.map +1 -1
  396. package/browser/platform/BrowserDisabledDriversDummy.js.map +1 -1
  397. package/browser/platform/BrowserFileLoggerDummy.js.map +1 -1
  398. package/browser/platform/BrowserPlatformTools.js.map +1 -1
  399. package/browser/platform/PlatformTools.js.map +1 -1
  400. package/browser/query-builder/Alias.js.map +1 -1
  401. package/browser/query-builder/Brackets.js.map +1 -1
  402. package/browser/query-builder/DeleteQueryBuilder.js.map +1 -1
  403. package/browser/query-builder/InsertOrUpdateOptions.js.map +1 -1
  404. package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
  405. package/browser/query-builder/JoinAttribute.js.map +1 -1
  406. package/browser/query-builder/JoinOptions.js.map +1 -1
  407. package/browser/query-builder/NotBrackets.js.map +1 -1
  408. package/browser/query-builder/QueryBuilder.js.map +1 -1
  409. package/browser/query-builder/QueryBuilderCte.js.map +1 -1
  410. package/browser/query-builder/QueryBuilderUtils.js.map +1 -1
  411. package/browser/query-builder/QueryExpressionMap.js.map +1 -1
  412. package/browser/query-builder/QueryPartialEntity.js.map +1 -1
  413. package/browser/query-builder/RelationIdLoader.js +3 -2
  414. package/browser/query-builder/RelationIdLoader.js.map +1 -1
  415. package/browser/query-builder/RelationLoader.js.map +1 -1
  416. package/browser/query-builder/RelationQueryBuilder.js.map +1 -1
  417. package/browser/query-builder/RelationRemover.js.map +1 -1
  418. package/browser/query-builder/RelationUpdater.js.map +1 -1
  419. package/browser/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
  420. package/browser/query-builder/SelectQuery.js.map +1 -1
  421. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  422. package/browser/query-builder/SelectQueryBuilderOption.js.map +1 -1
  423. package/browser/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  424. package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
  425. package/browser/query-builder/WhereClause.js.map +1 -1
  426. package/browser/query-builder/WhereExpressionBuilder.js.map +1 -1
  427. package/browser/query-builder/index.js.map +1 -1
  428. package/browser/query-builder/relation-count/RelationCountAttribute.js.map +1 -1
  429. package/browser/query-builder/relation-count/RelationCountLoadResult.js.map +1 -1
  430. package/browser/query-builder/relation-count/RelationCountLoader.js.map +1 -1
  431. package/browser/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js.map +1 -1
  432. package/browser/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
  433. package/browser/query-builder/relation-id/RelationIdLoadResult.js.map +1 -1
  434. package/browser/query-builder/relation-id/RelationIdLoader.js.map +1 -1
  435. package/browser/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js.map +1 -1
  436. package/browser/query-builder/result/DeleteResult.js.map +1 -1
  437. package/browser/query-builder/result/InsertResult.js.map +1 -1
  438. package/browser/query-builder/result/UpdateResult.js.map +1 -1
  439. package/browser/query-builder/transformer/DocumentToEntityTransformer.js.map +1 -1
  440. package/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
  441. package/browser/query-builder/transformer/PlainObjectToNewEntityTransformer.js.map +1 -1
  442. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  443. package/browser/query-runner/BaseQueryRunner.js.map +1 -1
  444. package/browser/query-runner/QueryLock.js.map +1 -1
  445. package/browser/query-runner/QueryResult.js.map +1 -1
  446. package/browser/query-runner/QueryRunner.js.map +1 -1
  447. package/browser/repository/AbstractRepository.js.map +1 -1
  448. package/browser/repository/BaseEntity.js.map +1 -1
  449. package/browser/repository/EntityId.js.map +1 -1
  450. package/browser/repository/FindTreesOptions.js.map +1 -1
  451. package/browser/repository/MongoRepository.js.map +1 -1
  452. package/browser/repository/RemoveOptions.js.map +1 -1
  453. package/browser/repository/Repository.js.map +1 -1
  454. package/browser/repository/SaveOptions.js.map +1 -1
  455. package/browser/repository/TreeRepository.js.map +1 -1
  456. package/browser/repository/UpsertOptions.js.map +1 -1
  457. package/browser/schema-builder/MongoSchemaBuilder.js.map +1 -1
  458. package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  459. package/browser/schema-builder/SchemaBuilder.js.map +1 -1
  460. package/browser/schema-builder/options/TableCheckOptions.js.map +1 -1
  461. package/browser/schema-builder/options/TableColumnOptions.js.map +1 -1
  462. package/browser/schema-builder/options/TableExclusionOptions.js.map +1 -1
  463. package/browser/schema-builder/options/TableForeignKeyOptions.js.map +1 -1
  464. package/browser/schema-builder/options/TableIndexOptions.js.map +1 -1
  465. package/browser/schema-builder/options/TableOptions.js.map +1 -1
  466. package/browser/schema-builder/options/TableUniqueOptions.js.map +1 -1
  467. package/browser/schema-builder/options/ViewOptions.js.map +1 -1
  468. package/browser/schema-builder/table/Table.js.map +1 -1
  469. package/browser/schema-builder/table/TableCheck.js.map +1 -1
  470. package/browser/schema-builder/table/TableColumn.js.map +1 -1
  471. package/browser/schema-builder/table/TableExclusion.js.map +1 -1
  472. package/browser/schema-builder/table/TableForeignKey.js.map +1 -1
  473. package/browser/schema-builder/table/TableIndex.js.map +1 -1
  474. package/browser/schema-builder/table/TableUnique.js.map +1 -1
  475. package/browser/schema-builder/util/TableUtils.js.map +1 -1
  476. package/browser/schema-builder/util/ViewUtils.js.map +1 -1
  477. package/browser/schema-builder/view/View.js.map +1 -1
  478. package/browser/subscriber/Broadcaster.js.map +1 -1
  479. package/browser/subscriber/BroadcasterResult.js.map +1 -1
  480. package/browser/subscriber/EntitySubscriberInterface.js.map +1 -1
  481. package/browser/subscriber/event/InsertEvent.js.map +1 -1
  482. package/browser/subscriber/event/LoadEvent.js.map +1 -1
  483. package/browser/subscriber/event/QueryEvent.js.map +1 -1
  484. package/browser/subscriber/event/RecoverEvent.js.map +1 -1
  485. package/browser/subscriber/event/RemoveEvent.js.map +1 -1
  486. package/browser/subscriber/event/SoftRemoveEvent.js.map +1 -1
  487. package/browser/subscriber/event/TransactionCommitEvent.js.map +1 -1
  488. package/browser/subscriber/event/TransactionRollbackEvent.js.map +1 -1
  489. package/browser/subscriber/event/TransactionStartEvent.js.map +1 -1
  490. package/browser/subscriber/event/UpdateEvent.js.map +1 -1
  491. package/browser/util/ApplyValueTransformers.js.map +1 -1
  492. package/browser/util/DateUtils.js.map +1 -1
  493. package/browser/util/DepGraph.js.map +1 -1
  494. package/browser/util/DirectoryExportedClassesLoader.js.map +1 -1
  495. package/browser/util/ImportUtils.js.map +1 -1
  496. package/browser/util/InstanceChecker.js.map +1 -1
  497. package/browser/util/ObjectUtils.js.map +1 -1
  498. package/browser/util/OrmUtils.js.map +1 -1
  499. package/browser/util/PathUtils.js.map +1 -1
  500. package/browser/util/RandomGenerator.js.map +1 -1
  501. package/browser/util/StringUtils.js.map +1 -1
  502. package/browser/util/TreeRepositoryUtils.js.map +1 -1
  503. package/browser/util/VersionUtils.js.map +1 -1
  504. package/browser/util/escapeRegExp.js.map +1 -1
  505. package/cache/DbQueryResultCache.js.map +1 -1
  506. package/cache/QueryResultCache.js.map +1 -1
  507. package/cache/QueryResultCacheFactory.js.map +1 -1
  508. package/cache/QueryResultCacheOptions.js.map +1 -1
  509. package/cache/RedisQueryResultCache.js.map +1 -1
  510. package/cli-ts-node-commonjs.js.map +1 -1
  511. package/cli-ts-node-esm.js.map +1 -1
  512. package/cli.js.map +1 -1
  513. package/commands/CacheClearCommand.js.map +1 -1
  514. package/commands/CommandUtils.js.map +1 -1
  515. package/commands/EntityCreateCommand.js +6 -6
  516. package/commands/EntityCreateCommand.js.map +1 -1
  517. package/commands/InitCommand.js +294 -302
  518. package/commands/InitCommand.js.map +1 -1
  519. package/commands/MigrationCreateCommand.js +22 -22
  520. package/commands/MigrationCreateCommand.js.map +1 -1
  521. package/commands/MigrationGenerateCommand.js +31 -31
  522. package/commands/MigrationGenerateCommand.js.map +1 -1
  523. package/commands/MigrationRevertCommand.js.map +1 -1
  524. package/commands/MigrationRunCommand.js.map +1 -1
  525. package/commands/MigrationShowCommand.js.map +1 -1
  526. package/commands/QueryCommand.js.map +1 -1
  527. package/commands/SchemaDropCommand.js.map +1 -1
  528. package/commands/SchemaLogCommand.js.map +1 -1
  529. package/commands/SchemaSyncCommand.js.map +1 -1
  530. package/commands/SubscriberCreateCommand.js +6 -6
  531. package/commands/SubscriberCreateCommand.js.map +1 -1
  532. package/commands/VersionCommand.js.map +1 -1
  533. package/common/DeepPartial.js.map +1 -1
  534. package/common/EntityTarget.js.map +1 -1
  535. package/common/MixedList.js.map +1 -1
  536. package/common/NonNever.js.map +1 -1
  537. package/common/ObjectLiteral.js.map +1 -1
  538. package/common/ObjectType.js.map +1 -1
  539. package/common/PickKeysByType.js.map +1 -1
  540. package/common/RelationType.js.map +1 -1
  541. package/connection/BaseConnectionOptions.js.map +1 -1
  542. package/connection/Connection.js.map +1 -1
  543. package/connection/ConnectionManager.js.map +1 -1
  544. package/connection/ConnectionMetadataBuilder.js.map +1 -1
  545. package/connection/ConnectionOptions.js.map +1 -1
  546. package/connection/ConnectionOptionsReader.js.map +1 -1
  547. package/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
  548. package/container.js.map +1 -1
  549. package/data-source/BaseDataSourceOptions.js.map +1 -1
  550. package/data-source/DataSource.js.map +1 -1
  551. package/data-source/DataSourceOptions.js.map +1 -1
  552. package/data-source/index.js.map +1 -1
  553. package/decorator/Check.js.map +1 -1
  554. package/decorator/EntityRepository.js.map +1 -1
  555. package/decorator/Exclusion.js.map +1 -1
  556. package/decorator/Generated.js.map +1 -1
  557. package/decorator/Index.js.map +1 -1
  558. package/decorator/Unique.js.map +1 -1
  559. package/decorator/columns/Column.js.map +1 -1
  560. package/decorator/columns/CreateDateColumn.js.map +1 -1
  561. package/decorator/columns/DeleteDateColumn.js.map +1 -1
  562. package/decorator/columns/ObjectIdColumn.js.map +1 -1
  563. package/decorator/columns/PrimaryColumn.js.map +1 -1
  564. package/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
  565. package/decorator/columns/UpdateDateColumn.js.map +1 -1
  566. package/decorator/columns/VersionColumn.js.map +1 -1
  567. package/decorator/columns/ViewColumn.js.map +1 -1
  568. package/decorator/columns/VirtualColumn.js.map +1 -1
  569. package/decorator/entity/ChildEntity.js.map +1 -1
  570. package/decorator/entity/Entity.js.map +1 -1
  571. package/decorator/entity/TableInheritance.js.map +1 -1
  572. package/decorator/entity-view/ViewEntity.js.map +1 -1
  573. package/decorator/listeners/AfterInsert.js.map +1 -1
  574. package/decorator/listeners/AfterLoad.js.map +1 -1
  575. package/decorator/listeners/AfterRecover.js.map +1 -1
  576. package/decorator/listeners/AfterRemove.js.map +1 -1
  577. package/decorator/listeners/AfterSoftRemove.js.map +1 -1
  578. package/decorator/listeners/AfterUpdate.js.map +1 -1
  579. package/decorator/listeners/BeforeInsert.js.map +1 -1
  580. package/decorator/listeners/BeforeRecover.js.map +1 -1
  581. package/decorator/listeners/BeforeRemove.js.map +1 -1
  582. package/decorator/listeners/BeforeSoftRemove.js.map +1 -1
  583. package/decorator/listeners/BeforeUpdate.js.map +1 -1
  584. package/decorator/listeners/EventSubscriber.js.map +1 -1
  585. package/decorator/options/ColumnCommonOptions.js.map +1 -1
  586. package/decorator/options/ColumnEmbeddedOptions.js.map +1 -1
  587. package/decorator/options/ColumnEnumOptions.js.map +1 -1
  588. package/decorator/options/ColumnHstoreOptions.js.map +1 -1
  589. package/decorator/options/ColumnNumericOptions.js.map +1 -1
  590. package/decorator/options/ColumnOptions.js.map +1 -1
  591. package/decorator/options/ColumnWithLengthOptions.js.map +1 -1
  592. package/decorator/options/ColumnWithWidthOptions.js.map +1 -1
  593. package/decorator/options/EntityOptions.js.map +1 -1
  594. package/decorator/options/IndexOptions.js.map +1 -1
  595. package/decorator/options/JoinColumnOptions.js.map +1 -1
  596. package/decorator/options/JoinTableMultipleColumnsOptions.js.map +1 -1
  597. package/decorator/options/JoinTableOptions.js.map +1 -1
  598. package/decorator/options/PrimaryGeneratedColumnIdentityOptions.js.map +1 -1
  599. package/decorator/options/PrimaryGeneratedColumnNumericOptions.js.map +1 -1
  600. package/decorator/options/PrimaryGeneratedColumnUUIDOptions.js.map +1 -1
  601. package/decorator/options/RelationOptions.js.map +1 -1
  602. package/decorator/options/SpatialColumnOptions.js.map +1 -1
  603. package/decorator/options/TransactionOptions.js.map +1 -1
  604. package/decorator/options/UniqueOptions.js.map +1 -1
  605. package/decorator/options/ValueTransformer.js.map +1 -1
  606. package/decorator/options/ViewColumnOptions.js.map +1 -1
  607. package/decorator/options/ViewEntityOptions.js.map +1 -1
  608. package/decorator/options/VirtualColumnOptions.js.map +1 -1
  609. package/decorator/relations/JoinColumn.js.map +1 -1
  610. package/decorator/relations/JoinTable.js.map +1 -1
  611. package/decorator/relations/ManyToMany.js.map +1 -1
  612. package/decorator/relations/ManyToOne.js.map +1 -1
  613. package/decorator/relations/OneToMany.js.map +1 -1
  614. package/decorator/relations/OneToOne.js.map +1 -1
  615. package/decorator/relations/RelationCount.js.map +1 -1
  616. package/decorator/relations/RelationId.js.map +1 -1
  617. package/decorator/tree/Tree.js.map +1 -1
  618. package/decorator/tree/TreeChildren.js.map +1 -1
  619. package/decorator/tree/TreeLevelColumn.js.map +1 -1
  620. package/decorator/tree/TreeParent.js.map +1 -1
  621. package/driver/Driver.js.map +1 -1
  622. package/driver/DriverFactory.js.map +1 -1
  623. package/driver/DriverUtils.js.map +1 -1
  624. package/driver/Query.js.map +1 -1
  625. package/driver/SqlInMemory.js.map +1 -1
  626. package/driver/aurora-mysql/AuroraMysqlConnection.js.map +1 -1
  627. package/driver/aurora-mysql/AuroraMysqlConnectionCredentialsOptions.js.map +1 -1
  628. package/driver/aurora-mysql/AuroraMysqlConnectionOptions.js.map +1 -1
  629. package/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
  630. package/driver/aurora-mysql/AuroraMysqlQueryRunner.js +6 -9
  631. package/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
  632. package/driver/aurora-postgres/AuroraPostgresConnectionOptions.js.map +1 -1
  633. package/driver/aurora-postgres/AuroraPostgresDriver.js.map +1 -1
  634. package/driver/aurora-postgres/AuroraPostgresQueryRunner.js +6 -9
  635. package/driver/aurora-postgres/AuroraPostgresQueryRunner.js.map +1 -1
  636. package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -1
  637. package/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
  638. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
  639. package/driver/capacitor/CapacitorConnectionOptions.js.map +1 -1
  640. package/driver/capacitor/CapacitorDriver.js.map +1 -1
  641. package/driver/capacitor/CapacitorQueryRunner.js.map +1 -1
  642. package/driver/cockroachdb/CockroachConnectionCredentialsOptions.js.map +1 -1
  643. package/driver/cockroachdb/CockroachConnectionOptions.js.map +1 -1
  644. package/driver/cockroachdb/CockroachDriver.js.map +1 -1
  645. package/driver/cockroachdb/CockroachQueryRunner.js +7 -11
  646. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  647. package/driver/cordova/CordovaConnectionOptions.js.map +1 -1
  648. package/driver/cordova/CordovaDriver.js.map +1 -1
  649. package/driver/cordova/CordovaQueryRunner.js.map +1 -1
  650. package/driver/expo/ExpoConnectionOptions.js.map +1 -1
  651. package/driver/expo/ExpoDriver.js.map +1 -1
  652. package/driver/expo/ExpoQueryRunner.js.map +1 -1
  653. package/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  654. package/driver/mongodb/MongoDriver.js.map +1 -1
  655. package/driver/mongodb/MongoQueryRunner.js.map +1 -1
  656. package/driver/mongodb/bson.typings.js.map +1 -1
  657. package/driver/mongodb/typings.js.map +1 -1
  658. package/driver/mysql/MysqlConnectionCredentialsOptions.js.map +1 -1
  659. package/driver/mysql/MysqlConnectionOptions.js.map +1 -1
  660. package/driver/mysql/MysqlDriver.js.map +1 -1
  661. package/driver/mysql/MysqlQueryRunner.js +77 -80
  662. package/driver/mysql/MysqlQueryRunner.js.map +1 -1
  663. package/driver/nativescript/NativescriptConnectionOptions.js.map +1 -1
  664. package/driver/nativescript/NativescriptDriver.js.map +1 -1
  665. package/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  666. package/driver/oracle/OracleConnectionCredentialsOptions.js.map +1 -1
  667. package/driver/oracle/OracleConnectionOptions.js.map +1 -1
  668. package/driver/oracle/OracleDriver.js.map +1 -1
  669. package/driver/oracle/OracleQueryRunner.js +4 -6
  670. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  671. package/driver/postgres/PostgresConnectionCredentialsOptions.js.map +1 -1
  672. package/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  673. package/driver/postgres/PostgresDriver.js.map +1 -1
  674. package/driver/postgres/PostgresQueryRunner.js +6 -9
  675. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  676. package/driver/react-native/ReactNativeConnectionOptions.js.map +1 -1
  677. package/driver/react-native/ReactNativeDriver.js.map +1 -1
  678. package/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  679. package/driver/sap/SapConnectionCredentialsOptions.js.map +1 -1
  680. package/driver/sap/SapConnectionOptions.js.map +1 -1
  681. package/driver/sap/SapDriver.js +2 -0
  682. package/driver/sap/SapDriver.js.map +1 -1
  683. package/driver/sap/SapQueryRunner.js.map +1 -1
  684. package/driver/spanner/SpannerConnectionCredentialsOptions.js.map +1 -1
  685. package/driver/spanner/SpannerConnectionOptions.js.map +1 -1
  686. package/driver/spanner/SpannerDriver.js.map +1 -1
  687. package/driver/spanner/SpannerQueryRunner.js.map +1 -1
  688. package/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
  689. package/driver/sqlite/SqliteDriver.js.map +1 -1
  690. package/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  691. package/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  692. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +6 -9
  693. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  694. package/driver/sqljs/SqljsConnectionOptions.js.map +1 -1
  695. package/driver/sqljs/SqljsDriver.js.map +1 -1
  696. package/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  697. package/driver/sqlserver/MssqlParameter.js.map +1 -1
  698. package/driver/sqlserver/SqlServerConnectionCredentialsOptions.js.map +1 -1
  699. package/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
  700. package/driver/sqlserver/SqlServerDriver.js.map +1 -1
  701. package/driver/sqlserver/SqlServerQueryRunner.js +31 -32
  702. package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  703. package/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js.map +1 -1
  704. package/driver/sqlserver/authentication/AzureActiveDirectoryDefaultAuthentication.js.map +1 -1
  705. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js.map +1 -1
  706. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js.map +1 -1
  707. package/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js.map +1 -1
  708. package/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js.map +1 -1
  709. package/driver/sqlserver/authentication/DefaultAuthentication.js.map +1 -1
  710. package/driver/sqlserver/authentication/NtlmAuthentication.js.map +1 -1
  711. package/driver/types/ColumnTypes.js.map +1 -1
  712. package/driver/types/CteCapabilities.js.map +1 -1
  713. package/driver/types/DataTypeDefaults.js.map +1 -1
  714. package/driver/types/DatabaseType.js.map +1 -1
  715. package/driver/types/GeoJsonTypes.js.map +1 -1
  716. package/driver/types/IsolationLevel.js.map +1 -1
  717. package/driver/types/MappedColumnTypes.js.map +1 -1
  718. package/driver/types/MetadataTableType.js.map +1 -1
  719. package/driver/types/ReplicationMode.js.map +1 -1
  720. package/driver/types/UpsertType.js.map +1 -1
  721. package/entity-manager/EntityManager.js.map +1 -1
  722. package/entity-manager/EntityManagerFactory.js.map +1 -1
  723. package/entity-manager/MongoEntityManager.js.map +1 -1
  724. package/entity-manager/SqljsEntityManager.js.map +1 -1
  725. package/entity-schema/EntitySchema.js.map +1 -1
  726. package/entity-schema/EntitySchemaCheckOptions.js.map +1 -1
  727. package/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
  728. package/entity-schema/EntitySchemaEmbeddedColumnOptions.js.map +1 -1
  729. package/entity-schema/EntitySchemaEmbeddedError.js.map +1 -1
  730. package/entity-schema/EntitySchemaExclusionOptions.js.map +1 -1
  731. package/entity-schema/EntitySchemaIndexOptions.js.map +1 -1
  732. package/entity-schema/EntitySchemaInheritanceOptions.js.map +1 -1
  733. package/entity-schema/EntitySchemaOptions.js.map +1 -1
  734. package/entity-schema/EntitySchemaRelationIdOptions.js.map +1 -1
  735. package/entity-schema/EntitySchemaRelationOptions.js.map +1 -1
  736. package/entity-schema/EntitySchemaTransformer.js.map +1 -1
  737. package/entity-schema/EntitySchemaUniqueOptions.js.map +1 -1
  738. package/error/AlreadyHasActiveConnectionError.js.map +1 -1
  739. package/error/CannotAttachTreeChildrenEntityError.js.map +1 -1
  740. package/error/CannotConnectAlreadyConnectedError.js.map +1 -1
  741. package/error/CannotCreateEntityIdMapError.js.map +1 -1
  742. package/error/CannotDetermineEntityError.js.map +1 -1
  743. package/error/CannotExecuteNotConnectedError.js.map +1 -1
  744. package/error/CannotGetEntityManagerNotConnectedError.js.map +1 -1
  745. package/error/CannotReflectMethodParameterTypeError.js.map +1 -1
  746. package/error/CircularRelationsError.js.map +1 -1
  747. package/error/ColumnTypeUndefinedError.js.map +1 -1
  748. package/error/ConnectionIsNotSetError.js.map +1 -1
  749. package/error/ConnectionNotFoundError.js.map +1 -1
  750. package/error/CustomRepositoryCannotInheritRepositoryError.js.map +1 -1
  751. package/error/CustomRepositoryDoesNotHaveEntityError.js.map +1 -1
  752. package/error/CustomRepositoryNotFoundError.js.map +1 -1
  753. package/error/DataTypeNotSupportedError.js.map +1 -1
  754. package/error/DriverOptionNotSetError.js.map +1 -1
  755. package/error/DriverPackageNotInstalledError.js.map +1 -1
  756. package/error/EntityMetadataNotFoundError.js.map +1 -1
  757. package/error/EntityNotFoundError.js.map +1 -1
  758. package/error/EntityPropertyNotFoundError.js.map +1 -1
  759. package/error/FindRelationsNotFoundError.js.map +1 -1
  760. package/error/ForbiddenTransactionModeOverrideError.js.map +1 -1
  761. package/error/InitializedRelationError.js.map +1 -1
  762. package/error/InsertValuesMissingError.js.map +1 -1
  763. package/error/LimitOnUpdateNotSupportedError.js.map +1 -1
  764. package/error/LockNotSupportedOnGivenDriverError.js.map +1 -1
  765. package/error/MetadataAlreadyExistsError.js.map +1 -1
  766. package/error/MetadataWithSuchNameAlreadyExistsError.js.map +1 -1
  767. package/error/MissingDeleteDateColumnError.js.map +1 -1
  768. package/error/MissingDriverError.js.map +1 -1
  769. package/error/MissingJoinColumnError.js.map +1 -1
  770. package/error/MissingJoinTableError.js.map +1 -1
  771. package/error/MissingPrimaryColumnError.js.map +1 -1
  772. package/error/MustBeEntityError.js.map +1 -1
  773. package/error/NamingStrategyNotFoundError.js.map +1 -1
  774. package/error/NestedSetMultipleRootError.js.map +1 -1
  775. package/error/NoConnectionForRepositoryError.js.map +1 -1
  776. package/error/NoConnectionOptionError.js.map +1 -1
  777. package/error/NoNeedToReleaseEntityManagerError.js.map +1 -1
  778. package/error/NoVersionOrUpdateDateColumnError.js.map +1 -1
  779. package/error/OffsetWithoutLimitNotSupportedError.js.map +1 -1
  780. package/error/OptimisticLockCanNotBeUsedError.js.map +1 -1
  781. package/error/OptimisticLockVersionMismatchError.js.map +1 -1
  782. package/error/PersistedEntityNotFoundError.js.map +1 -1
  783. package/error/PessimisticLockTransactionRequiredError.js.map +1 -1
  784. package/error/PrimaryColumnCannotBeNullableError.js.map +1 -1
  785. package/error/QueryFailedError.js.map +1 -1
  786. package/error/QueryRunnerAlreadyReleasedError.js.map +1 -1
  787. package/error/QueryRunnerProviderAlreadyReleasedError.js.map +1 -1
  788. package/error/RepositoryNotTreeError.js.map +1 -1
  789. package/error/ReturningStatementNotSupportedError.js.map +1 -1
  790. package/error/SubjectRemovedAndUpdatedError.js.map +1 -1
  791. package/error/SubjectWithoutIdentifierError.js.map +1 -1
  792. package/error/TransactionAlreadyStartedError.js.map +1 -1
  793. package/error/TransactionNotStartedError.js.map +1 -1
  794. package/error/TreeRepositoryNotSupportedError.js.map +1 -1
  795. package/error/TypeORMError.js.map +1 -1
  796. package/error/UpdateValuesMissingError.js.map +1 -1
  797. package/error/UsingJoinColumnIsNotAllowedError.js.map +1 -1
  798. package/error/UsingJoinColumnOnlyOnOneSideAllowedError.js.map +1 -1
  799. package/error/UsingJoinTableIsNotAllowedError.js.map +1 -1
  800. package/error/UsingJoinTableOnlyOnOneSideAllowedError.js.map +1 -1
  801. package/error/index.js.map +1 -1
  802. package/find-options/EqualOperator.js.map +1 -1
  803. package/find-options/FindManyOptions.js.map +1 -1
  804. package/find-options/FindOneOptions.js.map +1 -1
  805. package/find-options/FindOperator.js.map +1 -1
  806. package/find-options/FindOperatorType.js.map +1 -1
  807. package/find-options/FindOptionsOrder.js.map +1 -1
  808. package/find-options/FindOptionsRelations.js.map +1 -1
  809. package/find-options/FindOptionsSelect.js.map +1 -1
  810. package/find-options/FindOptionsUtils.js.map +1 -1
  811. package/find-options/FindOptionsWhere.js.map +1 -1
  812. package/find-options/FindTreeOptions.js.map +1 -1
  813. package/find-options/JoinOptions.js.map +1 -1
  814. package/find-options/OrderByCondition.js.map +1 -1
  815. package/find-options/mongodb/MongoFindManyOptions.js.map +1 -1
  816. package/find-options/mongodb/MongoFindOneOptions.js.map +1 -1
  817. package/find-options/operator/And.js.map +1 -1
  818. package/find-options/operator/Any.js.map +1 -1
  819. package/find-options/operator/ArrayContainedBy.js.map +1 -1
  820. package/find-options/operator/ArrayContains.js.map +1 -1
  821. package/find-options/operator/ArrayOverlap.js.map +1 -1
  822. package/find-options/operator/Between.js.map +1 -1
  823. package/find-options/operator/Equal.js.map +1 -1
  824. package/find-options/operator/ILike.js.map +1 -1
  825. package/find-options/operator/In.js.map +1 -1
  826. package/find-options/operator/IsNull.js.map +1 -1
  827. package/find-options/operator/JsonContains.js.map +1 -1
  828. package/find-options/operator/LessThan.js.map +1 -1
  829. package/find-options/operator/LessThanOrEqual.js.map +1 -1
  830. package/find-options/operator/Like.js.map +1 -1
  831. package/find-options/operator/MoreThan.js.map +1 -1
  832. package/find-options/operator/MoreThanOrEqual.js.map +1 -1
  833. package/find-options/operator/Not.js.map +1 -1
  834. package/find-options/operator/Or.js.map +1 -1
  835. package/find-options/operator/Raw.js.map +1 -1
  836. package/globals.js.map +1 -1
  837. package/index.js.map +1 -1
  838. package/logger/AbstractLogger.js.map +1 -1
  839. package/logger/AdvancedConsoleLogger.js.map +1 -1
  840. package/logger/DebugLogger.js.map +1 -1
  841. package/logger/FileLogger.js.map +1 -1
  842. package/logger/Logger.js.map +1 -1
  843. package/logger/LoggerFactory.js.map +1 -1
  844. package/logger/LoggerOptions.js.map +1 -1
  845. package/logger/SimpleConsoleLogger.js.map +1 -1
  846. package/metadata/CheckMetadata.js.map +1 -1
  847. package/metadata/ColumnMetadata.js.map +1 -1
  848. package/metadata/EmbeddedMetadata.js.map +1 -1
  849. package/metadata/EntityListenerMetadata.js.map +1 -1
  850. package/metadata/EntityMetadata.js.map +1 -1
  851. package/metadata/ExclusionMetadata.js.map +1 -1
  852. package/metadata/ForeignKeyMetadata.js.map +1 -1
  853. package/metadata/IndexMetadata.js.map +1 -1
  854. package/metadata/RelationCountMetadata.js.map +1 -1
  855. package/metadata/RelationIdMetadata.js.map +1 -1
  856. package/metadata/RelationMetadata.js.map +1 -1
  857. package/metadata/UniqueMetadata.js.map +1 -1
  858. package/metadata/types/ClosureTreeOptions.js.map +1 -1
  859. package/metadata/types/DeferrableType.js.map +1 -1
  860. package/metadata/types/EventListenerTypes.js.map +1 -1
  861. package/metadata/types/OnDeleteType.js.map +1 -1
  862. package/metadata/types/OnUpdateType.js.map +1 -1
  863. package/metadata/types/PropertyTypeInFunction.js.map +1 -1
  864. package/metadata/types/RelationTypeInFunction.js.map +1 -1
  865. package/metadata/types/RelationTypes.js.map +1 -1
  866. package/metadata/types/TableTypes.js.map +1 -1
  867. package/metadata/types/TreeTypes.js.map +1 -1
  868. package/metadata-args/CheckMetadataArgs.js.map +1 -1
  869. package/metadata-args/ColumnMetadataArgs.js.map +1 -1
  870. package/metadata-args/DiscriminatorValueMetadataArgs.js.map +1 -1
  871. package/metadata-args/EmbeddedMetadataArgs.js.map +1 -1
  872. package/metadata-args/EntityListenerMetadataArgs.js.map +1 -1
  873. package/metadata-args/EntityRepositoryMetadataArgs.js.map +1 -1
  874. package/metadata-args/EntitySubscriberMetadataArgs.js.map +1 -1
  875. package/metadata-args/ExclusionMetadataArgs.js.map +1 -1
  876. package/metadata-args/GeneratedMetadataArgs.js.map +1 -1
  877. package/metadata-args/IndexMetadataArgs.js.map +1 -1
  878. package/metadata-args/InheritanceMetadataArgs.js.map +1 -1
  879. package/metadata-args/JoinColumnMetadataArgs.js.map +1 -1
  880. package/metadata-args/JoinTableMetadataArgs.js.map +1 -1
  881. package/metadata-args/MetadataArgsStorage.js.map +1 -1
  882. package/metadata-args/NamingStrategyMetadataArgs.js.map +1 -1
  883. package/metadata-args/RelationCountMetadataArgs.js.map +1 -1
  884. package/metadata-args/RelationIdMetadataArgs.js.map +1 -1
  885. package/metadata-args/RelationMetadataArgs.js.map +1 -1
  886. package/metadata-args/TableMetadataArgs.js.map +1 -1
  887. package/metadata-args/TransactionEntityMetadataArgs.js.map +1 -1
  888. package/metadata-args/TransactionRepositoryMetadataArgs.js.map +1 -1
  889. package/metadata-args/TreeMetadataArgs.js.map +1 -1
  890. package/metadata-args/UniqueMetadataArgs.js.map +1 -1
  891. package/metadata-args/types/ColumnMode.js.map +1 -1
  892. package/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -1
  893. package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  894. package/metadata-builder/EntityMetadataValidator.js.map +1 -1
  895. package/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  896. package/metadata-builder/MetadataUtils.js.map +1 -1
  897. package/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
  898. package/migration/Migration.js.map +1 -1
  899. package/migration/MigrationExecutor.js.map +1 -1
  900. package/migration/MigrationInterface.js.map +1 -1
  901. package/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  902. package/naming-strategy/LegacyOracleNamingStrategy.js.map +1 -1
  903. package/naming-strategy/NamingStrategyInterface.js.map +1 -1
  904. package/package.json +1 -260
  905. package/persistence/EntityPersistExecutor.js.map +1 -1
  906. package/persistence/Subject.js.map +1 -1
  907. package/persistence/SubjectChangeMap.js.map +1 -1
  908. package/persistence/SubjectChangedColumnsComputer.js.map +1 -1
  909. package/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  910. package/persistence/SubjectExecutor.js.map +1 -1
  911. package/persistence/SubjectTopologicalSorter.js.map +1 -1
  912. package/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
  913. package/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
  914. package/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
  915. package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -1
  916. package/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
  917. package/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
  918. package/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
  919. package/platform/PlatformTools.js.map +1 -1
  920. package/query-builder/Alias.js.map +1 -1
  921. package/query-builder/Brackets.js.map +1 -1
  922. package/query-builder/DeleteQueryBuilder.js.map +1 -1
  923. package/query-builder/InsertOrUpdateOptions.js.map +1 -1
  924. package/query-builder/InsertQueryBuilder.js.map +1 -1
  925. package/query-builder/JoinAttribute.js.map +1 -1
  926. package/query-builder/JoinOptions.js.map +1 -1
  927. package/query-builder/NotBrackets.js.map +1 -1
  928. package/query-builder/QueryBuilder.js.map +1 -1
  929. package/query-builder/QueryBuilderCte.js.map +1 -1
  930. package/query-builder/QueryBuilderUtils.js.map +1 -1
  931. package/query-builder/QueryExpressionMap.js.map +1 -1
  932. package/query-builder/QueryPartialEntity.js.map +1 -1
  933. package/query-builder/RelationIdLoader.js +3 -2
  934. package/query-builder/RelationIdLoader.js.map +1 -1
  935. package/query-builder/RelationLoader.js.map +1 -1
  936. package/query-builder/RelationQueryBuilder.js.map +1 -1
  937. package/query-builder/RelationRemover.js.map +1 -1
  938. package/query-builder/RelationUpdater.js.map +1 -1
  939. package/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
  940. package/query-builder/SelectQuery.js.map +1 -1
  941. package/query-builder/SelectQueryBuilder.js.map +1 -1
  942. package/query-builder/SelectQueryBuilderOption.js.map +1 -1
  943. package/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  944. package/query-builder/UpdateQueryBuilder.js.map +1 -1
  945. package/query-builder/WhereClause.js.map +1 -1
  946. package/query-builder/WhereExpressionBuilder.js.map +1 -1
  947. package/query-builder/index.js.map +1 -1
  948. package/query-builder/relation-count/RelationCountAttribute.js.map +1 -1
  949. package/query-builder/relation-count/RelationCountLoadResult.js.map +1 -1
  950. package/query-builder/relation-count/RelationCountLoader.js.map +1 -1
  951. package/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js.map +1 -1
  952. package/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
  953. package/query-builder/relation-id/RelationIdLoadResult.js.map +1 -1
  954. package/query-builder/relation-id/RelationIdLoader.js.map +1 -1
  955. package/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js.map +1 -1
  956. package/query-builder/result/DeleteResult.js.map +1 -1
  957. package/query-builder/result/InsertResult.js.map +1 -1
  958. package/query-builder/result/UpdateResult.js.map +1 -1
  959. package/query-builder/transformer/DocumentToEntityTransformer.js.map +1 -1
  960. package/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
  961. package/query-builder/transformer/PlainObjectToNewEntityTransformer.js.map +1 -1
  962. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  963. package/query-runner/BaseQueryRunner.js.map +1 -1
  964. package/query-runner/QueryLock.js.map +1 -1
  965. package/query-runner/QueryResult.js.map +1 -1
  966. package/query-runner/QueryRunner.js.map +1 -1
  967. package/repository/AbstractRepository.js.map +1 -1
  968. package/repository/BaseEntity.js.map +1 -1
  969. package/repository/EntityId.js.map +1 -1
  970. package/repository/FindTreesOptions.js.map +1 -1
  971. package/repository/MongoRepository.js.map +1 -1
  972. package/repository/RemoveOptions.js.map +1 -1
  973. package/repository/Repository.js.map +1 -1
  974. package/repository/SaveOptions.js.map +1 -1
  975. package/repository/TreeRepository.js.map +1 -1
  976. package/repository/UpsertOptions.js.map +1 -1
  977. package/schema-builder/MongoSchemaBuilder.js.map +1 -1
  978. package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  979. package/schema-builder/SchemaBuilder.js.map +1 -1
  980. package/schema-builder/options/TableCheckOptions.js.map +1 -1
  981. package/schema-builder/options/TableColumnOptions.js.map +1 -1
  982. package/schema-builder/options/TableExclusionOptions.js.map +1 -1
  983. package/schema-builder/options/TableForeignKeyOptions.js.map +1 -1
  984. package/schema-builder/options/TableIndexOptions.js.map +1 -1
  985. package/schema-builder/options/TableOptions.js.map +1 -1
  986. package/schema-builder/options/TableUniqueOptions.js.map +1 -1
  987. package/schema-builder/options/ViewOptions.js.map +1 -1
  988. package/schema-builder/table/Table.js.map +1 -1
  989. package/schema-builder/table/TableCheck.js.map +1 -1
  990. package/schema-builder/table/TableColumn.js.map +1 -1
  991. package/schema-builder/table/TableExclusion.js.map +1 -1
  992. package/schema-builder/table/TableForeignKey.js.map +1 -1
  993. package/schema-builder/table/TableIndex.js.map +1 -1
  994. package/schema-builder/table/TableUnique.js.map +1 -1
  995. package/schema-builder/util/TableUtils.js.map +1 -1
  996. package/schema-builder/util/ViewUtils.js.map +1 -1
  997. package/schema-builder/view/View.js.map +1 -1
  998. package/subscriber/Broadcaster.js.map +1 -1
  999. package/subscriber/BroadcasterResult.js.map +1 -1
  1000. package/subscriber/EntitySubscriberInterface.js.map +1 -1
  1001. package/subscriber/event/InsertEvent.js.map +1 -1
  1002. package/subscriber/event/LoadEvent.js.map +1 -1
  1003. package/subscriber/event/QueryEvent.js.map +1 -1
  1004. package/subscriber/event/RecoverEvent.js.map +1 -1
  1005. package/subscriber/event/RemoveEvent.js.map +1 -1
  1006. package/subscriber/event/SoftRemoveEvent.js.map +1 -1
  1007. package/subscriber/event/TransactionCommitEvent.js.map +1 -1
  1008. package/subscriber/event/TransactionRollbackEvent.js.map +1 -1
  1009. package/subscriber/event/TransactionStartEvent.js.map +1 -1
  1010. package/subscriber/event/UpdateEvent.js.map +1 -1
  1011. package/typeorm-class-transformer-shim.js +271 -271
  1012. package/typeorm-model-shim.js +295 -295
  1013. package/util/ApplyValueTransformers.js.map +1 -1
  1014. package/util/DateUtils.js.map +1 -1
  1015. package/util/DepGraph.js.map +1 -1
  1016. package/util/DirectoryExportedClassesLoader.js.map +1 -1
  1017. package/util/ImportUtils.js.map +1 -1
  1018. package/util/InstanceChecker.js.map +1 -1
  1019. package/util/ObjectUtils.js.map +1 -1
  1020. package/util/OrmUtils.js.map +1 -1
  1021. package/util/PathUtils.js.map +1 -1
  1022. package/util/RandomGenerator.js.map +1 -1
  1023. package/util/StringUtils.js.map +1 -1
  1024. package/util/TreeRepositoryUtils.js.map +1 -1
  1025. package/util/VersionUtils.js.map +1 -1
  1026. package/util/escapeRegExp.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/subscriber/Broadcaster.ts"],"names":[],"mappings":"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","file":"Broadcaster.js","sourcesContent":["import { EntitySubscriberInterface } from \"./EntitySubscriberInterface\"\r\nimport { ObjectLiteral } from \"../common/ObjectLiteral\"\r\nimport { QueryRunner } from \"../query-runner/QueryRunner\"\r\nimport { EntityMetadata } from \"../metadata/EntityMetadata\"\r\nimport { BroadcasterResult } from \"./BroadcasterResult\"\r\nimport { ColumnMetadata } from \"../metadata/ColumnMetadata\"\r\nimport { RelationMetadata } from \"../metadata/RelationMetadata\"\r\nimport { ObjectUtils } from \"../util/ObjectUtils\"\r\n\r\ninterface BroadcasterEvents {\r\n BeforeQuery: () => void\r\n AfterQuery: () => void\r\n\r\n BeforeTransactionCommit: () => void\r\n AfterTransactionCommit: () => void\r\n BeforeTransactionStart: () => void\r\n AfterTransactionStart: () => void\r\n BeforeTransactionRollback: () => void\r\n AfterTransactionRollback: () => void\r\n\r\n BeforeUpdate: (\r\n metadata: EntityMetadata,\r\n entity?: ObjectLiteral,\r\n databaseEntity?: ObjectLiteral,\r\n updatedColumns?: ColumnMetadata[],\r\n updatedRelations?: RelationMetadata[],\r\n ) => void\r\n AfterUpdate: (\r\n metadata: EntityMetadata,\r\n entity?: ObjectLiteral,\r\n databaseEntity?: ObjectLiteral,\r\n updatedColumns?: ColumnMetadata[],\r\n updatedRelations?: RelationMetadata[],\r\n ) => void\r\n\r\n BeforeInsert: (\r\n metadata: EntityMetadata,\r\n entity: ObjectLiteral | undefined,\r\n ) => void\r\n AfterInsert: (\r\n metadata: EntityMetadata,\r\n entity: ObjectLiteral | undefined,\r\n ) => void\r\n\r\n BeforeRemove: (\r\n metadata: EntityMetadata,\r\n entity?: ObjectLiteral,\r\n databaseEntity?: ObjectLiteral,\r\n ) => void\r\n AfterRemove: (\r\n metadata: EntityMetadata,\r\n entity?: ObjectLiteral,\r\n databaseEntity?: ObjectLiteral,\r\n ) => void\r\n\r\n BeforeSoftRemove: (\r\n metadata: EntityMetadata,\r\n entity?: ObjectLiteral,\r\n databaseEntity?: ObjectLiteral,\r\n ) => void\r\n AfterSoftRemove: (\r\n metadata: EntityMetadata,\r\n entity?: ObjectLiteral,\r\n databaseEntity?: ObjectLiteral,\r\n ) => void\r\n\r\n BeforeRecover: (\r\n metadata: EntityMetadata,\r\n entity?: ObjectLiteral,\r\n databaseEntity?: ObjectLiteral,\r\n ) => void\r\n AfterRecover: (\r\n metadata: EntityMetadata,\r\n entity?: ObjectLiteral,\r\n databaseEntity?: ObjectLiteral,\r\n ) => void\r\n\r\n Load: (metadata: EntityMetadata, entities: ObjectLiteral[]) => void\r\n}\r\n\r\n/**\r\n * Broadcaster provides a helper methods to broadcast events to the subscribers.\r\n */\r\nexport class Broadcaster {\r\n // -------------------------------------------------------------------------\r\n // Constructor\r\n // -------------------------------------------------------------------------\r\n\r\n constructor(private queryRunner: QueryRunner) {}\r\n\r\n // -------------------------------------------------------------------------\r\n // Public Methods\r\n // -------------------------------------------------------------------------\r\n\r\n async broadcast<U extends keyof BroadcasterEvents>(\r\n event: U,\r\n ...args: Parameters<BroadcasterEvents[U]>\r\n ): Promise<void> {\r\n const result = new BroadcasterResult()\r\n\r\n const broadcastFunction = this[`broadcast${event}Event` as keyof this]\r\n\r\n if (typeof broadcastFunction === \"function\") {\r\n ;(broadcastFunction as any).call(this, result, ...args)\r\n }\r\n\r\n await result.wait()\r\n }\r\n\r\n /**\r\n * Broadcasts \"BEFORE_INSERT\" event.\r\n * Before insert event is executed before entity is being inserted to the database for the first time.\r\n * All subscribers and entity listeners who listened to this event will be executed at this point.\r\n * Subscribers and entity listeners can return promises, it will wait until they are resolved.\r\n *\r\n * Note: this method has a performance-optimized code organization, do not change code structure.\r\n */\r\n broadcastBeforeInsertEvent(\r\n result: BroadcasterResult,\r\n metadata: EntityMetadata,\r\n entity: undefined | ObjectLiteral,\r\n ): void {\r\n if (entity && metadata.beforeInsertListeners.length) {\r\n metadata.beforeInsertListeners.forEach((listener) => {\r\n if (listener.isAllowed(entity)) {\r\n const executionResult = listener.execute(entity)\r\n if (executionResult instanceof Promise)\r\n result.promises.push(executionResult)\r\n result.count++\r\n }\r\n })\r\n }\r\n\r\n if (this.queryRunner.connection.subscribers.length) {\r\n this.queryRunner.connection.subscribers.forEach((subscriber) => {\r\n if (\r\n this.isAllowedSubscriber(subscriber, metadata.target) &&\r\n subscriber.beforeInsert\r\n ) {\r\n const executionResult = subscriber.beforeInsert({\r\n connection: this.queryRunner.connection,\r\n queryRunner: this.queryRunner,\r\n manager: this.queryRunner.manager,\r\n entity: entity,\r\n metadata: metadata,\r\n })\r\n if (executionResult instanceof Promise)\r\n result.promises.push(executionResult)\r\n result.count++\r\n }\r\n })\r\n }\r\n }\r\n\r\n /**\r\n * Broadcasts \"BEFORE_UPDATE\" event.\r\n * Before update event is executed before entity is being updated in the database.\r\n * All subscribers and entity listeners who listened to this event will be executed at this point.\r\n * Subscribers and entity listeners can return promises, it will wait until they are resolved.\r\n *\r\n * Note: this method has a performance-optimized code organization, do not change code structure.\r\n */\r\n broadcastBeforeUpdateEvent(\r\n result: BroadcasterResult,\r\n metadata: EntityMetadata,\r\n entity?: ObjectLiteral,\r\n databaseEntity?: ObjectLiteral,\r\n updatedColumns?: ColumnMetadata[],\r\n updatedRelations?: RelationMetadata[],\r\n ): void {\r\n // todo: send relations too?\r\n if (entity && metadata.beforeUpdateListeners.length) {\r\n metadata.beforeUpdateListeners.forEach((listener) => {\r\n if (listener.isAllowed(entity)) {\r\n const executionResult = listener.execute(entity)\r\n if (executionResult instanceof Promise)\r\n result.promises.push(executionResult)\r\n result.count++\r\n }\r\n })\r\n }\r\n\r\n if (this.queryRunner.connection.subscribers.length) {\r\n this.queryRunner.connection.subscribers.forEach((subscriber) => {\r\n if (\r\n this.isAllowedSubscriber(subscriber, metadata.target) &&\r\n subscriber.beforeUpdate\r\n ) {\r\n const executionResult = subscriber.beforeUpdate({\r\n connection: this.queryRunner.connection,\r\n queryRunner: this.queryRunner,\r\n manager: this.queryRunner.manager,\r\n entity: entity,\r\n metadata: metadata,\r\n databaseEntity: databaseEntity,\r\n updatedColumns: updatedColumns || [],\r\n updatedRelations: updatedRelations || [],\r\n })\r\n if (executionResult instanceof Promise)\r\n result.promises.push(executionResult)\r\n result.count++\r\n }\r\n })\r\n }\r\n }\r\n\r\n /**\r\n * Broadcasts \"BEFORE_REMOVE\" event.\r\n * Before remove event is executed before entity is being removed from the database.\r\n * All subscribers and entity listeners who listened to this event will be executed at this point.\r\n * Subscribers and entity listeners can return promises, it will wait until they are resolved.\r\n *\r\n * Note: this method has a performance-optimized code organization, do not change code structure.\r\n */\r\n broadcastBeforeRemoveEvent(\r\n result: BroadcasterResult,\r\n metadata: EntityMetadata,\r\n entity?: ObjectLiteral,\r\n databaseEntity?: ObjectLiteral,\r\n identifier?: ObjectLiteral,\r\n ): void {\r\n if (entity && metadata.beforeRemoveListeners.length) {\r\n metadata.beforeRemoveListeners.forEach((listener) => {\r\n if (listener.isAllowed(entity)) {\r\n const executionResult = listener.execute(entity)\r\n if (executionResult instanceof Promise)\r\n result.promises.push(executionResult)\r\n result.count++\r\n }\r\n })\r\n }\r\n\r\n if (this.queryRunner.connection.subscribers.length) {\r\n this.queryRunner.connection.subscribers.forEach((subscriber) => {\r\n if (\r\n this.isAllowedSubscriber(subscriber, metadata.target) &&\r\n subscriber.beforeRemove\r\n ) {\r\n const executionResult = subscriber.beforeRemove({\r\n connection: this.queryRunner.connection,\r\n queryRunner: this.queryRunner,\r\n manager: this.queryRunner.manager,\r\n entity: entity,\r\n metadata: metadata,\r\n databaseEntity: databaseEntity,\r\n entityId: metadata.getEntityIdMixedMap(\r\n databaseEntity ?? identifier,\r\n ),\r\n })\r\n if (executionResult instanceof Promise)\r\n result.promises.push(executionResult)\r\n result.count++\r\n }\r\n })\r\n }\r\n }\r\n\r\n /**\r\n * Broadcasts \"BEFORE_SOFT_REMOVE\" event.\r\n * Before soft remove event is executed before entity is being soft removed from the database.\r\n * All subscribers and entity listeners who listened to this event will be executed at this point.\r\n * Subscribers and entity listeners can return promises, it will wait until they are resolved.\r\n *\r\n * Note: this method has a performance-optimized code organization, do not change code structure.\r\n */\r\n broadcastBeforeSoftRemoveEvent(\r\n result: BroadcasterResult,\r\n metadata: EntityMetadata,\r\n entity?: ObjectLiteral,\r\n databaseEntity?: ObjectLiteral,\r\n identifier?: ObjectLiteral,\r\n ): void {\r\n if (entity && metadata.beforeSoftRemoveListeners.length) {\r\n metadata.beforeSoftRemoveListeners.forEach((listener) => {\r\n if (listener.isAllowed(entity)) {\r\n const executionResult = listener.execute(entity)\r\n if (executionResult instanceof Promise)\r\n result.promises.push(executionResult)\r\n result.count++\r\n }\r\n })\r\n }\r\n\r\n if (this.queryRunner.connection.subscribers.length) {\r\n this.queryRunner.connection.subscribers.forEach((subscriber) => {\r\n if (\r\n this.isAllowedSubscriber(subscriber, metadata.target) &&\r\n subscriber.beforeSoftRemove\r\n ) {\r\n const executionResult = subscriber.beforeSoftRemove({\r\n connection: this.queryRunner.connection,\r\n queryRunner: this.queryRunner,\r\n manager: this.queryRunner.manager,\r\n entity: entity,\r\n metadata: metadata,\r\n databaseEntity: databaseEntity,\r\n entityId: metadata.getEntityIdMixedMap(\r\n databaseEntity ?? identifier,\r\n ),\r\n })\r\n if (executionResult instanceof Promise)\r\n result.promises.push(executionResult)\r\n result.count++\r\n }\r\n })\r\n }\r\n }\r\n\r\n /**\r\n * Broadcasts \"BEFORE_RECOVER\" event.\r\n * Before recover event is executed before entity is being recovered in the database.\r\n * All subscribers and entity listeners who listened to this event will be executed at this point.\r\n * Subscribers and entity listeners can return promises, it will wait until they are resolved.\r\n *\r\n * Note: this method has a performance-optimized code organization, do not change code structure.\r\n */\r\n broadcastBeforeRecoverEvent(\r\n result: BroadcasterResult,\r\n metadata: EntityMetadata,\r\n entity?: ObjectLiteral,\r\n databaseEntity?: ObjectLiteral,\r\n identifier?: ObjectLiteral,\r\n ): void {\r\n if (entity && metadata.beforeRecoverListeners.length) {\r\n metadata.beforeRecoverListeners.forEach((listener) => {\r\n if (listener.isAllowed(entity)) {\r\n const executionResult = listener.execute(entity)\r\n if (executionResult instanceof Promise)\r\n result.promises.push(executionResult)\r\n result.count++\r\n }\r\n })\r\n }\r\n\r\n if (this.queryRunner.connection.subscribers.length) {\r\n this.queryRunner.connection.subscribers.forEach((subscriber) => {\r\n if (\r\n this.isAllowedSubscriber(subscriber, metadata.target) &&\r\n subscriber.beforeRecover\r\n ) {\r\n const executionResult = subscriber.beforeRecover({\r\n connection: this.queryRunner.connection,\r\n queryRunner: this.queryRunner,\r\n manager: this.queryRunner.manager,\r\n entity: entity,\r\n metadata: metadata,\r\n databaseEntity: databaseEntity,\r\n entityId: metadata.getEntityIdMixedMap(\r\n databaseEntity ?? identifier,\r\n ),\r\n })\r\n if (executionResult instanceof Promise)\r\n result.promises.push(executionResult)\r\n result.count++\r\n }\r\n })\r\n }\r\n }\r\n\r\n /**\r\n * Broadcasts \"AFTER_INSERT\" event.\r\n * After insert event is executed after entity is being persisted to the database for the first time.\r\n * All subscribers and entity listeners who listened to this event will be executed at this point.\r\n * Subscribers and entity listeners can return promises, it will wait until they are resolved.\r\n *\r\n * Note: this method has a performance-optimized code organization, do not change code structure.\r\n */\r\n broadcastAfterInsertEvent(\r\n result: BroadcasterResult,\r\n metadata: EntityMetadata,\r\n entity?: ObjectLiteral,\r\n identifier?: ObjectLiteral,\r\n ): void {\r\n if (entity && metadata.afterInsertListeners.length) {\r\n metadata.afterInsertListeners.forEach((listener) => {\r\n if (listener.isAllowed(entity)) {\r\n const executionResult = listener.execute(entity)\r\n if (executionResult instanceof Promise)\r\n result.promises.push(executionResult)\r\n result.count++\r\n }\r\n })\r\n }\r\n\r\n if (this.queryRunner.connection.subscribers.length) {\r\n this.queryRunner.connection.subscribers.forEach((subscriber) => {\r\n if (\r\n this.isAllowedSubscriber(subscriber, metadata.target) &&\r\n subscriber.afterInsert\r\n ) {\r\n const executionResult = subscriber.afterInsert({\r\n connection: this.queryRunner.connection,\r\n queryRunner: this.queryRunner,\r\n manager: this.queryRunner.manager,\r\n entity: entity,\r\n metadata: metadata,\r\n entityId: metadata.getEntityIdMixedMap(identifier),\r\n })\r\n if (executionResult instanceof Promise)\r\n result.promises.push(executionResult)\r\n result.count++\r\n }\r\n })\r\n }\r\n }\r\n\r\n /**\r\n * Broadcasts \"BEFORE_QUERY\" event.\r\n */\r\n broadcastBeforeQueryEvent(\r\n result: BroadcasterResult,\r\n query: string,\r\n parameters: undefined | any[],\r\n ): void {\r\n if (this.queryRunner.connection.subscribers.length) {\r\n this.queryRunner.connection.subscribers.forEach((subscriber) => {\r\n if (subscriber.beforeQuery) {\r\n const executionResult = subscriber.beforeQuery({\r\n connection: this.queryRunner.connection,\r\n queryRunner: this.queryRunner,\r\n manager: this.queryRunner.manager,\r\n query: query,\r\n parameters: parameters,\r\n })\r\n if (executionResult instanceof Promise)\r\n result.promises.push(executionResult)\r\n result.count++\r\n }\r\n })\r\n }\r\n }\r\n\r\n /**\r\n * Broadcasts \"AFTER_QUERY\" event.\r\n */\r\n broadcastAfterQueryEvent(\r\n result: BroadcasterResult,\r\n query: string,\r\n parameters: undefined | any[],\r\n success: boolean,\r\n executionTime: undefined | number,\r\n rawResults: undefined | any,\r\n error: undefined | any,\r\n ): void {\r\n if (this.queryRunner.connection.subscribers.length) {\r\n this.queryRunner.connection.subscribers.forEach((subscriber) => {\r\n if (subscriber.afterQuery) {\r\n const executionResult = subscriber.afterQuery({\r\n connection: this.queryRunner.connection,\r\n queryRunner: this.queryRunner,\r\n manager: this.queryRunner.manager,\r\n query: query,\r\n parameters: parameters,\r\n success: success,\r\n executionTime: executionTime,\r\n rawResults: rawResults,\r\n error: error,\r\n })\r\n if (executionResult instanceof Promise)\r\n result.promises.push(executionResult)\r\n result.count++\r\n }\r\n })\r\n }\r\n }\r\n\r\n /**\r\n * Broadcasts \"BEFORE_TRANSACTION_START\" event.\r\n */\r\n broadcastBeforeTransactionStartEvent(result: BroadcasterResult): void {\r\n if (this.queryRunner.connection.subscribers.length) {\r\n this.queryRunner.connection.subscribers.forEach((subscriber) => {\r\n if (subscriber.beforeTransactionStart) {\r\n const executionResult = subscriber.beforeTransactionStart({\r\n connection: this.queryRunner.connection,\r\n queryRunner: this.queryRunner,\r\n manager: this.queryRunner.manager,\r\n })\r\n if (executionResult instanceof Promise)\r\n result.promises.push(executionResult)\r\n result.count++\r\n }\r\n })\r\n }\r\n }\r\n\r\n /**\r\n * Broadcasts \"AFTER_TRANSACTION_START\" event.\r\n */\r\n broadcastAfterTransactionStartEvent(result: BroadcasterResult): void {\r\n if (this.queryRunner.connection.subscribers.length) {\r\n this.queryRunner.connection.subscribers.forEach((subscriber) => {\r\n if (subscriber.afterTransactionStart) {\r\n const executionResult = subscriber.afterTransactionStart({\r\n connection: this.queryRunner.connection,\r\n queryRunner: this.queryRunner,\r\n manager: this.queryRunner.manager,\r\n })\r\n if (executionResult instanceof Promise)\r\n result.promises.push(executionResult)\r\n result.count++\r\n }\r\n })\r\n }\r\n }\r\n\r\n /**\r\n * Broadcasts \"BEFORE_TRANSACTION_COMMIT\" event.\r\n */\r\n broadcastBeforeTransactionCommitEvent(result: BroadcasterResult): void {\r\n if (this.queryRunner.connection.subscribers.length) {\r\n this.queryRunner.connection.subscribers.forEach((subscriber) => {\r\n if (subscriber.beforeTransactionCommit) {\r\n const executionResult = subscriber.beforeTransactionCommit({\r\n connection: this.queryRunner.connection,\r\n queryRunner: this.queryRunner,\r\n manager: this.queryRunner.manager,\r\n })\r\n if (executionResult instanceof Promise)\r\n result.promises.push(executionResult)\r\n result.count++\r\n }\r\n })\r\n }\r\n }\r\n\r\n /**\r\n * Broadcasts \"AFTER_TRANSACTION_COMMIT\" event.\r\n */\r\n broadcastAfterTransactionCommitEvent(result: BroadcasterResult): void {\r\n if (this.queryRunner.connection.subscribers.length) {\r\n this.queryRunner.connection.subscribers.forEach((subscriber) => {\r\n if (subscriber.afterTransactionCommit) {\r\n const executionResult = subscriber.afterTransactionCommit({\r\n connection: this.queryRunner.connection,\r\n queryRunner: this.queryRunner,\r\n manager: this.queryRunner.manager,\r\n })\r\n if (executionResult instanceof Promise)\r\n result.promises.push(executionResult)\r\n result.count++\r\n }\r\n })\r\n }\r\n }\r\n\r\n /**\r\n * Broadcasts \"BEFORE_TRANSACTION_ROLLBACK\" event.\r\n */\r\n broadcastBeforeTransactionRollbackEvent(result: BroadcasterResult): void {\r\n if (this.queryRunner.connection.subscribers.length) {\r\n this.queryRunner.connection.subscribers.forEach((subscriber) => {\r\n if (subscriber.beforeTransactionRollback) {\r\n const executionResult =\r\n subscriber.beforeTransactionRollback({\r\n connection: this.queryRunner.connection,\r\n queryRunner: this.queryRunner,\r\n manager: this.queryRunner.manager,\r\n })\r\n if (executionResult instanceof Promise)\r\n result.promises.push(executionResult)\r\n result.count++\r\n }\r\n })\r\n }\r\n }\r\n\r\n /**\r\n * Broadcasts \"AFTER_TRANSACTION_ROLLBACK\" event.\r\n */\r\n broadcastAfterTransactionRollbackEvent(result: BroadcasterResult): void {\r\n if (this.queryRunner.connection.subscribers.length) {\r\n this.queryRunner.connection.subscribers.forEach((subscriber) => {\r\n if (subscriber.afterTransactionRollback) {\r\n const executionResult = subscriber.afterTransactionRollback(\r\n {\r\n connection: this.queryRunner.connection,\r\n queryRunner: this.queryRunner,\r\n manager: this.queryRunner.manager,\r\n },\r\n )\r\n if (executionResult instanceof Promise)\r\n result.promises.push(executionResult)\r\n result.count++\r\n }\r\n })\r\n }\r\n }\r\n\r\n /**\r\n * Broadcasts \"AFTER_UPDATE\" event.\r\n * After update event is executed after entity is being updated in the database.\r\n * All subscribers and entity listeners who listened to this event will be executed at this point.\r\n * Subscribers and entity listeners can return promises, it will wait until they are resolved.\r\n *\r\n * Note: this method has a performance-optimized code organization, do not change code structure.\r\n */\r\n broadcastAfterUpdateEvent(\r\n result: BroadcasterResult,\r\n metadata: EntityMetadata,\r\n entity?: ObjectLiteral,\r\n databaseEntity?: ObjectLiteral,\r\n updatedColumns?: ColumnMetadata[],\r\n updatedRelations?: RelationMetadata[],\r\n ): void {\r\n if (entity && metadata.afterUpdateListeners.length) {\r\n metadata.afterUpdateListeners.forEach((listener) => {\r\n if (listener.isAllowed(entity)) {\r\n const executionResult = listener.execute(entity)\r\n if (executionResult instanceof Promise)\r\n result.promises.push(executionResult)\r\n result.count++\r\n }\r\n })\r\n }\r\n\r\n if (this.queryRunner.connection.subscribers.length) {\r\n this.queryRunner.connection.subscribers.forEach((subscriber) => {\r\n if (\r\n this.isAllowedSubscriber(subscriber, metadata.target) &&\r\n subscriber.afterUpdate\r\n ) {\r\n const executionResult = subscriber.afterUpdate({\r\n connection: this.queryRunner.connection,\r\n queryRunner: this.queryRunner,\r\n manager: this.queryRunner.manager,\r\n entity: entity,\r\n metadata: metadata,\r\n databaseEntity: databaseEntity,\r\n updatedColumns: updatedColumns || [],\r\n updatedRelations: updatedRelations || [],\r\n })\r\n if (executionResult instanceof Promise)\r\n result.promises.push(executionResult)\r\n result.count++\r\n }\r\n })\r\n }\r\n }\r\n\r\n /**\r\n * Broadcasts \"AFTER_REMOVE\" event.\r\n * After remove event is executed after entity is being removed from the database.\r\n * All subscribers and entity listeners who listened to this event will be executed at this point.\r\n * Subscribers and entity listeners can return promises, it will wait until they are resolved.\r\n *\r\n * Note: this method has a performance-optimized code organization, do not change code structure.\r\n */\r\n broadcastAfterRemoveEvent(\r\n result: BroadcasterResult,\r\n metadata: EntityMetadata,\r\n entity?: ObjectLiteral,\r\n databaseEntity?: ObjectLiteral,\r\n identifier?: ObjectLiteral,\r\n ): void {\r\n if (entity && metadata.afterRemoveListeners.length) {\r\n metadata.afterRemoveListeners.forEach((listener) => {\r\n if (listener.isAllowed(entity)) {\r\n const executionResult = listener.execute(entity)\r\n if (executionResult instanceof Promise)\r\n result.promises.push(executionResult)\r\n result.count++\r\n }\r\n })\r\n }\r\n\r\n if (this.queryRunner.connection.subscribers.length) {\r\n this.queryRunner.connection.subscribers.forEach((subscriber) => {\r\n if (\r\n this.isAllowedSubscriber(subscriber, metadata.target) &&\r\n subscriber.afterRemove\r\n ) {\r\n const executionResult = subscriber.afterRemove({\r\n connection: this.queryRunner.connection,\r\n queryRunner: this.queryRunner,\r\n manager: this.queryRunner.manager,\r\n entity: entity,\r\n metadata: metadata,\r\n databaseEntity: databaseEntity,\r\n entityId: metadata.getEntityIdMixedMap(\r\n databaseEntity ?? identifier,\r\n ),\r\n })\r\n if (executionResult instanceof Promise)\r\n result.promises.push(executionResult)\r\n result.count++\r\n }\r\n })\r\n }\r\n }\r\n\r\n /**\r\n * Broadcasts \"AFTER_SOFT_REMOVE\" event.\r\n * After soft remove event is executed after entity is being soft removed from the database.\r\n * All subscribers and entity listeners who listened to this event will be executed at this point.\r\n * Subscribers and entity listeners can return promises, it will wait until they are resolved.\r\n *\r\n * Note: this method has a performance-optimized code organization, do not change code structure.\r\n */\r\n broadcastAfterSoftRemoveEvent(\r\n result: BroadcasterResult,\r\n metadata: EntityMetadata,\r\n entity?: ObjectLiteral,\r\n databaseEntity?: ObjectLiteral,\r\n identifier?: ObjectLiteral,\r\n ): void {\r\n if (entity && metadata.afterSoftRemoveListeners.length) {\r\n metadata.afterSoftRemoveListeners.forEach((listener) => {\r\n if (listener.isAllowed(entity)) {\r\n const executionResult = listener.execute(entity)\r\n if (executionResult instanceof Promise)\r\n result.promises.push(executionResult)\r\n result.count++\r\n }\r\n })\r\n }\r\n\r\n if (this.queryRunner.connection.subscribers.length) {\r\n this.queryRunner.connection.subscribers.forEach((subscriber) => {\r\n if (\r\n this.isAllowedSubscriber(subscriber, metadata.target) &&\r\n subscriber.afterSoftRemove\r\n ) {\r\n const executionResult = subscriber.afterSoftRemove({\r\n connection: this.queryRunner.connection,\r\n queryRunner: this.queryRunner,\r\n manager: this.queryRunner.manager,\r\n entity: entity,\r\n metadata: metadata,\r\n databaseEntity: databaseEntity,\r\n entityId: metadata.getEntityIdMixedMap(\r\n databaseEntity ?? identifier,\r\n ),\r\n })\r\n if (executionResult instanceof Promise)\r\n result.promises.push(executionResult)\r\n result.count++\r\n }\r\n })\r\n }\r\n }\r\n\r\n /**\r\n * Broadcasts \"AFTER_RECOVER\" event.\r\n * After recover event is executed after entity is being recovered in the database.\r\n * All subscribers and entity listeners who listened to this event will be executed at this point.\r\n * Subscribers and entity listeners can return promises, it will wait until they are resolved.\r\n *\r\n * Note: this method has a performance-optimized code organization, do not change code structure.\r\n */\r\n broadcastAfterRecoverEvent(\r\n result: BroadcasterResult,\r\n metadata: EntityMetadata,\r\n entity?: ObjectLiteral,\r\n databaseEntity?: ObjectLiteral,\r\n identifier?: ObjectLiteral,\r\n ): void {\r\n if (entity && metadata.afterRecoverListeners.length) {\r\n metadata.afterRecoverListeners.forEach((listener) => {\r\n if (listener.isAllowed(entity)) {\r\n const executionResult = listener.execute(entity)\r\n if (executionResult instanceof Promise)\r\n result.promises.push(executionResult)\r\n result.count++\r\n }\r\n })\r\n }\r\n\r\n if (this.queryRunner.connection.subscribers.length) {\r\n this.queryRunner.connection.subscribers.forEach((subscriber) => {\r\n if (\r\n this.isAllowedSubscriber(subscriber, metadata.target) &&\r\n subscriber.afterRecover\r\n ) {\r\n const executionResult = subscriber.afterRecover({\r\n connection: this.queryRunner.connection,\r\n queryRunner: this.queryRunner,\r\n manager: this.queryRunner.manager,\r\n entity: entity,\r\n metadata: metadata,\r\n databaseEntity: databaseEntity,\r\n entityId: metadata.getEntityIdMixedMap(\r\n databaseEntity ?? identifier,\r\n ),\r\n })\r\n if (executionResult instanceof Promise)\r\n result.promises.push(executionResult)\r\n result.count++\r\n }\r\n })\r\n }\r\n }\r\n\r\n /**\r\n * @deprecated Use `broadcastLoadForAllEvent`\r\n */\r\n broadcastLoadEventsForAll(\r\n result: BroadcasterResult,\r\n metadata: EntityMetadata,\r\n entities: ObjectLiteral[],\r\n ): void {\r\n return this.broadcastLoadEvent(result, metadata, entities)\r\n }\r\n\r\n /**\r\n * Broadcasts \"AFTER_LOAD\" event for all given entities, and their sub-entities.\r\n * After load event is executed after entity has been loaded from the database.\r\n * All subscribers and entity listeners who listened to this event will be executed at this point.\r\n * Subscribers and entity listeners can return promises, it will wait until they are resolved.\r\n *\r\n * Note: this method has a performance-optimized code organization, do not change code structure.\r\n */\r\n broadcastLoadEvent(\r\n result: BroadcasterResult,\r\n metadata: EntityMetadata,\r\n entities: ObjectLiteral[],\r\n ): void {\r\n // Calculate which subscribers are fitting for the given entity type\r\n const fittingSubscribers =\r\n this.queryRunner.connection.subscribers.filter(\r\n (subscriber) =>\r\n this.isAllowedSubscriber(subscriber, metadata.target) &&\r\n subscriber.afterLoad,\r\n )\r\n\r\n if (\r\n metadata.relations.length ||\r\n metadata.afterLoadListeners.length ||\r\n fittingSubscribers.length\r\n ) {\r\n // todo: check why need this?\r\n const nonPromiseEntities = entities.filter(\r\n (entity) => !(entity instanceof Promise),\r\n )\r\n\r\n // collect load events for all children entities that were loaded with the main entity\r\n if (metadata.relations.length) {\r\n metadata.relations.forEach((relation) => {\r\n nonPromiseEntities.forEach((entity) => {\r\n // in lazy relations we cannot simply access to entity property because it will cause a getter and a database query\r\n if (\r\n relation.isLazy &&\r\n !entity.hasOwnProperty(relation.propertyName)\r\n )\r\n return\r\n\r\n const value = relation.getEntityValue(entity)\r\n if (ObjectUtils.isObject(value))\r\n this.broadcastLoadEvent(\r\n result,\r\n relation.inverseEntityMetadata,\r\n Array.isArray(value) ? value : [value],\r\n )\r\n })\r\n })\r\n }\r\n\r\n if (metadata.afterLoadListeners.length) {\r\n metadata.afterLoadListeners.forEach((listener) => {\r\n nonPromiseEntities.forEach((entity) => {\r\n if (listener.isAllowed(entity)) {\r\n const executionResult = listener.execute(entity)\r\n if (executionResult instanceof Promise)\r\n result.promises.push(executionResult)\r\n result.count++\r\n }\r\n })\r\n })\r\n }\r\n\r\n fittingSubscribers.forEach((subscriber) => {\r\n nonPromiseEntities.forEach((entity) => {\r\n const executionResult = subscriber.afterLoad!(entity, {\r\n entity,\r\n metadata,\r\n connection: this.queryRunner.connection,\r\n queryRunner: this.queryRunner,\r\n manager: this.queryRunner.manager,\r\n })\r\n if (executionResult instanceof Promise)\r\n result.promises.push(executionResult)\r\n result.count++\r\n })\r\n })\r\n }\r\n }\r\n\r\n // -------------------------------------------------------------------------\r\n // Protected Methods\r\n // -------------------------------------------------------------------------\r\n\r\n /**\r\n * Checks if subscriber's methods can be executed by checking if its don't listen to the particular entity,\r\n * or listens our entity.\r\n */\r\n protected isAllowedSubscriber(\r\n subscriber: EntitySubscriberInterface<any>,\r\n target: Function | string,\r\n ): boolean {\r\n return (\r\n !subscriber.listenTo ||\r\n !subscriber.listenTo() ||\r\n subscriber.listenTo() === Object ||\r\n subscriber.listenTo() === target ||\r\n subscriber.listenTo().isPrototypeOf(target)\r\n )\r\n }\r\n}\r\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../browser/src/subscriber/Broadcaster.ts"],"names":[],"mappings":"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","file":"Broadcaster.js","sourcesContent":["import { EntitySubscriberInterface } from \"./EntitySubscriberInterface\"\nimport { ObjectLiteral } from \"../common/ObjectLiteral\"\nimport { QueryRunner } from \"../query-runner/QueryRunner\"\nimport { EntityMetadata } from \"../metadata/EntityMetadata\"\nimport { BroadcasterResult } from \"./BroadcasterResult\"\nimport { ColumnMetadata } from \"../metadata/ColumnMetadata\"\nimport { RelationMetadata } from \"../metadata/RelationMetadata\"\nimport { ObjectUtils } from \"../util/ObjectUtils\"\n\ninterface BroadcasterEvents {\n BeforeQuery: () => void\n AfterQuery: () => void\n\n BeforeTransactionCommit: () => void\n AfterTransactionCommit: () => void\n BeforeTransactionStart: () => void\n AfterTransactionStart: () => void\n BeforeTransactionRollback: () => void\n AfterTransactionRollback: () => void\n\n BeforeUpdate: (\n metadata: EntityMetadata,\n entity?: ObjectLiteral,\n databaseEntity?: ObjectLiteral,\n updatedColumns?: ColumnMetadata[],\n updatedRelations?: RelationMetadata[],\n ) => void\n AfterUpdate: (\n metadata: EntityMetadata,\n entity?: ObjectLiteral,\n databaseEntity?: ObjectLiteral,\n updatedColumns?: ColumnMetadata[],\n updatedRelations?: RelationMetadata[],\n ) => void\n\n BeforeInsert: (\n metadata: EntityMetadata,\n entity: ObjectLiteral | undefined,\n ) => void\n AfterInsert: (\n metadata: EntityMetadata,\n entity: ObjectLiteral | undefined,\n ) => void\n\n BeforeRemove: (\n metadata: EntityMetadata,\n entity?: ObjectLiteral,\n databaseEntity?: ObjectLiteral,\n ) => void\n AfterRemove: (\n metadata: EntityMetadata,\n entity?: ObjectLiteral,\n databaseEntity?: ObjectLiteral,\n ) => void\n\n BeforeSoftRemove: (\n metadata: EntityMetadata,\n entity?: ObjectLiteral,\n databaseEntity?: ObjectLiteral,\n ) => void\n AfterSoftRemove: (\n metadata: EntityMetadata,\n entity?: ObjectLiteral,\n databaseEntity?: ObjectLiteral,\n ) => void\n\n BeforeRecover: (\n metadata: EntityMetadata,\n entity?: ObjectLiteral,\n databaseEntity?: ObjectLiteral,\n ) => void\n AfterRecover: (\n metadata: EntityMetadata,\n entity?: ObjectLiteral,\n databaseEntity?: ObjectLiteral,\n ) => void\n\n Load: (metadata: EntityMetadata, entities: ObjectLiteral[]) => void\n}\n\n/**\n * Broadcaster provides a helper methods to broadcast events to the subscribers.\n */\nexport class Broadcaster {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(private queryRunner: QueryRunner) {}\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n async broadcast<U extends keyof BroadcasterEvents>(\n event: U,\n ...args: Parameters<BroadcasterEvents[U]>\n ): Promise<void> {\n const result = new BroadcasterResult()\n\n const broadcastFunction = this[`broadcast${event}Event` as keyof this]\n\n if (typeof broadcastFunction === \"function\") {\n ;(broadcastFunction as any).call(this, result, ...args)\n }\n\n await result.wait()\n }\n\n /**\n * Broadcasts \"BEFORE_INSERT\" event.\n * Before insert event is executed before entity is being inserted to the database for the first time.\n * All subscribers and entity listeners who listened to this event will be executed at this point.\n * Subscribers and entity listeners can return promises, it will wait until they are resolved.\n *\n * Note: this method has a performance-optimized code organization, do not change code structure.\n */\n broadcastBeforeInsertEvent(\n result: BroadcasterResult,\n metadata: EntityMetadata,\n entity: undefined | ObjectLiteral,\n ): void {\n if (entity && metadata.beforeInsertListeners.length) {\n metadata.beforeInsertListeners.forEach((listener) => {\n if (listener.isAllowed(entity)) {\n const executionResult = listener.execute(entity)\n if (executionResult instanceof Promise)\n result.promises.push(executionResult)\n result.count++\n }\n })\n }\n\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach((subscriber) => {\n if (\n this.isAllowedSubscriber(subscriber, metadata.target) &&\n subscriber.beforeInsert\n ) {\n const executionResult = subscriber.beforeInsert({\n connection: this.queryRunner.connection,\n queryRunner: this.queryRunner,\n manager: this.queryRunner.manager,\n entity: entity,\n metadata: metadata,\n })\n if (executionResult instanceof Promise)\n result.promises.push(executionResult)\n result.count++\n }\n })\n }\n }\n\n /**\n * Broadcasts \"BEFORE_UPDATE\" event.\n * Before update event is executed before entity is being updated in the database.\n * All subscribers and entity listeners who listened to this event will be executed at this point.\n * Subscribers and entity listeners can return promises, it will wait until they are resolved.\n *\n * Note: this method has a performance-optimized code organization, do not change code structure.\n */\n broadcastBeforeUpdateEvent(\n result: BroadcasterResult,\n metadata: EntityMetadata,\n entity?: ObjectLiteral,\n databaseEntity?: ObjectLiteral,\n updatedColumns?: ColumnMetadata[],\n updatedRelations?: RelationMetadata[],\n ): void {\n // todo: send relations too?\n if (entity && metadata.beforeUpdateListeners.length) {\n metadata.beforeUpdateListeners.forEach((listener) => {\n if (listener.isAllowed(entity)) {\n const executionResult = listener.execute(entity)\n if (executionResult instanceof Promise)\n result.promises.push(executionResult)\n result.count++\n }\n })\n }\n\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach((subscriber) => {\n if (\n this.isAllowedSubscriber(subscriber, metadata.target) &&\n subscriber.beforeUpdate\n ) {\n const executionResult = subscriber.beforeUpdate({\n connection: this.queryRunner.connection,\n queryRunner: this.queryRunner,\n manager: this.queryRunner.manager,\n entity: entity,\n metadata: metadata,\n databaseEntity: databaseEntity,\n updatedColumns: updatedColumns || [],\n updatedRelations: updatedRelations || [],\n })\n if (executionResult instanceof Promise)\n result.promises.push(executionResult)\n result.count++\n }\n })\n }\n }\n\n /**\n * Broadcasts \"BEFORE_REMOVE\" event.\n * Before remove event is executed before entity is being removed from the database.\n * All subscribers and entity listeners who listened to this event will be executed at this point.\n * Subscribers and entity listeners can return promises, it will wait until they are resolved.\n *\n * Note: this method has a performance-optimized code organization, do not change code structure.\n */\n broadcastBeforeRemoveEvent(\n result: BroadcasterResult,\n metadata: EntityMetadata,\n entity?: ObjectLiteral,\n databaseEntity?: ObjectLiteral,\n identifier?: ObjectLiteral,\n ): void {\n if (entity && metadata.beforeRemoveListeners.length) {\n metadata.beforeRemoveListeners.forEach((listener) => {\n if (listener.isAllowed(entity)) {\n const executionResult = listener.execute(entity)\n if (executionResult instanceof Promise)\n result.promises.push(executionResult)\n result.count++\n }\n })\n }\n\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach((subscriber) => {\n if (\n this.isAllowedSubscriber(subscriber, metadata.target) &&\n subscriber.beforeRemove\n ) {\n const executionResult = subscriber.beforeRemove({\n connection: this.queryRunner.connection,\n queryRunner: this.queryRunner,\n manager: this.queryRunner.manager,\n entity: entity,\n metadata: metadata,\n databaseEntity: databaseEntity,\n entityId: metadata.getEntityIdMixedMap(\n databaseEntity ?? identifier,\n ),\n })\n if (executionResult instanceof Promise)\n result.promises.push(executionResult)\n result.count++\n }\n })\n }\n }\n\n /**\n * Broadcasts \"BEFORE_SOFT_REMOVE\" event.\n * Before soft remove event is executed before entity is being soft removed from the database.\n * All subscribers and entity listeners who listened to this event will be executed at this point.\n * Subscribers and entity listeners can return promises, it will wait until they are resolved.\n *\n * Note: this method has a performance-optimized code organization, do not change code structure.\n */\n broadcastBeforeSoftRemoveEvent(\n result: BroadcasterResult,\n metadata: EntityMetadata,\n entity?: ObjectLiteral,\n databaseEntity?: ObjectLiteral,\n identifier?: ObjectLiteral,\n ): void {\n if (entity && metadata.beforeSoftRemoveListeners.length) {\n metadata.beforeSoftRemoveListeners.forEach((listener) => {\n if (listener.isAllowed(entity)) {\n const executionResult = listener.execute(entity)\n if (executionResult instanceof Promise)\n result.promises.push(executionResult)\n result.count++\n }\n })\n }\n\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach((subscriber) => {\n if (\n this.isAllowedSubscriber(subscriber, metadata.target) &&\n subscriber.beforeSoftRemove\n ) {\n const executionResult = subscriber.beforeSoftRemove({\n connection: this.queryRunner.connection,\n queryRunner: this.queryRunner,\n manager: this.queryRunner.manager,\n entity: entity,\n metadata: metadata,\n databaseEntity: databaseEntity,\n entityId: metadata.getEntityIdMixedMap(\n databaseEntity ?? identifier,\n ),\n })\n if (executionResult instanceof Promise)\n result.promises.push(executionResult)\n result.count++\n }\n })\n }\n }\n\n /**\n * Broadcasts \"BEFORE_RECOVER\" event.\n * Before recover event is executed before entity is being recovered in the database.\n * All subscribers and entity listeners who listened to this event will be executed at this point.\n * Subscribers and entity listeners can return promises, it will wait until they are resolved.\n *\n * Note: this method has a performance-optimized code organization, do not change code structure.\n */\n broadcastBeforeRecoverEvent(\n result: BroadcasterResult,\n metadata: EntityMetadata,\n entity?: ObjectLiteral,\n databaseEntity?: ObjectLiteral,\n identifier?: ObjectLiteral,\n ): void {\n if (entity && metadata.beforeRecoverListeners.length) {\n metadata.beforeRecoverListeners.forEach((listener) => {\n if (listener.isAllowed(entity)) {\n const executionResult = listener.execute(entity)\n if (executionResult instanceof Promise)\n result.promises.push(executionResult)\n result.count++\n }\n })\n }\n\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach((subscriber) => {\n if (\n this.isAllowedSubscriber(subscriber, metadata.target) &&\n subscriber.beforeRecover\n ) {\n const executionResult = subscriber.beforeRecover({\n connection: this.queryRunner.connection,\n queryRunner: this.queryRunner,\n manager: this.queryRunner.manager,\n entity: entity,\n metadata: metadata,\n databaseEntity: databaseEntity,\n entityId: metadata.getEntityIdMixedMap(\n databaseEntity ?? identifier,\n ),\n })\n if (executionResult instanceof Promise)\n result.promises.push(executionResult)\n result.count++\n }\n })\n }\n }\n\n /**\n * Broadcasts \"AFTER_INSERT\" event.\n * After insert event is executed after entity is being persisted to the database for the first time.\n * All subscribers and entity listeners who listened to this event will be executed at this point.\n * Subscribers and entity listeners can return promises, it will wait until they are resolved.\n *\n * Note: this method has a performance-optimized code organization, do not change code structure.\n */\n broadcastAfterInsertEvent(\n result: BroadcasterResult,\n metadata: EntityMetadata,\n entity?: ObjectLiteral,\n identifier?: ObjectLiteral,\n ): void {\n if (entity && metadata.afterInsertListeners.length) {\n metadata.afterInsertListeners.forEach((listener) => {\n if (listener.isAllowed(entity)) {\n const executionResult = listener.execute(entity)\n if (executionResult instanceof Promise)\n result.promises.push(executionResult)\n result.count++\n }\n })\n }\n\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach((subscriber) => {\n if (\n this.isAllowedSubscriber(subscriber, metadata.target) &&\n subscriber.afterInsert\n ) {\n const executionResult = subscriber.afterInsert({\n connection: this.queryRunner.connection,\n queryRunner: this.queryRunner,\n manager: this.queryRunner.manager,\n entity: entity,\n metadata: metadata,\n entityId: metadata.getEntityIdMixedMap(identifier),\n })\n if (executionResult instanceof Promise)\n result.promises.push(executionResult)\n result.count++\n }\n })\n }\n }\n\n /**\n * Broadcasts \"BEFORE_QUERY\" event.\n */\n broadcastBeforeQueryEvent(\n result: BroadcasterResult,\n query: string,\n parameters: undefined | any[],\n ): void {\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach((subscriber) => {\n if (subscriber.beforeQuery) {\n const executionResult = subscriber.beforeQuery({\n connection: this.queryRunner.connection,\n queryRunner: this.queryRunner,\n manager: this.queryRunner.manager,\n query: query,\n parameters: parameters,\n })\n if (executionResult instanceof Promise)\n result.promises.push(executionResult)\n result.count++\n }\n })\n }\n }\n\n /**\n * Broadcasts \"AFTER_QUERY\" event.\n */\n broadcastAfterQueryEvent(\n result: BroadcasterResult,\n query: string,\n parameters: undefined | any[],\n success: boolean,\n executionTime: undefined | number,\n rawResults: undefined | any,\n error: undefined | any,\n ): void {\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach((subscriber) => {\n if (subscriber.afterQuery) {\n const executionResult = subscriber.afterQuery({\n connection: this.queryRunner.connection,\n queryRunner: this.queryRunner,\n manager: this.queryRunner.manager,\n query: query,\n parameters: parameters,\n success: success,\n executionTime: executionTime,\n rawResults: rawResults,\n error: error,\n })\n if (executionResult instanceof Promise)\n result.promises.push(executionResult)\n result.count++\n }\n })\n }\n }\n\n /**\n * Broadcasts \"BEFORE_TRANSACTION_START\" event.\n */\n broadcastBeforeTransactionStartEvent(result: BroadcasterResult): void {\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach((subscriber) => {\n if (subscriber.beforeTransactionStart) {\n const executionResult = subscriber.beforeTransactionStart({\n connection: this.queryRunner.connection,\n queryRunner: this.queryRunner,\n manager: this.queryRunner.manager,\n })\n if (executionResult instanceof Promise)\n result.promises.push(executionResult)\n result.count++\n }\n })\n }\n }\n\n /**\n * Broadcasts \"AFTER_TRANSACTION_START\" event.\n */\n broadcastAfterTransactionStartEvent(result: BroadcasterResult): void {\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach((subscriber) => {\n if (subscriber.afterTransactionStart) {\n const executionResult = subscriber.afterTransactionStart({\n connection: this.queryRunner.connection,\n queryRunner: this.queryRunner,\n manager: this.queryRunner.manager,\n })\n if (executionResult instanceof Promise)\n result.promises.push(executionResult)\n result.count++\n }\n })\n }\n }\n\n /**\n * Broadcasts \"BEFORE_TRANSACTION_COMMIT\" event.\n */\n broadcastBeforeTransactionCommitEvent(result: BroadcasterResult): void {\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach((subscriber) => {\n if (subscriber.beforeTransactionCommit) {\n const executionResult = subscriber.beforeTransactionCommit({\n connection: this.queryRunner.connection,\n queryRunner: this.queryRunner,\n manager: this.queryRunner.manager,\n })\n if (executionResult instanceof Promise)\n result.promises.push(executionResult)\n result.count++\n }\n })\n }\n }\n\n /**\n * Broadcasts \"AFTER_TRANSACTION_COMMIT\" event.\n */\n broadcastAfterTransactionCommitEvent(result: BroadcasterResult): void {\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach((subscriber) => {\n if (subscriber.afterTransactionCommit) {\n const executionResult = subscriber.afterTransactionCommit({\n connection: this.queryRunner.connection,\n queryRunner: this.queryRunner,\n manager: this.queryRunner.manager,\n })\n if (executionResult instanceof Promise)\n result.promises.push(executionResult)\n result.count++\n }\n })\n }\n }\n\n /**\n * Broadcasts \"BEFORE_TRANSACTION_ROLLBACK\" event.\n */\n broadcastBeforeTransactionRollbackEvent(result: BroadcasterResult): void {\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach((subscriber) => {\n if (subscriber.beforeTransactionRollback) {\n const executionResult =\n subscriber.beforeTransactionRollback({\n connection: this.queryRunner.connection,\n queryRunner: this.queryRunner,\n manager: this.queryRunner.manager,\n })\n if (executionResult instanceof Promise)\n result.promises.push(executionResult)\n result.count++\n }\n })\n }\n }\n\n /**\n * Broadcasts \"AFTER_TRANSACTION_ROLLBACK\" event.\n */\n broadcastAfterTransactionRollbackEvent(result: BroadcasterResult): void {\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach((subscriber) => {\n if (subscriber.afterTransactionRollback) {\n const executionResult = subscriber.afterTransactionRollback(\n {\n connection: this.queryRunner.connection,\n queryRunner: this.queryRunner,\n manager: this.queryRunner.manager,\n },\n )\n if (executionResult instanceof Promise)\n result.promises.push(executionResult)\n result.count++\n }\n })\n }\n }\n\n /**\n * Broadcasts \"AFTER_UPDATE\" event.\n * After update event is executed after entity is being updated in the database.\n * All subscribers and entity listeners who listened to this event will be executed at this point.\n * Subscribers and entity listeners can return promises, it will wait until they are resolved.\n *\n * Note: this method has a performance-optimized code organization, do not change code structure.\n */\n broadcastAfterUpdateEvent(\n result: BroadcasterResult,\n metadata: EntityMetadata,\n entity?: ObjectLiteral,\n databaseEntity?: ObjectLiteral,\n updatedColumns?: ColumnMetadata[],\n updatedRelations?: RelationMetadata[],\n ): void {\n if (entity && metadata.afterUpdateListeners.length) {\n metadata.afterUpdateListeners.forEach((listener) => {\n if (listener.isAllowed(entity)) {\n const executionResult = listener.execute(entity)\n if (executionResult instanceof Promise)\n result.promises.push(executionResult)\n result.count++\n }\n })\n }\n\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach((subscriber) => {\n if (\n this.isAllowedSubscriber(subscriber, metadata.target) &&\n subscriber.afterUpdate\n ) {\n const executionResult = subscriber.afterUpdate({\n connection: this.queryRunner.connection,\n queryRunner: this.queryRunner,\n manager: this.queryRunner.manager,\n entity: entity,\n metadata: metadata,\n databaseEntity: databaseEntity,\n updatedColumns: updatedColumns || [],\n updatedRelations: updatedRelations || [],\n })\n if (executionResult instanceof Promise)\n result.promises.push(executionResult)\n result.count++\n }\n })\n }\n }\n\n /**\n * Broadcasts \"AFTER_REMOVE\" event.\n * After remove event is executed after entity is being removed from the database.\n * All subscribers and entity listeners who listened to this event will be executed at this point.\n * Subscribers and entity listeners can return promises, it will wait until they are resolved.\n *\n * Note: this method has a performance-optimized code organization, do not change code structure.\n */\n broadcastAfterRemoveEvent(\n result: BroadcasterResult,\n metadata: EntityMetadata,\n entity?: ObjectLiteral,\n databaseEntity?: ObjectLiteral,\n identifier?: ObjectLiteral,\n ): void {\n if (entity && metadata.afterRemoveListeners.length) {\n metadata.afterRemoveListeners.forEach((listener) => {\n if (listener.isAllowed(entity)) {\n const executionResult = listener.execute(entity)\n if (executionResult instanceof Promise)\n result.promises.push(executionResult)\n result.count++\n }\n })\n }\n\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach((subscriber) => {\n if (\n this.isAllowedSubscriber(subscriber, metadata.target) &&\n subscriber.afterRemove\n ) {\n const executionResult = subscriber.afterRemove({\n connection: this.queryRunner.connection,\n queryRunner: this.queryRunner,\n manager: this.queryRunner.manager,\n entity: entity,\n metadata: metadata,\n databaseEntity: databaseEntity,\n entityId: metadata.getEntityIdMixedMap(\n databaseEntity ?? identifier,\n ),\n })\n if (executionResult instanceof Promise)\n result.promises.push(executionResult)\n result.count++\n }\n })\n }\n }\n\n /**\n * Broadcasts \"AFTER_SOFT_REMOVE\" event.\n * After soft remove event is executed after entity is being soft removed from the database.\n * All subscribers and entity listeners who listened to this event will be executed at this point.\n * Subscribers and entity listeners can return promises, it will wait until they are resolved.\n *\n * Note: this method has a performance-optimized code organization, do not change code structure.\n */\n broadcastAfterSoftRemoveEvent(\n result: BroadcasterResult,\n metadata: EntityMetadata,\n entity?: ObjectLiteral,\n databaseEntity?: ObjectLiteral,\n identifier?: ObjectLiteral,\n ): void {\n if (entity && metadata.afterSoftRemoveListeners.length) {\n metadata.afterSoftRemoveListeners.forEach((listener) => {\n if (listener.isAllowed(entity)) {\n const executionResult = listener.execute(entity)\n if (executionResult instanceof Promise)\n result.promises.push(executionResult)\n result.count++\n }\n })\n }\n\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach((subscriber) => {\n if (\n this.isAllowedSubscriber(subscriber, metadata.target) &&\n subscriber.afterSoftRemove\n ) {\n const executionResult = subscriber.afterSoftRemove({\n connection: this.queryRunner.connection,\n queryRunner: this.queryRunner,\n manager: this.queryRunner.manager,\n entity: entity,\n metadata: metadata,\n databaseEntity: databaseEntity,\n entityId: metadata.getEntityIdMixedMap(\n databaseEntity ?? identifier,\n ),\n })\n if (executionResult instanceof Promise)\n result.promises.push(executionResult)\n result.count++\n }\n })\n }\n }\n\n /**\n * Broadcasts \"AFTER_RECOVER\" event.\n * After recover event is executed after entity is being recovered in the database.\n * All subscribers and entity listeners who listened to this event will be executed at this point.\n * Subscribers and entity listeners can return promises, it will wait until they are resolved.\n *\n * Note: this method has a performance-optimized code organization, do not change code structure.\n */\n broadcastAfterRecoverEvent(\n result: BroadcasterResult,\n metadata: EntityMetadata,\n entity?: ObjectLiteral,\n databaseEntity?: ObjectLiteral,\n identifier?: ObjectLiteral,\n ): void {\n if (entity && metadata.afterRecoverListeners.length) {\n metadata.afterRecoverListeners.forEach((listener) => {\n if (listener.isAllowed(entity)) {\n const executionResult = listener.execute(entity)\n if (executionResult instanceof Promise)\n result.promises.push(executionResult)\n result.count++\n }\n })\n }\n\n if (this.queryRunner.connection.subscribers.length) {\n this.queryRunner.connection.subscribers.forEach((subscriber) => {\n if (\n this.isAllowedSubscriber(subscriber, metadata.target) &&\n subscriber.afterRecover\n ) {\n const executionResult = subscriber.afterRecover({\n connection: this.queryRunner.connection,\n queryRunner: this.queryRunner,\n manager: this.queryRunner.manager,\n entity: entity,\n metadata: metadata,\n databaseEntity: databaseEntity,\n entityId: metadata.getEntityIdMixedMap(\n databaseEntity ?? identifier,\n ),\n })\n if (executionResult instanceof Promise)\n result.promises.push(executionResult)\n result.count++\n }\n })\n }\n }\n\n /**\n * @deprecated Use `broadcastLoadForAllEvent`\n */\n broadcastLoadEventsForAll(\n result: BroadcasterResult,\n metadata: EntityMetadata,\n entities: ObjectLiteral[],\n ): void {\n return this.broadcastLoadEvent(result, metadata, entities)\n }\n\n /**\n * Broadcasts \"AFTER_LOAD\" event for all given entities, and their sub-entities.\n * After load event is executed after entity has been loaded from the database.\n * All subscribers and entity listeners who listened to this event will be executed at this point.\n * Subscribers and entity listeners can return promises, it will wait until they are resolved.\n *\n * Note: this method has a performance-optimized code organization, do not change code structure.\n */\n broadcastLoadEvent(\n result: BroadcasterResult,\n metadata: EntityMetadata,\n entities: ObjectLiteral[],\n ): void {\n // Calculate which subscribers are fitting for the given entity type\n const fittingSubscribers =\n this.queryRunner.connection.subscribers.filter(\n (subscriber) =>\n this.isAllowedSubscriber(subscriber, metadata.target) &&\n subscriber.afterLoad,\n )\n\n if (\n metadata.relations.length ||\n metadata.afterLoadListeners.length ||\n fittingSubscribers.length\n ) {\n // todo: check why need this?\n const nonPromiseEntities = entities.filter(\n (entity) => !(entity instanceof Promise),\n )\n\n // collect load events for all children entities that were loaded with the main entity\n if (metadata.relations.length) {\n metadata.relations.forEach((relation) => {\n nonPromiseEntities.forEach((entity) => {\n // in lazy relations we cannot simply access to entity property because it will cause a getter and a database query\n if (\n relation.isLazy &&\n !entity.hasOwnProperty(relation.propertyName)\n )\n return\n\n const value = relation.getEntityValue(entity)\n if (ObjectUtils.isObject(value))\n this.broadcastLoadEvent(\n result,\n relation.inverseEntityMetadata,\n Array.isArray(value) ? value : [value],\n )\n })\n })\n }\n\n if (metadata.afterLoadListeners.length) {\n metadata.afterLoadListeners.forEach((listener) => {\n nonPromiseEntities.forEach((entity) => {\n if (listener.isAllowed(entity)) {\n const executionResult = listener.execute(entity)\n if (executionResult instanceof Promise)\n result.promises.push(executionResult)\n result.count++\n }\n })\n })\n }\n\n fittingSubscribers.forEach((subscriber) => {\n nonPromiseEntities.forEach((entity) => {\n const executionResult = subscriber.afterLoad!(entity, {\n entity,\n metadata,\n connection: this.queryRunner.connection,\n queryRunner: this.queryRunner,\n manager: this.queryRunner.manager,\n })\n if (executionResult instanceof Promise)\n result.promises.push(executionResult)\n result.count++\n })\n })\n }\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Checks if subscriber's methods can be executed by checking if its don't listen to the particular entity,\n * or listens our entity.\n */\n protected isAllowedSubscriber(\n subscriber: EntitySubscriberInterface<any>,\n target: Function | string,\n ): boolean {\n return (\n !subscriber.listenTo ||\n !subscriber.listenTo() ||\n subscriber.listenTo() === Object ||\n subscriber.listenTo() === target ||\n subscriber.listenTo().isPrototypeOf(target)\n )\n }\n}\n"],"sourceRoot":".."}
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/subscriber/BroadcasterResult.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,iBAAiB;IAA9B;QACI;;WAEG;QACH,UAAK,GAAW,CAAC,CAAA;QAEjB;;WAEG;QACH,aAAQ,GAAmB,EAAE,CAAA;IAYjC,CAAC;IAVG;;OAEG;IACH,KAAK,CAAC,IAAI;QACN,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACpC,CAAC;QAED,OAAO,IAAI,CAAA;IACf,CAAC;CACJ","file":"BroadcasterResult.js","sourcesContent":["/**\r\n * Broadcaster execution result - promises executed by operations and number of executed listeners and subscribers.\r\n */\r\nexport class BroadcasterResult {\r\n /**\r\n * Number of executed listeners and subscribers.\r\n */\r\n count: number = 0\r\n\r\n /**\r\n * Promises returned by listeners and subscribers which needs to be awaited.\r\n */\r\n promises: Promise<any>[] = []\r\n\r\n /**\r\n * Wait for all promises to settle\r\n */\r\n async wait(): Promise<BroadcasterResult> {\r\n if (this.promises.length > 0) {\r\n await Promise.all(this.promises)\r\n }\r\n\r\n return this\r\n }\r\n}\r\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../browser/src/subscriber/BroadcasterResult.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,iBAAiB;IAA9B;QACI;;WAEG;QACH,UAAK,GAAW,CAAC,CAAA;QAEjB;;WAEG;QACH,aAAQ,GAAmB,EAAE,CAAA;IAYjC,CAAC;IAVG;;OAEG;IACH,KAAK,CAAC,IAAI;QACN,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACpC,CAAC;QAED,OAAO,IAAI,CAAA;IACf,CAAC;CACJ","file":"BroadcasterResult.js","sourcesContent":["/**\n * Broadcaster execution result - promises executed by operations and number of executed listeners and subscribers.\n */\nexport class BroadcasterResult {\n /**\n * Number of executed listeners and subscribers.\n */\n count: number = 0\n\n /**\n * Promises returned by listeners and subscribers which needs to be awaited.\n */\n promises: Promise<any>[] = []\n\n /**\n * Wait for all promises to settle\n */\n async wait(): Promise<BroadcasterResult> {\n if (this.promises.length > 0) {\n await Promise.all(this.promises)\n }\n\n return this\n }\n}\n"],"sourceRoot":".."}
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/subscriber/EntitySubscriberInterface.ts"],"names":[],"mappings":"","file":"EntitySubscriberInterface.js","sourcesContent":["import { TransactionCommitEvent } from \"./event/TransactionCommitEvent\"\r\nimport { TransactionRollbackEvent } from \"./event/TransactionRollbackEvent\"\r\nimport { TransactionStartEvent } from \"./event/TransactionStartEvent\"\r\nimport { UpdateEvent } from \"./event/UpdateEvent\"\r\nimport { RemoveEvent } from \"./event/RemoveEvent\"\r\nimport { InsertEvent } from \"./event/InsertEvent\"\r\nimport { LoadEvent } from \"./event/LoadEvent\"\r\nimport { SoftRemoveEvent } from \"./event/SoftRemoveEvent\"\r\nimport { RecoverEvent } from \"./event/RecoverEvent\"\r\nimport { AfterQueryEvent, BeforeQueryEvent } from \"./event/QueryEvent\"\r\n\r\n/**\r\n * Classes that implement this interface are subscribers that subscribe for the specific events in the ORM.\r\n */\r\nexport interface EntitySubscriberInterface<Entity = any> {\r\n /**\r\n * Returns the class of the entity to which events will listen.\r\n * If this method is omitted, then subscriber will listen to events of all entities.\r\n */\r\n listenTo?(): Function | string\r\n\r\n /**\r\n * Called after entity is loaded from the database.\r\n *\r\n * For backward compatibility this signature is slightly different from the\r\n * others. `event` was added later but is always provided (it is only\r\n * optional in the signature so that its introduction does not break\r\n * compilation for existing subscribers).\r\n */\r\n afterLoad?(entity: Entity, event?: LoadEvent<Entity>): Promise<any> | void\r\n\r\n /**\r\n * Called before query is executed.\r\n */\r\n beforeQuery?(event: BeforeQueryEvent<Entity>): Promise<any> | void\r\n\r\n /**\r\n * Called after query is executed.\r\n */\r\n afterQuery?(event: AfterQueryEvent<Entity>): Promise<any> | void\r\n\r\n /**\r\n * Called before entity is inserted to the database.\r\n */\r\n beforeInsert?(event: InsertEvent<Entity>): Promise<any> | void\r\n\r\n /**\r\n * Called after entity is inserted to the database.\r\n */\r\n afterInsert?(event: InsertEvent<Entity>): Promise<any> | void\r\n\r\n /**\r\n * Called before entity is updated in the database.\r\n */\r\n beforeUpdate?(event: UpdateEvent<Entity>): Promise<any> | void\r\n\r\n /**\r\n * Called after entity is updated in the database.\r\n */\r\n afterUpdate?(event: UpdateEvent<Entity>): Promise<any> | void\r\n\r\n /**\r\n * Called before entity is removed from the database.\r\n */\r\n beforeRemove?(event: RemoveEvent<Entity>): Promise<any> | void\r\n\r\n /**\r\n * Called before entity is soft removed from the database.\r\n */\r\n beforeSoftRemove?(event: SoftRemoveEvent<Entity>): Promise<any> | void\r\n\r\n /**\r\n * Called before entity is recovered in the database.\r\n */\r\n beforeRecover?(event: RecoverEvent<Entity>): Promise<any> | void\r\n\r\n /**\r\n * Called after entity is removed from the database.\r\n */\r\n afterRemove?(event: RemoveEvent<Entity>): Promise<any> | void\r\n\r\n /**\r\n * Called after entity is soft removed from the database.\r\n */\r\n afterSoftRemove?(event: SoftRemoveEvent<Entity>): Promise<any> | void\r\n\r\n /**\r\n * Called after entity is recovered in the database.\r\n */\r\n afterRecover?(event: RecoverEvent<Entity>): Promise<any> | void\r\n\r\n /**\r\n * Called before transaction is started.\r\n */\r\n beforeTransactionStart?(event: TransactionStartEvent): Promise<any> | void\r\n\r\n /**\r\n * Called after transaction is started.\r\n */\r\n afterTransactionStart?(event: TransactionStartEvent): Promise<any> | void\r\n\r\n /**\r\n * Called before transaction is committed.\r\n */\r\n beforeTransactionCommit?(event: TransactionCommitEvent): Promise<any> | void\r\n\r\n /**\r\n * Called after transaction is committed.\r\n */\r\n afterTransactionCommit?(event: TransactionCommitEvent): Promise<any> | void\r\n\r\n /**\r\n * Called before transaction rollback.\r\n */\r\n beforeTransactionRollback?(\r\n event: TransactionRollbackEvent,\r\n ): Promise<any> | void\r\n\r\n /**\r\n * Called after transaction rollback.\r\n */\r\n afterTransactionRollback?(\r\n event: TransactionRollbackEvent,\r\n ): Promise<any> | void\r\n}\r\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../browser/src/subscriber/EntitySubscriberInterface.ts"],"names":[],"mappings":"","file":"EntitySubscriberInterface.js","sourcesContent":["import { TransactionCommitEvent } from \"./event/TransactionCommitEvent\"\nimport { TransactionRollbackEvent } from \"./event/TransactionRollbackEvent\"\nimport { TransactionStartEvent } from \"./event/TransactionStartEvent\"\nimport { UpdateEvent } from \"./event/UpdateEvent\"\nimport { RemoveEvent } from \"./event/RemoveEvent\"\nimport { InsertEvent } from \"./event/InsertEvent\"\nimport { LoadEvent } from \"./event/LoadEvent\"\nimport { SoftRemoveEvent } from \"./event/SoftRemoveEvent\"\nimport { RecoverEvent } from \"./event/RecoverEvent\"\nimport { AfterQueryEvent, BeforeQueryEvent } from \"./event/QueryEvent\"\n\n/**\n * Classes that implement this interface are subscribers that subscribe for the specific events in the ORM.\n */\nexport interface EntitySubscriberInterface<Entity = any> {\n /**\n * Returns the class of the entity to which events will listen.\n * If this method is omitted, then subscriber will listen to events of all entities.\n */\n listenTo?(): Function | string\n\n /**\n * Called after entity is loaded from the database.\n *\n * For backward compatibility this signature is slightly different from the\n * others. `event` was added later but is always provided (it is only\n * optional in the signature so that its introduction does not break\n * compilation for existing subscribers).\n */\n afterLoad?(entity: Entity, event?: LoadEvent<Entity>): Promise<any> | void\n\n /**\n * Called before query is executed.\n */\n beforeQuery?(event: BeforeQueryEvent<Entity>): Promise<any> | void\n\n /**\n * Called after query is executed.\n */\n afterQuery?(event: AfterQueryEvent<Entity>): Promise<any> | void\n\n /**\n * Called before entity is inserted to the database.\n */\n beforeInsert?(event: InsertEvent<Entity>): Promise<any> | void\n\n /**\n * Called after entity is inserted to the database.\n */\n afterInsert?(event: InsertEvent<Entity>): Promise<any> | void\n\n /**\n * Called before entity is updated in the database.\n */\n beforeUpdate?(event: UpdateEvent<Entity>): Promise<any> | void\n\n /**\n * Called after entity is updated in the database.\n */\n afterUpdate?(event: UpdateEvent<Entity>): Promise<any> | void\n\n /**\n * Called before entity is removed from the database.\n */\n beforeRemove?(event: RemoveEvent<Entity>): Promise<any> | void\n\n /**\n * Called before entity is soft removed from the database.\n */\n beforeSoftRemove?(event: SoftRemoveEvent<Entity>): Promise<any> | void\n\n /**\n * Called before entity is recovered in the database.\n */\n beforeRecover?(event: RecoverEvent<Entity>): Promise<any> | void\n\n /**\n * Called after entity is removed from the database.\n */\n afterRemove?(event: RemoveEvent<Entity>): Promise<any> | void\n\n /**\n * Called after entity is soft removed from the database.\n */\n afterSoftRemove?(event: SoftRemoveEvent<Entity>): Promise<any> | void\n\n /**\n * Called after entity is recovered in the database.\n */\n afterRecover?(event: RecoverEvent<Entity>): Promise<any> | void\n\n /**\n * Called before transaction is started.\n */\n beforeTransactionStart?(event: TransactionStartEvent): Promise<any> | void\n\n /**\n * Called after transaction is started.\n */\n afterTransactionStart?(event: TransactionStartEvent): Promise<any> | void\n\n /**\n * Called before transaction is committed.\n */\n beforeTransactionCommit?(event: TransactionCommitEvent): Promise<any> | void\n\n /**\n * Called after transaction is committed.\n */\n afterTransactionCommit?(event: TransactionCommitEvent): Promise<any> | void\n\n /**\n * Called before transaction rollback.\n */\n beforeTransactionRollback?(\n event: TransactionRollbackEvent,\n ): Promise<any> | void\n\n /**\n * Called after transaction rollback.\n */\n afterTransactionRollback?(\n event: TransactionRollbackEvent,\n ): Promise<any> | void\n}\n"],"sourceRoot":".."}
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/subscriber/event/InsertEvent.ts"],"names":[],"mappings":"","file":"InsertEvent.js","sourcesContent":["import { EntityManager } from \"../../entity-manager/EntityManager\"\r\nimport { DataSource } from \"../../data-source/DataSource\"\r\nimport { QueryRunner } from \"../../query-runner/QueryRunner\"\r\nimport { EntityMetadata } from \"../../metadata/EntityMetadata\"\r\nimport { ObjectLiteral } from \"../../common/ObjectLiteral\"\r\n\r\n/**\r\n * InsertEvent is an object that broadcaster sends to the entity subscriber when entity is inserted to the database.\r\n */\r\nexport interface InsertEvent<Entity> {\r\n /**\r\n * Connection used in the event.\r\n */\r\n connection: DataSource\r\n\r\n /**\r\n * QueryRunner used in the event transaction.\r\n * All database operations in the subscribed event listener should be performed using this query runner instance.\r\n */\r\n queryRunner: QueryRunner\r\n\r\n /**\r\n * EntityManager used in the event transaction.\r\n * All database operations in the subscribed event listener should be performed using this entity manager instance.\r\n */\r\n manager: EntityManager\r\n\r\n /**\r\n * Inserting event.\r\n */\r\n entity: Entity\r\n\r\n /**\r\n * Id or ids of the entity being inserted.\r\n */\r\n entityId?: ObjectLiteral\r\n\r\n /**\r\n * Metadata of the entity.\r\n */\r\n metadata: EntityMetadata\r\n}\r\n"],"sourceRoot":"../.."}
1
+ {"version":3,"sources":["../browser/src/subscriber/event/InsertEvent.ts"],"names":[],"mappings":"","file":"InsertEvent.js","sourcesContent":["import { EntityManager } from \"../../entity-manager/EntityManager\"\nimport { DataSource } from \"../../data-source/DataSource\"\nimport { QueryRunner } from \"../../query-runner/QueryRunner\"\nimport { EntityMetadata } from \"../../metadata/EntityMetadata\"\nimport { ObjectLiteral } from \"../../common/ObjectLiteral\"\n\n/**\n * InsertEvent is an object that broadcaster sends to the entity subscriber when entity is inserted to the database.\n */\nexport interface InsertEvent<Entity> {\n /**\n * Connection used in the event.\n */\n connection: DataSource\n\n /**\n * QueryRunner used in the event transaction.\n * All database operations in the subscribed event listener should be performed using this query runner instance.\n */\n queryRunner: QueryRunner\n\n /**\n * EntityManager used in the event transaction.\n * All database operations in the subscribed event listener should be performed using this entity manager instance.\n */\n manager: EntityManager\n\n /**\n * Inserting event.\n */\n entity: Entity\n\n /**\n * Id or ids of the entity being inserted.\n */\n entityId?: ObjectLiteral\n\n /**\n * Metadata of the entity.\n */\n metadata: EntityMetadata\n}\n"],"sourceRoot":"../.."}
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/subscriber/event/LoadEvent.ts"],"names":[],"mappings":"","file":"LoadEvent.js","sourcesContent":["import { EntityManager } from \"../../entity-manager/EntityManager\"\r\nimport { DataSource } from \"../../data-source/DataSource\"\r\nimport { QueryRunner } from \"../../query-runner/QueryRunner\"\r\nimport { EntityMetadata } from \"../../metadata/EntityMetadata\"\r\n\r\n/**\r\n * LoadEvent is an object that broadcaster sends to the entity subscriber when an entity is loaded from the database.\r\n */\r\nexport interface LoadEvent<Entity> {\r\n /**\r\n * Connection used in the event.\r\n */\r\n connection: DataSource\r\n\r\n /**\r\n * QueryRunner used in the event transaction.\r\n * All database operations in the subscribed event listener should be performed using this query runner instance.\r\n */\r\n queryRunner: QueryRunner\r\n\r\n /**\r\n * EntityManager used in the event transaction.\r\n * All database operations in the subscribed event listener should be performed using this entity manager instance.\r\n */\r\n manager: EntityManager\r\n\r\n /**\r\n * Loaded entity.\r\n */\r\n entity: Entity\r\n\r\n /**\r\n * Metadata of the entity.\r\n */\r\n metadata: EntityMetadata\r\n}\r\n"],"sourceRoot":"../.."}
1
+ {"version":3,"sources":["../browser/src/subscriber/event/LoadEvent.ts"],"names":[],"mappings":"","file":"LoadEvent.js","sourcesContent":["import { EntityManager } from \"../../entity-manager/EntityManager\"\nimport { DataSource } from \"../../data-source/DataSource\"\nimport { QueryRunner } from \"../../query-runner/QueryRunner\"\nimport { EntityMetadata } from \"../../metadata/EntityMetadata\"\n\n/**\n * LoadEvent is an object that broadcaster sends to the entity subscriber when an entity is loaded from the database.\n */\nexport interface LoadEvent<Entity> {\n /**\n * Connection used in the event.\n */\n connection: DataSource\n\n /**\n * QueryRunner used in the event transaction.\n * All database operations in the subscribed event listener should be performed using this query runner instance.\n */\n queryRunner: QueryRunner\n\n /**\n * EntityManager used in the event transaction.\n * All database operations in the subscribed event listener should be performed using this entity manager instance.\n */\n manager: EntityManager\n\n /**\n * Loaded entity.\n */\n entity: Entity\n\n /**\n * Metadata of the entity.\n */\n metadata: EntityMetadata\n}\n"],"sourceRoot":"../.."}
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/subscriber/event/QueryEvent.ts"],"names":[],"mappings":"","file":"QueryEvent.js","sourcesContent":["import { EntityManager } from \"../../entity-manager/EntityManager\"\r\nimport { DataSource } from \"../../data-source/DataSource\"\r\nimport { QueryRunner } from \"../../query-runner/QueryRunner\"\r\n\r\n/**\r\n * BeforeQueryEvent is an object that broadcaster sends to the entity subscriber before query is ran against the database.\r\n */\r\nexport interface QueryEvent<Entity> {\r\n /**\r\n * Connection used in the event.\r\n */\r\n connection: DataSource\r\n\r\n /**\r\n * QueryRunner used in the event transaction.\r\n * All database operations in the subscribed event listener should be performed using this query runner instance.\r\n */\r\n queryRunner: QueryRunner\r\n\r\n /**\r\n * EntityManager used in the event transaction.\r\n * All database operations in the subscribed event listener should be performed using this entity manager instance.\r\n */\r\n manager: EntityManager\r\n\r\n /**\r\n * Query that is being executed.\r\n */\r\n query: string\r\n\r\n /**\r\n * Parameters used in the query.\r\n */\r\n parameters?: any[]\r\n}\r\n\r\nexport interface BeforeQueryEvent<Entity> extends QueryEvent<Entity> {}\r\n\r\nexport interface AfterQueryEvent<Entity> extends QueryEvent<Entity> {\r\n /**\r\n * Whether the query was successful.\r\n */\r\n success: boolean\r\n\r\n /**\r\n * The duration of the query execution.\r\n */\r\n executionTime?: number\r\n\r\n /**\r\n * The raw results from the database if the query was successful.\r\n */\r\n rawResults?: any\r\n\r\n /**\r\n * The error thrown if the query was unsuccessful.\r\n */\r\n error?: any\r\n}\r\n"],"sourceRoot":"../.."}
1
+ {"version":3,"sources":["../browser/src/subscriber/event/QueryEvent.ts"],"names":[],"mappings":"","file":"QueryEvent.js","sourcesContent":["import { EntityManager } from \"../../entity-manager/EntityManager\"\nimport { DataSource } from \"../../data-source/DataSource\"\nimport { QueryRunner } from \"../../query-runner/QueryRunner\"\n\n/**\n * BeforeQueryEvent is an object that broadcaster sends to the entity subscriber before query is ran against the database.\n */\nexport interface QueryEvent<Entity> {\n /**\n * Connection used in the event.\n */\n connection: DataSource\n\n /**\n * QueryRunner used in the event transaction.\n * All database operations in the subscribed event listener should be performed using this query runner instance.\n */\n queryRunner: QueryRunner\n\n /**\n * EntityManager used in the event transaction.\n * All database operations in the subscribed event listener should be performed using this entity manager instance.\n */\n manager: EntityManager\n\n /**\n * Query that is being executed.\n */\n query: string\n\n /**\n * Parameters used in the query.\n */\n parameters?: any[]\n}\n\nexport interface BeforeQueryEvent<Entity> extends QueryEvent<Entity> {}\n\nexport interface AfterQueryEvent<Entity> extends QueryEvent<Entity> {\n /**\n * Whether the query was successful.\n */\n success: boolean\n\n /**\n * The duration of the query execution.\n */\n executionTime?: number\n\n /**\n * The raw results from the database if the query was successful.\n */\n rawResults?: any\n\n /**\n * The error thrown if the query was unsuccessful.\n */\n error?: any\n}\n"],"sourceRoot":"../.."}
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/subscriber/event/RecoverEvent.ts"],"names":[],"mappings":"","file":"RecoverEvent.js","sourcesContent":["import { RemoveEvent } from \"./RemoveEvent\"\r\n\r\n/**\r\n * RecoverEvent is an object that broadcaster sends to the entity subscriber when entity is being recovered in the database.\r\n */\r\nexport interface RecoverEvent<Entity> extends RemoveEvent<Entity> {}\r\n"],"sourceRoot":"../.."}
1
+ {"version":3,"sources":["../browser/src/subscriber/event/RecoverEvent.ts"],"names":[],"mappings":"","file":"RecoverEvent.js","sourcesContent":["import { RemoveEvent } from \"./RemoveEvent\"\n\n/**\n * RecoverEvent is an object that broadcaster sends to the entity subscriber when entity is being recovered in the database.\n */\nexport interface RecoverEvent<Entity> extends RemoveEvent<Entity> {}\n"],"sourceRoot":"../.."}
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/subscriber/event/RemoveEvent.ts"],"names":[],"mappings":"","file":"RemoveEvent.js","sourcesContent":["import { EntityManager } from \"../../entity-manager/EntityManager\"\r\nimport { DataSource } from \"../../data-source/DataSource\"\r\nimport { QueryRunner } from \"../../query-runner/QueryRunner\"\r\nimport { EntityMetadata } from \"../../metadata/EntityMetadata\"\r\n\r\n/**\r\n * RemoveEvent is an object that broadcaster sends to the entity subscriber when entity is being removed to the database.\r\n */\r\nexport interface RemoveEvent<Entity> {\r\n /**\r\n * Connection used in the event.\r\n */\r\n connection: DataSource\r\n\r\n /**\r\n * QueryRunner used in the event transaction.\r\n * All database operations in the subscribed event listener should be performed using this query runner instance.\r\n */\r\n queryRunner: QueryRunner\r\n\r\n /**\r\n * EntityManager used in the event transaction.\r\n * All database operations in the subscribed event listener should be performed using this entity manager instance.\r\n */\r\n manager: EntityManager\r\n\r\n /**\r\n * Entity that is being removed.\r\n * This may absent if entity is removed without being loaded (for examples by cascades).\r\n */\r\n entity?: Entity\r\n\r\n /**\r\n * Metadata of the entity.\r\n */\r\n metadata: EntityMetadata\r\n\r\n /**\r\n * Database representation of entity that is being removed.\r\n */\r\n databaseEntity: Entity\r\n\r\n /**\r\n * Id or ids of the entity that is being removed.\r\n */\r\n entityId?: any\r\n}\r\n"],"sourceRoot":"../.."}
1
+ {"version":3,"sources":["../browser/src/subscriber/event/RemoveEvent.ts"],"names":[],"mappings":"","file":"RemoveEvent.js","sourcesContent":["import { EntityManager } from \"../../entity-manager/EntityManager\"\nimport { DataSource } from \"../../data-source/DataSource\"\nimport { QueryRunner } from \"../../query-runner/QueryRunner\"\nimport { EntityMetadata } from \"../../metadata/EntityMetadata\"\n\n/**\n * RemoveEvent is an object that broadcaster sends to the entity subscriber when entity is being removed to the database.\n */\nexport interface RemoveEvent<Entity> {\n /**\n * Connection used in the event.\n */\n connection: DataSource\n\n /**\n * QueryRunner used in the event transaction.\n * All database operations in the subscribed event listener should be performed using this query runner instance.\n */\n queryRunner: QueryRunner\n\n /**\n * EntityManager used in the event transaction.\n * All database operations in the subscribed event listener should be performed using this entity manager instance.\n */\n manager: EntityManager\n\n /**\n * Entity that is being removed.\n * This may absent if entity is removed without being loaded (for examples by cascades).\n */\n entity?: Entity\n\n /**\n * Metadata of the entity.\n */\n metadata: EntityMetadata\n\n /**\n * Database representation of entity that is being removed.\n */\n databaseEntity: Entity\n\n /**\n * Id or ids of the entity that is being removed.\n */\n entityId?: any\n}\n"],"sourceRoot":"../.."}
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/subscriber/event/SoftRemoveEvent.ts"],"names":[],"mappings":"","file":"SoftRemoveEvent.js","sourcesContent":["import { RemoveEvent } from \"./RemoveEvent\"\r\n\r\n/**\r\n * SoftRemoveEvent is an object that broadcaster sends to the entity subscriber when entity is being soft removed to the database.\r\n */\r\nexport interface SoftRemoveEvent<Entity> extends RemoveEvent<Entity> {}\r\n"],"sourceRoot":"../.."}
1
+ {"version":3,"sources":["../browser/src/subscriber/event/SoftRemoveEvent.ts"],"names":[],"mappings":"","file":"SoftRemoveEvent.js","sourcesContent":["import { RemoveEvent } from \"./RemoveEvent\"\n\n/**\n * SoftRemoveEvent is an object that broadcaster sends to the entity subscriber when entity is being soft removed to the database.\n */\nexport interface SoftRemoveEvent<Entity> extends RemoveEvent<Entity> {}\n"],"sourceRoot":"../.."}
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/subscriber/event/TransactionCommitEvent.ts"],"names":[],"mappings":"","file":"TransactionCommitEvent.js","sourcesContent":["import { EntityManager } from \"../../entity-manager/EntityManager\"\r\nimport { DataSource } from \"../../data-source/DataSource\"\r\nimport { QueryRunner } from \"../../query-runner/QueryRunner\"\r\n\r\n/**\r\n * TransactionCommitEvent is an object that broadcaster sends to the entity subscriber when an transaction is committed.\r\n */\r\nexport interface TransactionCommitEvent {\r\n /**\r\n * Connection used in the event.\r\n */\r\n connection: DataSource\r\n\r\n /**\r\n * QueryRunner used in the event transaction.\r\n * All database operations in the subscribed event listener should be performed using this query runner instance.\r\n */\r\n queryRunner: QueryRunner\r\n\r\n /**\r\n * EntityManager used in the event transaction.\r\n * All database operations in the subscribed event listener should be performed using this entity manager instance.\r\n */\r\n manager: EntityManager\r\n}\r\n"],"sourceRoot":"../.."}
1
+ {"version":3,"sources":["../browser/src/subscriber/event/TransactionCommitEvent.ts"],"names":[],"mappings":"","file":"TransactionCommitEvent.js","sourcesContent":["import { EntityManager } from \"../../entity-manager/EntityManager\"\nimport { DataSource } from \"../../data-source/DataSource\"\nimport { QueryRunner } from \"../../query-runner/QueryRunner\"\n\n/**\n * TransactionCommitEvent is an object that broadcaster sends to the entity subscriber when an transaction is committed.\n */\nexport interface TransactionCommitEvent {\n /**\n * Connection used in the event.\n */\n connection: DataSource\n\n /**\n * QueryRunner used in the event transaction.\n * All database operations in the subscribed event listener should be performed using this query runner instance.\n */\n queryRunner: QueryRunner\n\n /**\n * EntityManager used in the event transaction.\n * All database operations in the subscribed event listener should be performed using this entity manager instance.\n */\n manager: EntityManager\n}\n"],"sourceRoot":"../.."}
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/subscriber/event/TransactionRollbackEvent.ts"],"names":[],"mappings":"","file":"TransactionRollbackEvent.js","sourcesContent":["import { EntityManager } from \"../../entity-manager/EntityManager\"\r\nimport { DataSource } from \"../../data-source/DataSource\"\r\nimport { QueryRunner } from \"../../query-runner/QueryRunner\"\r\n\r\n/**\r\n * TransactionRollbackEvent is an object that broadcaster sends to the entity subscriber on transaction rollback.\r\n */\r\nexport interface TransactionRollbackEvent {\r\n /**\r\n * Connection used in the event.\r\n */\r\n connection: DataSource\r\n\r\n /**\r\n * QueryRunner used in the event transaction.\r\n * All database operations in the subscribed event listener should be performed using this query runner instance.\r\n */\r\n queryRunner: QueryRunner\r\n\r\n /**\r\n * EntityManager used in the event transaction.\r\n * All database operations in the subscribed event listener should be performed using this entity manager instance.\r\n */\r\n manager: EntityManager\r\n}\r\n"],"sourceRoot":"../.."}
1
+ {"version":3,"sources":["../browser/src/subscriber/event/TransactionRollbackEvent.ts"],"names":[],"mappings":"","file":"TransactionRollbackEvent.js","sourcesContent":["import { EntityManager } from \"../../entity-manager/EntityManager\"\nimport { DataSource } from \"../../data-source/DataSource\"\nimport { QueryRunner } from \"../../query-runner/QueryRunner\"\n\n/**\n * TransactionRollbackEvent is an object that broadcaster sends to the entity subscriber on transaction rollback.\n */\nexport interface TransactionRollbackEvent {\n /**\n * Connection used in the event.\n */\n connection: DataSource\n\n /**\n * QueryRunner used in the event transaction.\n * All database operations in the subscribed event listener should be performed using this query runner instance.\n */\n queryRunner: QueryRunner\n\n /**\n * EntityManager used in the event transaction.\n * All database operations in the subscribed event listener should be performed using this entity manager instance.\n */\n manager: EntityManager\n}\n"],"sourceRoot":"../.."}
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/subscriber/event/TransactionStartEvent.ts"],"names":[],"mappings":"","file":"TransactionStartEvent.js","sourcesContent":["import { EntityManager } from \"../../entity-manager/EntityManager\"\r\nimport { DataSource } from \"../../data-source/DataSource\"\r\nimport { QueryRunner } from \"../../query-runner/QueryRunner\"\r\n\r\n/**\r\n * TransactionStartEvent is an object that broadcaster sends to the entity subscriber before transaction is started.\r\n */\r\nexport interface TransactionStartEvent {\r\n /**\r\n * Connection used in the event.\r\n */\r\n connection: DataSource\r\n\r\n /**\r\n * QueryRunner used in the event transaction.\r\n * All database operations in the subscribed event listener should be performed using this query runner instance.\r\n */\r\n queryRunner: QueryRunner\r\n\r\n /**\r\n * EntityManager used in the event transaction.\r\n * All database operations in the subscribed event listener should be performed using this entity manager instance.\r\n */\r\n manager: EntityManager\r\n}\r\n"],"sourceRoot":"../.."}
1
+ {"version":3,"sources":["../browser/src/subscriber/event/TransactionStartEvent.ts"],"names":[],"mappings":"","file":"TransactionStartEvent.js","sourcesContent":["import { EntityManager } from \"../../entity-manager/EntityManager\"\nimport { DataSource } from \"../../data-source/DataSource\"\nimport { QueryRunner } from \"../../query-runner/QueryRunner\"\n\n/**\n * TransactionStartEvent is an object that broadcaster sends to the entity subscriber before transaction is started.\n */\nexport interface TransactionStartEvent {\n /**\n * Connection used in the event.\n */\n connection: DataSource\n\n /**\n * QueryRunner used in the event transaction.\n * All database operations in the subscribed event listener should be performed using this query runner instance.\n */\n queryRunner: QueryRunner\n\n /**\n * EntityManager used in the event transaction.\n * All database operations in the subscribed event listener should be performed using this entity manager instance.\n */\n manager: EntityManager\n}\n"],"sourceRoot":"../.."}
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/subscriber/event/UpdateEvent.ts"],"names":[],"mappings":"","file":"UpdateEvent.js","sourcesContent":["import { ColumnMetadata } from \"../../metadata/ColumnMetadata\"\r\nimport { RelationMetadata } from \"../../metadata/RelationMetadata\"\r\nimport { EntityManager } from \"../../entity-manager/EntityManager\"\r\nimport { QueryRunner } from \"../../query-runner/QueryRunner\"\r\nimport { DataSource } from \"../../data-source/DataSource\"\r\nimport { EntityMetadata } from \"../../metadata/EntityMetadata\"\r\nimport { ObjectLiteral } from \"../../common/ObjectLiteral\"\r\n\r\n/**\r\n * UpdateEvent is an object that broadcaster sends to the entity subscriber when entity is being updated in the database.\r\n */\r\nexport interface UpdateEvent<Entity> {\r\n /**\r\n * Connection used in the event.\r\n */\r\n connection: DataSource\r\n\r\n /**\r\n * QueryRunner used in the event transaction.\r\n * All database operations in the subscribed event listener should be performed using this query runner instance.\r\n */\r\n queryRunner: QueryRunner\r\n\r\n /**\r\n * EntityManager used in the event transaction.\r\n * All database operations in the subscribed event listener should be performed using this entity manager instance.\r\n */\r\n manager: EntityManager\r\n\r\n /**\r\n * Updating entity.\r\n */\r\n entity: ObjectLiteral | undefined\r\n\r\n /**\r\n * Metadata of the entity.\r\n */\r\n metadata: EntityMetadata\r\n\r\n /**\r\n * Updating entity in the database.\r\n */\r\n databaseEntity: Entity\r\n\r\n /**\r\n * List of updated columns. In query builder has no affected\r\n */\r\n updatedColumns: ColumnMetadata[]\r\n\r\n /**\r\n * List of updated relations. In query builder has no affected\r\n */\r\n updatedRelations: RelationMetadata[]\r\n}\r\n"],"sourceRoot":"../.."}
1
+ {"version":3,"sources":["../browser/src/subscriber/event/UpdateEvent.ts"],"names":[],"mappings":"","file":"UpdateEvent.js","sourcesContent":["import { ColumnMetadata } from \"../../metadata/ColumnMetadata\"\nimport { RelationMetadata } from \"../../metadata/RelationMetadata\"\nimport { EntityManager } from \"../../entity-manager/EntityManager\"\nimport { QueryRunner } from \"../../query-runner/QueryRunner\"\nimport { DataSource } from \"../../data-source/DataSource\"\nimport { EntityMetadata } from \"../../metadata/EntityMetadata\"\nimport { ObjectLiteral } from \"../../common/ObjectLiteral\"\n\n/**\n * UpdateEvent is an object that broadcaster sends to the entity subscriber when entity is being updated in the database.\n */\nexport interface UpdateEvent<Entity> {\n /**\n * Connection used in the event.\n */\n connection: DataSource\n\n /**\n * QueryRunner used in the event transaction.\n * All database operations in the subscribed event listener should be performed using this query runner instance.\n */\n queryRunner: QueryRunner\n\n /**\n * EntityManager used in the event transaction.\n * All database operations in the subscribed event listener should be performed using this entity manager instance.\n */\n manager: EntityManager\n\n /**\n * Updating entity.\n */\n entity: ObjectLiteral | undefined\n\n /**\n * Metadata of the entity.\n */\n metadata: EntityMetadata\n\n /**\n * Updating entity in the database.\n */\n databaseEntity: Entity\n\n /**\n * List of updated columns. In query builder has no affected\n */\n updatedColumns: ColumnMetadata[]\n\n /**\n * List of updated relations. In query builder has no affected\n */\n updatedRelations: RelationMetadata[]\n}\n"],"sourceRoot":"../.."}
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/util/ApplyValueTransformers.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,sBAAsB;IAC/B,MAAM,CAAC,aAAa,CAChB,WAAkD,EAClD,aAAkB;QAElB,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YAC7B,MAAM,mBAAmB,GAAG,WAAW,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAA;YACzD,OAAO,mBAAmB,CAAC,MAAM,CAC7B,CAAC,gBAAgB,EAAE,YAAY,EAAE,EAAE;gBAC/B,OAAO,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;YAC9C,CAAC,EACD,aAAa,CAChB,CAAA;QACL,CAAC;QACD,OAAO,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IAC1C,CAAC;IACD,MAAM,CAAC,WAAW,CACd,WAAkD,EAClD,WAAgB;QAEhB,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YAC7B,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,gBAAgB,EAAE,YAAY,EAAE,EAAE;gBACzD,OAAO,YAAY,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAA;YAC5C,CAAC,EAAE,WAAW,CAAC,CAAA;QACnB,CAAC;QACD,OAAO,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,CAAA;IACtC,CAAC;CACJ","file":"ApplyValueTransformers.js","sourcesContent":["import { ValueTransformer } from \"../decorator/options/ValueTransformer\"\r\n\r\nexport class ApplyValueTransformers {\r\n static transformFrom(\r\n transformer: ValueTransformer | ValueTransformer[],\r\n databaseValue: any,\r\n ) {\r\n if (Array.isArray(transformer)) {\r\n const reverseTransformers = transformer.slice().reverse()\r\n return reverseTransformers.reduce(\r\n (transformedValue, _transformer) => {\r\n return _transformer.from(transformedValue)\r\n },\r\n databaseValue,\r\n )\r\n }\r\n return transformer.from(databaseValue)\r\n }\r\n static transformTo(\r\n transformer: ValueTransformer | ValueTransformer[],\r\n entityValue: any,\r\n ) {\r\n if (Array.isArray(transformer)) {\r\n return transformer.reduce((transformedValue, _transformer) => {\r\n return _transformer.to(transformedValue)\r\n }, entityValue)\r\n }\r\n return transformer.to(entityValue)\r\n }\r\n}\r\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../browser/src/util/ApplyValueTransformers.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,sBAAsB;IAC/B,MAAM,CAAC,aAAa,CAChB,WAAkD,EAClD,aAAkB;QAElB,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YAC7B,MAAM,mBAAmB,GAAG,WAAW,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAA;YACzD,OAAO,mBAAmB,CAAC,MAAM,CAC7B,CAAC,gBAAgB,EAAE,YAAY,EAAE,EAAE;gBAC/B,OAAO,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;YAC9C,CAAC,EACD,aAAa,CAChB,CAAA;QACL,CAAC;QACD,OAAO,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IAC1C,CAAC;IACD,MAAM,CAAC,WAAW,CACd,WAAkD,EAClD,WAAgB;QAEhB,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YAC7B,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,gBAAgB,EAAE,YAAY,EAAE,EAAE;gBACzD,OAAO,YAAY,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAA;YAC5C,CAAC,EAAE,WAAW,CAAC,CAAA;QACnB,CAAC;QACD,OAAO,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,CAAA;IACtC,CAAC;CACJ","file":"ApplyValueTransformers.js","sourcesContent":["import { ValueTransformer } from \"../decorator/options/ValueTransformer\"\n\nexport class ApplyValueTransformers {\n static transformFrom(\n transformer: ValueTransformer | ValueTransformer[],\n databaseValue: any,\n ) {\n if (Array.isArray(transformer)) {\n const reverseTransformers = transformer.slice().reverse()\n return reverseTransformers.reduce(\n (transformedValue, _transformer) => {\n return _transformer.from(transformedValue)\n },\n databaseValue,\n )\n }\n return transformer.from(databaseValue)\n }\n static transformTo(\n transformer: ValueTransformer | ValueTransformer[],\n entityValue: any,\n ) {\n if (Array.isArray(transformer)) {\n return transformer.reduce((transformedValue, _transformer) => {\n return _transformer.to(transformedValue)\n }, entityValue)\n }\n return transformer.to(entityValue)\n }\n}\n"],"sourceRoot":".."}
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/util/DateUtils.ts"],"names":[],"mappings":"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","file":"DateUtils.js","sourcesContent":["import { ColumnMetadata } from \"../metadata/ColumnMetadata\"\r\nimport dayjs from \"dayjs\"\r\n\r\n/**\r\n * Provides utilities to transform hydrated and persisted data.\r\n */\r\nexport class DateUtils {\r\n // -------------------------------------------------------------------------\r\n // Public Static Methods\r\n // -------------------------------------------------------------------------\r\n\r\n /**\r\n * Normalizes date object hydrated from the database.\r\n */\r\n static normalizeHydratedDate(\r\n mixedDate: Date | string | undefined,\r\n ): Date | string | undefined {\r\n if (!mixedDate) return mixedDate\r\n\r\n return typeof mixedDate === \"string\"\r\n ? new Date(mixedDate)\r\n : (mixedDate as Date)\r\n }\r\n\r\n /**\r\n * Converts given value into date string in a \"YYYY-MM-DD\" format.\r\n */\r\n static mixedDateToDateString(value: string | Date): string {\r\n if (value instanceof Date) {\r\n return (\r\n this.formatZerolessValue(value.getFullYear(), 4) +\r\n \"-\" +\r\n this.formatZerolessValue(value.getMonth() + 1) +\r\n \"-\" +\r\n this.formatZerolessValue(value.getDate())\r\n )\r\n }\r\n\r\n return value\r\n }\r\n\r\n /**\r\n * Converts given value into date object.\r\n */\r\n static mixedDateToDate(\r\n mixedDate: Date | string,\r\n toUtc: boolean = false,\r\n useMilliseconds = true,\r\n ): Date {\r\n /**\r\n * new Date(ISOString) is not a reliable parser to date strings.\r\n * It's better to use 'date-fns' parser to parser string in ISO Format.\r\n *\r\n * The problem here is with wrong timezone.\r\n *\r\n * For example:\r\n *\r\n * ``new Date('2021-04-28')`` will generate `2021-04-28T00:00:00.000Z`\r\n * in my timezone, which is not true for my timezone (GMT-0300). It should\r\n * be `2021-04-28T03:00:00.000Z` as `new Date(2021, 3, 28)` generates.\r\n *\r\n * https://stackoverflow.com/a/2587398\r\n */\r\n let date =\r\n typeof mixedDate === \"string\"\r\n ? dayjs(mixedDate).toDate()\r\n : mixedDate\r\n\r\n if (toUtc)\r\n date = new Date(\r\n date.getUTCFullYear(),\r\n date.getUTCMonth(),\r\n date.getUTCDate(),\r\n date.getUTCHours(),\r\n date.getUTCMinutes(),\r\n date.getUTCSeconds(),\r\n date.getUTCMilliseconds(),\r\n )\r\n\r\n if (!useMilliseconds) date.setUTCMilliseconds(0)\r\n\r\n return date\r\n }\r\n\r\n /**\r\n * Converts given value into time string in a \"HH:mm:ss\" format.\r\n */\r\n static mixedDateToTimeString(\r\n value: Date | any,\r\n skipSeconds: boolean = false,\r\n ): string | any {\r\n if (value instanceof Date)\r\n return (\r\n this.formatZerolessValue(value.getHours()) +\r\n \":\" +\r\n this.formatZerolessValue(value.getMinutes()) +\r\n (!skipSeconds\r\n ? \":\" + this.formatZerolessValue(value.getSeconds())\r\n : \"\")\r\n )\r\n\r\n return value\r\n }\r\n\r\n /**\r\n * Converts given value into time string in a \"HH:mm:ss\" format.\r\n */\r\n static mixedTimeToDate(value: Date | any): string | any {\r\n if (typeof value === \"string\") {\r\n const [hours, minutes, seconds] = value.split(\":\")\r\n const date = new Date()\r\n if (hours) date.setHours(parseInt(hours))\r\n if (minutes) date.setMinutes(parseInt(minutes))\r\n if (seconds) date.setSeconds(parseInt(seconds))\r\n return date\r\n }\r\n\r\n return value\r\n }\r\n\r\n /**\r\n * Converts given string value with \"-\" separator into a \"HH:mm:ss\" format.\r\n */\r\n static mixedTimeToString(\r\n value: string | any,\r\n skipSeconds: boolean = false,\r\n ): string | any {\r\n value =\r\n value instanceof Date\r\n ? value.getHours() +\r\n \":\" +\r\n value.getMinutes() +\r\n (!skipSeconds ? \":\" + value.getSeconds() : \"\")\r\n : value\r\n if (typeof value === \"string\") {\r\n return value\r\n .split(\":\")\r\n .map((v) => (v.length === 1 ? \"0\" + v : v)) // append zero at beginning if we have a first-zero-less number\r\n .join(\":\")\r\n }\r\n\r\n return value\r\n }\r\n\r\n /**\r\n * Converts given value into datetime string in a \"YYYY-MM-DD HH-mm-ss\" format.\r\n */\r\n static mixedDateToDatetimeString(\r\n value: Date | any,\r\n useMilliseconds?: boolean,\r\n ): string | any {\r\n if (typeof value === \"string\") {\r\n value = new Date(value)\r\n }\r\n if (value instanceof Date) {\r\n let finalValue =\r\n this.formatZerolessValue(value.getFullYear(), 4) +\r\n \"-\" +\r\n this.formatZerolessValue(value.getMonth() + 1) +\r\n \"-\" +\r\n this.formatZerolessValue(value.getDate()) +\r\n \" \" +\r\n this.formatZerolessValue(value.getHours()) +\r\n \":\" +\r\n this.formatZerolessValue(value.getMinutes()) +\r\n \":\" +\r\n this.formatZerolessValue(value.getSeconds())\r\n\r\n if (useMilliseconds)\r\n finalValue += `.${this.formatMilliseconds(\r\n value.getMilliseconds(),\r\n )}`\r\n\r\n value = finalValue\r\n }\r\n\r\n return value\r\n }\r\n\r\n /**\r\n * Converts given value into utc datetime string in a \"YYYY-MM-DD HH-mm-ss.sss\" format.\r\n */\r\n static mixedDateToUtcDatetimeString(value: Date | any): string | any {\r\n if (typeof value === \"string\") {\r\n value = new Date(value)\r\n }\r\n if (value instanceof Date) {\r\n return (\r\n this.formatZerolessValue(value.getUTCFullYear(), 4) +\r\n \"-\" +\r\n this.formatZerolessValue(value.getUTCMonth() + 1) +\r\n \"-\" +\r\n this.formatZerolessValue(value.getUTCDate()) +\r\n \" \" +\r\n this.formatZerolessValue(value.getUTCHours()) +\r\n \":\" +\r\n this.formatZerolessValue(value.getUTCMinutes()) +\r\n \":\" +\r\n this.formatZerolessValue(value.getUTCSeconds()) +\r\n \".\" +\r\n this.formatMilliseconds(value.getUTCMilliseconds())\r\n )\r\n }\r\n\r\n return value\r\n }\r\n\r\n /**\r\n * Converts each item in the given array to string joined by \",\" separator.\r\n */\r\n static simpleArrayToString(value: any[] | any): string[] | any {\r\n if (Array.isArray(value)) {\r\n return (value as any[]).map((i) => String(i)).join(\",\")\r\n }\r\n\r\n return value\r\n }\r\n\r\n /**\r\n * Converts given string to simple array split by \",\" separator.\r\n */\r\n static stringToSimpleArray(value: string | any): string | any {\r\n if (typeof value === \"string\") {\r\n if (value.length > 0) {\r\n return value.split(\",\")\r\n } else {\r\n return []\r\n }\r\n }\r\n\r\n return value\r\n }\r\n\r\n static simpleJsonToString(value: any): string {\r\n return JSON.stringify(value)\r\n }\r\n\r\n static stringToSimpleJson(value: any) {\r\n return typeof value === \"string\" ? JSON.parse(value) : value\r\n }\r\n\r\n static simpleEnumToString(value: any) {\r\n return \"\" + value\r\n }\r\n\r\n static stringToSimpleEnum(value: any, columnMetadata: ColumnMetadata) {\r\n if (\r\n columnMetadata.enum &&\r\n !isNaN(value) &&\r\n columnMetadata.enum.indexOf(parseInt(value)) >= 0\r\n ) {\r\n // convert to number if that exists in poosible enum options\r\n value = parseInt(value)\r\n }\r\n\r\n return value\r\n }\r\n\r\n // -------------------------------------------------------------------------\r\n // Private Static Methods\r\n // -------------------------------------------------------------------------\r\n\r\n /**\r\n * Formats given number to \"0x\" format, e.g. if the totalLength = 2 and the value is 1 then it will return \"01\".\r\n */\r\n private static formatZerolessValue(value: number, totalLength = 2): string {\r\n const pad = \"0\".repeat(totalLength)\r\n\r\n return String(`${pad}${value}`).slice(-totalLength)\r\n }\r\n\r\n /**\r\n * Formats given number to \"0x\" format, e.g. if it is 1 then it will return \"01\".\r\n */\r\n private static formatMilliseconds(value: number): string {\r\n if (value < 10) {\r\n return \"00\" + value\r\n } else if (value < 100) {\r\n return \"0\" + value\r\n } else {\r\n return String(value)\r\n }\r\n }\r\n}\r\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../browser/src/util/DateUtils.ts"],"names":[],"mappings":"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","file":"DateUtils.js","sourcesContent":["import { ColumnMetadata } from \"../metadata/ColumnMetadata\"\nimport dayjs from \"dayjs\"\n\n/**\n * Provides utilities to transform hydrated and persisted data.\n */\nexport class DateUtils {\n // -------------------------------------------------------------------------\n // Public Static Methods\n // -------------------------------------------------------------------------\n\n /**\n * Normalizes date object hydrated from the database.\n */\n static normalizeHydratedDate(\n mixedDate: Date | string | undefined,\n ): Date | string | undefined {\n if (!mixedDate) return mixedDate\n\n return typeof mixedDate === \"string\"\n ? new Date(mixedDate)\n : (mixedDate as Date)\n }\n\n /**\n * Converts given value into date string in a \"YYYY-MM-DD\" format.\n */\n static mixedDateToDateString(value: string | Date): string {\n if (value instanceof Date) {\n return (\n this.formatZerolessValue(value.getFullYear(), 4) +\n \"-\" +\n this.formatZerolessValue(value.getMonth() + 1) +\n \"-\" +\n this.formatZerolessValue(value.getDate())\n )\n }\n\n return value\n }\n\n /**\n * Converts given value into date object.\n */\n static mixedDateToDate(\n mixedDate: Date | string,\n toUtc: boolean = false,\n useMilliseconds = true,\n ): Date {\n /**\n * new Date(ISOString) is not a reliable parser to date strings.\n * It's better to use 'date-fns' parser to parser string in ISO Format.\n *\n * The problem here is with wrong timezone.\n *\n * For example:\n *\n * ``new Date('2021-04-28')`` will generate `2021-04-28T00:00:00.000Z`\n * in my timezone, which is not true for my timezone (GMT-0300). It should\n * be `2021-04-28T03:00:00.000Z` as `new Date(2021, 3, 28)` generates.\n *\n * https://stackoverflow.com/a/2587398\n */\n let date =\n typeof mixedDate === \"string\"\n ? dayjs(mixedDate).toDate()\n : mixedDate\n\n if (toUtc)\n date = new Date(\n date.getUTCFullYear(),\n date.getUTCMonth(),\n date.getUTCDate(),\n date.getUTCHours(),\n date.getUTCMinutes(),\n date.getUTCSeconds(),\n date.getUTCMilliseconds(),\n )\n\n if (!useMilliseconds) date.setUTCMilliseconds(0)\n\n return date\n }\n\n /**\n * Converts given value into time string in a \"HH:mm:ss\" format.\n */\n static mixedDateToTimeString(\n value: Date | any,\n skipSeconds: boolean = false,\n ): string | any {\n if (value instanceof Date)\n return (\n this.formatZerolessValue(value.getHours()) +\n \":\" +\n this.formatZerolessValue(value.getMinutes()) +\n (!skipSeconds\n ? \":\" + this.formatZerolessValue(value.getSeconds())\n : \"\")\n )\n\n return value\n }\n\n /**\n * Converts given value into time string in a \"HH:mm:ss\" format.\n */\n static mixedTimeToDate(value: Date | any): string | any {\n if (typeof value === \"string\") {\n const [hours, minutes, seconds] = value.split(\":\")\n const date = new Date()\n if (hours) date.setHours(parseInt(hours))\n if (minutes) date.setMinutes(parseInt(minutes))\n if (seconds) date.setSeconds(parseInt(seconds))\n return date\n }\n\n return value\n }\n\n /**\n * Converts given string value with \"-\" separator into a \"HH:mm:ss\" format.\n */\n static mixedTimeToString(\n value: string | any,\n skipSeconds: boolean = false,\n ): string | any {\n value =\n value instanceof Date\n ? value.getHours() +\n \":\" +\n value.getMinutes() +\n (!skipSeconds ? \":\" + value.getSeconds() : \"\")\n : value\n if (typeof value === \"string\") {\n return value\n .split(\":\")\n .map((v) => (v.length === 1 ? \"0\" + v : v)) // append zero at beginning if we have a first-zero-less number\n .join(\":\")\n }\n\n return value\n }\n\n /**\n * Converts given value into datetime string in a \"YYYY-MM-DD HH-mm-ss\" format.\n */\n static mixedDateToDatetimeString(\n value: Date | any,\n useMilliseconds?: boolean,\n ): string | any {\n if (typeof value === \"string\") {\n value = new Date(value)\n }\n if (value instanceof Date) {\n let finalValue =\n this.formatZerolessValue(value.getFullYear(), 4) +\n \"-\" +\n this.formatZerolessValue(value.getMonth() + 1) +\n \"-\" +\n this.formatZerolessValue(value.getDate()) +\n \" \" +\n this.formatZerolessValue(value.getHours()) +\n \":\" +\n this.formatZerolessValue(value.getMinutes()) +\n \":\" +\n this.formatZerolessValue(value.getSeconds())\n\n if (useMilliseconds)\n finalValue += `.${this.formatMilliseconds(\n value.getMilliseconds(),\n )}`\n\n value = finalValue\n }\n\n return value\n }\n\n /**\n * Converts given value into utc datetime string in a \"YYYY-MM-DD HH-mm-ss.sss\" format.\n */\n static mixedDateToUtcDatetimeString(value: Date | any): string | any {\n if (typeof value === \"string\") {\n value = new Date(value)\n }\n if (value instanceof Date) {\n return (\n this.formatZerolessValue(value.getUTCFullYear(), 4) +\n \"-\" +\n this.formatZerolessValue(value.getUTCMonth() + 1) +\n \"-\" +\n this.formatZerolessValue(value.getUTCDate()) +\n \" \" +\n this.formatZerolessValue(value.getUTCHours()) +\n \":\" +\n this.formatZerolessValue(value.getUTCMinutes()) +\n \":\" +\n this.formatZerolessValue(value.getUTCSeconds()) +\n \".\" +\n this.formatMilliseconds(value.getUTCMilliseconds())\n )\n }\n\n return value\n }\n\n /**\n * Converts each item in the given array to string joined by \",\" separator.\n */\n static simpleArrayToString(value: any[] | any): string[] | any {\n if (Array.isArray(value)) {\n return (value as any[]).map((i) => String(i)).join(\",\")\n }\n\n return value\n }\n\n /**\n * Converts given string to simple array split by \",\" separator.\n */\n static stringToSimpleArray(value: string | any): string | any {\n if (typeof value === \"string\") {\n if (value.length > 0) {\n return value.split(\",\")\n } else {\n return []\n }\n }\n\n return value\n }\n\n static simpleJsonToString(value: any): string {\n return JSON.stringify(value)\n }\n\n static stringToSimpleJson(value: any) {\n return typeof value === \"string\" ? JSON.parse(value) : value\n }\n\n static simpleEnumToString(value: any) {\n return \"\" + value\n }\n\n static stringToSimpleEnum(value: any, columnMetadata: ColumnMetadata) {\n if (\n columnMetadata.enum &&\n !isNaN(value) &&\n columnMetadata.enum.indexOf(parseInt(value)) >= 0\n ) {\n // convert to number if that exists in poosible enum options\n value = parseInt(value)\n }\n\n return value\n }\n\n // -------------------------------------------------------------------------\n // Private Static Methods\n // -------------------------------------------------------------------------\n\n /**\n * Formats given number to \"0x\" format, e.g. if the totalLength = 2 and the value is 1 then it will return \"01\".\n */\n private static formatZerolessValue(value: number, totalLength = 2): string {\n const pad = \"0\".repeat(totalLength)\n\n return String(`${pad}${value}`).slice(-totalLength)\n }\n\n /**\n * Formats given number to \"0x\" format, e.g. if it is 1 then it will return \"01\".\n */\n private static formatMilliseconds(value: number): string {\n if (value < 10) {\n return \"00\" + value\n } else if (value < 100) {\n return \"0\" + value\n } else {\n return String(value)\n }\n }\n}\n"],"sourceRoot":".."}