typeorm 0.2.25 → 0.2.29

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 (1014) hide show
  1. package/README.md +16 -7
  2. package/browser/cache/DbQueryResultCache.js +14 -14
  3. package/browser/cache/DbQueryResultCache.js.map +1 -1
  4. package/browser/cache/RedisQueryResultCache.js +19 -14
  5. package/browser/cache/RedisQueryResultCache.js.map +1 -1
  6. package/browser/common/DeepPartial.d.ts +1 -1
  7. package/browser/common/DeepPartial.js.map +1 -1
  8. package/browser/common/EntityTarget.d.ts +9 -0
  9. package/browser/common/EntityTarget.js +3 -0
  10. package/browser/common/EntityTarget.js.map +1 -0
  11. package/browser/connection/Connection.d.ts +11 -10
  12. package/browser/connection/Connection.js +63 -40
  13. package/browser/connection/Connection.js.map +1 -1
  14. package/browser/connection/ConnectionMetadataBuilder.js +8 -8
  15. package/browser/connection/ConnectionMetadataBuilder.js.map +1 -1
  16. package/browser/connection/ConnectionOptions.d.ts +2 -1
  17. package/browser/connection/ConnectionOptions.js.map +1 -1
  18. package/browser/connection/ConnectionOptionsReader.js +48 -43
  19. package/browser/connection/ConnectionOptionsReader.js.map +1 -1
  20. package/browser/connection/options-reader/ConnectionOptionsEnvReader.d.ts +5 -1
  21. package/browser/connection/options-reader/ConnectionOptionsEnvReader.js +45 -31
  22. package/browser/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
  23. package/browser/connection/options-reader/ConnectionOptionsXmlReader.js +4 -4
  24. package/browser/connection/options-reader/ConnectionOptionsXmlReader.js.map +1 -1
  25. package/browser/connection/options-reader/ConnectionOptionsYmlReader.d.ts +1 -1
  26. package/browser/connection/options-reader/ConnectionOptionsYmlReader.js +15 -4
  27. package/browser/connection/options-reader/ConnectionOptionsYmlReader.js.map +1 -1
  28. package/browser/decorator/Check.d.ts +2 -2
  29. package/browser/decorator/Check.js.map +1 -1
  30. package/browser/decorator/EntityRepository.d.ts +1 -1
  31. package/browser/decorator/EntityRepository.js.map +1 -1
  32. package/browser/decorator/Exclusion.d.ts +2 -2
  33. package/browser/decorator/Exclusion.js.map +1 -1
  34. package/browser/decorator/Generated.d.ts +1 -1
  35. package/browser/decorator/Generated.js.map +1 -1
  36. package/browser/decorator/Index.d.ts +7 -7
  37. package/browser/decorator/Index.js.map +1 -1
  38. package/browser/decorator/Unique.d.ts +4 -4
  39. package/browser/decorator/Unique.js +12 -1
  40. package/browser/decorator/Unique.js.map +1 -1
  41. package/browser/decorator/columns/Column.d.ts +12 -12
  42. package/browser/decorator/columns/Column.js.map +1 -1
  43. package/browser/decorator/columns/CreateDateColumn.d.ts +1 -1
  44. package/browser/decorator/columns/CreateDateColumn.js.map +1 -1
  45. package/browser/decorator/columns/DeleteDateColumn.d.ts +1 -1
  46. package/browser/decorator/columns/DeleteDateColumn.js.map +1 -1
  47. package/browser/decorator/columns/ObjectIdColumn.d.ts +1 -1
  48. package/browser/decorator/columns/ObjectIdColumn.js.map +1 -1
  49. package/browser/decorator/columns/PrimaryColumn.d.ts +2 -2
  50. package/browser/decorator/columns/PrimaryColumn.js.map +1 -1
  51. package/browser/decorator/columns/PrimaryGeneratedColumn.d.ts +5 -5
  52. package/browser/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
  53. package/browser/decorator/columns/UpdateDateColumn.d.ts +1 -1
  54. package/browser/decorator/columns/UpdateDateColumn.js.map +1 -1
  55. package/browser/decorator/columns/VersionColumn.d.ts +1 -1
  56. package/browser/decorator/columns/VersionColumn.js.map +1 -1
  57. package/browser/decorator/columns/ViewColumn.d.ts +1 -1
  58. package/browser/decorator/columns/ViewColumn.js.map +1 -1
  59. package/browser/decorator/entity/ChildEntity.d.ts +1 -1
  60. package/browser/decorator/entity/ChildEntity.js +1 -1
  61. package/browser/decorator/entity/ChildEntity.js.map +1 -1
  62. package/browser/decorator/entity/TableInheritance.d.ts +1 -1
  63. package/browser/decorator/entity/TableInheritance.js.map +1 -1
  64. package/browser/decorator/entity-view/ViewEntity.d.ts +2 -2
  65. package/browser/decorator/entity-view/ViewEntity.js.map +1 -1
  66. package/browser/decorator/listeners/AfterInsert.d.ts +1 -1
  67. package/browser/decorator/listeners/AfterInsert.js.map +1 -1
  68. package/browser/decorator/listeners/AfterLoad.d.ts +1 -1
  69. package/browser/decorator/listeners/AfterLoad.js.map +1 -1
  70. package/browser/decorator/listeners/AfterRemove.d.ts +1 -1
  71. package/browser/decorator/listeners/AfterRemove.js.map +1 -1
  72. package/browser/decorator/listeners/AfterUpdate.d.ts +1 -1
  73. package/browser/decorator/listeners/AfterUpdate.js.map +1 -1
  74. package/browser/decorator/listeners/BeforeInsert.d.ts +1 -1
  75. package/browser/decorator/listeners/BeforeInsert.js.map +1 -1
  76. package/browser/decorator/listeners/BeforeRemove.d.ts +1 -1
  77. package/browser/decorator/listeners/BeforeRemove.js.map +1 -1
  78. package/browser/decorator/listeners/BeforeUpdate.d.ts +1 -1
  79. package/browser/decorator/listeners/BeforeUpdate.js.map +1 -1
  80. package/browser/decorator/listeners/EventSubscriber.d.ts +1 -1
  81. package/browser/decorator/listeners/EventSubscriber.js.map +1 -1
  82. package/browser/decorator/options/ColumnOptions.js.map +1 -1
  83. package/browser/decorator/options/TransactionOptions.js.map +1 -1
  84. package/browser/decorator/relations/JoinColumn.d.ts +3 -3
  85. package/browser/decorator/relations/JoinColumn.js.map +1 -1
  86. package/browser/decorator/relations/JoinTable.d.ts +3 -3
  87. package/browser/decorator/relations/JoinTable.js.map +1 -1
  88. package/browser/decorator/relations/ManyToMany.d.ts +2 -2
  89. package/browser/decorator/relations/ManyToMany.js.map +1 -1
  90. package/browser/decorator/relations/ManyToOne.d.ts +2 -2
  91. package/browser/decorator/relations/ManyToOne.js.map +1 -1
  92. package/browser/decorator/relations/OneToMany.d.ts +3 -3
  93. package/browser/decorator/relations/OneToMany.js +2 -2
  94. package/browser/decorator/relations/OneToMany.js.map +1 -1
  95. package/browser/decorator/relations/OneToOne.d.ts +2 -2
  96. package/browser/decorator/relations/OneToOne.js.map +1 -1
  97. package/browser/decorator/relations/RelationCount.d.ts +1 -1
  98. package/browser/decorator/relations/RelationCount.js.map +1 -1
  99. package/browser/decorator/relations/RelationId.d.ts +1 -1
  100. package/browser/decorator/relations/RelationId.js.map +1 -1
  101. package/browser/decorator/transaction/Transaction.js +4 -4
  102. package/browser/decorator/transaction/Transaction.js.map +1 -1
  103. package/browser/decorator/transaction/TransactionManager.d.ts +1 -1
  104. package/browser/decorator/transaction/TransactionManager.js.map +1 -1
  105. package/browser/decorator/tree/Tree.d.ts +1 -1
  106. package/browser/decorator/tree/Tree.js.map +1 -1
  107. package/browser/decorator/tree/TreeChildren.d.ts +1 -1
  108. package/browser/decorator/tree/TreeChildren.js.map +1 -1
  109. package/browser/decorator/tree/TreeLevelColumn.d.ts +1 -1
  110. package/browser/decorator/tree/TreeLevelColumn.js.map +1 -1
  111. package/browser/decorator/tree/TreeParent.d.ts +1 -1
  112. package/browser/decorator/tree/TreeParent.js.map +1 -1
  113. package/browser/driver/Driver.d.ts +7 -2
  114. package/browser/driver/Driver.js.map +1 -1
  115. package/browser/driver/DriverFactory.js +4 -1
  116. package/browser/driver/DriverFactory.js.map +1 -1
  117. package/browser/driver/DriverUtils.d.ts +2 -2
  118. package/browser/driver/DriverUtils.js +27 -15
  119. package/browser/driver/DriverUtils.js.map +1 -1
  120. package/browser/driver/aurora-data-api/AuroraDataApiConnection.d.ts +2 -1
  121. package/browser/driver/aurora-data-api/AuroraDataApiConnection.js +2 -3
  122. package/browser/driver/aurora-data-api/AuroraDataApiConnection.js.map +1 -1
  123. package/browser/driver/aurora-data-api/AuroraDataApiConnectionOptions.d.ts +3 -0
  124. package/browser/driver/aurora-data-api/AuroraDataApiConnectionOptions.js.map +1 -1
  125. package/browser/driver/aurora-data-api/AuroraDataApiDriver.d.ts +6 -1
  126. package/browser/driver/aurora-data-api/AuroraDataApiDriver.js +14 -9
  127. package/browser/driver/aurora-data-api/AuroraDataApiDriver.js.map +1 -1
  128. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.d.ts +5 -0
  129. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js +283 -149
  130. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
  131. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.d.ts +6 -0
  132. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.js.map +1 -1
  133. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.d.ts +57 -0
  134. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js +99 -0
  135. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js.map +1 -0
  136. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.d.ts +4 -3
  137. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js +66 -20
  138. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js.map +1 -1
  139. package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.d.ts +50 -0
  140. package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js +3 -0
  141. package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -0
  142. package/browser/driver/better-sqlite3/BetterSqlite3Driver.d.ts +46 -0
  143. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js +125 -0
  144. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -0
  145. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.d.ts +22 -0
  146. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js +113 -0
  147. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -0
  148. package/browser/driver/cockroachdb/CockroachConnectionCredentialsOptions.js.map +1 -1
  149. package/browser/driver/cockroachdb/CockroachDriver.d.ts +6 -1
  150. package/browser/driver/cockroachdb/CockroachDriver.js +21 -16
  151. package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
  152. package/browser/driver/cockroachdb/CockroachQueryRunner.d.ts +7 -1
  153. package/browser/driver/cockroachdb/CockroachQueryRunner.js +509 -211
  154. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  155. package/browser/driver/cordova/CordovaDriver.d.ts +2 -1
  156. package/browser/driver/cordova/CordovaDriver.js +4 -5
  157. package/browser/driver/cordova/CordovaDriver.js.map +1 -1
  158. package/browser/driver/cordova/CordovaQueryRunner.js +4 -4
  159. package/browser/driver/cordova/CordovaQueryRunner.js.map +1 -1
  160. package/browser/driver/expo/ExpoDriver.d.ts +2 -1
  161. package/browser/driver/expo/ExpoDriver.js +4 -5
  162. package/browser/driver/expo/ExpoDriver.js.map +1 -1
  163. package/browser/driver/expo/ExpoQueryRunner.js +82 -24
  164. package/browser/driver/expo/ExpoQueryRunner.js.map +1 -1
  165. package/browser/driver/mongodb/MongoConnectionOptions.d.ts +4 -0
  166. package/browser/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  167. package/browser/driver/mongodb/MongoDriver.d.ts +13 -4
  168. package/browser/driver/mongodb/MongoDriver.js +24 -18
  169. package/browser/driver/mongodb/MongoDriver.js.map +1 -1
  170. package/browser/driver/mongodb/MongoQueryRunner.d.ts +4 -3
  171. package/browser/driver/mongodb/MongoQueryRunner.js +175 -175
  172. package/browser/driver/mongodb/MongoQueryRunner.js.map +1 -1
  173. package/browser/driver/mongodb/typings.js.map +1 -1
  174. package/browser/driver/mysql/MysqlDriver.d.ts +7 -2
  175. package/browser/driver/mysql/MysqlDriver.js +20 -13
  176. package/browser/driver/mysql/MysqlDriver.js.map +1 -1
  177. package/browser/driver/mysql/MysqlQueryRunner.d.ts +11 -1
  178. package/browser/driver/mysql/MysqlQueryRunner.js +351 -185
  179. package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
  180. package/browser/driver/nativescript/NativescriptDriver.d.ts +2 -1
  181. package/browser/driver/nativescript/NativescriptDriver.js +4 -5
  182. package/browser/driver/nativescript/NativescriptDriver.js.map +1 -1
  183. package/browser/driver/nativescript/NativescriptQueryRunner.js +2 -2
  184. package/browser/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  185. package/browser/driver/oracle/OracleDriver.d.ts +6 -1
  186. package/browser/driver/oracle/OracleDriver.js +17 -12
  187. package/browser/driver/oracle/OracleDriver.js.map +1 -1
  188. package/browser/driver/oracle/OracleQueryRunner.d.ts +3 -1
  189. package/browser/driver/oracle/OracleQueryRunner.js +247 -134
  190. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  191. package/browser/driver/postgres/PostgresConnectionCredentialsOptions.js.map +1 -1
  192. package/browser/driver/postgres/PostgresConnectionOptions.d.ts +9 -0
  193. package/browser/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  194. package/browser/driver/postgres/PostgresDriver.d.ts +18 -55
  195. package/browser/driver/postgres/PostgresDriver.js +196 -206
  196. package/browser/driver/postgres/PostgresDriver.js.map +1 -1
  197. package/browser/driver/postgres/PostgresQueryRunner.d.ts +11 -1
  198. package/browser/driver/postgres/PostgresQueryRunner.js +517 -209
  199. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  200. package/browser/driver/react-native/ReactNativeDriver.d.ts +2 -1
  201. package/browser/driver/react-native/ReactNativeDriver.js +4 -5
  202. package/browser/driver/react-native/ReactNativeDriver.js.map +1 -1
  203. package/browser/driver/react-native/ReactNativeQueryRunner.js +4 -4
  204. package/browser/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  205. package/browser/driver/sap/SapDriver.d.ts +6 -1
  206. package/browser/driver/sap/SapDriver.js +12 -7
  207. package/browser/driver/sap/SapDriver.js.map +1 -1
  208. package/browser/driver/sap/SapQueryRunner.d.ts +3 -1
  209. package/browser/driver/sap/SapQueryRunner.js +276 -160
  210. package/browser/driver/sap/SapQueryRunner.js.map +1 -1
  211. package/browser/driver/sqlite/SqliteConnectionOptions.d.ts +18 -0
  212. package/browser/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
  213. package/browser/driver/sqlite/SqliteDriver.d.ts +2 -1
  214. package/browser/driver/sqlite/SqliteDriver.js +31 -17
  215. package/browser/driver/sqlite/SqliteDriver.js.map +1 -1
  216. package/browser/driver/sqlite/SqliteQueryRunner.js +37 -18
  217. package/browser/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  218. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +7 -2
  219. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js +36 -9
  220. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  221. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +1 -0
  222. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +189 -127
  223. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  224. package/browser/driver/sqljs/SqljsDriver.d.ts +2 -1
  225. package/browser/driver/sqljs/SqljsDriver.js +14 -15
  226. package/browser/driver/sqljs/SqljsDriver.js.map +1 -1
  227. package/browser/driver/sqljs/SqljsQueryRunner.js +7 -6
  228. package/browser/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  229. package/browser/driver/sqlserver/SqlServerDriver.d.ts +6 -1
  230. package/browser/driver/sqlserver/SqlServerDriver.js +13 -8
  231. package/browser/driver/sqlserver/SqlServerDriver.js.map +1 -1
  232. package/browser/driver/sqlserver/SqlServerQueryRunner.d.ts +3 -1
  233. package/browser/driver/sqlserver/SqlServerQueryRunner.js +368 -230
  234. package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  235. package/browser/driver/types/ColumnTypes.d.ts +1 -1
  236. package/browser/driver/types/ColumnTypes.js.map +1 -1
  237. package/browser/driver/types/DatabaseType.d.ts +1 -1
  238. package/browser/driver/types/DatabaseType.js.map +1 -1
  239. package/browser/driver/types/ReplicationMode.d.ts +1 -0
  240. package/browser/driver/types/ReplicationMode.js +3 -0
  241. package/browser/driver/types/ReplicationMode.js.map +1 -0
  242. package/browser/entity-manager/EntityManager.d.ts +41 -256
  243. package/browser/entity-manager/EntityManager.js +32 -42
  244. package/browser/entity-manager/EntityManager.js.map +1 -1
  245. package/browser/entity-manager/MongoEntityManager.d.ts +46 -46
  246. package/browser/entity-manager/MongoEntityManager.js +31 -20
  247. package/browser/entity-manager/MongoEntityManager.js.map +1 -1
  248. package/browser/entity-manager/SqljsEntityManager.js +6 -6
  249. package/browser/entity-manager/SqljsEntityManager.js.map +1 -1
  250. package/browser/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
  251. package/browser/entity-schema/EntitySchemaRelationOptions.d.ts +1 -1
  252. package/browser/entity-schema/EntitySchemaRelationOptions.js.map +1 -1
  253. package/browser/entity-schema/EntitySchemaTransformer.js +22 -7
  254. package/browser/entity-schema/EntitySchemaTransformer.js.map +1 -1
  255. package/browser/error/AlreadyHasActiveConnectionError.js +2 -2
  256. package/browser/error/AlreadyHasActiveConnectionError.js.map +1 -1
  257. package/browser/error/CannotAttachTreeChildrenEntityError.js +2 -2
  258. package/browser/error/CannotAttachTreeChildrenEntityError.js.map +1 -1
  259. package/browser/error/CannotConnectAlreadyConnectedError.js +2 -2
  260. package/browser/error/CannotConnectAlreadyConnectedError.js.map +1 -1
  261. package/browser/error/CannotCreateEntityIdMapError.js +2 -2
  262. package/browser/error/CannotCreateEntityIdMapError.js.map +1 -1
  263. package/browser/error/CannotDetermineEntityError.js +2 -2
  264. package/browser/error/CannotDetermineEntityError.js.map +1 -1
  265. package/browser/error/CannotExecuteNotConnectedError.js +2 -2
  266. package/browser/error/CannotExecuteNotConnectedError.js.map +1 -1
  267. package/browser/error/CannotGetEntityManagerNotConnectedError.js +2 -2
  268. package/browser/error/CannotGetEntityManagerNotConnectedError.js.map +1 -1
  269. package/browser/error/CannotReflectMethodParameterTypeError.js +2 -2
  270. package/browser/error/CannotReflectMethodParameterTypeError.js.map +1 -1
  271. package/browser/error/CircularRelationsError.js +2 -2
  272. package/browser/error/CircularRelationsError.js.map +1 -1
  273. package/browser/error/ColumnTypeUndefinedError.js +2 -2
  274. package/browser/error/ColumnTypeUndefinedError.js.map +1 -1
  275. package/browser/error/ConnectionIsNotSetError.js +2 -2
  276. package/browser/error/ConnectionIsNotSetError.js.map +1 -1
  277. package/browser/error/ConnectionNotFoundError.js +2 -2
  278. package/browser/error/ConnectionNotFoundError.js.map +1 -1
  279. package/browser/error/CustomRepositoryCannotInheritRepositoryError.js +2 -2
  280. package/browser/error/CustomRepositoryCannotInheritRepositoryError.js.map +1 -1
  281. package/browser/error/CustomRepositoryDoesNotHaveEntityError.js +2 -2
  282. package/browser/error/CustomRepositoryDoesNotHaveEntityError.js.map +1 -1
  283. package/browser/error/CustomRepositoryNotFoundError.js +2 -2
  284. package/browser/error/CustomRepositoryNotFoundError.js.map +1 -1
  285. package/browser/error/DataTypeNotSupportedError.js +2 -2
  286. package/browser/error/DataTypeNotSupportedError.js.map +1 -1
  287. package/browser/error/DriverOptionNotSetError.js +2 -2
  288. package/browser/error/DriverOptionNotSetError.js.map +1 -1
  289. package/browser/error/DriverPackageNotInstalledError.js +2 -2
  290. package/browser/error/DriverPackageNotInstalledError.js.map +1 -1
  291. package/browser/error/EntityColumnNotFound.js +2 -2
  292. package/browser/error/EntityColumnNotFound.js.map +1 -1
  293. package/browser/error/EntityMetadataNotFoundError.d.ts +2 -2
  294. package/browser/error/EntityMetadataNotFoundError.js +5 -2
  295. package/browser/error/EntityMetadataNotFoundError.js.map +1 -1
  296. package/browser/error/EntityNotFoundError.d.ts +2 -3
  297. package/browser/error/EntityNotFoundError.js +5 -2
  298. package/browser/error/EntityNotFoundError.js.map +1 -1
  299. package/browser/error/FindRelationsNotFoundError.js +4 -4
  300. package/browser/error/FindRelationsNotFoundError.js.map +1 -1
  301. package/browser/error/InitializedRelationError.js +2 -2
  302. package/browser/error/InitializedRelationError.js.map +1 -1
  303. package/browser/error/InsertValuesMissingError.js +2 -2
  304. package/browser/error/InsertValuesMissingError.js.map +1 -1
  305. package/browser/error/LimitOnUpdateNotSupportedError.js +2 -2
  306. package/browser/error/LimitOnUpdateNotSupportedError.js.map +1 -1
  307. package/browser/error/LockNotSupportedOnGivenDriverError.js +2 -2
  308. package/browser/error/LockNotSupportedOnGivenDriverError.js.map +1 -1
  309. package/browser/error/MetadataAlreadyExistsError.js +2 -2
  310. package/browser/error/MetadataAlreadyExistsError.js.map +1 -1
  311. package/browser/error/MetadataWithSuchNameAlreadyExistsError.js +2 -2
  312. package/browser/error/MetadataWithSuchNameAlreadyExistsError.js.map +1 -1
  313. package/browser/error/MissingDeleteDateColumnError.js +2 -2
  314. package/browser/error/MissingDeleteDateColumnError.js.map +1 -1
  315. package/browser/error/MissingDriverError.js +3 -3
  316. package/browser/error/MissingDriverError.js.map +1 -1
  317. package/browser/error/MissingJoinColumnError.js +2 -2
  318. package/browser/error/MissingJoinColumnError.js.map +1 -1
  319. package/browser/error/MissingJoinTableError.js +2 -2
  320. package/browser/error/MissingJoinTableError.js.map +1 -1
  321. package/browser/error/MissingPrimaryColumnError.js +2 -2
  322. package/browser/error/MissingPrimaryColumnError.js.map +1 -1
  323. package/browser/error/MustBeEntityError.js +2 -2
  324. package/browser/error/MustBeEntityError.js.map +1 -1
  325. package/browser/error/NamingStrategyNotFoundError.js +2 -2
  326. package/browser/error/NamingStrategyNotFoundError.js.map +1 -1
  327. package/browser/error/NoConnectionForRepositoryError.js +2 -2
  328. package/browser/error/NoConnectionForRepositoryError.js.map +1 -1
  329. package/browser/error/NoConnectionOptionError.js +2 -2
  330. package/browser/error/NoConnectionOptionError.js.map +1 -1
  331. package/browser/error/NoNeedToReleaseEntityManagerError.js +2 -2
  332. package/browser/error/NoNeedToReleaseEntityManagerError.js.map +1 -1
  333. package/browser/error/NoVersionOrUpdateDateColumnError.js +2 -2
  334. package/browser/error/NoVersionOrUpdateDateColumnError.js.map +1 -1
  335. package/browser/error/OffsetWithoutLimitNotSupportedError.js +2 -2
  336. package/browser/error/OffsetWithoutLimitNotSupportedError.js.map +1 -1
  337. package/browser/error/OptimisticLockCanNotBeUsedError.js +2 -2
  338. package/browser/error/OptimisticLockCanNotBeUsedError.js.map +1 -1
  339. package/browser/error/OptimisticLockVersionMismatchError.js +2 -2
  340. package/browser/error/OptimisticLockVersionMismatchError.js.map +1 -1
  341. package/browser/error/PersistedEntityNotFoundError.js +2 -2
  342. package/browser/error/PersistedEntityNotFoundError.js.map +1 -1
  343. package/browser/error/PessimisticLockTransactionRequiredError.js +2 -2
  344. package/browser/error/PessimisticLockTransactionRequiredError.js.map +1 -1
  345. package/browser/error/PrimaryColumnCannotBeNullableError.js +2 -2
  346. package/browser/error/PrimaryColumnCannotBeNullableError.js.map +1 -1
  347. package/browser/error/QueryFailedError.js +3 -3
  348. package/browser/error/QueryFailedError.js.map +1 -1
  349. package/browser/error/QueryRunnerAlreadyReleasedError.js +2 -2
  350. package/browser/error/QueryRunnerAlreadyReleasedError.js.map +1 -1
  351. package/browser/error/QueryRunnerProviderAlreadyReleasedError.js +2 -2
  352. package/browser/error/QueryRunnerProviderAlreadyReleasedError.js.map +1 -1
  353. package/browser/error/RepositoryNotFoundError.d.ts +2 -2
  354. package/browser/error/RepositoryNotFoundError.js +5 -2
  355. package/browser/error/RepositoryNotFoundError.js.map +1 -1
  356. package/browser/error/RepositoryNotTreeError.d.ts +2 -2
  357. package/browser/error/RepositoryNotTreeError.js +11 -8
  358. package/browser/error/RepositoryNotTreeError.js.map +1 -1
  359. package/browser/error/ReturningStatementNotSupportedError.js +2 -2
  360. package/browser/error/ReturningStatementNotSupportedError.js.map +1 -1
  361. package/browser/error/SubjectRemovedAndUpdatedError.js +2 -2
  362. package/browser/error/SubjectRemovedAndUpdatedError.js.map +1 -1
  363. package/browser/error/SubjectWithoutIdentifierError.js +2 -2
  364. package/browser/error/SubjectWithoutIdentifierError.js.map +1 -1
  365. package/browser/error/TransactionAlreadyStartedError.js +2 -2
  366. package/browser/error/TransactionAlreadyStartedError.js.map +1 -1
  367. package/browser/error/TransactionNotStartedError.js +2 -2
  368. package/browser/error/TransactionNotStartedError.js.map +1 -1
  369. package/browser/error/TreeRepositoryNotSupportedError.js +2 -2
  370. package/browser/error/TreeRepositoryNotSupportedError.js.map +1 -1
  371. package/browser/error/UpdateValuesMissingError.js +2 -2
  372. package/browser/error/UpdateValuesMissingError.js.map +1 -1
  373. package/browser/error/UsingJoinColumnIsNotAllowedError.js +2 -2
  374. package/browser/error/UsingJoinColumnIsNotAllowedError.js.map +1 -1
  375. package/browser/error/UsingJoinColumnOnlyOnOneSideAllowedError.js +2 -2
  376. package/browser/error/UsingJoinColumnOnlyOnOneSideAllowedError.js.map +1 -1
  377. package/browser/error/UsingJoinTableIsNotAllowedError.js +2 -2
  378. package/browser/error/UsingJoinTableIsNotAllowedError.js.map +1 -1
  379. package/browser/error/UsingJoinTableOnlyOnOneSideAllowedError.js +2 -2
  380. package/browser/error/UsingJoinTableOnlyOnOneSideAllowedError.js.map +1 -1
  381. package/browser/find-options/FindOneOptions.d.ts +4 -0
  382. package/browser/find-options/FindOneOptions.js.map +1 -1
  383. package/browser/find-options/FindOperator.d.ts +26 -4
  384. package/browser/find-options/FindOperator.js +49 -50
  385. package/browser/find-options/FindOperator.js.map +1 -1
  386. package/browser/find-options/FindOperatorType.d.ts +1 -1
  387. package/browser/find-options/FindOperatorType.js.map +1 -1
  388. package/browser/find-options/FindOptionsUtils.d.ts +2 -2
  389. package/browser/find-options/FindOptionsUtils.js +5 -1
  390. package/browser/find-options/FindOptionsUtils.js.map +1 -1
  391. package/browser/find-options/operator/Any.d.ts +1 -1
  392. package/browser/find-options/operator/Any.js.map +1 -1
  393. package/browser/find-options/operator/Between.d.ts +1 -1
  394. package/browser/find-options/operator/Between.js.map +1 -1
  395. package/browser/find-options/operator/ILike.d.ts +6 -0
  396. package/browser/find-options/operator/ILike.js +10 -0
  397. package/browser/find-options/operator/ILike.js.map +1 -0
  398. package/browser/find-options/operator/In.d.ts +1 -1
  399. package/browser/find-options/operator/In.js.map +1 -1
  400. package/browser/find-options/operator/Raw.d.ts +14 -2
  401. package/browser/find-options/operator/Raw.js +5 -6
  402. package/browser/find-options/operator/Raw.js.map +1 -1
  403. package/browser/index.d.ts +10 -11
  404. package/browser/index.js +9 -15
  405. package/browser/index.js.map +1 -1
  406. package/browser/logger/DebugLogger.d.ts +0 -1
  407. package/browser/logger/DebugLogger.js +9 -9
  408. package/browser/logger/DebugLogger.js.map +1 -1
  409. package/browser/logger/FileLogger.d.ts +3 -1
  410. package/browser/logger/FileLogger.js +9 -3
  411. package/browser/logger/FileLogger.js.map +1 -1
  412. package/browser/logger/Logger.d.ts +1 -1
  413. package/browser/logger/Logger.js.map +1 -1
  414. package/browser/logger/LoggerOptions.d.ts +9 -0
  415. package/browser/logger/LoggerOptions.js.map +1 -1
  416. package/browser/metadata/ColumnMetadata.js +29 -19
  417. package/browser/metadata/ColumnMetadata.js.map +1 -1
  418. package/browser/metadata/EmbeddedMetadata.js +2 -2
  419. package/browser/metadata/EmbeddedMetadata.js.map +1 -1
  420. package/browser/metadata/EntityMetadata.d.ts +1 -0
  421. package/browser/metadata/EntityMetadata.js +13 -5
  422. package/browser/metadata/EntityMetadata.js.map +1 -1
  423. package/browser/metadata/RelationMetadata.js +7 -7
  424. package/browser/metadata/RelationMetadata.js.map +1 -1
  425. package/browser/metadata/types/EventListenerTypes.d.ts +7 -7
  426. package/browser/metadata/types/EventListenerTypes.js.map +1 -1
  427. package/browser/metadata-args/EntityRepositoryMetadataArgs.d.ts +2 -2
  428. package/browser/metadata-args/EntityRepositoryMetadataArgs.js.map +1 -1
  429. package/browser/metadata-args/RelationCountMetadataArgs.js.map +1 -1
  430. package/browser/metadata-args/RelationIdMetadataArgs.js.map +1 -1
  431. package/browser/metadata-builder/EntityMetadataBuilder.js +21 -15
  432. package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  433. package/browser/metadata-builder/EntityMetadataValidator.js +8 -5
  434. package/browser/metadata-builder/EntityMetadataValidator.js.map +1 -1
  435. package/browser/metadata-builder/JunctionEntityMetadataBuilder.js +3 -2
  436. package/browser/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  437. package/browser/migration/MigrationExecutor.js +132 -103
  438. package/browser/migration/MigrationExecutor.js.map +1 -1
  439. package/browser/naming-strategy/DefaultNamingStrategy.js +6 -6
  440. package/browser/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  441. package/browser/persistence/EntityPersistExecutor.js +65 -47
  442. package/browser/persistence/EntityPersistExecutor.js.map +1 -1
  443. package/browser/persistence/Subject.js +4 -3
  444. package/browser/persistence/Subject.js.map +1 -1
  445. package/browser/persistence/SubjectDatabaseEntityLoader.js +9 -8
  446. package/browser/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  447. package/browser/persistence/SubjectExecutor.js +263 -206
  448. package/browser/persistence/SubjectExecutor.js.map +1 -1
  449. package/browser/persistence/SubjectTopoligicalSorter.js +6 -6
  450. package/browser/persistence/SubjectTopoligicalSorter.js.map +1 -1
  451. package/browser/persistence/subject-builder/CascadesSubjectBuilder.js +2 -2
  452. package/browser/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
  453. package/browser/persistence/tree/ClosureSubjectExecutor.js +4 -4
  454. package/browser/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
  455. package/browser/persistence/tree/MaterializedPathSubjectExecutor.js +5 -4
  456. package/browser/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
  457. package/browser/persistence/tree/NestedSetSubjectExecutor.js +3 -3
  458. package/browser/platform/BrowserConnectionOptionsReaderDummy.d.ts +38 -0
  459. package/browser/platform/BrowserConnectionOptionsReaderDummy.js +93 -0
  460. package/browser/platform/BrowserConnectionOptionsReaderDummy.js.map +1 -0
  461. package/browser/platform/BrowserDirectoryExportedClassesLoader.d.ts +15 -0
  462. package/browser/platform/BrowserDirectoryExportedClassesLoader.js +22 -0
  463. package/browser/platform/BrowserDirectoryExportedClassesLoader.js.map +1 -0
  464. package/browser/platform/BrowserDisabledDriversDummy.d.ts +32 -2
  465. package/browser/platform/BrowserDisabledDriversDummy.js +52 -2
  466. package/browser/platform/BrowserDisabledDriversDummy.js.map +1 -1
  467. package/browser/platform/BrowserFileLoggerDummy.d.ts +33 -0
  468. package/browser/platform/BrowserFileLoggerDummy.js +58 -0
  469. package/browser/platform/BrowserFileLoggerDummy.js.map +1 -0
  470. package/browser/platform/BrowserPlatformTools.d.ts +74 -0
  471. package/browser/platform/BrowserPlatformTools.js +157 -0
  472. package/browser/platform/BrowserPlatformTools.js.map +1 -0
  473. package/browser/platform/PlatformTools.d.ts +15 -21
  474. package/browser/platform/PlatformTools.js +142 -81
  475. package/browser/platform/PlatformTools.js.map +1 -1
  476. package/browser/query-builder/Alias.js.map +1 -1
  477. package/browser/query-builder/DeleteQueryBuilder.d.ts +2 -3
  478. package/browser/query-builder/DeleteQueryBuilder.js +12 -6
  479. package/browser/query-builder/DeleteQueryBuilder.js.map +1 -1
  480. package/browser/query-builder/InsertQueryBuilder.d.ts +2 -3
  481. package/browser/query-builder/InsertQueryBuilder.js +49 -16
  482. package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
  483. package/browser/query-builder/JoinAttribute.js +2 -2
  484. package/browser/query-builder/JoinAttribute.js.map +1 -1
  485. package/browser/query-builder/QueryBuilder.d.ts +18 -15
  486. package/browser/query-builder/QueryBuilder.js +205 -55
  487. package/browser/query-builder/QueryBuilder.js.map +1 -1
  488. package/browser/query-builder/QueryBuilderUtils.js +2 -2
  489. package/browser/query-builder/QueryBuilderUtils.js.map +1 -1
  490. package/browser/query-builder/QueryExpressionMap.d.ts +4 -0
  491. package/browser/query-builder/QueryExpressionMap.js +4 -4
  492. package/browser/query-builder/QueryExpressionMap.js.map +1 -1
  493. package/browser/query-builder/QueryPartialEntity.d.ts +1 -1
  494. package/browser/query-builder/QueryPartialEntity.js.map +1 -1
  495. package/browser/query-builder/RelationIdLoader.js +5 -5
  496. package/browser/query-builder/RelationLoader.js +3 -3
  497. package/browser/query-builder/RelationLoader.js.map +1 -1
  498. package/browser/query-builder/RelationQueryBuilder.js +14 -14
  499. package/browser/query-builder/RelationQueryBuilder.js.map +1 -1
  500. package/browser/query-builder/RelationRemover.js +7 -7
  501. package/browser/query-builder/RelationRemover.js.map +1 -1
  502. package/browser/query-builder/RelationUpdater.js +3 -3
  503. package/browser/query-builder/ReturningResultsEntityUpdator.js +30 -31
  504. package/browser/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
  505. package/browser/query-builder/SelectQueryBuilder.d.ts +9 -3
  506. package/browser/query-builder/SelectQueryBuilder.js +116 -68
  507. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  508. package/browser/query-builder/SoftDeleteQueryBuilder.d.ts +2 -3
  509. package/browser/query-builder/SoftDeleteQueryBuilder.js +6 -6
  510. package/browser/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  511. package/browser/query-builder/UpdateQueryBuilder.js +13 -7
  512. package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
  513. package/browser/query-builder/relation-count/RelationCountAttribute.js +3 -3
  514. package/browser/query-builder/relation-count/RelationCountAttribute.js.map +1 -1
  515. package/browser/query-builder/relation-count/RelationCountLoader.js +5 -5
  516. package/browser/query-builder/relation-id/RelationIdAttribute.js +2 -2
  517. package/browser/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
  518. package/browser/query-builder/relation-id/RelationIdLoader.js +6 -6
  519. package/browser/query-builder/relation-id/RelationIdLoader.js.map +1 -1
  520. package/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js +4 -4
  521. package/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
  522. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js +9 -6
  523. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  524. package/browser/query-runner/BaseQueryRunner.d.ts +2 -5
  525. package/browser/query-runner/BaseQueryRunner.js +106 -56
  526. package/browser/query-runner/BaseQueryRunner.js.map +1 -1
  527. package/browser/query-runner/QueryRunner.d.ts +2 -1
  528. package/browser/query-runner/QueryRunner.js.map +1 -1
  529. package/browser/repository/AbstractRepository.js.map +1 -1
  530. package/browser/repository/BaseEntity.js +5 -5
  531. package/browser/repository/BaseEntity.js.map +1 -1
  532. package/browser/repository/MongoRepository.js +2 -2
  533. package/browser/repository/MongoRepository.js.map +1 -1
  534. package/browser/repository/Repository.js +3 -3
  535. package/browser/repository/Repository.js.map +1 -1
  536. package/browser/repository/TreeRepository.js +6 -6
  537. package/browser/repository/TreeRepository.js.map +1 -1
  538. package/browser/schema-builder/MongoSchemaBuilder.js +4 -4
  539. package/browser/schema-builder/MongoSchemaBuilder.js.map +1 -1
  540. package/browser/schema-builder/RdbmsSchemaBuilder.js +924 -368
  541. package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  542. package/browser/schema-builder/options/TableIndexOptions.d.ts +1 -1
  543. package/browser/schema-builder/options/TableIndexOptions.js.map +1 -1
  544. package/browser/schema-builder/table/TableCheck.js +2 -2
  545. package/browser/schema-builder/table/TableCheck.js.map +1 -1
  546. package/browser/schema-builder/table/TableForeignKey.js +3 -3
  547. package/browser/schema-builder/table/TableForeignKey.js.map +1 -1
  548. package/browser/schema-builder/table/TableIndex.js +2 -2
  549. package/browser/schema-builder/table/TableIndex.js.map +1 -1
  550. package/browser/schema-builder/table/TableUnique.js +2 -2
  551. package/browser/schema-builder/table/TableUnique.js.map +1 -1
  552. package/browser/schema-builder/view/View.d.ts +1 -2
  553. package/browser/schema-builder/view/View.js.map +1 -1
  554. package/browser/subscriber/Broadcaster.d.ts +24 -0
  555. package/browser/subscriber/Broadcaster.js +120 -0
  556. package/browser/subscriber/Broadcaster.js.map +1 -1
  557. package/browser/subscriber/EntitySubscriberInterface.d.ts +27 -0
  558. package/browser/subscriber/EntitySubscriberInterface.js.map +1 -1
  559. package/browser/subscriber/event/TransactionCommitEvent.d.ts +22 -0
  560. package/browser/subscriber/event/TransactionCommitEvent.js +3 -0
  561. package/browser/subscriber/event/TransactionCommitEvent.js.map +1 -0
  562. package/browser/subscriber/event/TransactionRollbackEvent.d.ts +22 -0
  563. package/browser/subscriber/event/TransactionRollbackEvent.js +3 -0
  564. package/browser/subscriber/event/TransactionRollbackEvent.js.map +1 -0
  565. package/browser/subscriber/event/TransactionStartEvent.d.ts +22 -0
  566. package/browser/subscriber/event/TransactionStartEvent.js +3 -0
  567. package/browser/subscriber/event/TransactionStartEvent.js.map +1 -0
  568. package/browser/util/ApplyValueTransformers.js.map +1 -1
  569. package/browser/util/DateUtils.js +3 -9
  570. package/browser/util/DateUtils.js.map +1 -1
  571. package/browser/util/DirectoryExportedClassesLoader.js +6 -5
  572. package/browser/util/DirectoryExportedClassesLoader.js.map +1 -1
  573. package/browser/util/ObjectUtils.js +4 -4
  574. package/browser/util/ObjectUtils.js.map +1 -1
  575. package/browser/util/OrmUtils.js +5 -8
  576. package/browser/util/OrmUtils.js.map +1 -1
  577. package/cache/DbQueryResultCache.js +1 -1
  578. package/cache/DbQueryResultCache.js.map +1 -1
  579. package/cache/RedisQueryResultCache.js +6 -1
  580. package/cache/RedisQueryResultCache.js.map +1 -1
  581. package/commands/CacheClearCommand.js +4 -4
  582. package/commands/CacheClearCommand.js.map +1 -1
  583. package/commands/CommandUtils.d.ts +1 -1
  584. package/commands/CommandUtils.js +2 -2
  585. package/commands/CommandUtils.js.map +1 -1
  586. package/commands/EntityCreateCommand.js +9 -6
  587. package/commands/EntityCreateCommand.js.map +1 -1
  588. package/commands/InitCommand.js +15 -5
  589. package/commands/InitCommand.js.map +1 -1
  590. package/commands/MigrationCreateCommand.js +8 -5
  591. package/commands/MigrationCreateCommand.js.map +1 -1
  592. package/commands/MigrationGenerateCommand.d.ts +7 -1
  593. package/commands/MigrationGenerateCommand.js +53 -32
  594. package/commands/MigrationGenerateCommand.js.map +1 -1
  595. package/commands/MigrationRevertCommand.js +2 -2
  596. package/commands/MigrationRevertCommand.js.map +1 -1
  597. package/commands/MigrationRunCommand.js +2 -2
  598. package/commands/MigrationRunCommand.js.map +1 -1
  599. package/commands/MigrationShowCommand.js +2 -2
  600. package/commands/MigrationShowCommand.js.map +1 -1
  601. package/commands/QueryCommand.d.ts +2 -0
  602. package/commands/QueryCommand.js +16 -7
  603. package/commands/QueryCommand.js.map +1 -1
  604. package/commands/SchemaDropCommand.js +3 -3
  605. package/commands/SchemaDropCommand.js.map +1 -1
  606. package/commands/SchemaLogCommand.js +6 -6
  607. package/commands/SchemaLogCommand.js.map +1 -1
  608. package/commands/SchemaSyncCommand.js +3 -3
  609. package/commands/SchemaSyncCommand.js.map +1 -1
  610. package/commands/SubscriberCreateCommand.js +8 -5
  611. package/commands/SubscriberCreateCommand.js.map +1 -1
  612. package/commands/VersionCommand.js +2 -2
  613. package/commands/VersionCommand.js.map +1 -1
  614. package/common/DeepPartial.d.ts +1 -1
  615. package/common/DeepPartial.js.map +1 -1
  616. package/common/EntityTarget.d.ts +9 -0
  617. package/common/EntityTarget.js +4 -0
  618. package/common/EntityTarget.js.map +1 -0
  619. package/connection/Connection.d.ts +11 -10
  620. package/connection/Connection.js +45 -22
  621. package/connection/Connection.js.map +1 -1
  622. package/connection/ConnectionOptions.d.ts +2 -1
  623. package/connection/ConnectionOptions.js.map +1 -1
  624. package/connection/ConnectionOptionsReader.js +39 -34
  625. package/connection/ConnectionOptionsReader.js.map +1 -1
  626. package/connection/options-reader/ConnectionOptionsEnvReader.d.ts +5 -1
  627. package/connection/options-reader/ConnectionOptionsEnvReader.js +45 -31
  628. package/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
  629. package/connection/options-reader/ConnectionOptionsXmlReader.js +2 -2
  630. package/connection/options-reader/ConnectionOptionsXmlReader.js.map +1 -1
  631. package/connection/options-reader/ConnectionOptionsYmlReader.d.ts +1 -1
  632. package/connection/options-reader/ConnectionOptionsYmlReader.js +15 -4
  633. package/connection/options-reader/ConnectionOptionsYmlReader.js.map +1 -1
  634. package/decorator/Check.d.ts +2 -2
  635. package/decorator/Check.js.map +1 -1
  636. package/decorator/EntityRepository.d.ts +1 -1
  637. package/decorator/EntityRepository.js.map +1 -1
  638. package/decorator/Exclusion.d.ts +2 -2
  639. package/decorator/Exclusion.js.map +1 -1
  640. package/decorator/Generated.d.ts +1 -1
  641. package/decorator/Generated.js.map +1 -1
  642. package/decorator/Index.d.ts +7 -7
  643. package/decorator/Index.js.map +1 -1
  644. package/decorator/Unique.d.ts +4 -4
  645. package/decorator/Unique.js +12 -1
  646. package/decorator/Unique.js.map +1 -1
  647. package/decorator/columns/Column.d.ts +12 -12
  648. package/decorator/columns/Column.js.map +1 -1
  649. package/decorator/columns/CreateDateColumn.d.ts +1 -1
  650. package/decorator/columns/CreateDateColumn.js.map +1 -1
  651. package/decorator/columns/DeleteDateColumn.d.ts +1 -1
  652. package/decorator/columns/DeleteDateColumn.js.map +1 -1
  653. package/decorator/columns/ObjectIdColumn.d.ts +1 -1
  654. package/decorator/columns/ObjectIdColumn.js.map +1 -1
  655. package/decorator/columns/PrimaryColumn.d.ts +2 -2
  656. package/decorator/columns/PrimaryColumn.js.map +1 -1
  657. package/decorator/columns/PrimaryGeneratedColumn.d.ts +5 -5
  658. package/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
  659. package/decorator/columns/UpdateDateColumn.d.ts +1 -1
  660. package/decorator/columns/UpdateDateColumn.js.map +1 -1
  661. package/decorator/columns/VersionColumn.d.ts +1 -1
  662. package/decorator/columns/VersionColumn.js.map +1 -1
  663. package/decorator/columns/ViewColumn.d.ts +1 -1
  664. package/decorator/columns/ViewColumn.js.map +1 -1
  665. package/decorator/entity/ChildEntity.d.ts +1 -1
  666. package/decorator/entity/ChildEntity.js +1 -1
  667. package/decorator/entity/ChildEntity.js.map +1 -1
  668. package/decorator/entity/TableInheritance.d.ts +1 -1
  669. package/decorator/entity/TableInheritance.js.map +1 -1
  670. package/decorator/entity-view/ViewEntity.d.ts +2 -2
  671. package/decorator/entity-view/ViewEntity.js.map +1 -1
  672. package/decorator/listeners/AfterInsert.d.ts +1 -1
  673. package/decorator/listeners/AfterInsert.js.map +1 -1
  674. package/decorator/listeners/AfterLoad.d.ts +1 -1
  675. package/decorator/listeners/AfterLoad.js.map +1 -1
  676. package/decorator/listeners/AfterRemove.d.ts +1 -1
  677. package/decorator/listeners/AfterRemove.js.map +1 -1
  678. package/decorator/listeners/AfterUpdate.d.ts +1 -1
  679. package/decorator/listeners/AfterUpdate.js.map +1 -1
  680. package/decorator/listeners/BeforeInsert.d.ts +1 -1
  681. package/decorator/listeners/BeforeInsert.js.map +1 -1
  682. package/decorator/listeners/BeforeRemove.d.ts +1 -1
  683. package/decorator/listeners/BeforeRemove.js.map +1 -1
  684. package/decorator/listeners/BeforeUpdate.d.ts +1 -1
  685. package/decorator/listeners/BeforeUpdate.js.map +1 -1
  686. package/decorator/listeners/EventSubscriber.d.ts +1 -1
  687. package/decorator/listeners/EventSubscriber.js.map +1 -1
  688. package/decorator/options/ColumnOptions.js.map +1 -1
  689. package/decorator/options/TransactionOptions.js.map +1 -1
  690. package/decorator/relations/JoinColumn.d.ts +3 -3
  691. package/decorator/relations/JoinColumn.js.map +1 -1
  692. package/decorator/relations/JoinTable.d.ts +3 -3
  693. package/decorator/relations/JoinTable.js.map +1 -1
  694. package/decorator/relations/ManyToMany.d.ts +2 -2
  695. package/decorator/relations/ManyToMany.js.map +1 -1
  696. package/decorator/relations/ManyToOne.d.ts +2 -2
  697. package/decorator/relations/ManyToOne.js.map +1 -1
  698. package/decorator/relations/OneToMany.d.ts +3 -3
  699. package/decorator/relations/OneToMany.js +2 -2
  700. package/decorator/relations/OneToMany.js.map +1 -1
  701. package/decorator/relations/OneToOne.d.ts +2 -2
  702. package/decorator/relations/OneToOne.js.map +1 -1
  703. package/decorator/relations/RelationCount.d.ts +1 -1
  704. package/decorator/relations/RelationCount.js.map +1 -1
  705. package/decorator/relations/RelationId.d.ts +1 -1
  706. package/decorator/relations/RelationId.js.map +1 -1
  707. package/decorator/transaction/TransactionManager.d.ts +1 -1
  708. package/decorator/transaction/TransactionManager.js.map +1 -1
  709. package/decorator/tree/Tree.d.ts +1 -1
  710. package/decorator/tree/Tree.js.map +1 -1
  711. package/decorator/tree/TreeChildren.d.ts +1 -1
  712. package/decorator/tree/TreeChildren.js.map +1 -1
  713. package/decorator/tree/TreeLevelColumn.d.ts +1 -1
  714. package/decorator/tree/TreeLevelColumn.js.map +1 -1
  715. package/decorator/tree/TreeParent.d.ts +1 -1
  716. package/decorator/tree/TreeParent.js.map +1 -1
  717. package/driver/Driver.d.ts +7 -2
  718. package/driver/Driver.js.map +1 -1
  719. package/driver/DriverFactory.js +5 -2
  720. package/driver/DriverFactory.js.map +1 -1
  721. package/driver/DriverUtils.d.ts +2 -2
  722. package/driver/DriverUtils.js +25 -13
  723. package/driver/DriverUtils.js.map +1 -1
  724. package/driver/aurora-data-api/AuroraDataApiConnection.d.ts +2 -1
  725. package/driver/aurora-data-api/AuroraDataApiConnection.js +0 -1
  726. package/driver/aurora-data-api/AuroraDataApiConnection.js.map +1 -1
  727. package/driver/aurora-data-api/AuroraDataApiConnectionOptions.d.ts +3 -0
  728. package/driver/aurora-data-api/AuroraDataApiConnectionOptions.js.map +1 -1
  729. package/driver/aurora-data-api/AuroraDataApiDriver.d.ts +6 -1
  730. package/driver/aurora-data-api/AuroraDataApiDriver.js +7 -2
  731. package/driver/aurora-data-api/AuroraDataApiDriver.js.map +1 -1
  732. package/driver/aurora-data-api/AuroraDataApiQueryRunner.d.ts +4 -0
  733. package/driver/aurora-data-api/AuroraDataApiQueryRunner.js +159 -25
  734. package/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
  735. package/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.d.ts +6 -0
  736. package/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.js.map +1 -1
  737. package/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.d.ts +57 -0
  738. package/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js +101 -0
  739. package/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js.map +1 -0
  740. package/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.d.ts +4 -3
  741. package/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js +53 -7
  742. package/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js.map +1 -1
  743. package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.d.ts +50 -0
  744. package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js +4 -0
  745. package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -0
  746. package/driver/better-sqlite3/BetterSqlite3Driver.d.ts +46 -0
  747. package/driver/better-sqlite3/BetterSqlite3Driver.js +127 -0
  748. package/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -0
  749. package/driver/better-sqlite3/BetterSqlite3QueryRunner.d.ts +22 -0
  750. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js +115 -0
  751. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -0
  752. package/driver/cockroachdb/CockroachConnectionCredentialsOptions.js.map +1 -1
  753. package/driver/cockroachdb/CockroachDriver.d.ts +6 -1
  754. package/driver/cockroachdb/CockroachDriver.js +9 -4
  755. package/driver/cockroachdb/CockroachDriver.js.map +1 -1
  756. package/driver/cockroachdb/CockroachQueryRunner.d.ts +6 -1
  757. package/driver/cockroachdb/CockroachQueryRunner.js +392 -94
  758. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  759. package/driver/cordova/CordovaDriver.d.ts +2 -1
  760. package/driver/cordova/CordovaDriver.js +0 -1
  761. package/driver/cordova/CordovaDriver.js.map +1 -1
  762. package/driver/expo/ExpoDriver.d.ts +2 -1
  763. package/driver/expo/ExpoDriver.js +0 -1
  764. package/driver/expo/ExpoDriver.js.map +1 -1
  765. package/driver/expo/ExpoQueryRunner.js +72 -14
  766. package/driver/expo/ExpoQueryRunner.js.map +1 -1
  767. package/driver/mongodb/MongoConnectionOptions.d.ts +4 -0
  768. package/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  769. package/driver/mongodb/MongoDriver.d.ts +13 -4
  770. package/driver/mongodb/MongoDriver.js +21 -15
  771. package/driver/mongodb/MongoDriver.js.map +1 -1
  772. package/driver/mongodb/MongoQueryRunner.d.ts +3 -3
  773. package/driver/mongodb/MongoQueryRunner.js.map +1 -1
  774. package/driver/mongodb/typings.js.map +1 -1
  775. package/driver/mysql/MysqlDriver.d.ts +7 -2
  776. package/driver/mysql/MysqlDriver.js +14 -7
  777. package/driver/mysql/MysqlDriver.js.map +1 -1
  778. package/driver/mysql/MysqlQueryRunner.d.ts +10 -1
  779. package/driver/mysql/MysqlQueryRunner.js +227 -61
  780. package/driver/mysql/MysqlQueryRunner.js.map +1 -1
  781. package/driver/nativescript/NativescriptDriver.d.ts +2 -1
  782. package/driver/nativescript/NativescriptDriver.js +0 -1
  783. package/driver/nativescript/NativescriptDriver.js.map +1 -1
  784. package/driver/oracle/OracleDriver.d.ts +6 -1
  785. package/driver/oracle/OracleDriver.js +8 -3
  786. package/driver/oracle/OracleDriver.js.map +1 -1
  787. package/driver/oracle/OracleQueryRunner.d.ts +2 -1
  788. package/driver/oracle/OracleQueryRunner.js +139 -26
  789. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  790. package/driver/postgres/PostgresConnectionCredentialsOptions.js.map +1 -1
  791. package/driver/postgres/PostgresConnectionOptions.d.ts +9 -0
  792. package/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  793. package/driver/postgres/PostgresDriver.d.ts +18 -55
  794. package/driver/postgres/PostgresDriver.js +181 -191
  795. package/driver/postgres/PostgresDriver.js.map +1 -1
  796. package/driver/postgres/PostgresQueryRunner.d.ts +10 -1
  797. package/driver/postgres/PostgresQueryRunner.js +389 -81
  798. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  799. package/driver/react-native/ReactNativeDriver.d.ts +2 -1
  800. package/driver/react-native/ReactNativeDriver.js +0 -1
  801. package/driver/react-native/ReactNativeDriver.js.map +1 -1
  802. package/driver/sap/SapDriver.d.ts +6 -1
  803. package/driver/sap/SapDriver.js +6 -1
  804. package/driver/sap/SapDriver.js.map +1 -1
  805. package/driver/sap/SapQueryRunner.d.ts +2 -1
  806. package/driver/sap/SapQueryRunner.js +143 -27
  807. package/driver/sap/SapQueryRunner.js.map +1 -1
  808. package/driver/sqlite/SqliteConnectionOptions.d.ts +18 -0
  809. package/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
  810. package/driver/sqlite/SqliteDriver.d.ts +2 -1
  811. package/driver/sqlite/SqliteDriver.js +25 -11
  812. package/driver/sqlite/SqliteDriver.js.map +1 -1
  813. package/driver/sqlite/SqliteQueryRunner.js +33 -14
  814. package/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  815. package/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +7 -2
  816. package/driver/sqlite-abstract/AbstractSqliteDriver.js +31 -4
  817. package/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  818. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +72 -10
  819. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  820. package/driver/sqljs/SqljsDriver.d.ts +2 -1
  821. package/driver/sqljs/SqljsDriver.js +0 -1
  822. package/driver/sqljs/SqljsDriver.js.map +1 -1
  823. package/driver/sqljs/SqljsQueryRunner.js +1 -0
  824. package/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  825. package/driver/sqlserver/SqlServerDriver.d.ts +6 -1
  826. package/driver/sqlserver/SqlServerDriver.js +6 -1
  827. package/driver/sqlserver/SqlServerDriver.js.map +1 -1
  828. package/driver/sqlserver/SqlServerQueryRunner.d.ts +2 -1
  829. package/driver/sqlserver/SqlServerQueryRunner.js +224 -86
  830. package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  831. package/driver/types/ColumnTypes.d.ts +1 -1
  832. package/driver/types/ColumnTypes.js.map +1 -1
  833. package/driver/types/DatabaseType.d.ts +1 -1
  834. package/driver/types/DatabaseType.js.map +1 -1
  835. package/driver/types/ReplicationMode.d.ts +1 -0
  836. package/driver/types/ReplicationMode.js +4 -0
  837. package/driver/types/ReplicationMode.js.map +1 -0
  838. package/entity-manager/EntityManager.d.ts +41 -256
  839. package/entity-manager/EntityManager.js +3 -13
  840. package/entity-manager/EntityManager.js.map +1 -1
  841. package/entity-manager/MongoEntityManager.d.ts +46 -46
  842. package/entity-manager/MongoEntityManager.js +14 -3
  843. package/entity-manager/MongoEntityManager.js.map +1 -1
  844. package/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
  845. package/entity-schema/EntitySchemaRelationOptions.d.ts +1 -1
  846. package/entity-schema/EntitySchemaRelationOptions.js.map +1 -1
  847. package/entity-schema/EntitySchemaTransformer.js +22 -7
  848. package/entity-schema/EntitySchemaTransformer.js.map +1 -1
  849. package/error/EntityMetadataNotFoundError.d.ts +2 -2
  850. package/error/EntityMetadataNotFoundError.js +3 -0
  851. package/error/EntityMetadataNotFoundError.js.map +1 -1
  852. package/error/EntityNotFoundError.d.ts +2 -3
  853. package/error/EntityNotFoundError.js +3 -0
  854. package/error/EntityNotFoundError.js.map +1 -1
  855. package/error/FindRelationsNotFoundError.js +2 -2
  856. package/error/FindRelationsNotFoundError.js.map +1 -1
  857. package/error/MissingDriverError.js +1 -1
  858. package/error/MissingDriverError.js.map +1 -1
  859. package/error/QueryFailedError.js +1 -1
  860. package/error/QueryFailedError.js.map +1 -1
  861. package/error/RepositoryNotFoundError.d.ts +2 -2
  862. package/error/RepositoryNotFoundError.js +3 -0
  863. package/error/RepositoryNotFoundError.js.map +1 -1
  864. package/error/RepositoryNotTreeError.d.ts +2 -2
  865. package/error/RepositoryNotTreeError.js +9 -6
  866. package/error/RepositoryNotTreeError.js.map +1 -1
  867. package/find-options/FindOneOptions.d.ts +4 -0
  868. package/find-options/FindOneOptions.js.map +1 -1
  869. package/find-options/FindOperator.d.ts +26 -4
  870. package/find-options/FindOperator.js +49 -50
  871. package/find-options/FindOperator.js.map +1 -1
  872. package/find-options/FindOperatorType.d.ts +1 -1
  873. package/find-options/FindOperatorType.js.map +1 -1
  874. package/find-options/FindOptionsUtils.d.ts +2 -2
  875. package/find-options/FindOptionsUtils.js +5 -1
  876. package/find-options/FindOptionsUtils.js.map +1 -1
  877. package/find-options/operator/Any.d.ts +1 -1
  878. package/find-options/operator/Any.js.map +1 -1
  879. package/find-options/operator/Between.d.ts +1 -1
  880. package/find-options/operator/Between.js.map +1 -1
  881. package/find-options/operator/ILike.d.ts +6 -0
  882. package/find-options/operator/ILike.js +13 -0
  883. package/find-options/operator/ILike.js.map +1 -0
  884. package/find-options/operator/In.d.ts +1 -1
  885. package/find-options/operator/In.js.map +1 -1
  886. package/find-options/operator/Raw.d.ts +14 -2
  887. package/find-options/operator/Raw.js +5 -6
  888. package/find-options/operator/Raw.js.map +1 -1
  889. package/index.d.ts +10 -11
  890. package/index.js +2 -14
  891. package/index.js.map +1 -1
  892. package/logger/DebugLogger.d.ts +0 -1
  893. package/logger/DebugLogger.js +10 -9
  894. package/logger/DebugLogger.js.map +1 -1
  895. package/logger/FileLogger.d.ts +3 -1
  896. package/logger/FileLogger.js +10 -3
  897. package/logger/FileLogger.js.map +1 -1
  898. package/logger/Logger.d.ts +1 -1
  899. package/logger/Logger.js.map +1 -1
  900. package/logger/LoggerOptions.d.ts +9 -0
  901. package/logger/LoggerOptions.js.map +1 -1
  902. package/metadata/ColumnMetadata.js +24 -14
  903. package/metadata/ColumnMetadata.js.map +1 -1
  904. package/metadata/EntityMetadata.d.ts +1 -0
  905. package/metadata/EntityMetadata.js +11 -3
  906. package/metadata/EntityMetadata.js.map +1 -1
  907. package/metadata/RelationMetadata.js +2 -2
  908. package/metadata/RelationMetadata.js.map +1 -1
  909. package/metadata/types/EventListenerTypes.d.ts +7 -7
  910. package/metadata/types/EventListenerTypes.js.map +1 -1
  911. package/metadata-args/EntityRepositoryMetadataArgs.d.ts +2 -2
  912. package/metadata-args/EntityRepositoryMetadataArgs.js.map +1 -1
  913. package/metadata-args/RelationCountMetadataArgs.js.map +1 -1
  914. package/metadata-args/RelationIdMetadataArgs.js.map +1 -1
  915. package/metadata-builder/EntityMetadataBuilder.js +15 -9
  916. package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  917. package/metadata-builder/EntityMetadataValidator.js +8 -5
  918. package/metadata-builder/EntityMetadataValidator.js.map +1 -1
  919. package/metadata-builder/JunctionEntityMetadataBuilder.js +1 -0
  920. package/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  921. package/migration/MigrationExecutor.js +103 -74
  922. package/migration/MigrationExecutor.js.map +1 -1
  923. package/package.json +72 -51
  924. package/persistence/EntityPersistExecutor.js +61 -43
  925. package/persistence/EntityPersistExecutor.js.map +1 -1
  926. package/persistence/Subject.js +2 -1
  927. package/persistence/Subject.js.map +1 -1
  928. package/persistence/SubjectDatabaseEntityLoader.js +2 -1
  929. package/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  930. package/persistence/SubjectExecutor.js +244 -187
  931. package/persistence/SubjectExecutor.js.map +1 -1
  932. package/persistence/tree/MaterializedPathSubjectExecutor.js +2 -1
  933. package/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
  934. package/platform/PlatformTools.d.ts +7 -1
  935. package/platform/PlatformTools.js +42 -41
  936. package/platform/PlatformTools.js.map +1 -1
  937. package/query-builder/Alias.js.map +1 -1
  938. package/query-builder/DeleteQueryBuilder.d.ts +2 -3
  939. package/query-builder/DeleteQueryBuilder.js +7 -1
  940. package/query-builder/DeleteQueryBuilder.js.map +1 -1
  941. package/query-builder/InsertQueryBuilder.d.ts +2 -3
  942. package/query-builder/InsertQueryBuilder.js +44 -11
  943. package/query-builder/InsertQueryBuilder.js.map +1 -1
  944. package/query-builder/QueryBuilder.d.ts +18 -15
  945. package/query-builder/QueryBuilder.js +198 -48
  946. package/query-builder/QueryBuilder.js.map +1 -1
  947. package/query-builder/QueryExpressionMap.d.ts +4 -0
  948. package/query-builder/QueryExpressionMap.js.map +1 -1
  949. package/query-builder/QueryPartialEntity.d.ts +1 -1
  950. package/query-builder/QueryPartialEntity.js.map +1 -1
  951. package/query-builder/ReturningResultsEntityUpdator.js +23 -24
  952. package/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
  953. package/query-builder/SelectQueryBuilder.d.ts +8 -3
  954. package/query-builder/SelectQueryBuilder.js +80 -32
  955. package/query-builder/SelectQueryBuilder.js.map +1 -1
  956. package/query-builder/SoftDeleteQueryBuilder.d.ts +2 -3
  957. package/query-builder/SoftDeleteQueryBuilder.js +1 -1
  958. package/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  959. package/query-builder/UpdateQueryBuilder.js +8 -2
  960. package/query-builder/UpdateQueryBuilder.js.map +1 -1
  961. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js +6 -3
  962. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  963. package/query-runner/BaseQueryRunner.d.ts +2 -5
  964. package/query-runner/BaseQueryRunner.js +90 -40
  965. package/query-runner/BaseQueryRunner.js.map +1 -1
  966. package/query-runner/QueryRunner.d.ts +1 -1
  967. package/query-runner/QueryRunner.js.map +1 -1
  968. package/repository/AbstractRepository.js.map +1 -1
  969. package/repository/BaseEntity.js +1 -1
  970. package/repository/BaseEntity.js.map +1 -1
  971. package/repository/MongoRepository.js.map +1 -1
  972. package/repository/Repository.js +1 -1
  973. package/repository/Repository.js.map +1 -1
  974. package/repository/TreeRepository.js +2 -2
  975. package/repository/TreeRepository.js.map +1 -1
  976. package/schema-builder/MongoSchemaBuilder.js +1 -1
  977. package/schema-builder/MongoSchemaBuilder.js.map +1 -1
  978. package/schema-builder/RdbmsSchemaBuilder.js +875 -319
  979. package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  980. package/schema-builder/options/TableIndexOptions.d.ts +1 -1
  981. package/schema-builder/options/TableIndexOptions.js.map +1 -1
  982. package/schema-builder/view/View.d.ts +1 -2
  983. package/schema-builder/view/View.js.map +1 -1
  984. package/subscriber/Broadcaster.d.ts +24 -0
  985. package/subscriber/Broadcaster.js +120 -0
  986. package/subscriber/Broadcaster.js.map +1 -1
  987. package/subscriber/EntitySubscriberInterface.d.ts +27 -0
  988. package/subscriber/EntitySubscriberInterface.js.map +1 -1
  989. package/subscriber/event/TransactionCommitEvent.d.ts +22 -0
  990. package/subscriber/event/TransactionCommitEvent.js +4 -0
  991. package/subscriber/event/TransactionCommitEvent.js.map +1 -0
  992. package/subscriber/event/TransactionRollbackEvent.d.ts +22 -0
  993. package/subscriber/event/TransactionRollbackEvent.js +4 -0
  994. package/subscriber/event/TransactionRollbackEvent.js.map +1 -0
  995. package/subscriber/event/TransactionStartEvent.d.ts +22 -0
  996. package/subscriber/event/TransactionStartEvent.js +4 -0
  997. package/subscriber/event/TransactionStartEvent.js.map +1 -0
  998. package/typeorm-class-transformer-shim.js +16 -2
  999. package/typeorm-model-shim.js +146 -111
  1000. package/util/ApplyValueTransformers.js.map +1 -1
  1001. package/util/DateUtils.js +1 -7
  1002. package/util/DateUtils.js.map +1 -1
  1003. package/util/DirectoryExportedClassesLoader.js +7 -5
  1004. package/util/DirectoryExportedClassesLoader.js.map +1 -1
  1005. package/util/ObjectUtils.js +2 -2
  1006. package/util/ObjectUtils.js.map +1 -1
  1007. package/util/OrmUtils.js +3 -6
  1008. package/util/OrmUtils.js.map +1 -1
  1009. package/browser/util/PromiseUtils.d.ts +0 -24
  1010. package/browser/util/PromiseUtils.js +0 -62
  1011. package/browser/util/PromiseUtils.js.map +0 -1
  1012. package/util/PromiseUtils.d.ts +0 -24
  1013. package/util/PromiseUtils.js +0 -64
  1014. package/util/PromiseUtils.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import * as tslib_1 from "tslib";
1
+ import { __values } from "tslib";
2
2
  var ObjectUtils = /** @class */ (function () {
3
3
  function ObjectUtils() {
4
4
  }
@@ -9,16 +9,16 @@ var ObjectUtils = /** @class */ (function () {
9
9
  * @param sources One or more source objects from which to copy properties
10
10
  */
11
11
  ObjectUtils.assign = function (target) {
12
+ var e_1, _a, e_2, _b;
12
13
  var sources = [];
13
14
  for (var _i = 1; _i < arguments.length; _i++) {
14
15
  sources[_i - 1] = arguments[_i];
15
16
  }
16
- var e_1, _a, e_2, _b;
17
17
  try {
18
- for (var sources_1 = tslib_1.__values(sources), sources_1_1 = sources_1.next(); !sources_1_1.done; sources_1_1 = sources_1.next()) {
18
+ for (var sources_1 = __values(sources), sources_1_1 = sources_1.next(); !sources_1_1.done; sources_1_1 = sources_1.next()) {
19
19
  var source = sources_1_1.value;
20
20
  try {
21
- for (var _c = tslib_1.__values(Object.getOwnPropertyNames(source)), _d = _c.next(); !_d.done; _d = _c.next()) {
21
+ for (var _c = (e_2 = void 0, __values(Object.getOwnPropertyNames(source))), _d = _c.next(); !_d.done; _d = _c.next()) {
22
22
  var prop = _d.value;
23
23
  target[prop] = source[prop];
24
24
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/util/ObjectUtils.ts"],"names":[],"mappings":";AAAA;IAAA;IAyCA,CAAC;IAbC;;;;;OAKG;IACI,kBAAM,GAAb,UAAc,MAAc;QAAE,iBAAiB;aAAjB,UAAiB,EAAjB,qBAAiB,EAAjB,IAAiB;YAAjB,gCAAiB;;;;YAC7C,KAAqB,IAAA,YAAA,iBAAA,OAAO,CAAA,gCAAA,qDAAE;gBAAzB,IAAM,MAAM,oBAAA;;oBACf,KAAmB,IAAA,KAAA,iBAAA,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAA,gBAAA,4BAAE;wBAAlD,IAAM,IAAI,WAAA;wBACV,MAAc,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;qBACxC;;;;;;;;;aACF;;;;;;;;;IACH,CAAC;IACH,kBAAC;AAAD,CAzCA,AAyCC,IAAA","file":"ObjectUtils.js","sourcesContent":["export class ObjectUtils {\n /**\n * Copy the values of all of the enumerable own properties from one or more source objects to a\n * target object. Returns the target object.\n * @param target The target object to copy to.\n * @param source The source object from which to copy properties.\n */\n static assign<T, U>(target: T, source: U): T & U;\n\n /**\n * Copy the values of all of the enumerable own properties from one or more source objects to a\n * target object. Returns the target object.\n * @param target The target object to copy to.\n * @param source1 The first source object from which to copy properties.\n * @param source2 The second source object from which to copy properties.\n */\n static assign<T, U, V>(target: T, source1: U, source2: V): T & U & V;\n\n /**\n * Copy the values of all of the enumerable own properties from one or more source objects to a\n * target object. Returns the target object.\n * @param target The target object to copy to.\n * @param source1 The first source object from which to copy properties.\n * @param source2 The second source object from which to copy properties.\n * @param source3 The third source object from which to copy properties.\n */\n static assign<T, U, V, W>(target: T, source1: U, source2: V, source3: W): T & U & V & W;\n\n /**\n * Copy the values of all of the enumerable own properties from one or more source objects to a\n * target object. Returns the target object.\n * @param target The target object to copy to.\n * @param sources One or more source objects from which to copy properties\n */\n static assign(target: object, ...sources: any[]): any {\n for (const source of sources) {\n for (const prop of Object.getOwnPropertyNames(source)) {\n (target as any)[prop] = source[prop];\n }\n }\n }\n}"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../browser/src/util/ObjectUtils.ts"],"names":[],"mappings":";AAAA;IAAA;IAyCA,CAAC;IAbC;;;;;OAKG;IACI,kBAAM,GAAb,UAAc,MAAc;;QAAE,iBAAiB;aAAjB,UAAiB,EAAjB,qBAAiB,EAAjB,IAAiB;YAAjB,gCAAiB;;;YAC7C,KAAqB,IAAA,YAAA,SAAA,OAAO,CAAA,gCAAA,qDAAE;gBAAzB,IAAM,MAAM,oBAAA;;oBACf,KAAmB,IAAA,oBAAA,SAAA,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAA,CAAA,gBAAA,4BAAE;wBAAlD,IAAM,IAAI,WAAA;wBACV,MAAc,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;qBACxC;;;;;;;;;aACF;;;;;;;;;IACH,CAAC;IACH,kBAAC;AAAD,CAzCA,AAyCC,IAAA","file":"ObjectUtils.js","sourcesContent":["export class ObjectUtils {\n /**\n * Copy the values of all of the enumerable own properties from one or more source objects to a\n * target object. Returns the target object.\n * @param target The target object to copy to.\n * @param source The source object from which to copy properties.\n */\n static assign<T, U>(target: T, source: U): T & U;\n\n /**\n * Copy the values of all of the enumerable own properties from one or more source objects to a\n * target object. Returns the target object.\n * @param target The target object to copy to.\n * @param source1 The first source object from which to copy properties.\n * @param source2 The second source object from which to copy properties.\n */\n static assign<T, U, V>(target: T, source1: U, source2: V): T & U & V;\n\n /**\n * Copy the values of all of the enumerable own properties from one or more source objects to a\n * target object. Returns the target object.\n * @param target The target object to copy to.\n * @param source1 The first source object from which to copy properties.\n * @param source2 The second source object from which to copy properties.\n * @param source3 The third source object from which to copy properties.\n */\n static assign<T, U, V, W>(target: T, source1: U, source2: V, source3: W): T & U & V & W;\n\n /**\n * Copy the values of all of the enumerable own properties from one or more source objects to a\n * target object. Returns the target object.\n * @param target The target object to copy to.\n * @param sources One or more source objects from which to copy properties\n */\n static assign(target: object, ...sources: any[]): any {\n for (const source of sources) {\n for (const prop of Object.getOwnPropertyNames(source)) {\n (target as any)[prop] = source[prop];\n }\n }\n }\n}"],"sourceRoot":".."}
@@ -1,5 +1,4 @@
1
- import * as tslib_1 from "tslib";
2
- import { URL } from "url";
1
+ import { __read, __spread } from "tslib";
3
2
  var OrmUtils = /** @class */ (function () {
4
3
  function OrmUtils() {
5
4
  }
@@ -59,11 +58,11 @@ var OrmUtils = /** @class */ (function () {
59
58
  * @see http://stackoverflow.com/a/34749873
60
59
  */
61
60
  OrmUtils.mergeDeep = function (target) {
61
+ var _a, _b;
62
62
  var sources = [];
63
63
  for (var _i = 1; _i < arguments.length; _i++) {
64
64
  sources[_i - 1] = arguments[_i];
65
65
  }
66
- var _a, _b;
67
66
  if (!sources.length)
68
67
  return target;
69
68
  var source = sources.shift();
@@ -77,8 +76,7 @@ var OrmUtils = /** @class */ (function () {
77
76
  && !(value instanceof Set)
78
77
  && !(value instanceof Date)
79
78
  && !(value instanceof Buffer)
80
- && !(value instanceof RegExp)
81
- && !(value instanceof URL)) {
79
+ && !(value instanceof RegExp)) {
82
80
  if (!target[key])
83
81
  Object.assign(target, (_a = {}, _a[key] = Object.create(Object.getPrototypeOf(value)), _a));
84
82
  this.mergeDeep(target[key], value);
@@ -88,7 +86,7 @@ var OrmUtils = /** @class */ (function () {
88
86
  }
89
87
  }
90
88
  }
91
- return this.mergeDeep.apply(this, tslib_1.__spread([target], sources));
89
+ return this.mergeDeep.apply(this, __spread([target], sources));
92
90
  };
93
91
  /**
94
92
  * Deep compare objects.
@@ -189,8 +187,7 @@ var OrmUtils = /** @class */ (function () {
189
187
  (x instanceof Date && y instanceof Date) ||
190
188
  (x instanceof RegExp && y instanceof RegExp) ||
191
189
  (x instanceof String && y instanceof String) ||
192
- (x instanceof Number && y instanceof Number) ||
193
- (x instanceof URL && y instanceof URL))
190
+ (x instanceof Number && y instanceof Number))
194
191
  return x.toString() === y.toString();
195
192
  // At last checking prototypes as good as we can
196
193
  if (!(x instanceof Object && y instanceof Object))
@@ -1 +1 @@
1
- {"version":3,"sources":["../browser/src/util/OrmUtils.ts"],"names":[],"mappings":"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","file":"OrmUtils.js","sourcesContent":["import { ObjectLiteral } from \"../common/ObjectLiteral\";\nimport { URL } from \"url\";\n\nexport class OrmUtils {\n\n // -------------------------------------------------------------------------\n // Public methods\n // -------------------------------------------------------------------------\n\n /**\n * Chunks array into peaces.\n */\n static chunk<T>(array: T[], size: number): T[][] {\n return Array.from(Array(Math.ceil(array.length / size)), (_, i) => {\n return array.slice(i * size, i * size + size);\n });\n }\n\n static splitClassesAndStrings<T>(clsesAndStrings: (string | T)[]): [T[], string[]] {\n return [\n (clsesAndStrings).filter((cls): cls is T => typeof cls !== \"string\"),\n (clsesAndStrings).filter((str): str is string => typeof str === \"string\"),\n ];\n }\n\n static groupBy<T, R>(array: T[], propertyCallback: (item: T) => R): { id: R, items: T[] }[] {\n return array.reduce((groupedArray, value) => {\n const key = propertyCallback(value);\n let grouped = groupedArray.find(i => i.id === key);\n if (!grouped) {\n grouped = { id: key, items: [] };\n groupedArray.push(grouped);\n }\n grouped.items.push(value);\n return groupedArray;\n }, [] as Array<{ id: R, items: T[] }>);\n }\n\n static uniq<T>(array: T[], criteria?: (item: T) => any): T[];\n static uniq<T, K extends keyof T>(array: T[], property: K): T[];\n static uniq<T, K extends keyof T>(array: T[], criteriaOrProperty?: ((item: T) => any) | K): T[] {\n return array.reduce((uniqueArray, item) => {\n let found: boolean = false;\n if (criteriaOrProperty instanceof Function) {\n const itemValue = criteriaOrProperty(item);\n found = !!uniqueArray.find(uniqueItem => criteriaOrProperty(uniqueItem) === itemValue);\n\n } else if (typeof criteriaOrProperty === \"string\") {\n found = !!uniqueArray.find(uniqueItem => uniqueItem[criteriaOrProperty] === item[criteriaOrProperty]);\n\n } else {\n found = uniqueArray.indexOf(item) !== -1;\n }\n\n if (!found)\n uniqueArray.push(item);\n\n return uniqueArray;\n }, [] as T[]);\n }\n\n static isObject(item: any) {\n return (item && typeof item === \"object\" && !Array.isArray(item));\n }\n\n /**\n * Deep Object.assign.\n *\n * @see http://stackoverflow.com/a/34749873\n */\n static mergeDeep(target: any, ...sources: any[]): any {\n if (!sources.length) return target;\n const source = sources.shift();\n\n if (this.isObject(target) && this.isObject(source)) {\n for (const key in source) {\n const value = source[key];\n if (key === \"__proto__\" || value instanceof Promise)\n continue;\n\n if (this.isObject(value)\n && !(value instanceof Map)\n && !(value instanceof Set)\n && !(value instanceof Date)\n && !(value instanceof Buffer)\n && !(value instanceof RegExp)\n && !(value instanceof URL)) {\n if (!target[key])\n Object.assign(target, { [key]: Object.create(Object.getPrototypeOf(value)) });\n this.mergeDeep(target[key], value);\n } else {\n Object.assign(target, { [key]: value });\n }\n }\n }\n\n return this.mergeDeep(target, ...sources);\n }\n\n /**\n * Deep compare objects.\n *\n * @see http://stackoverflow.com/a/1144249\n */\n static deepCompare(...args: any[]): boolean {\n let i: any, l: any, leftChain: any, rightChain: any;\n\n if (arguments.length < 1) {\n return true; // Die silently? Don't know how to handle such case, please help...\n // throw \"Need two or more arguments to compare\";\n }\n\n for (i = 1, l = arguments.length; i < l; i++) {\n\n leftChain = []; // Todo: this can be cached\n rightChain = [];\n\n if (!this.compare2Objects(leftChain, rightChain, arguments[0], arguments[i])) {\n return false;\n }\n }\n\n return true;\n }\n\n /**\n * Check if two entity-id-maps are the same\n */\n static compareIds(firstId: ObjectLiteral|undefined, secondId: ObjectLiteral|undefined): boolean {\n if (firstId === undefined || firstId === null || secondId === undefined || secondId === null)\n return false;\n\n // Optimized version for the common case\n if (\n ((typeof firstId.id === \"string\" && typeof secondId.id === \"string\") ||\n (typeof firstId.id === \"number\" && typeof secondId.id === \"number\")) &&\n Object.keys(firstId).length === 1 &&\n Object.keys(secondId).length === 1\n ) {\n return firstId.id === secondId.id;\n }\n\n return OrmUtils.deepCompare(firstId, secondId);\n }\n\n /**\n * Transforms given value into boolean value.\n */\n static toBoolean(value: any): boolean {\n if (typeof value === \"boolean\")\n return value;\n\n if (typeof value === \"string\")\n return value === \"true\" || value === \"1\";\n\n if (typeof value === \"number\")\n return value > 0;\n\n return false;\n }\n\n /**\n * Composes an object from the given array of keys and values.\n */\n static zipObject(keys: any[], values: any[]): ObjectLiteral {\n return keys.reduce((object, column, index) => {\n object[column] = values[index];\n return object;\n }, {} as ObjectLiteral);\n }\n\n /**\n * Compares two arrays.\n */\n static isArraysEqual(arr1: any[], arr2: any[]): boolean {\n if (arr1.length !== arr2.length) return false;\n return arr1.every(element => {\n return arr2.indexOf(element) !== -1;\n });\n }\n\n // -------------------------------------------------------------------------\n // Private methods\n // -------------------------------------------------------------------------\n\n private static compare2Objects(leftChain: any, rightChain: any, x: any, y: any) {\n let p;\n\n // remember that NaN === NaN returns false\n // and isNaN(undefined) returns true\n if (Number.isNaN(x) && Number.isNaN(y))\n return true;\n\n // Compare primitives and functions.\n // Check if both arguments link to the same object.\n // Especially useful on the step where we compare prototypes\n if (x === y)\n return true;\n\n // Unequal, but either is null or undefined (use case: jsonb comparasion)\n // PR #3776, todo: add tests\n if (x === null || y === null || x === undefined || y === undefined)\n return false;\n\n // Fix the buffer compare bug.\n // See: https://github.com/typeorm/typeorm/issues/3654\n if ((typeof x.equals === \"function\" || x.equals instanceof Function) && x.equals(y))\n return true;\n\n // Works in case when functions are created in constructor.\n // Comparing dates is a common scenario. Another built-ins?\n // We can even handle functions passed across iframes\n if ((typeof x === \"function\" && typeof y === \"function\") ||\n (x instanceof Date && y instanceof Date) ||\n (x instanceof RegExp && y instanceof RegExp) ||\n (x instanceof String && y instanceof String) ||\n (x instanceof Number && y instanceof Number) ||\n (x instanceof URL && y instanceof URL))\n return x.toString() === y.toString();\n\n // At last checking prototypes as good as we can\n if (!(x instanceof Object && y instanceof Object))\n return false;\n\n if (x.isPrototypeOf(y) || y.isPrototypeOf(x))\n return false;\n\n if (x.constructor !== y.constructor)\n return false;\n\n if (x.prototype !== y.prototype)\n return false;\n\n // Check for infinitive linking loops\n if (leftChain.indexOf(x) > -1 || rightChain.indexOf(y) > -1)\n return false;\n\n // Quick checking of one object being a subset of another.\n // todo: cache the structure of arguments[0] for performance\n for (p in y) {\n if (y.hasOwnProperty(p) !== x.hasOwnProperty(p)) {\n return false;\n }\n else if (typeof y[p] !== typeof x[p]) {\n return false;\n }\n }\n\n for (p in x) {\n if (y.hasOwnProperty(p) !== x.hasOwnProperty(p)) {\n return false;\n }\n else if (typeof y[p] !== typeof x[p]) {\n return false;\n }\n\n switch (typeof (x[p])) {\n case \"object\":\n case \"function\":\n\n leftChain.push(x);\n rightChain.push(y);\n\n if (!this.compare2Objects(leftChain, rightChain, x[p], y[p])) {\n return false;\n }\n\n leftChain.pop();\n rightChain.pop();\n break;\n\n default:\n if (x[p] !== y[p]) {\n return false;\n }\n break;\n }\n }\n\n return true;\n }\n\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../browser/src/util/OrmUtils.ts"],"names":[],"mappings":"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","file":"OrmUtils.js","sourcesContent":["import {ObjectLiteral} from \"../common/ObjectLiteral\";\n\nexport class OrmUtils {\n\n // -------------------------------------------------------------------------\n // Public methods\n // -------------------------------------------------------------------------\n\n /**\n * Chunks array into peaces.\n */\n static chunk<T>(array: T[], size: number): T[][] {\n return Array.from(Array(Math.ceil(array.length / size)), (_, i) => {\n return array.slice(i * size, i * size + size);\n });\n }\n\n static splitClassesAndStrings<T>(clsesAndStrings: (string | T)[]): [T[], string[]] {\n return [\n (clsesAndStrings).filter((cls): cls is T => typeof cls !== \"string\"),\n (clsesAndStrings).filter((str): str is string => typeof str === \"string\"),\n ];\n }\n\n static groupBy<T, R>(array: T[], propertyCallback: (item: T) => R): { id: R, items: T[] }[] {\n return array.reduce((groupedArray, value) => {\n const key = propertyCallback(value);\n let grouped = groupedArray.find(i => i.id === key);\n if (!grouped) {\n grouped = { id: key, items: [] };\n groupedArray.push(grouped);\n }\n grouped.items.push(value);\n return groupedArray;\n }, [] as Array<{ id: R, items: T[] }>);\n }\n\n static uniq<T>(array: T[], criteria?: (item: T) => any): T[];\n static uniq<T, K extends keyof T>(array: T[], property: K): T[];\n static uniq<T, K extends keyof T>(array: T[], criteriaOrProperty?: ((item: T) => any) | K): T[] {\n return array.reduce((uniqueArray, item) => {\n let found: boolean = false;\n if (criteriaOrProperty instanceof Function) {\n const itemValue = criteriaOrProperty(item);\n found = !!uniqueArray.find(uniqueItem => criteriaOrProperty(uniqueItem) === itemValue);\n\n } else if (typeof criteriaOrProperty === \"string\") {\n found = !!uniqueArray.find(uniqueItem => uniqueItem[criteriaOrProperty] === item[criteriaOrProperty]);\n\n } else {\n found = uniqueArray.indexOf(item) !== -1;\n }\n\n if (!found)\n uniqueArray.push(item);\n\n return uniqueArray;\n }, [] as T[]);\n }\n\n static isObject(item: any) {\n return (item && typeof item === \"object\" && !Array.isArray(item));\n }\n\n /**\n * Deep Object.assign.\n *\n * @see http://stackoverflow.com/a/34749873\n */\n static mergeDeep(target: any, ...sources: any[]): any {\n if (!sources.length) return target;\n const source = sources.shift();\n\n if (this.isObject(target) && this.isObject(source)) {\n for (const key in source) {\n const value = source[key];\n if (key === \"__proto__\" || value instanceof Promise)\n continue;\n\n if (this.isObject(value)\n && !(value instanceof Map)\n && !(value instanceof Set)\n && !(value instanceof Date)\n && !(value instanceof Buffer)\n && !(value instanceof RegExp)) {\n if (!target[key])\n Object.assign(target, { [key]: Object.create(Object.getPrototypeOf(value)) });\n this.mergeDeep(target[key], value);\n } else {\n Object.assign(target, { [key]: value });\n }\n }\n }\n\n return this.mergeDeep(target, ...sources);\n }\n\n /**\n * Deep compare objects.\n *\n * @see http://stackoverflow.com/a/1144249\n */\n static deepCompare(...args: any[]): boolean {\n let i: any, l: any, leftChain: any, rightChain: any;\n\n if (arguments.length < 1) {\n return true; // Die silently? Don't know how to handle such case, please help...\n // throw \"Need two or more arguments to compare\";\n }\n\n for (i = 1, l = arguments.length; i < l; i++) {\n\n leftChain = []; // Todo: this can be cached\n rightChain = [];\n\n if (!this.compare2Objects(leftChain, rightChain, arguments[0], arguments[i])) {\n return false;\n }\n }\n\n return true;\n }\n\n /**\n * Check if two entity-id-maps are the same\n */\n static compareIds(firstId: ObjectLiteral|undefined, secondId: ObjectLiteral|undefined): boolean {\n if (firstId === undefined || firstId === null || secondId === undefined || secondId === null)\n return false;\n\n // Optimized version for the common case\n if (\n ((typeof firstId.id === \"string\" && typeof secondId.id === \"string\") ||\n (typeof firstId.id === \"number\" && typeof secondId.id === \"number\")) &&\n Object.keys(firstId).length === 1 &&\n Object.keys(secondId).length === 1\n ) {\n return firstId.id === secondId.id;\n }\n\n return OrmUtils.deepCompare(firstId, secondId);\n }\n\n /**\n * Transforms given value into boolean value.\n */\n static toBoolean(value: any): boolean {\n if (typeof value === \"boolean\")\n return value;\n\n if (typeof value === \"string\")\n return value === \"true\" || value === \"1\";\n\n if (typeof value === \"number\")\n return value > 0;\n\n return false;\n }\n\n /**\n * Composes an object from the given array of keys and values.\n */\n static zipObject(keys: any[], values: any[]): ObjectLiteral {\n return keys.reduce((object, column, index) => {\n object[column] = values[index];\n return object;\n }, {} as ObjectLiteral);\n }\n\n /**\n * Compares two arrays.\n */\n static isArraysEqual(arr1: any[], arr2: any[]): boolean {\n if (arr1.length !== arr2.length) return false;\n return arr1.every(element => {\n return arr2.indexOf(element) !== -1;\n });\n }\n\n // -------------------------------------------------------------------------\n // Private methods\n // -------------------------------------------------------------------------\n\n private static compare2Objects(leftChain: any, rightChain: any, x: any, y: any) {\n let p;\n\n // remember that NaN === NaN returns false\n // and isNaN(undefined) returns true\n if (Number.isNaN(x) && Number.isNaN(y))\n return true;\n\n // Compare primitives and functions.\n // Check if both arguments link to the same object.\n // Especially useful on the step where we compare prototypes\n if (x === y)\n return true;\n\n // Unequal, but either is null or undefined (use case: jsonb comparasion)\n // PR #3776, todo: add tests\n if (x === null || y === null || x === undefined || y === undefined)\n return false;\n\n // Fix the buffer compare bug.\n // See: https://github.com/typeorm/typeorm/issues/3654\n if ((typeof x.equals === \"function\" || x.equals instanceof Function) && x.equals(y))\n return true;\n\n // Works in case when functions are created in constructor.\n // Comparing dates is a common scenario. Another built-ins?\n // We can even handle functions passed across iframes\n if ((typeof x === \"function\" && typeof y === \"function\") ||\n (x instanceof Date && y instanceof Date) ||\n (x instanceof RegExp && y instanceof RegExp) ||\n (x instanceof String && y instanceof String) ||\n (x instanceof Number && y instanceof Number))\n return x.toString() === y.toString();\n\n // At last checking prototypes as good as we can\n if (!(x instanceof Object && y instanceof Object))\n return false;\n\n if (x.isPrototypeOf(y) || y.isPrototypeOf(x))\n return false;\n\n if (x.constructor !== y.constructor)\n return false;\n\n if (x.prototype !== y.prototype)\n return false;\n\n // Check for infinitive linking loops\n if (leftChain.indexOf(x) > -1 || rightChain.indexOf(y) > -1)\n return false;\n\n // Quick checking of one object being a subset of another.\n // todo: cache the structure of arguments[0] for performance\n for (p in y) {\n if (y.hasOwnProperty(p) !== x.hasOwnProperty(p)) {\n return false;\n }\n else if (typeof y[p] !== typeof x[p]) {\n return false;\n }\n }\n\n for (p in x) {\n if (y.hasOwnProperty(p) !== x.hasOwnProperty(p)) {\n return false;\n }\n else if (typeof y[p] !== typeof x[p]) {\n return false;\n }\n\n switch (typeof (x[p])) {\n case \"object\":\n case \"function\":\n\n leftChain.push(x);\n rightChain.push(y);\n\n if (!this.compare2Objects(leftChain, rightChain, x[p], y[p])) {\n return false;\n }\n\n leftChain.pop();\n rightChain.pop();\n break;\n\n default:\n if (x[p] !== y[p]) {\n return false;\n }\n break;\n }\n }\n\n return true;\n }\n\n}\n"],"sourceRoot":".."}
@@ -245,7 +245,7 @@ var DbQueryResultCache = /** @class */ (function () {
245
245
  DbQueryResultCache.prototype.getQueryRunner = function (queryRunner) {
246
246
  if (queryRunner)
247
247
  return queryRunner;
248
- return this.connection.createQueryRunner("master");
248
+ return this.connection.createQueryRunner();
249
249
  };
250
250
  return DbQueryResultCache;
251
251
  }());
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/cache/DbQueryResultCache.ts"],"names":[],"mappings":"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","file":"DbQueryResultCache.js","sourcesContent":["import {ObjectLiteral} from \"../common/ObjectLiteral\";\nimport {Connection} from \"../connection/Connection\";\nimport {OracleDriver} from \"../driver/oracle/OracleDriver\";\nimport {PostgresConnectionOptions} from \"../driver/postgres/PostgresConnectionOptions\";\nimport {MssqlParameter} from \"../driver/sqlserver/MssqlParameter\";\nimport {SqlServerConnectionOptions} from \"../driver/sqlserver/SqlServerConnectionOptions\";\nimport {SqlServerDriver} from \"../driver/sqlserver/SqlServerDriver\";\nimport {QueryRunner} from \"../query-runner/QueryRunner\";\nimport {Table} from \"../schema-builder/table/Table\";\nimport {QueryResultCache} from \"./QueryResultCache\";\nimport {QueryResultCacheOptions} from \"./QueryResultCacheOptions\";\n\n/**\n * Caches query result into current database, into separate table called \"query-result-cache\".\n */\nexport class DbQueryResultCache implements QueryResultCache {\n\n // -------------------------------------------------------------------------\n // Private properties\n // -------------------------------------------------------------------------\n\n private queryResultCacheTable: string;\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(protected connection: Connection) {\n\n const options = <SqlServerConnectionOptions|PostgresConnectionOptions>this.connection.driver.options;\n const cacheOptions = typeof this.connection.options.cache === \"object\" ? this.connection.options.cache : {};\n const cacheTableName = cacheOptions.tableName || \"query-result-cache\";\n\n this.queryResultCacheTable = this.connection.driver.buildTableName(cacheTableName, options.schema, options.database);\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates a connection with given cache provider.\n */\n async connect(): Promise<void> {\n }\n\n /**\n * Disconnects with given cache provider.\n */\n async disconnect(): Promise<void> {\n }\n\n /**\n * Creates table for storing cache if it does not exist yet.\n */\n async synchronize(queryRunner?: QueryRunner): Promise<void> {\n queryRunner = this.getQueryRunner(queryRunner);\n const driver = this.connection.driver;\n const tableExist = await queryRunner.hasTable(this.queryResultCacheTable); // todo: table name should be configurable\n if (tableExist)\n return;\n\n await queryRunner.createTable(new Table(\n {\n name: this.queryResultCacheTable,\n columns: [\n {\n name: \"id\",\n isPrimary: true,\n isNullable: false,\n type: driver.normalizeType({type: driver.mappedDataTypes.cacheId}),\n generationStrategy: \"increment\",\n isGenerated: true\n },\n {\n name: \"identifier\",\n type: driver.normalizeType({type: driver.mappedDataTypes.cacheIdentifier}),\n isNullable: true\n },\n {\n name: \"time\",\n type: driver.normalizeType({type: driver.mappedDataTypes.cacheTime}),\n isPrimary: false,\n isNullable: false\n },\n {\n name: \"duration\",\n type: driver.normalizeType({type: driver.mappedDataTypes.cacheDuration}),\n isPrimary: false,\n isNullable: false\n },\n {\n name: \"query\",\n type: driver.normalizeType({type: driver.mappedDataTypes.cacheQuery}),\n isPrimary: false,\n isNullable: false\n },\n {\n name: \"result\",\n type: driver.normalizeType({type: driver.mappedDataTypes.cacheResult}),\n isNullable: false\n },\n ]\n },\n ));\n }\n\n /**\n * Caches given query result.\n * Returns cache result if found.\n * Returns undefined if result is not cached.\n */\n getFromCache(options: QueryResultCacheOptions, queryRunner?: QueryRunner): Promise<QueryResultCacheOptions|undefined> {\n queryRunner = this.getQueryRunner(queryRunner);\n const qb = this.connection\n .createQueryBuilder(queryRunner)\n .select()\n .from(this.queryResultCacheTable, \"cache\");\n\n if (options.identifier) {\n return qb\n .where(`${qb.escape(\"cache\")}.${qb.escape(\"identifier\")} = :identifier`)\n .setParameters({ identifier: this.connection.driver instanceof SqlServerDriver ? new MssqlParameter(options.identifier, \"nvarchar\") : options.identifier })\n .getRawOne();\n\n } else if (options.query) {\n if (this.connection.driver instanceof OracleDriver) {\n return qb\n .where(`dbms_lob.compare(${qb.escape(\"cache\")}.${qb.escape(\"query\")}, :query) = 0`, { query: options.query })\n .getRawOne();\n }\n\n return qb\n .where(`${qb.escape(\"cache\")}.${qb.escape(\"query\")} = :query`)\n .setParameters({ query: this.connection.driver instanceof SqlServerDriver ? new MssqlParameter(options.query, \"nvarchar\") : options.query })\n .getRawOne();\n }\n\n return Promise.resolve(undefined);\n }\n\n /**\n * Checks if cache is expired or not.\n */\n isExpired(savedCache: QueryResultCacheOptions): boolean {\n const duration = typeof savedCache.duration === \"string\" ? parseInt(savedCache.duration) : savedCache.duration;\n return ((typeof savedCache.time === \"string\" ? parseInt(savedCache.time as any) : savedCache.time)! + duration) < new Date().getTime();\n }\n\n /**\n * Stores given query result in the cache.\n */\n async storeInCache(options: QueryResultCacheOptions, savedCache: QueryResultCacheOptions|undefined, queryRunner?: QueryRunner): Promise<void> {\n queryRunner = this.getQueryRunner(queryRunner);\n\n let insertedValues: ObjectLiteral = options;\n if (this.connection.driver instanceof SqlServerDriver) { // todo: bad abstraction, re-implement this part, probably better if we create an entity metadata for cache table\n insertedValues = {\n identifier: new MssqlParameter(options.identifier, \"nvarchar\"),\n time: new MssqlParameter(options.time, \"bigint\"),\n duration: new MssqlParameter(options.duration, \"int\"),\n query: new MssqlParameter(options.query, \"nvarchar\"),\n result: new MssqlParameter(options.result, \"nvarchar\"),\n };\n }\n\n if (savedCache && savedCache.identifier) { // if exist then update\n const qb = queryRunner.manager\n .createQueryBuilder()\n .update(this.queryResultCacheTable)\n .set(insertedValues);\n\n qb.where(`${qb.escape(\"identifier\")} = :condition`, { condition: insertedValues.identifier });\n await qb.execute();\n\n } else if (savedCache && savedCache.query) { // if exist then update\n const qb = queryRunner.manager\n .createQueryBuilder()\n .update(this.queryResultCacheTable)\n .set(insertedValues);\n\n if (this.connection.driver instanceof OracleDriver) {\n qb.where(`dbms_lob.compare(\"query\", :condition) = 0`, { condition: insertedValues.query });\n\n } else {\n qb.where(`${qb.escape(\"query\")} = :condition`, { condition: insertedValues.query });\n }\n\n await qb.execute();\n\n } else { // otherwise insert\n await queryRunner.manager\n .createQueryBuilder()\n .insert()\n .into(this.queryResultCacheTable)\n .values(insertedValues)\n .execute();\n }\n }\n\n /**\n * Clears everything stored in the cache.\n */\n async clear(queryRunner: QueryRunner): Promise<void> {\n return this.getQueryRunner(queryRunner).clearTable(this.queryResultCacheTable);\n }\n\n /**\n * Removes all cached results by given identifiers from cache.\n */\n async remove(identifiers: string[], queryRunner?: QueryRunner): Promise<void> {\n await Promise.all(identifiers.map(identifier => {\n const qb = this.getQueryRunner(queryRunner).manager.createQueryBuilder();\n return qb.delete()\n .from(this.queryResultCacheTable)\n .where(`${qb.escape(\"identifier\")} = :identifier`, {identifier})\n .execute();\n }));\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Gets a query runner to work with.\n */\n protected getQueryRunner(queryRunner: QueryRunner|undefined): QueryRunner {\n if (queryRunner)\n return queryRunner;\n\n return this.connection.createQueryRunner(\"master\");\n }\n\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../src/cache/DbQueryResultCache.ts"],"names":[],"mappings":"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","file":"DbQueryResultCache.js","sourcesContent":["import {ObjectLiteral} from \"../common/ObjectLiteral\";\nimport {Connection} from \"../connection/Connection\";\nimport {OracleDriver} from \"../driver/oracle/OracleDriver\";\nimport {PostgresConnectionOptions} from \"../driver/postgres/PostgresConnectionOptions\";\nimport {MssqlParameter} from \"../driver/sqlserver/MssqlParameter\";\nimport {SqlServerConnectionOptions} from \"../driver/sqlserver/SqlServerConnectionOptions\";\nimport {SqlServerDriver} from \"../driver/sqlserver/SqlServerDriver\";\nimport {QueryRunner} from \"../query-runner/QueryRunner\";\nimport {Table} from \"../schema-builder/table/Table\";\nimport {QueryResultCache} from \"./QueryResultCache\";\nimport {QueryResultCacheOptions} from \"./QueryResultCacheOptions\";\n\n/**\n * Caches query result into current database, into separate table called \"query-result-cache\".\n */\nexport class DbQueryResultCache implements QueryResultCache {\n\n // -------------------------------------------------------------------------\n // Private properties\n // -------------------------------------------------------------------------\n\n private queryResultCacheTable: string;\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(protected connection: Connection) {\n\n const options = <SqlServerConnectionOptions|PostgresConnectionOptions>this.connection.driver.options;\n const cacheOptions = typeof this.connection.options.cache === \"object\" ? this.connection.options.cache : {};\n const cacheTableName = cacheOptions.tableName || \"query-result-cache\";\n\n this.queryResultCacheTable = this.connection.driver.buildTableName(cacheTableName, options.schema, options.database);\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates a connection with given cache provider.\n */\n async connect(): Promise<void> {\n }\n\n /**\n * Disconnects with given cache provider.\n */\n async disconnect(): Promise<void> {\n }\n\n /**\n * Creates table for storing cache if it does not exist yet.\n */\n async synchronize(queryRunner?: QueryRunner): Promise<void> {\n queryRunner = this.getQueryRunner(queryRunner);\n const driver = this.connection.driver;\n const tableExist = await queryRunner.hasTable(this.queryResultCacheTable); // todo: table name should be configurable\n if (tableExist)\n return;\n\n await queryRunner.createTable(new Table(\n {\n name: this.queryResultCacheTable,\n columns: [\n {\n name: \"id\",\n isPrimary: true,\n isNullable: false,\n type: driver.normalizeType({type: driver.mappedDataTypes.cacheId}),\n generationStrategy: \"increment\",\n isGenerated: true\n },\n {\n name: \"identifier\",\n type: driver.normalizeType({type: driver.mappedDataTypes.cacheIdentifier}),\n isNullable: true\n },\n {\n name: \"time\",\n type: driver.normalizeType({type: driver.mappedDataTypes.cacheTime}),\n isPrimary: false,\n isNullable: false\n },\n {\n name: \"duration\",\n type: driver.normalizeType({type: driver.mappedDataTypes.cacheDuration}),\n isPrimary: false,\n isNullable: false\n },\n {\n name: \"query\",\n type: driver.normalizeType({type: driver.mappedDataTypes.cacheQuery}),\n isPrimary: false,\n isNullable: false\n },\n {\n name: \"result\",\n type: driver.normalizeType({type: driver.mappedDataTypes.cacheResult}),\n isNullable: false\n },\n ]\n },\n ));\n }\n\n /**\n * Caches given query result.\n * Returns cache result if found.\n * Returns undefined if result is not cached.\n */\n getFromCache(options: QueryResultCacheOptions, queryRunner?: QueryRunner): Promise<QueryResultCacheOptions|undefined> {\n queryRunner = this.getQueryRunner(queryRunner);\n const qb = this.connection\n .createQueryBuilder(queryRunner)\n .select()\n .from(this.queryResultCacheTable, \"cache\");\n\n if (options.identifier) {\n return qb\n .where(`${qb.escape(\"cache\")}.${qb.escape(\"identifier\")} = :identifier`)\n .setParameters({ identifier: this.connection.driver instanceof SqlServerDriver ? new MssqlParameter(options.identifier, \"nvarchar\") : options.identifier })\n .getRawOne();\n\n } else if (options.query) {\n if (this.connection.driver instanceof OracleDriver) {\n return qb\n .where(`dbms_lob.compare(${qb.escape(\"cache\")}.${qb.escape(\"query\")}, :query) = 0`, { query: options.query })\n .getRawOne();\n }\n\n return qb\n .where(`${qb.escape(\"cache\")}.${qb.escape(\"query\")} = :query`)\n .setParameters({ query: this.connection.driver instanceof SqlServerDriver ? new MssqlParameter(options.query, \"nvarchar\") : options.query })\n .getRawOne();\n }\n\n return Promise.resolve(undefined);\n }\n\n /**\n * Checks if cache is expired or not.\n */\n isExpired(savedCache: QueryResultCacheOptions): boolean {\n const duration = typeof savedCache.duration === \"string\" ? parseInt(savedCache.duration) : savedCache.duration;\n return ((typeof savedCache.time === \"string\" ? parseInt(savedCache.time as any) : savedCache.time)! + duration) < new Date().getTime();\n }\n\n /**\n * Stores given query result in the cache.\n */\n async storeInCache(options: QueryResultCacheOptions, savedCache: QueryResultCacheOptions|undefined, queryRunner?: QueryRunner): Promise<void> {\n queryRunner = this.getQueryRunner(queryRunner);\n\n let insertedValues: ObjectLiteral = options;\n if (this.connection.driver instanceof SqlServerDriver) { // todo: bad abstraction, re-implement this part, probably better if we create an entity metadata for cache table\n insertedValues = {\n identifier: new MssqlParameter(options.identifier, \"nvarchar\"),\n time: new MssqlParameter(options.time, \"bigint\"),\n duration: new MssqlParameter(options.duration, \"int\"),\n query: new MssqlParameter(options.query, \"nvarchar\"),\n result: new MssqlParameter(options.result, \"nvarchar\"),\n };\n }\n\n if (savedCache && savedCache.identifier) { // if exist then update\n const qb = queryRunner.manager\n .createQueryBuilder()\n .update(this.queryResultCacheTable)\n .set(insertedValues);\n\n qb.where(`${qb.escape(\"identifier\")} = :condition`, { condition: insertedValues.identifier });\n await qb.execute();\n\n } else if (savedCache && savedCache.query) { // if exist then update\n const qb = queryRunner.manager\n .createQueryBuilder()\n .update(this.queryResultCacheTable)\n .set(insertedValues);\n\n if (this.connection.driver instanceof OracleDriver) {\n qb.where(`dbms_lob.compare(\"query\", :condition) = 0`, { condition: insertedValues.query });\n\n } else {\n qb.where(`${qb.escape(\"query\")} = :condition`, { condition: insertedValues.query });\n }\n\n await qb.execute();\n\n } else { // otherwise insert\n await queryRunner.manager\n .createQueryBuilder()\n .insert()\n .into(this.queryResultCacheTable)\n .values(insertedValues)\n .execute();\n }\n }\n\n /**\n * Clears everything stored in the cache.\n */\n async clear(queryRunner: QueryRunner): Promise<void> {\n return this.getQueryRunner(queryRunner).clearTable(this.queryResultCacheTable);\n }\n\n /**\n * Removes all cached results by given identifiers from cache.\n */\n async remove(identifiers: string[], queryRunner?: QueryRunner): Promise<void> {\n await Promise.all(identifiers.map(identifier => {\n const qb = this.getQueryRunner(queryRunner).manager.createQueryBuilder();\n return qb.delete()\n .from(this.queryResultCacheTable)\n .where(`${qb.escape(\"identifier\")} = :identifier`, {identifier})\n .execute();\n }));\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Gets a query runner to work with.\n */\n protected getQueryRunner(queryRunner: QueryRunner|undefined): QueryRunner {\n if (queryRunner)\n return queryRunner;\n\n return this.connection.createQueryRunner();\n }\n\n}\n"],"sourceRoot":".."}
@@ -199,7 +199,12 @@ var RedisQueryResultCache = /** @class */ (function () {
199
199
  */
200
200
  RedisQueryResultCache.prototype.loadRedis = function () {
201
201
  try {
202
- return PlatformTools_1.PlatformTools.load(this.clientType);
202
+ if (this.clientType === "ioredis/cluster") {
203
+ return PlatformTools_1.PlatformTools.load("ioredis");
204
+ }
205
+ else {
206
+ return PlatformTools_1.PlatformTools.load(this.clientType);
207
+ }
203
208
  }
204
209
  catch (e) {
205
210
  throw new Error("Cannot use cache because " + this.clientType + " is not installed. Please run \"npm i " + this.clientType + " --save\".");
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/cache/RedisQueryResultCache.ts"],"names":[],"mappings":"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","file":"RedisQueryResultCache.js","sourcesContent":["import {QueryResultCache} from \"./QueryResultCache\";\nimport {QueryResultCacheOptions} from \"./QueryResultCacheOptions\";\nimport {PlatformTools} from \"../platform/PlatformTools\";\nimport {Connection} from \"../connection/Connection\";\nimport {QueryRunner} from \"../query-runner/QueryRunner\";\n\n/**\n * Caches query result into Redis database.\n */\nexport class RedisQueryResultCache implements QueryResultCache {\n\n // -------------------------------------------------------------------------\n // Protected Properties\n // -------------------------------------------------------------------------\n\n /**\n * Redis module instance loaded dynamically.\n */\n protected redis: any;\n\n /**\n * Connected redis client.\n */\n protected client: any;\n\n /**\n * Type of the Redis Client (redis or ioredis).\n */\n protected clientType: \"redis\" | \"ioredis\" | \"ioredis/cluster\";\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(protected connection: Connection, clientType: \"redis\" | \"ioredis\" | \"ioredis/cluster\") {\n this.clientType = clientType;\n this.redis = this.loadRedis();\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates a connection with given cache provider.\n */\n\n\n async connect(): Promise<void> {\n const cacheOptions: any = this.connection.options.cache;\n if (this.clientType === \"redis\") {\n if (cacheOptions && cacheOptions.options) {\n this.client = this.redis.createClient(cacheOptions.options);\n } else {\n this.client = this.redis.createClient();\n }\n } else if (this.clientType === \"ioredis\") {\n if (cacheOptions && cacheOptions.options) {\n this.client = new this.redis(cacheOptions.options);\n } else {\n this.client = new this.redis();\n }\n } else if (this.clientType === \"ioredis/cluster\") {\n if (cacheOptions && cacheOptions.options && Array.isArray(cacheOptions.options)) {\n this.client = new this.redis.Cluster(cacheOptions.options);\n } else if (cacheOptions && cacheOptions.options && cacheOptions.options.startupNodes) {\n this.client = new this.redis.Cluster(cacheOptions.options.startupNodes, cacheOptions.options.options);\n } else {\n throw new Error(`options.startupNodes required for ${this.clientType}.`);\n }\n }\n }\n\n /**\n * Disconnects the connection\n */\n async disconnect(): Promise<void> {\n return new Promise<void>((ok, fail) => {\n this.client.quit((err: any, result: any) => {\n if (err) return fail(err);\n ok();\n this.client = undefined;\n });\n });\n }\n\n /**\n * Creates table for storing cache if it does not exist yet.\n */\n async synchronize(queryRunner: QueryRunner): Promise<void> {\n }\n\n /**\n * Caches given query result.\n * Returns cache result if found.\n * Returns undefined if result is not cached.\n */\n getFromCache(options: QueryResultCacheOptions, queryRunner?: QueryRunner): Promise<QueryResultCacheOptions|undefined> {\n return new Promise<QueryResultCacheOptions|undefined>((ok, fail) => {\n\n if (options.identifier) {\n this.client.get(options.identifier, (err: any, result: any) => {\n if (err) return fail(err);\n ok(JSON.parse(result));\n });\n\n } else if (options.query) {\n this.client.get(options.query, (err: any, result: any) => {\n if (err) return fail(err);\n ok(JSON.parse(result));\n });\n\n } else {\n ok(undefined);\n }\n });\n }\n\n /**\n * Checks if cache is expired or not.\n */\n isExpired(savedCache: QueryResultCacheOptions): boolean {\n return (savedCache.time! + savedCache.duration) < new Date().getTime();\n }\n\n /**\n * Stores given query result in the cache.\n */\n async storeInCache(options: QueryResultCacheOptions, savedCache: QueryResultCacheOptions, queryRunner?: QueryRunner): Promise<void> {\n return new Promise<void>((ok, fail) => {\n if (options.identifier) {\n this.client.set(options.identifier, JSON.stringify(options), \"PX\", options.duration, (err: any, result: any) => {\n if (err) return fail(err);\n ok();\n });\n\n } else if (options.query) {\n this.client.set(options.query, JSON.stringify(options), \"PX\", options.duration, (err: any, result: any) => {\n if (err) return fail(err);\n ok();\n });\n }\n });\n }\n\n /**\n * Clears everything stored in the cache.\n */\n async clear(queryRunner?: QueryRunner): Promise<void> {\n return new Promise<void>((ok, fail) => {\n this.client.flushdb((err: any, result: any) => {\n if (err) return fail(err);\n ok();\n });\n });\n }\n\n /**\n * Removes all cached results by given identifiers from cache.\n */\n async remove(identifiers: string[], queryRunner?: QueryRunner): Promise<void> {\n await Promise.all(identifiers.map(identifier => {\n return this.deleteKey(identifier);\n }));\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Removes a single key from redis database.\n */\n protected deleteKey(key: string): Promise<void> {\n return new Promise<void>((ok, fail) => {\n this.client.del(key, (err: any, result: any) => {\n if (err) return fail(err);\n ok();\n });\n });\n }\n\n /**\n * Loads redis dependency.\n */\n protected loadRedis(): any {\n try {\n return PlatformTools.load(this.clientType);\n\n } catch (e) {\n throw new Error(`Cannot use cache because ${this.clientType} is not installed. Please run \"npm i ${this.clientType} --save\".`);\n }\n }\n\n\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../src/cache/RedisQueryResultCache.ts"],"names":[],"mappings":"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","file":"RedisQueryResultCache.js","sourcesContent":["import {QueryResultCache} from \"./QueryResultCache\";\nimport {QueryResultCacheOptions} from \"./QueryResultCacheOptions\";\nimport {PlatformTools} from \"../platform/PlatformTools\";\nimport {Connection} from \"../connection/Connection\";\nimport {QueryRunner} from \"../query-runner/QueryRunner\";\n\n/**\n * Caches query result into Redis database.\n */\nexport class RedisQueryResultCache implements QueryResultCache {\n\n // -------------------------------------------------------------------------\n // Protected Properties\n // -------------------------------------------------------------------------\n\n /**\n * Redis module instance loaded dynamically.\n */\n protected redis: any;\n\n /**\n * Connected redis client.\n */\n protected client: any;\n\n /**\n * Type of the Redis Client (redis or ioredis).\n */\n protected clientType: \"redis\" | \"ioredis\" | \"ioredis/cluster\";\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(protected connection: Connection, clientType: \"redis\" | \"ioredis\" | \"ioredis/cluster\") {\n this.clientType = clientType;\n this.redis = this.loadRedis();\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates a connection with given cache provider.\n */\n\n\n async connect(): Promise<void> {\n const cacheOptions: any = this.connection.options.cache;\n if (this.clientType === \"redis\") {\n if (cacheOptions && cacheOptions.options) {\n this.client = this.redis.createClient(cacheOptions.options);\n } else {\n this.client = this.redis.createClient();\n }\n } else if (this.clientType === \"ioredis\") {\n if (cacheOptions && cacheOptions.options) {\n this.client = new this.redis(cacheOptions.options);\n } else {\n this.client = new this.redis();\n }\n } else if (this.clientType === \"ioredis/cluster\") {\n if (cacheOptions && cacheOptions.options && Array.isArray(cacheOptions.options)) {\n this.client = new this.redis.Cluster(cacheOptions.options);\n } else if (cacheOptions && cacheOptions.options && cacheOptions.options.startupNodes) {\n this.client = new this.redis.Cluster(cacheOptions.options.startupNodes, cacheOptions.options.options);\n } else {\n throw new Error(`options.startupNodes required for ${this.clientType}.`);\n }\n }\n }\n\n /**\n * Disconnects the connection\n */\n async disconnect(): Promise<void> {\n return new Promise<void>((ok, fail) => {\n this.client.quit((err: any, result: any) => {\n if (err) return fail(err);\n ok();\n this.client = undefined;\n });\n });\n }\n\n /**\n * Creates table for storing cache if it does not exist yet.\n */\n async synchronize(queryRunner: QueryRunner): Promise<void> {\n }\n\n /**\n * Caches given query result.\n * Returns cache result if found.\n * Returns undefined if result is not cached.\n */\n getFromCache(options: QueryResultCacheOptions, queryRunner?: QueryRunner): Promise<QueryResultCacheOptions|undefined> {\n return new Promise<QueryResultCacheOptions|undefined>((ok, fail) => {\n\n if (options.identifier) {\n this.client.get(options.identifier, (err: any, result: any) => {\n if (err) return fail(err);\n ok(JSON.parse(result));\n });\n\n } else if (options.query) {\n this.client.get(options.query, (err: any, result: any) => {\n if (err) return fail(err);\n ok(JSON.parse(result));\n });\n\n } else {\n ok(undefined);\n }\n });\n }\n\n /**\n * Checks if cache is expired or not.\n */\n isExpired(savedCache: QueryResultCacheOptions): boolean {\n return (savedCache.time! + savedCache.duration) < new Date().getTime();\n }\n\n /**\n * Stores given query result in the cache.\n */\n async storeInCache(options: QueryResultCacheOptions, savedCache: QueryResultCacheOptions, queryRunner?: QueryRunner): Promise<void> {\n return new Promise<void>((ok, fail) => {\n if (options.identifier) {\n this.client.set(options.identifier, JSON.stringify(options), \"PX\", options.duration, (err: any, result: any) => {\n if (err) return fail(err);\n ok();\n });\n\n } else if (options.query) {\n this.client.set(options.query, JSON.stringify(options), \"PX\", options.duration, (err: any, result: any) => {\n if (err) return fail(err);\n ok();\n });\n }\n });\n }\n\n /**\n * Clears everything stored in the cache.\n */\n async clear(queryRunner?: QueryRunner): Promise<void> {\n return new Promise<void>((ok, fail) => {\n this.client.flushdb((err: any, result: any) => {\n if (err) return fail(err);\n ok();\n });\n });\n }\n\n /**\n * Removes all cached results by given identifiers from cache.\n */\n async remove(identifiers: string[], queryRunner?: QueryRunner): Promise<void> {\n await Promise.all(identifiers.map(identifier => {\n return this.deleteKey(identifier);\n }));\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Removes a single key from redis database.\n */\n protected deleteKey(key: string): Promise<void> {\n return new Promise<void>((ok, fail) => {\n this.client.del(key, (err: any, result: any) => {\n if (err) return fail(err);\n ok();\n });\n });\n }\n\n /**\n * Loads redis dependency.\n */\n protected loadRedis(): any {\n try {\n if (this.clientType === \"ioredis/cluster\") {\n return PlatformTools.load(\"ioredis\");\n } else {\n return PlatformTools.load(this.clientType);\n }\n } catch (e) {\n throw new Error(`Cannot use cache because ${this.clientType} is not installed. Please run \"npm i ${this.clientType} --save\".`);\n }\n }\n\n\n}\n"],"sourceRoot":".."}
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var tslib_1 = require("tslib");
4
4
  var index_1 = require("../index");
5
5
  var ConnectionOptionsReader_1 = require("../connection/ConnectionOptionsReader");
6
- var chalk = require("chalk");
6
+ var chalk_1 = tslib_1.__importDefault(require("chalk"));
7
7
  /**
8
8
  * Clear cache command.
9
9
  */
@@ -53,13 +53,13 @@ var CacheClearCommand = /** @class */ (function () {
53
53
  case 3:
54
54
  connection = _a.sent();
55
55
  if (!connection.queryResultCache) {
56
- console.log(chalk.black.bgRed("Cache is not enabled. To use cache enable it in connection configuration."));
56
+ console.log(chalk_1.default.black.bgRed("Cache is not enabled. To use cache enable it in connection configuration."));
57
57
  return [2 /*return*/];
58
58
  }
59
59
  return [4 /*yield*/, connection.queryResultCache.clear()];
60
60
  case 4:
61
61
  _a.sent();
62
- console.log(chalk.green("Cache was successfully cleared"));
62
+ console.log(chalk_1.default.green("Cache was successfully cleared"));
63
63
  if (!connection) return [3 /*break*/, 6];
64
64
  return [4 /*yield*/, connection.close()];
65
65
  case 5:
@@ -74,7 +74,7 @@ var CacheClearCommand = /** @class */ (function () {
74
74
  _a.sent();
75
75
  _a.label = 9;
76
76
  case 9:
77
- console.log(chalk.black.bgRed("Error during cache clear:"));
77
+ console.log(chalk_1.default.black.bgRed("Error during cache clear:"));
78
78
  console.error(err_1);
79
79
  process.exit(1);
80
80
  return [3 /*break*/, 10];
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/commands/CacheClearCommand.ts"],"names":[],"mappings":";;;AAAA,kCAA0C;AAC1C,iFAA8E;AAG9E,IAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAE/B;;GAEG;AACH;IAAA;QAEI,YAAO,GAAG,aAAa,CAAC;QACxB,aAAQ,GAAG,+CAA+C,CAAC;IAqD/D,CAAC;IAnDG,mCAAO,GAAP,UAAQ,IAAgB;QACpB,OAAO,IAAI;aACN,MAAM,CAAC,YAAY,EAAE;YAClB,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,SAAS;YAClB,QAAQ,EAAE,8CAA8C;SAC3D,CAAC;aACD,MAAM,CAAC,QAAQ,EAAE;YACd,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,WAAW;YACpB,QAAQ,EAAE,iDAAiD;SAC9D,CAAC,CAAC;IACX,CAAC;IAEK,mCAAO,GAAb,UAAc,IAAqB;;;;;;wBAE3B,UAAU,GAAyB,SAAS,CAAC;;;;wBAEvC,uBAAuB,GAAG,IAAI,iDAAuB,CAAC;4BACxD,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE;4BACnB,UAAU,EAAE,IAAI,CAAC,MAAa;yBACjC,CAAC,CAAC;wBACuB,qBAAM,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAiB,CAAC,EAAA;;wBAA7E,iBAAiB,GAAG,SAAyD;wBACnF,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE;4BAC7B,WAAW,EAAE,EAAE;4BACf,WAAW,EAAE,KAAK;4BAClB,aAAa,EAAE,KAAK;4BACpB,UAAU,EAAE,KAAK;4BACjB,OAAO,EAAE,CAAC,QAAQ,CAAC;yBACtB,CAAC,CAAC;wBACU,qBAAM,wBAAgB,CAAC,iBAAiB,CAAC,EAAA;;wBAAtD,UAAU,GAAG,SAAyC,CAAC;wBAEvD,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE;4BAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,2EAA2E,CAAC,CAAC,CAAC;4BAC5G,sBAAO;yBACV;wBAED,qBAAM,UAAU,CAAC,gBAAgB,CAAC,KAAK,EAAE,EAAA;;wBAAzC,SAAyC,CAAC;wBAC1C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC,CAAC;6BAEvD,UAAU,EAAV,wBAAU;wBAAE,qBAAM,UAAU,CAAC,KAAK,EAAE,EAAA;;wBAAxB,SAAwB,CAAC;;;;;6BAGrC,UAAU,EAAV,wBAAU;wBAAE,qBAAO,UAAyB,CAAC,KAAK,EAAE,EAAA;;wBAAxC,SAAwC,CAAC;;;wBAEzD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC;wBAC5D,OAAO,CAAC,KAAK,CAAC,KAAG,CAAC,CAAC;wBACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;;;;;KAEvB;IAEL,wBAAC;AAAD,CAxDA,AAwDC,IAAA;AAxDY,8CAAiB","file":"CacheClearCommand.js","sourcesContent":["import {createConnection} from \"../index\";\nimport {ConnectionOptionsReader} from \"../connection/ConnectionOptionsReader\";\nimport {Connection} from \"../connection/Connection\";\nimport * as yargs from \"yargs\";\nconst chalk = require(\"chalk\");\n\n/**\n * Clear cache command.\n */\nexport class CacheClearCommand implements yargs.CommandModule {\n\n command = \"cache:clear\";\n describe = \"Clears all data stored in query runner cache.\";\n\n builder(args: yargs.Argv) {\n return args\n .option(\"connection\", {\n alias: \"c\",\n default: \"default\",\n describe: \"Name of the connection on which run a query.\"\n })\n .option(\"config\", {\n alias: \"f\",\n default: \"ormconfig\",\n describe: \"Name of the file with connection configuration.\"\n });\n }\n\n async handler(args: yargs.Arguments) {\n\n let connection: Connection|undefined = undefined;\n try {\n const connectionOptionsReader = new ConnectionOptionsReader({\n root: process.cwd(),\n configName: args.config as any\n });\n const connectionOptions = await connectionOptionsReader.get(args.connection as any);\n Object.assign(connectionOptions, {\n subscribers: [],\n synchronize: false,\n migrationsRun: false,\n dropSchema: false,\n logging: [\"schema\"]\n });\n connection = await createConnection(connectionOptions);\n\n if (!connection.queryResultCache) {\n console.log(chalk.black.bgRed(\"Cache is not enabled. To use cache enable it in connection configuration.\"));\n return;\n }\n\n await connection.queryResultCache.clear();\n console.log(chalk.green(\"Cache was successfully cleared\"));\n\n if (connection) await connection.close();\n\n } catch (err) {\n if (connection) await (connection as Connection).close();\n\n console.log(chalk.black.bgRed(\"Error during cache clear:\"));\n console.error(err);\n process.exit(1);\n }\n }\n\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../src/commands/CacheClearCommand.ts"],"names":[],"mappings":";;;AAAA,kCAA0C;AAC1C,iFAA8E;AAG9E,wDAA0B;AAE1B;;GAEG;AACH;IAAA;QAEI,YAAO,GAAG,aAAa,CAAC;QACxB,aAAQ,GAAG,+CAA+C,CAAC;IAqD/D,CAAC;IAnDG,mCAAO,GAAP,UAAQ,IAAgB;QACpB,OAAO,IAAI;aACN,MAAM,CAAC,YAAY,EAAE;YAClB,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,SAAS;YAClB,QAAQ,EAAE,8CAA8C;SAC3D,CAAC;aACD,MAAM,CAAC,QAAQ,EAAE;YACd,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,WAAW;YACpB,QAAQ,EAAE,iDAAiD;SAC9D,CAAC,CAAC;IACX,CAAC;IAEK,mCAAO,GAAb,UAAc,IAAqB;;;;;;wBAE3B,UAAU,GAAyB,SAAS,CAAC;;;;wBAEvC,uBAAuB,GAAG,IAAI,iDAAuB,CAAC;4BACxD,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE;4BACnB,UAAU,EAAE,IAAI,CAAC,MAAa;yBACjC,CAAC,CAAC;wBACuB,qBAAM,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAiB,CAAC,EAAA;;wBAA7E,iBAAiB,GAAG,SAAyD;wBACnF,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE;4BAC7B,WAAW,EAAE,EAAE;4BACf,WAAW,EAAE,KAAK;4BAClB,aAAa,EAAE,KAAK;4BACpB,UAAU,EAAE,KAAK;4BACjB,OAAO,EAAE,CAAC,QAAQ,CAAC;yBACtB,CAAC,CAAC;wBACU,qBAAM,wBAAgB,CAAC,iBAAiB,CAAC,EAAA;;wBAAtD,UAAU,GAAG,SAAyC,CAAC;wBAEvD,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE;4BAC9B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,KAAK,CAAC,2EAA2E,CAAC,CAAC,CAAC;4BAC5G,sBAAO;yBACV;wBAED,qBAAM,UAAU,CAAC,gBAAgB,CAAC,KAAK,EAAE,EAAA;;wBAAzC,SAAyC,CAAC;wBAC1C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC,CAAC;6BAEvD,UAAU,EAAV,wBAAU;wBAAE,qBAAM,UAAU,CAAC,KAAK,EAAE,EAAA;;wBAAxB,SAAwB,CAAC;;;;;6BAGrC,UAAU,EAAV,wBAAU;wBAAE,qBAAO,UAAyB,CAAC,KAAK,EAAE,EAAA;;wBAAxC,SAAwC,CAAC;;;wBAEzD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC;wBAC5D,OAAO,CAAC,KAAK,CAAC,KAAG,CAAC,CAAC;wBACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;;;;;KAEvB;IAEL,wBAAC;AAAD,CAxDA,AAwDC,IAAA;AAxDY,8CAAiB","file":"CacheClearCommand.js","sourcesContent":["import {createConnection} from \"../index\";\nimport {ConnectionOptionsReader} from \"../connection/ConnectionOptionsReader\";\nimport {Connection} from \"../connection/Connection\";\nimport * as yargs from \"yargs\";\nimport chalk from \"chalk\";\n\n/**\n * Clear cache command.\n */\nexport class CacheClearCommand implements yargs.CommandModule {\n\n command = \"cache:clear\";\n describe = \"Clears all data stored in query runner cache.\";\n\n builder(args: yargs.Argv) {\n return args\n .option(\"connection\", {\n alias: \"c\",\n default: \"default\",\n describe: \"Name of the connection on which run a query.\"\n })\n .option(\"config\", {\n alias: \"f\",\n default: \"ormconfig\",\n describe: \"Name of the file with connection configuration.\"\n });\n }\n\n async handler(args: yargs.Arguments) {\n\n let connection: Connection|undefined = undefined;\n try {\n const connectionOptionsReader = new ConnectionOptionsReader({\n root: process.cwd(),\n configName: args.config as any\n });\n const connectionOptions = await connectionOptionsReader.get(args.connection as any);\n Object.assign(connectionOptions, {\n subscribers: [],\n synchronize: false,\n migrationsRun: false,\n dropSchema: false,\n logging: [\"schema\"]\n });\n connection = await createConnection(connectionOptions);\n\n if (!connection.queryResultCache) {\n console.log(chalk.black.bgRed(\"Cache is not enabled. To use cache enable it in connection configuration.\"));\n return;\n }\n\n await connection.queryResultCache.clear();\n console.log(chalk.green(\"Cache was successfully cleared\"));\n\n if (connection) await connection.close();\n\n } catch (err) {\n if (connection) await (connection as Connection).close();\n\n console.log(chalk.black.bgRed(\"Error during cache clear:\"));\n console.error(err);\n process.exit(1);\n }\n }\n\n}\n"],"sourceRoot":".."}
@@ -5,7 +5,7 @@ export declare class CommandUtils {
5
5
  /**
6
6
  * Creates directories recursively.
7
7
  */
8
- static createDirectories(directory: string): any;
8
+ static createDirectories(directory: string): Promise<string | undefined>;
9
9
  /**
10
10
  * Creates a file with the given content in the given path.
11
11
  */
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var tslib_1 = require("tslib");
4
4
  var fs = tslib_1.__importStar(require("fs"));
5
5
  var path = tslib_1.__importStar(require("path"));
6
- var mkdirp = require("mkdirp");
6
+ var mkdirp_1 = tslib_1.__importDefault(require("mkdirp"));
7
7
  /**
8
8
  * Command line utils functions.
9
9
  */
@@ -14,7 +14,7 @@ var CommandUtils = /** @class */ (function () {
14
14
  * Creates directories recursively.
15
15
  */
16
16
  CommandUtils.createDirectories = function (directory) {
17
- return mkdirp(directory);
17
+ return mkdirp_1.default(directory);
18
18
  };
19
19
  /**
20
20
  * Creates a file with the given content in the given path.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/commands/CommandUtils.ts"],"names":[],"mappings":";;;AAAA,6CAAyB;AACzB,iDAA6B;AAC7B,IAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEjC;;GAEG;AACH;IAAA;IAmCA,CAAC;IAjCG;;OAEG;IACI,8BAAiB,GAAxB,UAAyB,SAAiB;QACtC,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACU,uBAAU,GAAvB,UAAwB,QAAgB,EAAE,OAAe,EAAE,QAAwB;QAAxB,yBAAA,EAAA,eAAwB;;;;4BAC/E,qBAAM,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAA;;wBAA5D,SAA4D,CAAC;wBAC7D,sBAAO,IAAI,OAAO,CAAO,UAAC,EAAE,EAAE,IAAI;gCAC9B,IAAI,QAAQ,KAAK,KAAK,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;oCAC7C,OAAO,EAAE,EAAE,CAAC;gCAEhB,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAtB,CAAsB,CAAC,CAAC;4BACnE,CAAC,CAAC,EAAC;;;;KACN;IAED;;OAEG;IACU,qBAAQ,GAArB,UAAsB,QAAgB;;;gBAClC,sBAAO,IAAI,OAAO,CAAS,UAAC,EAAE,EAAE,IAAI;wBAChC,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAC,GAAG,EAAE,IAAI,IAAK,OAAA,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAArC,CAAqC,CAAC,CAAC;oBAChF,CAAC,CAAC,EAAC;;;KACN;IAGY,uBAAU,GAAvB,UAAwB,QAAgB;;;gBACpC,sBAAO,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAC;;;KAClC;IACL,mBAAC;AAAD,CAnCA,AAmCC,IAAA;AAnCY,oCAAY","file":"CommandUtils.js","sourcesContent":["import * as fs from \"fs\";\nimport * as path from \"path\";\nconst mkdirp = require(\"mkdirp\");\n\n/**\n * Command line utils functions.\n */\nexport class CommandUtils {\n\n /**\n * Creates directories recursively.\n */\n static createDirectories(directory: string) {\n return mkdirp(directory);\n }\n\n /**\n * Creates a file with the given content in the given path.\n */\n static async createFile(filePath: string, content: string, override: boolean = true): Promise<void> {\n await CommandUtils.createDirectories(path.dirname(filePath));\n return new Promise<void>((ok, fail) => {\n if (override === false && fs.existsSync(filePath))\n return ok();\n\n fs.writeFile(filePath, content, err => err ? fail(err) : ok());\n });\n }\n\n /**\n * Reads everything from a given file and returns its content as a string.\n */\n static async readFile(filePath: string): Promise<string> {\n return new Promise<string>((ok, fail) => {\n fs.readFile(filePath, (err, data) => err ? fail(err) : ok(data.toString()));\n });\n }\n\n\n static async fileExists(filePath: string) {\n return fs.existsSync(filePath);\n }\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../src/commands/CommandUtils.ts"],"names":[],"mappings":";;;AAAA,6CAAyB;AACzB,iDAA6B;AAC7B,0DAA4B;AAE5B;;GAEG;AACH;IAAA;IAmCA,CAAC;IAjCG;;OAEG;IACI,8BAAiB,GAAxB,UAAyB,SAAiB;QACtC,OAAO,gBAAM,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACU,uBAAU,GAAvB,UAAwB,QAAgB,EAAE,OAAe,EAAE,QAAwB;QAAxB,yBAAA,EAAA,eAAwB;;;;4BAC/E,qBAAM,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAA;;wBAA5D,SAA4D,CAAC;wBAC7D,sBAAO,IAAI,OAAO,CAAO,UAAC,EAAE,EAAE,IAAI;gCAC9B,IAAI,QAAQ,KAAK,KAAK,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;oCAC7C,OAAO,EAAE,EAAE,CAAC;gCAEhB,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAtB,CAAsB,CAAC,CAAC;4BACnE,CAAC,CAAC,EAAC;;;;KACN;IAED;;OAEG;IACU,qBAAQ,GAArB,UAAsB,QAAgB;;;gBAClC,sBAAO,IAAI,OAAO,CAAS,UAAC,EAAE,EAAE,IAAI;wBAChC,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAC,GAAG,EAAE,IAAI,IAAK,OAAA,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAArC,CAAqC,CAAC,CAAC;oBAChF,CAAC,CAAC,EAAC;;;KACN;IAGY,uBAAU,GAAvB,UAAwB,QAAgB;;;gBACpC,sBAAO,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAC;;;KAClC;IACL,mBAAC;AAAD,CAnCA,AAmCC,IAAA;AAnCY,oCAAY","file":"CommandUtils.js","sourcesContent":["import * as fs from \"fs\";\nimport * as path from \"path\";\nimport mkdirp from \"mkdirp\";\n\n/**\n * Command line utils functions.\n */\nexport class CommandUtils {\n\n /**\n * Creates directories recursively.\n */\n static createDirectories(directory: string) {\n return mkdirp(directory);\n }\n\n /**\n * Creates a file with the given content in the given path.\n */\n static async createFile(filePath: string, content: string, override: boolean = true): Promise<void> {\n await CommandUtils.createDirectories(path.dirname(filePath));\n return new Promise<void>((ok, fail) => {\n if (override === false && fs.existsSync(filePath))\n return ok();\n\n fs.writeFile(filePath, content, err => err ? fail(err) : ok());\n });\n }\n\n /**\n * Reads everything from a given file and returns its content as a string.\n */\n static async readFile(filePath: string): Promise<string> {\n return new Promise<string>((ok, fail) => {\n fs.readFile(filePath, (err, data) => err ? fail(err) : ok(data.toString()));\n });\n }\n\n\n static async fileExists(filePath: string) {\n return fs.existsSync(filePath);\n }\n}\n"],"sourceRoot":".."}
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var tslib_1 = require("tslib");
4
4
  var ConnectionOptionsReader_1 = require("../connection/ConnectionOptionsReader");
5
5
  var CommandUtils_1 = require("./CommandUtils");
6
- var chalk = require("chalk");
6
+ var chalk_1 = tslib_1.__importDefault(require("chalk"));
7
7
  /**
8
8
  * Generates a new entity.
9
9
  */
@@ -55,27 +55,30 @@ var EntityCreateCommand = /** @class */ (function () {
55
55
  return [4 /*yield*/, connectionOptionsReader.get(args.connection)];
56
56
  case 2:
57
57
  connectionOptions = _a.sent();
58
- directory = connectionOptions.cli ? connectionOptions.cli.entitiesDir : undefined;
58
+ directory = connectionOptions.cli ? (connectionOptions.cli.entitiesDir || "") : "";
59
59
  return [3 /*break*/, 4];
60
60
  case 3:
61
61
  err_1 = _a.sent();
62
62
  return [3 /*break*/, 4];
63
63
  case 4:
64
- path = process.cwd() + "/" + (directory ? (directory + "/") : "") + filename;
64
+ if (directory && !directory.startsWith("/")) {
65
+ directory = process.cwd() + "/" + directory;
66
+ }
67
+ path = (directory ? (directory + "/") : "") + filename;
65
68
  return [4 /*yield*/, CommandUtils_1.CommandUtils.fileExists(path)];
66
69
  case 5:
67
70
  fileExists = _a.sent();
68
71
  if (fileExists) {
69
- throw "File " + chalk.blue(path) + " already exists";
72
+ throw "File " + chalk_1.default.blue(path) + " already exists";
70
73
  }
71
74
  return [4 /*yield*/, CommandUtils_1.CommandUtils.createFile(path, fileContent)];
72
75
  case 6:
73
76
  _a.sent();
74
- console.log(chalk.green("Entity " + chalk.blue(path) + " has been created successfully."));
77
+ console.log(chalk_1.default.green("Entity " + chalk_1.default.blue(path) + " has been created successfully."));
75
78
  return [3 /*break*/, 8];
76
79
  case 7:
77
80
  err_2 = _a.sent();
78
- console.log(chalk.black.bgRed("Error during entity creation:"));
81
+ console.log(chalk_1.default.black.bgRed("Error during entity creation:"));
79
82
  console.error(err_2);
80
83
  process.exit(1);
81
84
  return [3 /*break*/, 8];
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/commands/EntityCreateCommand.ts"],"names":[],"mappings":";;;AAAA,iFAA8E;AAC9E,+CAA4C;AAE5C,IAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAE/B;;GAEG;AACH;IAAA;QACI,YAAO,GAAG,eAAe,CAAC;QAC1B,aAAQ,GAAG,yBAAyB,CAAC;IA2EzC,CAAC;IAzEG,qCAAO,GAAP,UAAQ,IAAgB;QACpB,OAAO,IAAI;aACN,MAAM,CAAC,GAAG,EAAE;YACT,KAAK,EAAE,YAAY;YACnB,OAAO,EAAE,SAAS;YAClB,QAAQ,EAAE,gDAAgD;SAC7D,CAAC;aACD,MAAM,CAAC,GAAG,EAAE;YACT,KAAK,EAAE,MAAM;YACb,QAAQ,EAAE,2BAA2B;YACrC,MAAM,EAAE,IAAI;SACf,CAAC;aACD,MAAM,CAAC,GAAG,EAAE;YACT,KAAK,EAAE,KAAK;YACZ,QAAQ,EAAE,2CAA2C;SACxD,CAAC;aACD,MAAM,CAAC,GAAG,EAAE;YACT,KAAK,EAAE,QAAQ;YACf,OAAO,EAAE,WAAW;YACpB,QAAQ,EAAE,iDAAiD;SAC9D,CAAC,CAAC;IACX,CAAC;IAEK,qCAAO,GAAb,UAAc,IAAqB;;;;;;;wBAErB,WAAW,GAAG,mBAAmB,CAAC,WAAW,CAAC,IAAI,CAAC,IAAW,CAAC,CAAC;wBAChE,QAAQ,GAAG,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;wBAC/B,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC;6BAGrB,CAAC,SAAS,EAAV,wBAAU;;;;wBAEA,uBAAuB,GAAG,IAAI,iDAAuB,CAAC;4BACxD,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE;4BACnB,UAAU,EAAE,IAAI,CAAC,MAAa;yBACjC,CAAC,CAAC;wBACuB,qBAAM,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAiB,CAAC,EAAA;;wBAA7E,iBAAiB,GAAG,SAAyD;wBACnF,SAAS,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;;;;;;wBAIpF,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC;wBAChE,qBAAM,2BAAY,CAAC,UAAU,CAAC,IAAI,CAAC,EAAA;;wBAAhD,UAAU,GAAG,SAAmC;wBACtD,IAAI,UAAU,EAAE;4BACZ,MAAM,UAAQ,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAiB,CAAC;yBACnD;wBACD,qBAAM,2BAAY,CAAC,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC,EAAA;;wBAAhD,SAAgD,CAAC;wBACjD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,YAAU,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,oCAAiC,CAAC,CAAC,CAAC;;;;wBAGtF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC;wBAChE,OAAO,CAAC,KAAK,CAAC,KAAG,CAAC,CAAC;wBACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;;;;;KAEvB;IAED,4EAA4E;IAC5E,2BAA2B;IAC3B,4EAA4E;IAE5E;;OAEG;IACc,+BAAW,GAA5B,UAA6B,IAAY;QACrC,OAAO,kEAGA,IAAI,cAGlB,CAAC;IACE,CAAC;IAEL,0BAAC;AAAD,CA7EA,AA6EC,IAAA;AA7EY,kDAAmB","file":"EntityCreateCommand.js","sourcesContent":["import {ConnectionOptionsReader} from \"../connection/ConnectionOptionsReader\";\nimport {CommandUtils} from \"./CommandUtils\";\nimport * as yargs from \"yargs\";\nconst chalk = require(\"chalk\");\n\n/**\n * Generates a new entity.\n */\nexport class EntityCreateCommand implements yargs.CommandModule {\n command = \"entity:create\";\n describe = \"Generates a new entity.\";\n\n builder(args: yargs.Argv) {\n return args\n .option(\"c\", {\n alias: \"connection\",\n default: \"default\",\n describe: \"Name of the connection on which to run a query\"\n })\n .option(\"n\", {\n alias: \"name\",\n describe: \"Name of the entity class.\",\n demand: true\n })\n .option(\"d\", {\n alias: \"dir\",\n describe: \"Directory where entity should be created.\"\n })\n .option(\"f\", {\n alias: \"config\",\n default: \"ormconfig\",\n describe: \"Name of the file with connection configuration.\"\n });\n }\n\n async handler(args: yargs.Arguments) {\n try {\n const fileContent = EntityCreateCommand.getTemplate(args.name as any);\n const filename = args.name + \".ts\";\n let directory = args.dir;\n\n // if directory is not set then try to open tsconfig and find default path there\n if (!directory) {\n try {\n const connectionOptionsReader = new ConnectionOptionsReader({\n root: process.cwd(),\n configName: args.config as any\n });\n const connectionOptions = await connectionOptionsReader.get(args.connection as any);\n directory = connectionOptions.cli ? connectionOptions.cli.entitiesDir : undefined;\n } catch (err) { }\n }\n\n const path = process.cwd() + \"/\" + (directory ? (directory + \"/\") : \"\") + filename;\n const fileExists = await CommandUtils.fileExists(path);\n if (fileExists) {\n throw `File ${chalk.blue(path)} already exists`;\n }\n await CommandUtils.createFile(path, fileContent);\n console.log(chalk.green(`Entity ${chalk.blue(path)} has been created successfully.`));\n\n } catch (err) {\n console.log(chalk.black.bgRed(\"Error during entity creation:\"));\n console.error(err);\n process.exit(1);\n }\n }\n\n // -------------------------------------------------------------------------\n // Protected Static Methods\n // -------------------------------------------------------------------------\n\n /**\n * Gets contents of the entity file.\n */\n protected static getTemplate(name: string): string {\n return `import {Entity} from \"typeorm\";\n\n@Entity()\nexport class ${name} {\n\n}\n`;\n }\n\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../src/commands/EntityCreateCommand.ts"],"names":[],"mappings":"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","file":"EntityCreateCommand.js","sourcesContent":["import {ConnectionOptionsReader} from \"../connection/ConnectionOptionsReader\";\nimport {CommandUtils} from \"./CommandUtils\";\nimport * as yargs from \"yargs\";\nimport chalk from \"chalk\";\n\n/**\n * Generates a new entity.\n */\nexport class EntityCreateCommand implements yargs.CommandModule {\n command = \"entity:create\";\n describe = \"Generates a new entity.\";\n\n builder(args: yargs.Argv) {\n return args\n .option(\"c\", {\n alias: \"connection\",\n default: \"default\",\n describe: \"Name of the connection on which to run a query\"\n })\n .option(\"n\", {\n alias: \"name\",\n describe: \"Name of the entity class.\",\n demand: true\n })\n .option(\"d\", {\n alias: \"dir\",\n describe: \"Directory where entity should be created.\"\n })\n .option(\"f\", {\n alias: \"config\",\n default: \"ormconfig\",\n describe: \"Name of the file with connection configuration.\"\n });\n }\n\n async handler(args: yargs.Arguments) {\n try {\n const fileContent = EntityCreateCommand.getTemplate(args.name as any);\n const filename = args.name + \".ts\";\n let directory = args.dir as string | undefined;\n\n // if directory is not set then try to open tsconfig and find default path there\n if (!directory) {\n try {\n const connectionOptionsReader = new ConnectionOptionsReader({\n root: process.cwd(),\n configName: args.config as any\n });\n const connectionOptions = await connectionOptionsReader.get(args.connection as any);\n directory = connectionOptions.cli ? (connectionOptions.cli.entitiesDir || \"\") : \"\";\n } catch (err) { }\n }\n\n if (directory && !directory.startsWith(\"/\")) {\n directory = process.cwd() + \"/\" + directory;\n }\n const path = (directory ? (directory + \"/\") : \"\") + filename;\n const fileExists = await CommandUtils.fileExists(path);\n if (fileExists) {\n throw `File ${chalk.blue(path)} already exists`;\n }\n await CommandUtils.createFile(path, fileContent);\n console.log(chalk.green(`Entity ${chalk.blue(path)} has been created successfully.`));\n\n } catch (err) {\n console.log(chalk.black.bgRed(\"Error during entity creation:\"));\n console.error(err);\n process.exit(1);\n }\n }\n\n // -------------------------------------------------------------------------\n // Protected Static Methods\n // -------------------------------------------------------------------------\n\n /**\n * Gets contents of the entity file.\n */\n protected static getTemplate(name: string): string {\n return `import {Entity} from \"typeorm\";\n\n@Entity()\nexport class ${name} {\n\n}\n`;\n }\n\n}\n"],"sourceRoot":".."}
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var tslib_1 = require("tslib");
4
4
  var CommandUtils_1 = require("./CommandUtils");
5
5
  var path = tslib_1.__importStar(require("path"));
6
- var chalk = require("chalk");
6
+ var chalk_1 = tslib_1.__importDefault(require("chalk"));
7
7
  /**
8
8
  * Generates a new project with TypeORM.
9
9
  */
@@ -92,15 +92,15 @@ var InitCommand = /** @class */ (function () {
92
92
  case 15:
93
93
  _a.sent();
94
94
  if (args.name) {
95
- console.log(chalk.green("Project created inside " + chalk.blue(basePath) + " directory."));
95
+ console.log(chalk_1.default.green("Project created inside " + chalk_1.default.blue(basePath) + " directory."));
96
96
  }
97
97
  else {
98
- console.log(chalk.green("Project created inside current directory."));
98
+ console.log(chalk_1.default.green("Project created inside current directory."));
99
99
  }
100
100
  return [3 /*break*/, 17];
101
101
  case 16:
102
102
  err_1 = _a.sent();
103
- console.log(chalk.black.bgRed("Error during project initialization:"));
103
+ console.log(chalk_1.default.black.bgRed("Error during project initialization:"));
104
104
  console.error(err_1);
105
105
  process.exit(1);
106
106
  return [3 /*break*/, 17];
@@ -144,6 +144,12 @@ var InitCommand = /** @class */ (function () {
144
144
  "database": "database.sqlite",
145
145
  });
146
146
  break;
147
+ case "better-sqlite3":
148
+ Object.assign(options, {
149
+ type: "better-sqlite3",
150
+ "database": "database.sqlite",
151
+ });
152
+ break;
147
153
  case "postgres":
148
154
  Object.assign(options, {
149
155
  "type": "postgres",
@@ -289,6 +295,7 @@ var InitCommand = /** @class */ (function () {
289
295
  case "cockroachdb":
290
296
  return "version: '3'\nservices:\n\n cockroachdb:\n image: \"cockroachdb/cockroach:v2.1.4\"\n command: start --insecure\n ports:\n - \"26257:26257\"\n\n";
291
297
  case "sqlite":
298
+ case "better-sqlite3":
292
299
  return "version: '3'\nservices:\n";
293
300
  case "oracle":
294
301
  throw new Error("You cannot initialize a project with docker for Oracle driver yet."); // todo: implement for oracle as well
@@ -338,11 +345,14 @@ var InitCommand = /** @class */ (function () {
338
345
  break;
339
346
  case "postgres":
340
347
  case "cockroachdb":
341
- packageJson.dependencies["pg"] = "^7.3.0";
348
+ packageJson.dependencies["pg"] = "^8.4.0";
342
349
  break;
343
350
  case "sqlite":
344
351
  packageJson.dependencies["sqlite3"] = "^4.0.3";
345
352
  break;
353
+ case "better-sqlite3":
354
+ packageJson.dependencies["better-sqlite3"] = "^7.0.0";
355
+ break;
346
356
  case "oracle":
347
357
  packageJson.dependencies["oracledb"] = "^1.13.1";
348
358
  break;