typeorm 0.2.24 → 0.2.28

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 (1002) hide show
  1. package/README.md +12 -8
  2. package/browser/cache/DbQueryResultCache.js +14 -14
  3. package/browser/cache/DbQueryResultCache.js.map +1 -1
  4. package/browser/cache/RedisQueryResultCache.js +20 -15
  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 +66 -42
  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 +3 -1
  17. package/browser/connection/ConnectionOptions.js.map +1 -1
  18. package/browser/connection/ConnectionOptionsReader.js +47 -42
  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 +2 -1
  58. package/browser/decorator/columns/ViewColumn.js +2 -2
  59. package/browser/decorator/columns/ViewColumn.js.map +1 -1
  60. package/browser/decorator/entity/ChildEntity.d.ts +1 -1
  61. package/browser/decorator/entity/ChildEntity.js.map +1 -1
  62. package/browser/decorator/entity/Entity.d.ts +2 -2
  63. package/browser/decorator/entity/Entity.js.map +1 -1
  64. package/browser/decorator/entity/TableInheritance.d.ts +1 -1
  65. package/browser/decorator/entity/TableInheritance.js.map +1 -1
  66. package/browser/decorator/entity-view/ViewEntity.d.ts +2 -2
  67. package/browser/decorator/entity-view/ViewEntity.js.map +1 -1
  68. package/browser/decorator/listeners/AfterInsert.d.ts +1 -1
  69. package/browser/decorator/listeners/AfterInsert.js.map +1 -1
  70. package/browser/decorator/listeners/AfterLoad.d.ts +1 -1
  71. package/browser/decorator/listeners/AfterLoad.js.map +1 -1
  72. package/browser/decorator/listeners/AfterRemove.d.ts +1 -1
  73. package/browser/decorator/listeners/AfterRemove.js.map +1 -1
  74. package/browser/decorator/listeners/AfterUpdate.d.ts +1 -1
  75. package/browser/decorator/listeners/AfterUpdate.js.map +1 -1
  76. package/browser/decorator/listeners/BeforeInsert.d.ts +1 -1
  77. package/browser/decorator/listeners/BeforeInsert.js.map +1 -1
  78. package/browser/decorator/listeners/BeforeRemove.d.ts +1 -1
  79. package/browser/decorator/listeners/BeforeRemove.js.map +1 -1
  80. package/browser/decorator/listeners/BeforeUpdate.d.ts +1 -1
  81. package/browser/decorator/listeners/BeforeUpdate.js.map +1 -1
  82. package/browser/decorator/listeners/EventSubscriber.d.ts +1 -1
  83. package/browser/decorator/listeners/EventSubscriber.js.map +1 -1
  84. package/browser/decorator/options/ColumnOptions.js.map +1 -1
  85. package/browser/decorator/options/TransactionOptions.js.map +1 -1
  86. package/browser/decorator/options/ViewColumnOptions.d.ts +9 -0
  87. package/browser/decorator/options/ViewColumnOptions.js +3 -0
  88. package/browser/decorator/options/ViewColumnOptions.js.map +1 -0
  89. package/browser/decorator/relations/JoinColumn.d.ts +3 -3
  90. package/browser/decorator/relations/JoinColumn.js.map +1 -1
  91. package/browser/decorator/relations/JoinTable.d.ts +3 -3
  92. package/browser/decorator/relations/JoinTable.js.map +1 -1
  93. package/browser/decorator/relations/ManyToMany.d.ts +2 -2
  94. package/browser/decorator/relations/ManyToMany.js.map +1 -1
  95. package/browser/decorator/relations/ManyToOne.d.ts +2 -2
  96. package/browser/decorator/relations/ManyToOne.js.map +1 -1
  97. package/browser/decorator/relations/OneToMany.d.ts +3 -3
  98. package/browser/decorator/relations/OneToMany.js +2 -2
  99. package/browser/decorator/relations/OneToMany.js.map +1 -1
  100. package/browser/decorator/relations/OneToOne.d.ts +2 -2
  101. package/browser/decorator/relations/OneToOne.js.map +1 -1
  102. package/browser/decorator/relations/RelationCount.d.ts +1 -1
  103. package/browser/decorator/relations/RelationCount.js.map +1 -1
  104. package/browser/decorator/relations/RelationId.d.ts +1 -1
  105. package/browser/decorator/relations/RelationId.js.map +1 -1
  106. package/browser/decorator/transaction/Transaction.js +4 -4
  107. package/browser/decorator/transaction/Transaction.js.map +1 -1
  108. package/browser/decorator/transaction/TransactionManager.d.ts +1 -1
  109. package/browser/decorator/transaction/TransactionManager.js.map +1 -1
  110. package/browser/decorator/tree/Tree.d.ts +1 -1
  111. package/browser/decorator/tree/Tree.js.map +1 -1
  112. package/browser/decorator/tree/TreeChildren.d.ts +1 -1
  113. package/browser/decorator/tree/TreeChildren.js.map +1 -1
  114. package/browser/decorator/tree/TreeLevelColumn.d.ts +1 -1
  115. package/browser/decorator/tree/TreeLevelColumn.js.map +1 -1
  116. package/browser/decorator/tree/TreeParent.d.ts +1 -1
  117. package/browser/decorator/tree/TreeParent.js.map +1 -1
  118. package/browser/driver/Driver.d.ts +7 -2
  119. package/browser/driver/Driver.js.map +1 -1
  120. package/browser/driver/DriverFactory.js +6 -0
  121. package/browser/driver/DriverFactory.js.map +1 -1
  122. package/browser/driver/DriverUtils.d.ts +2 -2
  123. package/browser/driver/DriverUtils.js +8 -4
  124. package/browser/driver/DriverUtils.js.map +1 -1
  125. package/browser/driver/aurora-data-api/AuroraDataApiConnection.d.ts +2 -1
  126. package/browser/driver/aurora-data-api/AuroraDataApiConnection.js +2 -3
  127. package/browser/driver/aurora-data-api/AuroraDataApiConnection.js.map +1 -1
  128. package/browser/driver/aurora-data-api/AuroraDataApiConnectionOptions.d.ts +6 -0
  129. package/browser/driver/aurora-data-api/AuroraDataApiConnectionOptions.js.map +1 -1
  130. package/browser/driver/aurora-data-api/AuroraDataApiDriver.d.ts +6 -1
  131. package/browser/driver/aurora-data-api/AuroraDataApiDriver.js +14 -9
  132. package/browser/driver/aurora-data-api/AuroraDataApiDriver.js.map +1 -1
  133. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.d.ts +5 -0
  134. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js +230 -143
  135. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
  136. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.d.ts +27 -0
  137. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.js +3 -0
  138. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.js.map +1 -0
  139. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.d.ts +57 -0
  140. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js +99 -0
  141. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js.map +1 -0
  142. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.d.ts +51 -0
  143. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js +142 -0
  144. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js.map +1 -0
  145. package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.d.ts +50 -0
  146. package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js +3 -0
  147. package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -0
  148. package/browser/driver/better-sqlite3/BetterSqlite3Driver.d.ts +46 -0
  149. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js +125 -0
  150. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -0
  151. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.d.ts +22 -0
  152. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js +113 -0
  153. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -0
  154. package/browser/driver/cockroachdb/CockroachConnectionCredentialsOptions.js.map +1 -1
  155. package/browser/driver/cockroachdb/CockroachDriver.d.ts +6 -1
  156. package/browser/driver/cockroachdb/CockroachDriver.js +18 -13
  157. package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
  158. package/browser/driver/cockroachdb/CockroachQueryRunner.d.ts +3 -1
  159. package/browser/driver/cockroachdb/CockroachQueryRunner.js +420 -192
  160. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  161. package/browser/driver/cordova/CordovaDriver.d.ts +2 -1
  162. package/browser/driver/cordova/CordovaDriver.js +4 -5
  163. package/browser/driver/cordova/CordovaDriver.js.map +1 -1
  164. package/browser/driver/cordova/CordovaQueryRunner.js +4 -4
  165. package/browser/driver/cordova/CordovaQueryRunner.js.map +1 -1
  166. package/browser/driver/expo/ExpoDriver.d.ts +2 -1
  167. package/browser/driver/expo/ExpoDriver.js +5 -5
  168. package/browser/driver/expo/ExpoDriver.js.map +1 -1
  169. package/browser/driver/expo/ExpoQueryRunner.js +10 -10
  170. package/browser/driver/expo/ExpoQueryRunner.js.map +1 -1
  171. package/browser/driver/mongodb/MongoDriver.d.ts +6 -1
  172. package/browser/driver/mongodb/MongoDriver.js +9 -4
  173. package/browser/driver/mongodb/MongoDriver.js.map +1 -1
  174. package/browser/driver/mongodb/MongoQueryRunner.d.ts +1 -0
  175. package/browser/driver/mongodb/MongoQueryRunner.js +175 -175
  176. package/browser/driver/mongodb/MongoQueryRunner.js.map +1 -1
  177. package/browser/driver/mongodb/typings.d.ts +4 -1
  178. package/browser/driver/mongodb/typings.js.map +1 -1
  179. package/browser/driver/mysql/MysqlDriver.d.ts +7 -2
  180. package/browser/driver/mysql/MysqlDriver.js +16 -9
  181. package/browser/driver/mysql/MysqlDriver.js.map +1 -1
  182. package/browser/driver/mysql/MysqlQueryRunner.d.ts +7 -1
  183. package/browser/driver/mysql/MysqlQueryRunner.js +246 -149
  184. package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
  185. package/browser/driver/nativescript/NativescriptDriver.d.ts +2 -1
  186. package/browser/driver/nativescript/NativescriptDriver.js +4 -5
  187. package/browser/driver/nativescript/NativescriptDriver.js.map +1 -1
  188. package/browser/driver/nativescript/NativescriptQueryRunner.js +2 -2
  189. package/browser/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  190. package/browser/driver/oracle/OracleDriver.d.ts +6 -1
  191. package/browser/driver/oracle/OracleDriver.js +17 -12
  192. package/browser/driver/oracle/OracleDriver.js.map +1 -1
  193. package/browser/driver/oracle/OracleQueryRunner.d.ts +3 -1
  194. package/browser/driver/oracle/OracleQueryRunner.js +195 -128
  195. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  196. package/browser/driver/postgres/PostgresConnectionCredentialsOptions.d.ts +1 -1
  197. package/browser/driver/postgres/PostgresConnectionCredentialsOptions.js.map +1 -1
  198. package/browser/driver/postgres/PostgresConnectionOptions.d.ts +9 -0
  199. package/browser/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  200. package/browser/driver/postgres/PostgresDriver.d.ts +19 -4
  201. package/browser/driver/postgres/PostgresDriver.js +194 -124
  202. package/browser/driver/postgres/PostgresDriver.js.map +1 -1
  203. package/browser/driver/postgres/PostgresQueryRunner.d.ts +3 -1
  204. package/browser/driver/postgres/PostgresQueryRunner.js +416 -196
  205. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  206. package/browser/driver/react-native/ReactNativeDriver.d.ts +2 -1
  207. package/browser/driver/react-native/ReactNativeDriver.js +6 -6
  208. package/browser/driver/react-native/ReactNativeDriver.js.map +1 -1
  209. package/browser/driver/react-native/ReactNativeQueryRunner.js +4 -4
  210. package/browser/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  211. package/browser/driver/sap/SapConnectionCredentialsOptions.d.ts +1 -1
  212. package/browser/driver/sap/SapConnectionCredentialsOptions.js.map +1 -1
  213. package/browser/driver/sap/SapDriver.d.ts +6 -1
  214. package/browser/driver/sap/SapDriver.js +25 -15
  215. package/browser/driver/sap/SapDriver.js.map +1 -1
  216. package/browser/driver/sap/SapQueryRunner.d.ts +3 -1
  217. package/browser/driver/sap/SapQueryRunner.js +224 -156
  218. package/browser/driver/sap/SapQueryRunner.js.map +1 -1
  219. package/browser/driver/sqlite/SqliteConnectionOptions.d.ts +18 -0
  220. package/browser/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
  221. package/browser/driver/sqlite/SqliteDriver.d.ts +2 -1
  222. package/browser/driver/sqlite/SqliteDriver.js +30 -18
  223. package/browser/driver/sqlite/SqliteDriver.js.map +1 -1
  224. package/browser/driver/sqlite/SqliteQueryRunner.js +33 -18
  225. package/browser/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  226. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +7 -2
  227. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js +36 -9
  228. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  229. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +1 -0
  230. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +134 -120
  231. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  232. package/browser/driver/sqljs/SqljsDriver.d.ts +2 -1
  233. package/browser/driver/sqljs/SqljsDriver.js +15 -16
  234. package/browser/driver/sqljs/SqljsDriver.js.map +1 -1
  235. package/browser/driver/sqljs/SqljsQueryRunner.js +11 -7
  236. package/browser/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  237. package/browser/driver/sqlserver/SqlServerDriver.d.ts +6 -1
  238. package/browser/driver/sqlserver/SqlServerDriver.js +13 -8
  239. package/browser/driver/sqlserver/SqlServerDriver.js.map +1 -1
  240. package/browser/driver/sqlserver/SqlServerQueryRunner.d.ts +3 -1
  241. package/browser/driver/sqlserver/SqlServerQueryRunner.js +237 -170
  242. package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  243. package/browser/driver/types/ColumnTypes.d.ts +1 -1
  244. package/browser/driver/types/ColumnTypes.js.map +1 -1
  245. package/browser/driver/types/DatabaseType.d.ts +1 -1
  246. package/browser/driver/types/DatabaseType.js.map +1 -1
  247. package/browser/driver/types/ReplicationMode.d.ts +1 -0
  248. package/browser/driver/types/ReplicationMode.js +3 -0
  249. package/browser/driver/types/ReplicationMode.js.map +1 -0
  250. package/browser/entity-manager/EntityManager.d.ts +42 -257
  251. package/browser/entity-manager/EntityManager.js +39 -39
  252. package/browser/entity-manager/EntityManager.js.map +1 -1
  253. package/browser/entity-manager/MongoEntityManager.d.ts +46 -46
  254. package/browser/entity-manager/MongoEntityManager.js +17 -17
  255. package/browser/entity-manager/MongoEntityManager.js.map +1 -1
  256. package/browser/entity-manager/SqljsEntityManager.js +6 -6
  257. package/browser/entity-manager/SqljsEntityManager.js.map +1 -1
  258. package/browser/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
  259. package/browser/entity-schema/EntitySchemaRelationOptions.d.ts +1 -1
  260. package/browser/entity-schema/EntitySchemaRelationOptions.js.map +1 -1
  261. package/browser/entity-schema/EntitySchemaTransformer.js +22 -7
  262. package/browser/entity-schema/EntitySchemaTransformer.js.map +1 -1
  263. package/browser/error/AlreadyHasActiveConnectionError.js +2 -2
  264. package/browser/error/AlreadyHasActiveConnectionError.js.map +1 -1
  265. package/browser/error/CannotAttachTreeChildrenEntityError.js +2 -2
  266. package/browser/error/CannotAttachTreeChildrenEntityError.js.map +1 -1
  267. package/browser/error/CannotConnectAlreadyConnectedError.js +2 -2
  268. package/browser/error/CannotConnectAlreadyConnectedError.js.map +1 -1
  269. package/browser/error/CannotCreateEntityIdMapError.js +2 -2
  270. package/browser/error/CannotCreateEntityIdMapError.js.map +1 -1
  271. package/browser/error/CannotDetermineEntityError.js +2 -2
  272. package/browser/error/CannotDetermineEntityError.js.map +1 -1
  273. package/browser/error/CannotExecuteNotConnectedError.js +2 -2
  274. package/browser/error/CannotExecuteNotConnectedError.js.map +1 -1
  275. package/browser/error/CannotGetEntityManagerNotConnectedError.js +2 -2
  276. package/browser/error/CannotGetEntityManagerNotConnectedError.js.map +1 -1
  277. package/browser/error/CannotReflectMethodParameterTypeError.js +2 -2
  278. package/browser/error/CannotReflectMethodParameterTypeError.js.map +1 -1
  279. package/browser/error/CircularRelationsError.js +2 -2
  280. package/browser/error/CircularRelationsError.js.map +1 -1
  281. package/browser/error/ColumnTypeUndefinedError.js +2 -2
  282. package/browser/error/ColumnTypeUndefinedError.js.map +1 -1
  283. package/browser/error/ConnectionIsNotSetError.js +2 -2
  284. package/browser/error/ConnectionIsNotSetError.js.map +1 -1
  285. package/browser/error/ConnectionNotFoundError.js +2 -2
  286. package/browser/error/ConnectionNotFoundError.js.map +1 -1
  287. package/browser/error/CustomRepositoryCannotInheritRepositoryError.js +2 -2
  288. package/browser/error/CustomRepositoryCannotInheritRepositoryError.js.map +1 -1
  289. package/browser/error/CustomRepositoryDoesNotHaveEntityError.js +2 -2
  290. package/browser/error/CustomRepositoryDoesNotHaveEntityError.js.map +1 -1
  291. package/browser/error/CustomRepositoryNotFoundError.js +2 -2
  292. package/browser/error/CustomRepositoryNotFoundError.js.map +1 -1
  293. package/browser/error/DataTypeNotSupportedError.js +2 -2
  294. package/browser/error/DataTypeNotSupportedError.js.map +1 -1
  295. package/browser/error/DriverOptionNotSetError.js +2 -2
  296. package/browser/error/DriverOptionNotSetError.js.map +1 -1
  297. package/browser/error/DriverPackageNotInstalledError.js +2 -2
  298. package/browser/error/DriverPackageNotInstalledError.js.map +1 -1
  299. package/browser/error/EntityColumnNotFound.js +2 -2
  300. package/browser/error/EntityColumnNotFound.js.map +1 -1
  301. package/browser/error/EntityMetadataNotFoundError.d.ts +2 -2
  302. package/browser/error/EntityMetadataNotFoundError.js +5 -2
  303. package/browser/error/EntityMetadataNotFoundError.js.map +1 -1
  304. package/browser/error/EntityNotFoundError.d.ts +2 -3
  305. package/browser/error/EntityNotFoundError.js +5 -2
  306. package/browser/error/EntityNotFoundError.js.map +1 -1
  307. package/browser/error/FindRelationsNotFoundError.js +4 -4
  308. package/browser/error/FindRelationsNotFoundError.js.map +1 -1
  309. package/browser/error/InitializedRelationError.js +2 -2
  310. package/browser/error/InitializedRelationError.js.map +1 -1
  311. package/browser/error/InsertValuesMissingError.js +2 -2
  312. package/browser/error/InsertValuesMissingError.js.map +1 -1
  313. package/browser/error/LimitOnUpdateNotSupportedError.js +2 -2
  314. package/browser/error/LimitOnUpdateNotSupportedError.js.map +1 -1
  315. package/browser/error/LockNotSupportedOnGivenDriverError.js +2 -2
  316. package/browser/error/LockNotSupportedOnGivenDriverError.js.map +1 -1
  317. package/browser/error/MetadataAlreadyExistsError.js +2 -2
  318. package/browser/error/MetadataAlreadyExistsError.js.map +1 -1
  319. package/browser/error/MetadataWithSuchNameAlreadyExistsError.js +2 -2
  320. package/browser/error/MetadataWithSuchNameAlreadyExistsError.js.map +1 -1
  321. package/browser/error/MissingDeleteDateColumnError.js +2 -2
  322. package/browser/error/MissingDeleteDateColumnError.js.map +1 -1
  323. package/browser/error/MissingDriverError.js +3 -3
  324. package/browser/error/MissingDriverError.js.map +1 -1
  325. package/browser/error/MissingJoinColumnError.js +2 -2
  326. package/browser/error/MissingJoinColumnError.js.map +1 -1
  327. package/browser/error/MissingJoinTableError.js +2 -2
  328. package/browser/error/MissingJoinTableError.js.map +1 -1
  329. package/browser/error/MissingPrimaryColumnError.js +2 -2
  330. package/browser/error/MissingPrimaryColumnError.js.map +1 -1
  331. package/browser/error/MustBeEntityError.js +2 -2
  332. package/browser/error/MustBeEntityError.js.map +1 -1
  333. package/browser/error/NamingStrategyNotFoundError.js +2 -2
  334. package/browser/error/NamingStrategyNotFoundError.js.map +1 -1
  335. package/browser/error/NoConnectionForRepositoryError.js +2 -2
  336. package/browser/error/NoConnectionForRepositoryError.js.map +1 -1
  337. package/browser/error/NoConnectionOptionError.js +2 -2
  338. package/browser/error/NoConnectionOptionError.js.map +1 -1
  339. package/browser/error/NoNeedToReleaseEntityManagerError.js +2 -2
  340. package/browser/error/NoNeedToReleaseEntityManagerError.js.map +1 -1
  341. package/browser/error/NoVersionOrUpdateDateColumnError.js +2 -2
  342. package/browser/error/NoVersionOrUpdateDateColumnError.js.map +1 -1
  343. package/browser/error/OffsetWithoutLimitNotSupportedError.js +2 -2
  344. package/browser/error/OffsetWithoutLimitNotSupportedError.js.map +1 -1
  345. package/browser/error/OptimisticLockCanNotBeUsedError.js +2 -2
  346. package/browser/error/OptimisticLockCanNotBeUsedError.js.map +1 -1
  347. package/browser/error/OptimisticLockVersionMismatchError.js +2 -2
  348. package/browser/error/OptimisticLockVersionMismatchError.js.map +1 -1
  349. package/browser/error/PersistedEntityNotFoundError.js +2 -2
  350. package/browser/error/PersistedEntityNotFoundError.js.map +1 -1
  351. package/browser/error/PessimisticLockTransactionRequiredError.js +2 -2
  352. package/browser/error/PessimisticLockTransactionRequiredError.js.map +1 -1
  353. package/browser/error/PrimaryColumnCannotBeNullableError.js +2 -2
  354. package/browser/error/PrimaryColumnCannotBeNullableError.js.map +1 -1
  355. package/browser/error/QueryFailedError.js +3 -3
  356. package/browser/error/QueryFailedError.js.map +1 -1
  357. package/browser/error/QueryRunnerAlreadyReleasedError.js +2 -2
  358. package/browser/error/QueryRunnerAlreadyReleasedError.js.map +1 -1
  359. package/browser/error/QueryRunnerProviderAlreadyReleasedError.js +2 -2
  360. package/browser/error/QueryRunnerProviderAlreadyReleasedError.js.map +1 -1
  361. package/browser/error/RepositoryNotFoundError.d.ts +2 -2
  362. package/browser/error/RepositoryNotFoundError.js +5 -2
  363. package/browser/error/RepositoryNotFoundError.js.map +1 -1
  364. package/browser/error/RepositoryNotTreeError.d.ts +2 -2
  365. package/browser/error/RepositoryNotTreeError.js +11 -8
  366. package/browser/error/RepositoryNotTreeError.js.map +1 -1
  367. package/browser/error/ReturningStatementNotSupportedError.js +2 -2
  368. package/browser/error/ReturningStatementNotSupportedError.js.map +1 -1
  369. package/browser/error/SubjectRemovedAndUpdatedError.js +2 -2
  370. package/browser/error/SubjectRemovedAndUpdatedError.js.map +1 -1
  371. package/browser/error/SubjectWithoutIdentifierError.js +2 -2
  372. package/browser/error/SubjectWithoutIdentifierError.js.map +1 -1
  373. package/browser/error/TransactionAlreadyStartedError.js +2 -2
  374. package/browser/error/TransactionAlreadyStartedError.js.map +1 -1
  375. package/browser/error/TransactionNotStartedError.js +2 -2
  376. package/browser/error/TransactionNotStartedError.js.map +1 -1
  377. package/browser/error/TreeRepositoryNotSupportedError.js +2 -2
  378. package/browser/error/TreeRepositoryNotSupportedError.js.map +1 -1
  379. package/browser/error/UpdateValuesMissingError.js +2 -2
  380. package/browser/error/UpdateValuesMissingError.js.map +1 -1
  381. package/browser/error/UsingJoinColumnIsNotAllowedError.js +2 -2
  382. package/browser/error/UsingJoinColumnIsNotAllowedError.js.map +1 -1
  383. package/browser/error/UsingJoinColumnOnlyOnOneSideAllowedError.js +2 -2
  384. package/browser/error/UsingJoinColumnOnlyOnOneSideAllowedError.js.map +1 -1
  385. package/browser/error/UsingJoinTableIsNotAllowedError.js +2 -2
  386. package/browser/error/UsingJoinTableIsNotAllowedError.js.map +1 -1
  387. package/browser/error/UsingJoinTableOnlyOnOneSideAllowedError.js +2 -2
  388. package/browser/error/UsingJoinTableOnlyOnOneSideAllowedError.js.map +1 -1
  389. package/browser/find-options/FindOneOptions.d.ts +2 -2
  390. package/browser/find-options/FindOneOptions.js.map +1 -1
  391. package/browser/find-options/FindOperator.d.ts +6 -3
  392. package/browser/find-options/FindOperator.js +22 -45
  393. package/browser/find-options/FindOperator.js.map +1 -1
  394. package/browser/find-options/FindOptionsUtils.d.ts +2 -2
  395. package/browser/find-options/FindOptionsUtils.js +1 -1
  396. package/browser/find-options/FindOptionsUtils.js.map +1 -1
  397. package/browser/find-options/operator/Any.d.ts +1 -1
  398. package/browser/find-options/operator/Any.js.map +1 -1
  399. package/browser/find-options/operator/Between.d.ts +1 -1
  400. package/browser/find-options/operator/Between.js.map +1 -1
  401. package/browser/find-options/operator/In.d.ts +1 -1
  402. package/browser/find-options/operator/In.js.map +1 -1
  403. package/browser/find-options/operator/Raw.d.ts +1 -1
  404. package/browser/find-options/operator/Raw.js.map +1 -1
  405. package/browser/index.d.ts +8 -11
  406. package/browser/index.js +8 -15
  407. package/browser/index.js.map +1 -1
  408. package/browser/logger/DebugLogger.d.ts +0 -1
  409. package/browser/logger/DebugLogger.js +9 -9
  410. package/browser/logger/DebugLogger.js.map +1 -1
  411. package/browser/logger/FileLogger.d.ts +3 -1
  412. package/browser/logger/FileLogger.js +9 -3
  413. package/browser/logger/FileLogger.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 +15 -16
  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 -5
  421. package/browser/metadata/EntityMetadata.js +15 -16
  422. package/browser/metadata/EntityMetadata.js.map +1 -1
  423. package/browser/metadata/RelationMetadata.js +12 -12
  424. package/browser/metadata/RelationMetadata.js.map +1 -1
  425. package/browser/metadata-args/EntityRepositoryMetadataArgs.d.ts +2 -2
  426. package/browser/metadata-args/EntityRepositoryMetadataArgs.js.map +1 -1
  427. package/browser/metadata-args/RelationCountMetadataArgs.js.map +1 -1
  428. package/browser/metadata-args/RelationIdMetadataArgs.js.map +1 -1
  429. package/browser/metadata-builder/EntityMetadataBuilder.js +14 -12
  430. package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  431. package/browser/metadata-builder/JunctionEntityMetadataBuilder.js +3 -2
  432. package/browser/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  433. package/browser/migration/MigrationExecutor.js +132 -103
  434. package/browser/migration/MigrationExecutor.js.map +1 -1
  435. package/browser/naming-strategy/DefaultNamingStrategy.d.ts +5 -0
  436. package/browser/naming-strategy/DefaultNamingStrategy.js +8 -6
  437. package/browser/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  438. package/browser/naming-strategy/NamingStrategyInterface.d.ts +11 -0
  439. package/browser/naming-strategy/NamingStrategyInterface.js.map +1 -1
  440. package/browser/persistence/EntityPersistExecutor.js +64 -46
  441. package/browser/persistence/EntityPersistExecutor.js.map +1 -1
  442. package/browser/persistence/Subject.js +2 -2
  443. package/browser/persistence/Subject.js.map +1 -1
  444. package/browser/persistence/SubjectChangedColumnsComputer.js +11 -7
  445. package/browser/persistence/SubjectChangedColumnsComputer.js.map +1 -1
  446. package/browser/persistence/SubjectDatabaseEntityLoader.js +9 -8
  447. package/browser/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  448. package/browser/persistence/SubjectExecutor.js +263 -206
  449. package/browser/persistence/SubjectExecutor.js.map +1 -1
  450. package/browser/persistence/SubjectTopoligicalSorter.js +6 -6
  451. package/browser/persistence/SubjectTopoligicalSorter.js.map +1 -1
  452. package/browser/persistence/subject-builder/CascadesSubjectBuilder.js +2 -2
  453. package/browser/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
  454. package/browser/persistence/subject-builder/ManyToManySubjectBuilder.js +2 -3
  455. package/browser/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
  456. package/browser/persistence/subject-builder/OneToManySubjectBuilder.js +1 -1
  457. package/browser/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
  458. package/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js +1 -1
  459. package/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -1
  460. package/browser/persistence/tree/ClosureSubjectExecutor.js +4 -4
  461. package/browser/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
  462. package/browser/persistence/tree/MaterializedPathSubjectExecutor.js +5 -4
  463. package/browser/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
  464. package/browser/persistence/tree/NestedSetSubjectExecutor.js +3 -3
  465. package/browser/platform/BrowserConnectionOptionsReaderDummy.d.ts +38 -0
  466. package/browser/platform/BrowserConnectionOptionsReaderDummy.js +93 -0
  467. package/browser/platform/BrowserConnectionOptionsReaderDummy.js.map +1 -0
  468. package/browser/platform/BrowserDirectoryExportedClassesLoader.d.ts +15 -0
  469. package/browser/platform/BrowserDirectoryExportedClassesLoader.js +22 -0
  470. package/browser/platform/BrowserDirectoryExportedClassesLoader.js.map +1 -0
  471. package/browser/platform/BrowserDisabledDriversDummy.d.ts +32 -2
  472. package/browser/platform/BrowserDisabledDriversDummy.js +52 -2
  473. package/browser/platform/BrowserDisabledDriversDummy.js.map +1 -1
  474. package/browser/platform/BrowserFileLoggerDummy.d.ts +33 -0
  475. package/browser/platform/BrowserFileLoggerDummy.js +58 -0
  476. package/browser/platform/BrowserFileLoggerDummy.js.map +1 -0
  477. package/browser/platform/BrowserPlatformTools.d.ts +74 -0
  478. package/browser/platform/BrowserPlatformTools.js +157 -0
  479. package/browser/platform/BrowserPlatformTools.js.map +1 -0
  480. package/browser/platform/PlatformTools.d.ts +15 -21
  481. package/browser/platform/PlatformTools.js +142 -81
  482. package/browser/platform/PlatformTools.js.map +1 -1
  483. package/browser/query-builder/Alias.js.map +1 -1
  484. package/browser/query-builder/DeleteQueryBuilder.d.ts +2 -3
  485. package/browser/query-builder/DeleteQueryBuilder.js +10 -5
  486. package/browser/query-builder/DeleteQueryBuilder.js.map +1 -1
  487. package/browser/query-builder/InsertQueryBuilder.d.ts +2 -3
  488. package/browser/query-builder/InsertQueryBuilder.js +23 -9
  489. package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
  490. package/browser/query-builder/JoinAttribute.js +2 -2
  491. package/browser/query-builder/JoinAttribute.js.map +1 -1
  492. package/browser/query-builder/QueryBuilder.d.ts +11 -15
  493. package/browser/query-builder/QueryBuilder.js +92 -31
  494. package/browser/query-builder/QueryBuilder.js.map +1 -1
  495. package/browser/query-builder/QueryBuilderUtils.js +2 -2
  496. package/browser/query-builder/QueryBuilderUtils.js.map +1 -1
  497. package/browser/query-builder/QueryExpressionMap.d.ts +1 -1
  498. package/browser/query-builder/QueryExpressionMap.js +4 -4
  499. package/browser/query-builder/QueryExpressionMap.js.map +1 -1
  500. package/browser/query-builder/QueryPartialEntity.d.ts +1 -1
  501. package/browser/query-builder/QueryPartialEntity.js.map +1 -1
  502. package/browser/query-builder/RelationIdLoader.js +5 -5
  503. package/browser/query-builder/RelationLoader.js +3 -3
  504. package/browser/query-builder/RelationLoader.js.map +1 -1
  505. package/browser/query-builder/RelationQueryBuilder.js +14 -14
  506. package/browser/query-builder/RelationQueryBuilder.js.map +1 -1
  507. package/browser/query-builder/RelationRemover.js +7 -7
  508. package/browser/query-builder/RelationRemover.js.map +1 -1
  509. package/browser/query-builder/RelationUpdater.js +3 -3
  510. package/browser/query-builder/ReturningResultsEntityUpdator.js +30 -31
  511. package/browser/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
  512. package/browser/query-builder/SelectQueryBuilder.d.ts +5 -4
  513. package/browser/query-builder/SelectQueryBuilder.js +77 -41
  514. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  515. package/browser/query-builder/SoftDeleteQueryBuilder.d.ts +2 -3
  516. package/browser/query-builder/SoftDeleteQueryBuilder.js +7 -7
  517. package/browser/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  518. package/browser/query-builder/UpdateQueryBuilder.js +22 -8
  519. package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
  520. package/browser/query-builder/relation-count/RelationCountAttribute.js +3 -3
  521. package/browser/query-builder/relation-count/RelationCountAttribute.js.map +1 -1
  522. package/browser/query-builder/relation-count/RelationCountLoader.js +5 -5
  523. package/browser/query-builder/relation-id/RelationIdAttribute.js +2 -2
  524. package/browser/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
  525. package/browser/query-builder/relation-id/RelationIdLoader.js +6 -6
  526. package/browser/query-builder/relation-id/RelationIdLoader.js.map +1 -1
  527. package/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js +4 -4
  528. package/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
  529. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js +4 -7
  530. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  531. package/browser/query-runner/BaseQueryRunner.d.ts +2 -5
  532. package/browser/query-runner/BaseQueryRunner.js +106 -56
  533. package/browser/query-runner/BaseQueryRunner.js.map +1 -1
  534. package/browser/query-runner/QueryRunner.d.ts +1 -0
  535. package/browser/repository/AbstractRepository.js.map +1 -1
  536. package/browser/repository/BaseEntity.d.ts +17 -1
  537. package/browser/repository/BaseEntity.js +24 -6
  538. package/browser/repository/BaseEntity.js.map +1 -1
  539. package/browser/repository/MongoRepository.js +2 -2
  540. package/browser/repository/MongoRepository.js.map +1 -1
  541. package/browser/repository/Repository.d.ts +1 -1
  542. package/browser/repository/Repository.js +4 -4
  543. package/browser/repository/Repository.js.map +1 -1
  544. package/browser/repository/TreeRepository.js +4 -4
  545. package/browser/repository/TreeRepository.js.map +1 -1
  546. package/browser/schema-builder/MongoSchemaBuilder.js +4 -4
  547. package/browser/schema-builder/MongoSchemaBuilder.js.map +1 -1
  548. package/browser/schema-builder/RdbmsSchemaBuilder.js +924 -368
  549. package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  550. package/browser/schema-builder/options/TableIndexOptions.d.ts +1 -1
  551. package/browser/schema-builder/options/TableIndexOptions.js.map +1 -1
  552. package/browser/schema-builder/table/TableCheck.js +2 -2
  553. package/browser/schema-builder/table/TableCheck.js.map +1 -1
  554. package/browser/schema-builder/table/TableForeignKey.js +3 -3
  555. package/browser/schema-builder/table/TableForeignKey.js.map +1 -1
  556. package/browser/schema-builder/table/TableIndex.js +2 -2
  557. package/browser/schema-builder/table/TableIndex.js.map +1 -1
  558. package/browser/schema-builder/table/TableUnique.js +2 -2
  559. package/browser/schema-builder/table/TableUnique.js.map +1 -1
  560. package/browser/schema-builder/view/View.d.ts +1 -2
  561. package/browser/schema-builder/view/View.js.map +1 -1
  562. package/browser/util/ApplyValueTransformers.js.map +1 -1
  563. package/browser/util/DateUtils.js +3 -3
  564. package/browser/util/DateUtils.js.map +1 -1
  565. package/browser/util/DirectoryExportedClassesLoader.js +6 -5
  566. package/browser/util/DirectoryExportedClassesLoader.js.map +1 -1
  567. package/browser/util/ObjectUtils.js +4 -4
  568. package/browser/util/ObjectUtils.js.map +1 -1
  569. package/browser/util/OrmUtils.d.ts +4 -0
  570. package/browser/util/OrmUtils.js +19 -4
  571. package/browser/util/OrmUtils.js.map +1 -1
  572. package/browser/util/StringUtils.js +1 -1
  573. package/browser/util/StringUtils.js.map +1 -1
  574. package/cache/DbQueryResultCache.js +1 -1
  575. package/cache/DbQueryResultCache.js.map +1 -1
  576. package/cache/RedisQueryResultCache.js +7 -2
  577. package/cache/RedisQueryResultCache.js.map +1 -1
  578. package/cli.js +2 -1
  579. package/cli.js.map +1 -1
  580. package/commands/CacheClearCommand.js +4 -4
  581. package/commands/CacheClearCommand.js.map +1 -1
  582. package/commands/CommandUtils.d.ts +1 -1
  583. package/commands/CommandUtils.js +4 -4
  584. package/commands/CommandUtils.js.map +1 -1
  585. package/commands/EntityCreateCommand.js +4 -4
  586. package/commands/EntityCreateCommand.js.map +1 -1
  587. package/commands/InitCommand.js +15 -5
  588. package/commands/InitCommand.js.map +1 -1
  589. package/commands/MigrationCreateCommand.js +6 -6
  590. package/commands/MigrationCreateCommand.js.map +1 -1
  591. package/commands/MigrationGenerateCommand.d.ts +11 -1
  592. package/commands/MigrationGenerateCommand.js +42 -10
  593. package/commands/MigrationGenerateCommand.js.map +1 -1
  594. package/commands/MigrationRevertCommand.js +2 -2
  595. package/commands/MigrationRevertCommand.js.map +1 -1
  596. package/commands/MigrationRunCommand.js +3 -3
  597. package/commands/MigrationRunCommand.js.map +1 -1
  598. package/commands/MigrationShowCommand.js +3 -3
  599. package/commands/MigrationShowCommand.js.map +1 -1
  600. package/commands/QueryCommand.js +5 -5
  601. package/commands/QueryCommand.js.map +1 -1
  602. package/commands/SchemaDropCommand.js +3 -3
  603. package/commands/SchemaDropCommand.js.map +1 -1
  604. package/commands/SchemaLogCommand.js +6 -6
  605. package/commands/SchemaLogCommand.js.map +1 -1
  606. package/commands/SchemaSyncCommand.js +3 -3
  607. package/commands/SchemaSyncCommand.js.map +1 -1
  608. package/commands/SubscriberCreateCommand.js +3 -3
  609. package/commands/SubscriberCreateCommand.js.map +1 -1
  610. package/commands/VersionCommand.js +2 -2
  611. package/commands/VersionCommand.js.map +1 -1
  612. package/common/DeepPartial.d.ts +1 -1
  613. package/common/DeepPartial.js.map +1 -1
  614. package/common/EntityTarget.d.ts +9 -0
  615. package/common/EntityTarget.js +4 -0
  616. package/common/EntityTarget.js.map +1 -0
  617. package/connection/Connection.d.ts +11 -10
  618. package/connection/Connection.js +48 -24
  619. package/connection/Connection.js.map +1 -1
  620. package/connection/ConnectionOptions.d.ts +3 -1
  621. package/connection/ConnectionOptions.js.map +1 -1
  622. package/connection/ConnectionOptionsReader.js +38 -33
  623. package/connection/ConnectionOptionsReader.js.map +1 -1
  624. package/connection/options-reader/ConnectionOptionsEnvReader.d.ts +5 -1
  625. package/connection/options-reader/ConnectionOptionsEnvReader.js +45 -31
  626. package/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
  627. package/connection/options-reader/ConnectionOptionsXmlReader.js +2 -2
  628. package/connection/options-reader/ConnectionOptionsXmlReader.js.map +1 -1
  629. package/connection/options-reader/ConnectionOptionsYmlReader.d.ts +1 -1
  630. package/connection/options-reader/ConnectionOptionsYmlReader.js +15 -4
  631. package/connection/options-reader/ConnectionOptionsYmlReader.js.map +1 -1
  632. package/decorator/Check.d.ts +2 -2
  633. package/decorator/Check.js.map +1 -1
  634. package/decorator/EntityRepository.d.ts +1 -1
  635. package/decorator/EntityRepository.js.map +1 -1
  636. package/decorator/Exclusion.d.ts +2 -2
  637. package/decorator/Exclusion.js.map +1 -1
  638. package/decorator/Generated.d.ts +1 -1
  639. package/decorator/Generated.js.map +1 -1
  640. package/decorator/Index.d.ts +7 -7
  641. package/decorator/Index.js.map +1 -1
  642. package/decorator/Unique.d.ts +4 -4
  643. package/decorator/Unique.js +12 -1
  644. package/decorator/Unique.js.map +1 -1
  645. package/decorator/columns/Column.d.ts +12 -12
  646. package/decorator/columns/Column.js.map +1 -1
  647. package/decorator/columns/CreateDateColumn.d.ts +1 -1
  648. package/decorator/columns/CreateDateColumn.js.map +1 -1
  649. package/decorator/columns/DeleteDateColumn.d.ts +1 -1
  650. package/decorator/columns/DeleteDateColumn.js.map +1 -1
  651. package/decorator/columns/ObjectIdColumn.d.ts +1 -1
  652. package/decorator/columns/ObjectIdColumn.js.map +1 -1
  653. package/decorator/columns/PrimaryColumn.d.ts +2 -2
  654. package/decorator/columns/PrimaryColumn.js.map +1 -1
  655. package/decorator/columns/PrimaryGeneratedColumn.d.ts +5 -5
  656. package/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
  657. package/decorator/columns/UpdateDateColumn.d.ts +1 -1
  658. package/decorator/columns/UpdateDateColumn.js.map +1 -1
  659. package/decorator/columns/VersionColumn.d.ts +1 -1
  660. package/decorator/columns/VersionColumn.js.map +1 -1
  661. package/decorator/columns/ViewColumn.d.ts +2 -1
  662. package/decorator/columns/ViewColumn.js +2 -2
  663. package/decorator/columns/ViewColumn.js.map +1 -1
  664. package/decorator/entity/ChildEntity.d.ts +1 -1
  665. package/decorator/entity/ChildEntity.js.map +1 -1
  666. package/decorator/entity/Entity.d.ts +2 -2
  667. package/decorator/entity/Entity.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/options/ViewColumnOptions.d.ts +9 -0
  691. package/decorator/options/ViewColumnOptions.js +4 -0
  692. package/decorator/options/ViewColumnOptions.js.map +1 -0
  693. package/decorator/relations/JoinColumn.d.ts +3 -3
  694. package/decorator/relations/JoinColumn.js.map +1 -1
  695. package/decorator/relations/JoinTable.d.ts +3 -3
  696. package/decorator/relations/JoinTable.js.map +1 -1
  697. package/decorator/relations/ManyToMany.d.ts +2 -2
  698. package/decorator/relations/ManyToMany.js.map +1 -1
  699. package/decorator/relations/ManyToOne.d.ts +2 -2
  700. package/decorator/relations/ManyToOne.js.map +1 -1
  701. package/decorator/relations/OneToMany.d.ts +3 -3
  702. package/decorator/relations/OneToMany.js +2 -2
  703. package/decorator/relations/OneToMany.js.map +1 -1
  704. package/decorator/relations/OneToOne.d.ts +2 -2
  705. package/decorator/relations/OneToOne.js.map +1 -1
  706. package/decorator/relations/RelationCount.d.ts +1 -1
  707. package/decorator/relations/RelationCount.js.map +1 -1
  708. package/decorator/relations/RelationId.d.ts +1 -1
  709. package/decorator/relations/RelationId.js.map +1 -1
  710. package/decorator/transaction/TransactionManager.d.ts +1 -1
  711. package/decorator/transaction/TransactionManager.js.map +1 -1
  712. package/decorator/tree/Tree.d.ts +1 -1
  713. package/decorator/tree/Tree.js.map +1 -1
  714. package/decorator/tree/TreeChildren.d.ts +1 -1
  715. package/decorator/tree/TreeChildren.js.map +1 -1
  716. package/decorator/tree/TreeLevelColumn.d.ts +1 -1
  717. package/decorator/tree/TreeLevelColumn.js.map +1 -1
  718. package/decorator/tree/TreeParent.d.ts +1 -1
  719. package/decorator/tree/TreeParent.js.map +1 -1
  720. package/driver/Driver.d.ts +7 -2
  721. package/driver/Driver.js.map +1 -1
  722. package/driver/DriverFactory.js +6 -0
  723. package/driver/DriverFactory.js.map +1 -1
  724. package/driver/DriverUtils.d.ts +2 -2
  725. package/driver/DriverUtils.js +6 -2
  726. package/driver/DriverUtils.js.map +1 -1
  727. package/driver/aurora-data-api/AuroraDataApiConnection.d.ts +2 -1
  728. package/driver/aurora-data-api/AuroraDataApiConnection.js +0 -1
  729. package/driver/aurora-data-api/AuroraDataApiConnection.js.map +1 -1
  730. package/driver/aurora-data-api/AuroraDataApiConnectionOptions.d.ts +6 -0
  731. package/driver/aurora-data-api/AuroraDataApiConnectionOptions.js.map +1 -1
  732. package/driver/aurora-data-api/AuroraDataApiDriver.d.ts +6 -1
  733. package/driver/aurora-data-api/AuroraDataApiDriver.js +7 -2
  734. package/driver/aurora-data-api/AuroraDataApiDriver.js.map +1 -1
  735. package/driver/aurora-data-api/AuroraDataApiQueryRunner.d.ts +4 -0
  736. package/driver/aurora-data-api/AuroraDataApiQueryRunner.js +106 -19
  737. package/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
  738. package/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.d.ts +27 -0
  739. package/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.js +4 -0
  740. package/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.js.map +1 -0
  741. package/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.d.ts +57 -0
  742. package/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js +101 -0
  743. package/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js.map +1 -0
  744. package/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.d.ts +51 -0
  745. package/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js +144 -0
  746. package/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js.map +1 -0
  747. package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.d.ts +50 -0
  748. package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js +4 -0
  749. package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -0
  750. package/driver/better-sqlite3/BetterSqlite3Driver.d.ts +46 -0
  751. package/driver/better-sqlite3/BetterSqlite3Driver.js +127 -0
  752. package/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -0
  753. package/driver/better-sqlite3/BetterSqlite3QueryRunner.d.ts +22 -0
  754. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js +115 -0
  755. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -0
  756. package/driver/cockroachdb/CockroachConnectionCredentialsOptions.js.map +1 -1
  757. package/driver/cockroachdb/CockroachDriver.d.ts +6 -1
  758. package/driver/cockroachdb/CockroachDriver.js +6 -1
  759. package/driver/cockroachdb/CockroachDriver.js.map +1 -1
  760. package/driver/cockroachdb/CockroachQueryRunner.d.ts +2 -1
  761. package/driver/cockroachdb/CockroachQueryRunner.js +303 -75
  762. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  763. package/driver/cordova/CordovaDriver.d.ts +2 -1
  764. package/driver/cordova/CordovaDriver.js +0 -1
  765. package/driver/cordova/CordovaDriver.js.map +1 -1
  766. package/driver/expo/ExpoDriver.d.ts +2 -1
  767. package/driver/expo/ExpoDriver.js +1 -1
  768. package/driver/expo/ExpoDriver.js.map +1 -1
  769. package/driver/mongodb/MongoDriver.d.ts +6 -1
  770. package/driver/mongodb/MongoDriver.js +6 -1
  771. package/driver/mongodb/MongoDriver.js.map +1 -1
  772. package/driver/mongodb/MongoQueryRunner.js.map +1 -1
  773. package/driver/mongodb/typings.d.ts +4 -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 +10 -3
  777. package/driver/mysql/MysqlDriver.js.map +1 -1
  778. package/driver/mysql/MysqlQueryRunner.d.ts +6 -1
  779. package/driver/mysql/MysqlQueryRunner.js +122 -25
  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 +87 -20
  789. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  790. package/driver/postgres/PostgresConnectionCredentialsOptions.d.ts +1 -1
  791. package/driver/postgres/PostgresConnectionCredentialsOptions.js.map +1 -1
  792. package/driver/postgres/PostgresConnectionOptions.d.ts +9 -0
  793. package/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  794. package/driver/postgres/PostgresDriver.d.ts +19 -4
  795. package/driver/postgres/PostgresDriver.js +179 -109
  796. package/driver/postgres/PostgresDriver.js.map +1 -1
  797. package/driver/postgres/PostgresQueryRunner.d.ts +2 -1
  798. package/driver/postgres/PostgresQueryRunner.js +288 -68
  799. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  800. package/driver/react-native/ReactNativeDriver.d.ts +2 -1
  801. package/driver/react-native/ReactNativeDriver.js +2 -2
  802. package/driver/react-native/ReactNativeDriver.js.map +1 -1
  803. package/driver/sap/SapConnectionCredentialsOptions.d.ts +1 -1
  804. package/driver/sap/SapConnectionCredentialsOptions.js.map +1 -1
  805. package/driver/sap/SapDriver.d.ts +6 -1
  806. package/driver/sap/SapDriver.js +19 -9
  807. package/driver/sap/SapDriver.js.map +1 -1
  808. package/driver/sap/SapQueryRunner.d.ts +2 -1
  809. package/driver/sap/SapQueryRunner.js +91 -23
  810. package/driver/sap/SapQueryRunner.js.map +1 -1
  811. package/driver/sqlite/SqliteConnectionOptions.d.ts +18 -0
  812. package/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
  813. package/driver/sqlite/SqliteDriver.d.ts +2 -1
  814. package/driver/sqlite/SqliteDriver.js +24 -12
  815. package/driver/sqlite/SqliteDriver.js.map +1 -1
  816. package/driver/sqlite/SqliteQueryRunner.js +29 -14
  817. package/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  818. package/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +7 -2
  819. package/driver/sqlite-abstract/AbstractSqliteDriver.js +31 -4
  820. package/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  821. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +17 -3
  822. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  823. package/driver/sqljs/SqljsDriver.d.ts +2 -1
  824. package/driver/sqljs/SqljsDriver.js +1 -2
  825. package/driver/sqljs/SqljsDriver.js.map +1 -1
  826. package/driver/sqljs/SqljsQueryRunner.js +5 -1
  827. package/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  828. package/driver/sqlserver/SqlServerDriver.d.ts +6 -1
  829. package/driver/sqlserver/SqlServerDriver.js +6 -1
  830. package/driver/sqlserver/SqlServerDriver.js.map +1 -1
  831. package/driver/sqlserver/SqlServerQueryRunner.d.ts +2 -1
  832. package/driver/sqlserver/SqlServerQueryRunner.js +91 -24
  833. package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  834. package/driver/types/ColumnTypes.d.ts +1 -1
  835. package/driver/types/ColumnTypes.js.map +1 -1
  836. package/driver/types/DatabaseType.d.ts +1 -1
  837. package/driver/types/DatabaseType.js.map +1 -1
  838. package/driver/types/ReplicationMode.d.ts +1 -0
  839. package/driver/types/ReplicationMode.js +4 -0
  840. package/driver/types/ReplicationMode.js.map +1 -0
  841. package/entity-manager/EntityManager.d.ts +42 -257
  842. package/entity-manager/EntityManager.js +10 -10
  843. package/entity-manager/EntityManager.js.map +1 -1
  844. package/entity-manager/MongoEntityManager.d.ts +46 -46
  845. package/entity-manager/MongoEntityManager.js.map +1 -1
  846. package/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
  847. package/entity-schema/EntitySchemaRelationOptions.d.ts +1 -1
  848. package/entity-schema/EntitySchemaRelationOptions.js.map +1 -1
  849. package/entity-schema/EntitySchemaTransformer.js +22 -7
  850. package/entity-schema/EntitySchemaTransformer.js.map +1 -1
  851. package/error/EntityMetadataNotFoundError.d.ts +2 -2
  852. package/error/EntityMetadataNotFoundError.js +3 -0
  853. package/error/EntityMetadataNotFoundError.js.map +1 -1
  854. package/error/EntityNotFoundError.d.ts +2 -3
  855. package/error/EntityNotFoundError.js +3 -0
  856. package/error/EntityNotFoundError.js.map +1 -1
  857. package/error/FindRelationsNotFoundError.js +2 -2
  858. package/error/FindRelationsNotFoundError.js.map +1 -1
  859. package/error/MissingDriverError.js +1 -1
  860. package/error/MissingDriverError.js.map +1 -1
  861. package/error/QueryFailedError.js +1 -1
  862. package/error/QueryFailedError.js.map +1 -1
  863. package/error/RepositoryNotFoundError.d.ts +2 -2
  864. package/error/RepositoryNotFoundError.js +3 -0
  865. package/error/RepositoryNotFoundError.js.map +1 -1
  866. package/error/RepositoryNotTreeError.d.ts +2 -2
  867. package/error/RepositoryNotTreeError.js +9 -6
  868. package/error/RepositoryNotTreeError.js.map +1 -1
  869. package/find-options/FindOneOptions.d.ts +2 -2
  870. package/find-options/FindOneOptions.js.map +1 -1
  871. package/find-options/FindOperator.d.ts +6 -3
  872. package/find-options/FindOperator.js +22 -45
  873. package/find-options/FindOperator.js.map +1 -1
  874. package/find-options/FindOptionsUtils.d.ts +2 -2
  875. package/find-options/FindOptionsUtils.js +1 -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/In.d.ts +1 -1
  882. package/find-options/operator/In.js.map +1 -1
  883. package/find-options/operator/Raw.d.ts +1 -1
  884. package/find-options/operator/Raw.js.map +1 -1
  885. package/index.d.ts +8 -11
  886. package/index.js +1 -14
  887. package/index.js.map +1 -1
  888. package/logger/DebugLogger.d.ts +0 -1
  889. package/logger/DebugLogger.js +10 -9
  890. package/logger/DebugLogger.js.map +1 -1
  891. package/logger/FileLogger.d.ts +3 -1
  892. package/logger/FileLogger.js +10 -3
  893. package/logger/FileLogger.js.map +1 -1
  894. package/logger/LoggerOptions.d.ts +9 -0
  895. package/logger/LoggerOptions.js.map +1 -1
  896. package/metadata/ColumnMetadata.js +10 -11
  897. package/metadata/ColumnMetadata.js.map +1 -1
  898. package/metadata/EntityMetadata.d.ts +1 -5
  899. package/metadata/EntityMetadata.js +13 -14
  900. package/metadata/EntityMetadata.js.map +1 -1
  901. package/metadata/RelationMetadata.js +7 -7
  902. package/metadata/RelationMetadata.js.map +1 -1
  903. package/metadata-args/EntityRepositoryMetadataArgs.d.ts +2 -2
  904. package/metadata-args/EntityRepositoryMetadataArgs.js.map +1 -1
  905. package/metadata-args/RelationCountMetadataArgs.js.map +1 -1
  906. package/metadata-args/RelationIdMetadataArgs.js.map +1 -1
  907. package/metadata-builder/EntityMetadataBuilder.js +8 -6
  908. package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  909. package/metadata-builder/JunctionEntityMetadataBuilder.js +1 -0
  910. package/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  911. package/migration/MigrationExecutor.js +103 -74
  912. package/migration/MigrationExecutor.js.map +1 -1
  913. package/naming-strategy/DefaultNamingStrategy.d.ts +5 -0
  914. package/naming-strategy/DefaultNamingStrategy.js +2 -0
  915. package/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  916. package/naming-strategy/NamingStrategyInterface.d.ts +11 -0
  917. package/naming-strategy/NamingStrategyInterface.js.map +1 -1
  918. package/package.json +72 -51
  919. package/persistence/EntityPersistExecutor.js +60 -42
  920. package/persistence/EntityPersistExecutor.js.map +1 -1
  921. package/persistence/SubjectChangedColumnsComputer.js +11 -7
  922. package/persistence/SubjectChangedColumnsComputer.js.map +1 -1
  923. package/persistence/SubjectDatabaseEntityLoader.js +2 -1
  924. package/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  925. package/persistence/SubjectExecutor.js +244 -187
  926. package/persistence/SubjectExecutor.js.map +1 -1
  927. package/persistence/subject-builder/ManyToManySubjectBuilder.js +2 -3
  928. package/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
  929. package/persistence/subject-builder/OneToManySubjectBuilder.js +1 -1
  930. package/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
  931. package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js +1 -1
  932. package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -1
  933. package/persistence/tree/MaterializedPathSubjectExecutor.js +2 -1
  934. package/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
  935. package/platform/PlatformTools.d.ts +7 -1
  936. package/platform/PlatformTools.js +44 -43
  937. package/platform/PlatformTools.js.map +1 -1
  938. package/query-builder/Alias.js.map +1 -1
  939. package/query-builder/DeleteQueryBuilder.d.ts +2 -3
  940. package/query-builder/DeleteQueryBuilder.js +5 -0
  941. package/query-builder/DeleteQueryBuilder.js.map +1 -1
  942. package/query-builder/InsertQueryBuilder.d.ts +2 -3
  943. package/query-builder/InsertQueryBuilder.js +18 -4
  944. package/query-builder/InsertQueryBuilder.js.map +1 -1
  945. package/query-builder/QueryBuilder.d.ts +11 -15
  946. package/query-builder/QueryBuilder.js +84 -23
  947. package/query-builder/QueryBuilder.js.map +1 -1
  948. package/query-builder/QueryExpressionMap.d.ts +1 -1
  949. package/query-builder/QueryExpressionMap.js.map +1 -1
  950. package/query-builder/QueryPartialEntity.d.ts +1 -1
  951. package/query-builder/QueryPartialEntity.js.map +1 -1
  952. package/query-builder/ReturningResultsEntityUpdator.js +23 -24
  953. package/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
  954. package/query-builder/SelectQueryBuilder.d.ts +4 -4
  955. package/query-builder/SelectQueryBuilder.js +41 -5
  956. package/query-builder/SelectQueryBuilder.js.map +1 -1
  957. package/query-builder/SoftDeleteQueryBuilder.d.ts +2 -3
  958. package/query-builder/SoftDeleteQueryBuilder.js +2 -2
  959. package/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  960. package/query-builder/UpdateQueryBuilder.js +17 -3
  961. package/query-builder/UpdateQueryBuilder.js.map +1 -1
  962. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js +1 -4
  963. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  964. package/query-runner/BaseQueryRunner.d.ts +2 -5
  965. package/query-runner/BaseQueryRunner.js +90 -40
  966. package/query-runner/BaseQueryRunner.js.map +1 -1
  967. package/repository/AbstractRepository.js.map +1 -1
  968. package/repository/BaseEntity.d.ts +17 -1
  969. package/repository/BaseEntity.js +20 -2
  970. package/repository/BaseEntity.js.map +1 -1
  971. package/repository/MongoRepository.js.map +1 -1
  972. package/repository/Repository.d.ts +1 -1
  973. package/repository/Repository.js +2 -2
  974. package/repository/Repository.js.map +1 -1
  975. package/schema-builder/MongoSchemaBuilder.js +1 -1
  976. package/schema-builder/MongoSchemaBuilder.js.map +1 -1
  977. package/schema-builder/RdbmsSchemaBuilder.js +875 -319
  978. package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  979. package/schema-builder/options/TableIndexOptions.d.ts +1 -1
  980. package/schema-builder/options/TableIndexOptions.js.map +1 -1
  981. package/schema-builder/view/View.d.ts +1 -2
  982. package/schema-builder/view/View.js.map +1 -1
  983. package/typeorm-class-transformer-shim.js +16 -2
  984. package/typeorm-model-shim.js +18 -0
  985. package/util/ApplyValueTransformers.js.map +1 -1
  986. package/util/DateUtils.js +1 -1
  987. package/util/DateUtils.js.map +1 -1
  988. package/util/DirectoryExportedClassesLoader.js +7 -5
  989. package/util/DirectoryExportedClassesLoader.js.map +1 -1
  990. package/util/ObjectUtils.js +2 -2
  991. package/util/ObjectUtils.js.map +1 -1
  992. package/util/OrmUtils.d.ts +4 -0
  993. package/util/OrmUtils.js +17 -2
  994. package/util/OrmUtils.js.map +1 -1
  995. package/util/StringUtils.js +3 -2
  996. package/util/StringUtils.js.map +1 -1
  997. package/browser/util/PromiseUtils.d.ts +0 -24
  998. package/browser/util/PromiseUtils.js +0 -62
  999. package/browser/util/PromiseUtils.js.map +0 -1
  1000. package/util/PromiseUtils.d.ts +0 -24
  1001. package/util/PromiseUtils.js +0 -64
  1002. package/util/PromiseUtils.js.map +0 -1
@@ -2,6 +2,7 @@ import { AbstractSqliteDriver } from "../sqlite-abstract/AbstractSqliteDriver";
2
2
  import { ReactNativeConnectionOptions } from "./ReactNativeConnectionOptions";
3
3
  import { QueryRunner } from "../../query-runner/QueryRunner";
4
4
  import { Connection } from "../../connection/Connection";
5
+ import { ReplicationMode } from "../types/ReplicationMode";
5
6
  export declare class ReactNativeDriver extends AbstractSqliteDriver {
6
7
  options: ReactNativeConnectionOptions;
7
8
  constructor(connection: Connection);
@@ -12,7 +13,7 @@ export declare class ReactNativeDriver extends AbstractSqliteDriver {
12
13
  /**
13
14
  * Creates a query runner used to execute database queries.
14
15
  */
15
- createQueryRunner(mode?: "master" | "slave"): QueryRunner;
16
+ createQueryRunner(mode: ReplicationMode): QueryRunner;
16
17
  /**
17
18
  * Creates connection with the database.
18
19
  */
@@ -5,6 +5,7 @@ var AbstractSqliteDriver_1 = require("../sqlite-abstract/AbstractSqliteDriver");
5
5
  var ReactNativeQueryRunner_1 = require("./ReactNativeQueryRunner");
6
6
  var DriverOptionNotSetError_1 = require("../../error/DriverOptionNotSetError");
7
7
  var DriverPackageNotInstalledError_1 = require("../../error/DriverPackageNotInstalledError");
8
+ var PlatformTools_1 = require("../../platform/PlatformTools");
8
9
  var ReactNativeDriver = /** @class */ (function (_super) {
9
10
  tslib_1.__extends(ReactNativeDriver, _super);
10
11
  // -------------------------------------------------------------------------
@@ -43,7 +44,6 @@ var ReactNativeDriver = /** @class */ (function (_super) {
43
44
  * Creates a query runner used to execute database queries.
44
45
  */
45
46
  ReactNativeDriver.prototype.createQueryRunner = function (mode) {
46
- if (mode === void 0) { mode = "master"; }
47
47
  if (!this.queryRunner)
48
48
  this.queryRunner = new ReactNativeQueryRunner_1.ReactNativeQueryRunner(this);
49
49
  return this.queryRunner;
@@ -80,7 +80,7 @@ var ReactNativeDriver = /** @class */ (function (_super) {
80
80
  */
81
81
  ReactNativeDriver.prototype.loadDependencies = function () {
82
82
  try {
83
- this.sqlite = require("react-native-sqlite-storage");
83
+ this.sqlite = PlatformTools_1.PlatformTools.load("react-native-sqlite-storage");
84
84
  }
85
85
  catch (e) {
86
86
  throw new DriverPackageNotInstalledError_1.DriverPackageNotInstalledError("React-Native", "react-native-sqlite-storage");
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/driver/react-native/ReactNativeDriver.ts"],"names":[],"mappings":";;;AAAA,gFAA6E;AAE7E,mEAAgE;AAGhE,+EAA4E;AAC5E,6FAA0F;AAE1F;IAAuC,6CAAoB;IAGvD,4EAA4E;IAC5E,cAAc;IACd,4EAA4E;IAE5E,2BAAY,UAAsB;QAAlC,YACI,kBAAM,UAAU,CAAC,SAapB;QAXG,KAAI,CAAC,QAAQ,GAAG,KAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QAEtC,kDAAkD;QAClD,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,QAAQ;YACtB,MAAM,IAAI,iDAAuB,CAAC,UAAU,CAAC,CAAC;QAElD,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,QAAQ;YACtB,MAAM,IAAI,iDAAuB,CAAC,UAAU,CAAC,CAAC;QAElD,sBAAsB;QACtB,KAAI,CAAC,gBAAgB,EAAE,CAAC;;IAC5B,CAAC;IAGD,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAE5E;;OAEG;IACG,sCAAU,GAAhB;;;;gBACI,sBAAO,IAAI,OAAO,CAAO,UAAC,EAAE,EAAE,IAAI;wBAC9B,KAAI,CAAC,WAAW,GAAG,SAAS,CAAC;wBAC7B,KAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;oBAC5C,CAAC,CAAC,EAAC;;;KACN;IAED;;OAEG;IACH,6CAAiB,GAAjB,UAAkB,IAAiC;QAAjC,qBAAA,EAAA,eAAiC;QAC/C,IAAI,CAAC,IAAI,CAAC,WAAW;YACjB,IAAI,CAAC,WAAW,GAAG,IAAI,+CAAsB,CAAC,IAAI,CAAC,CAAC;QAExD,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED,4EAA4E;IAC5E,oBAAoB;IACpB,4EAA4E;IAE5E;;OAEG;IACO,oDAAwB,GAAlC;QAAA,iBAqBC;QApBG,OAAO,IAAI,OAAO,CAAO,UAAC,EAAE,EAAE,IAAI;YAC9B,IAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE;gBAC9B,IAAI,EAAE,KAAI,CAAC,OAAO,CAAC,QAAQ;gBAC3B,QAAQ,EAAE,KAAI,CAAC,OAAO,CAAC,QAAQ;aAClC,EAAE,KAAI,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YAE7B,KAAI,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,UAAC,EAAO;gBACtC,IAAM,kBAAkB,GAAG,EAAE,CAAC;gBAE9B,yFAAyF;gBACzF,+DAA+D;gBAC/D,kBAAkB,CAAC,UAAU,CAAC,2BAA2B,EAAE,EAAE,EAAE,UAAC,MAAW;oBACvE,EAAE,CAAC,kBAAkB,CAAC,CAAC;gBAC3B,CAAC,EAAE,UAAC,KAAU;oBACV,IAAI,CAAC,KAAK,CAAC,CAAC;gBAChB,CAAC,CAAC,CAAC;YACP,CAAC,EAAE,UAAC,KAAU;gBACV,IAAI,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACO,4CAAgB,GAA1B;QACI,IAAI;YACA,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAC;SAExD;QAAC,OAAO,CAAC,EAAE;YACR,MAAM,IAAI,+DAA8B,CAAC,cAAc,EAAE,6BAA6B,CAAC,CAAC;SAC3F;IACL,CAAC;IACL,wBAAC;AAAD,CAzFA,AAyFC,CAzFsC,2CAAoB,GAyF1D;AAzFY,8CAAiB","file":"ReactNativeDriver.js","sourcesContent":["import {AbstractSqliteDriver} from \"../sqlite-abstract/AbstractSqliteDriver\";\nimport {ReactNativeConnectionOptions} from \"./ReactNativeConnectionOptions\";\nimport {ReactNativeQueryRunner} from \"./ReactNativeQueryRunner\";\nimport {QueryRunner} from \"../../query-runner/QueryRunner\";\nimport {Connection} from \"../../connection/Connection\";\nimport {DriverOptionNotSetError} from \"../../error/DriverOptionNotSetError\";\nimport {DriverPackageNotInstalledError} from \"../../error/DriverPackageNotInstalledError\";\n\nexport class ReactNativeDriver extends AbstractSqliteDriver {\n options: ReactNativeConnectionOptions;\n \n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(connection: Connection) {\n super(connection);\n\n this.database = this.options.database;\n\n // validate options to make sure everything is set\n if (!this.options.database)\n throw new DriverOptionNotSetError(\"database\");\n\n if (!this.options.location)\n throw new DriverOptionNotSetError(\"location\");\n\n // load sqlite package\n this.loadDependencies();\n }\n \n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Closes connection with database.\n */\n async disconnect(): Promise<void> {\n return new Promise<void>((ok, fail) => {\n this.queryRunner = undefined;\n this.databaseConnection.close(ok, fail);\n });\n }\n \n /**\n * Creates a query runner used to execute database queries.\n */\n createQueryRunner(mode: \"master\"|\"slave\" = \"master\"): QueryRunner {\n if (!this.queryRunner)\n this.queryRunner = new ReactNativeQueryRunner(this);\n\n return this.queryRunner;\n }\n \n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates connection with the database.\n */\n protected createDatabaseConnection() {\n return new Promise<void>((ok, fail) => {\n const options = Object.assign({}, {\n name: this.options.database,\n location: this.options.location,\n }, this.options.extra || {});\n\n this.sqlite.openDatabase(options, (db: any) => {\n const databaseConnection = db;\n\n // we need to enable foreign keys in sqlite to make sure all foreign key related features\n // working properly. this also makes onDelete work with sqlite.\n databaseConnection.executeSql(`PRAGMA foreign_keys = ON;`, [], (result: any) => {\n ok(databaseConnection);\n }, (error: any) => {\n fail(error);\n });\n }, (error: any) => {\n fail(error);\n });\n });\n }\n\n /**\n * If driver dependency is not given explicitly, then try to load it via \"require\".\n */\n protected loadDependencies(): void {\n try {\n this.sqlite = require(\"react-native-sqlite-storage\");\n\n } catch (e) {\n throw new DriverPackageNotInstalledError(\"React-Native\", \"react-native-sqlite-storage\");\n }\n }\n}"],"sourceRoot":"../.."}
1
+ {"version":3,"sources":["../../src/driver/react-native/ReactNativeDriver.ts"],"names":[],"mappings":";;;AAAA,gFAA6E;AAE7E,mEAAgE;AAGhE,+EAA4E;AAC5E,6FAA0F;AAC1F,8DAA2D;AAG3D;IAAuC,6CAAoB;IAGvD,4EAA4E;IAC5E,cAAc;IACd,4EAA4E;IAE5E,2BAAY,UAAsB;QAAlC,YACI,kBAAM,UAAU,CAAC,SAapB;QAXG,KAAI,CAAC,QAAQ,GAAG,KAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QAEtC,kDAAkD;QAClD,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,QAAQ;YACtB,MAAM,IAAI,iDAAuB,CAAC,UAAU,CAAC,CAAC;QAElD,IAAI,CAAC,KAAI,CAAC,OAAO,CAAC,QAAQ;YACtB,MAAM,IAAI,iDAAuB,CAAC,UAAU,CAAC,CAAC;QAElD,sBAAsB;QACtB,KAAI,CAAC,gBAAgB,EAAE,CAAC;;IAC5B,CAAC;IAGD,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAE5E;;OAEG;IACG,sCAAU,GAAhB;;;;gBACI,sBAAO,IAAI,OAAO,CAAO,UAAC,EAAE,EAAE,IAAI;wBAC9B,KAAI,CAAC,WAAW,GAAG,SAAS,CAAC;wBAC7B,KAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;oBAC5C,CAAC,CAAC,EAAC;;;KACN;IAED;;OAEG;IACH,6CAAiB,GAAjB,UAAkB,IAAqB;QACnC,IAAI,CAAC,IAAI,CAAC,WAAW;YACjB,IAAI,CAAC,WAAW,GAAG,IAAI,+CAAsB,CAAC,IAAI,CAAC,CAAC;QAExD,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED,4EAA4E;IAC5E,oBAAoB;IACpB,4EAA4E;IAE5E;;OAEG;IACO,oDAAwB,GAAlC;QAAA,iBAqBC;QApBG,OAAO,IAAI,OAAO,CAAO,UAAC,EAAE,EAAE,IAAI;YAC9B,IAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE;gBAC9B,IAAI,EAAE,KAAI,CAAC,OAAO,CAAC,QAAQ;gBAC3B,QAAQ,EAAE,KAAI,CAAC,OAAO,CAAC,QAAQ;aAClC,EAAE,KAAI,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;YAE7B,KAAI,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,UAAC,EAAO;gBACtC,IAAM,kBAAkB,GAAG,EAAE,CAAC;gBAE9B,yFAAyF;gBACzF,+DAA+D;gBAC/D,kBAAkB,CAAC,UAAU,CAAC,2BAA2B,EAAE,EAAE,EAAE,UAAC,MAAW;oBACvE,EAAE,CAAC,kBAAkB,CAAC,CAAC;gBAC3B,CAAC,EAAE,UAAC,KAAU;oBACV,IAAI,CAAC,KAAK,CAAC,CAAC;gBAChB,CAAC,CAAC,CAAC;YACP,CAAC,EAAE,UAAC,KAAU;gBACV,IAAI,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACO,4CAAgB,GAA1B;QACI,IAAI;YACA,IAAI,CAAC,MAAM,GAAG,6BAAa,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;SAEnE;QAAC,OAAO,CAAC,EAAE;YACR,MAAM,IAAI,+DAA8B,CAAC,cAAc,EAAE,6BAA6B,CAAC,CAAC;SAC3F;IACL,CAAC;IACL,wBAAC;AAAD,CAzFA,AAyFC,CAzFsC,2CAAoB,GAyF1D;AAzFY,8CAAiB","file":"ReactNativeDriver.js","sourcesContent":["import {AbstractSqliteDriver} from \"../sqlite-abstract/AbstractSqliteDriver\";\nimport {ReactNativeConnectionOptions} from \"./ReactNativeConnectionOptions\";\nimport {ReactNativeQueryRunner} from \"./ReactNativeQueryRunner\";\nimport {QueryRunner} from \"../../query-runner/QueryRunner\";\nimport {Connection} from \"../../connection/Connection\";\nimport {DriverOptionNotSetError} from \"../../error/DriverOptionNotSetError\";\nimport {DriverPackageNotInstalledError} from \"../../error/DriverPackageNotInstalledError\";\nimport {PlatformTools} from \"../../platform/PlatformTools\";\nimport {ReplicationMode} from \"../types/ReplicationMode\";\n\nexport class ReactNativeDriver extends AbstractSqliteDriver {\n options: ReactNativeConnectionOptions;\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(connection: Connection) {\n super(connection);\n\n this.database = this.options.database;\n\n // validate options to make sure everything is set\n if (!this.options.database)\n throw new DriverOptionNotSetError(\"database\");\n\n if (!this.options.location)\n throw new DriverOptionNotSetError(\"location\");\n\n // load sqlite package\n this.loadDependencies();\n }\n\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Closes connection with database.\n */\n async disconnect(): Promise<void> {\n return new Promise<void>((ok, fail) => {\n this.queryRunner = undefined;\n this.databaseConnection.close(ok, fail);\n });\n }\n\n /**\n * Creates a query runner used to execute database queries.\n */\n createQueryRunner(mode: ReplicationMode): QueryRunner {\n if (!this.queryRunner)\n this.queryRunner = new ReactNativeQueryRunner(this);\n\n return this.queryRunner;\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates connection with the database.\n */\n protected createDatabaseConnection() {\n return new Promise<void>((ok, fail) => {\n const options = Object.assign({}, {\n name: this.options.database,\n location: this.options.location,\n }, this.options.extra || {});\n\n this.sqlite.openDatabase(options, (db: any) => {\n const databaseConnection = db;\n\n // we need to enable foreign keys in sqlite to make sure all foreign key related features\n // working properly. this also makes onDelete work with sqlite.\n databaseConnection.executeSql(`PRAGMA foreign_keys = ON;`, [], (result: any) => {\n ok(databaseConnection);\n }, (error: any) => {\n fail(error);\n });\n }, (error: any) => {\n fail(error);\n });\n });\n }\n\n /**\n * If driver dependency is not given explicitly, then try to load it via \"require\".\n */\n protected loadDependencies(): void {\n try {\n this.sqlite = PlatformTools.load(\"react-native-sqlite-storage\");\n\n } catch (e) {\n throw new DriverPackageNotInstalledError(\"React-Native\", \"react-native-sqlite-storage\");\n }\n }\n}\n"],"sourceRoot":"../.."}
@@ -29,7 +29,7 @@ export interface SapConnectionCredentialsOptions {
29
29
  /**
30
30
  * Validate database certificate
31
31
  */
32
- readonly validateCertificate?: boolean;
32
+ readonly sslValidateCertificate?: boolean;
33
33
  /**
34
34
  * Key for encrypted connection
35
35
  */
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/driver/sap/SapConnectionCredentialsOptions.ts"],"names":[],"mappings":"","file":"SapConnectionCredentialsOptions.js","sourcesContent":["/**\n * SAP Hana specific connection credential options.\n */\nexport interface SapConnectionCredentialsOptions {\n\n /**\n * Database host.\n */\n readonly host?: string;\n\n /**\n * Database host port.\n */\n readonly port?: number;\n\n /**\n * Database username.\n */\n readonly username?: string;\n\n /**\n * Database password.\n */\n readonly password?: string;\n\n /**\n * Database name to connect to.\n */\n readonly database?: string;\n\n /**\n * Encrypt database connection\n */\n readonly encrypt?: boolean;\n\n /**\n * Validate database certificate\n */\n readonly validateCertificate?: boolean;\n\n /**\n * Key for encrypted connection\n */\n readonly key?: string;\n\n /**\n * Cert for encrypted connection\n */\n readonly cert?: string;\n\n /**\n * Ca for encrypted connection\n */\n readonly ca?: string;\n\n}\n"],"sourceRoot":"../.."}
1
+ {"version":3,"sources":["../../src/driver/sap/SapConnectionCredentialsOptions.ts"],"names":[],"mappings":"","file":"SapConnectionCredentialsOptions.js","sourcesContent":["/**\n * SAP Hana specific connection credential options.\n */\nexport interface SapConnectionCredentialsOptions {\n\n /**\n * Database host.\n */\n readonly host?: string;\n\n /**\n * Database host port.\n */\n readonly port?: number;\n\n /**\n * Database username.\n */\n readonly username?: string;\n\n /**\n * Database password.\n */\n readonly password?: string;\n\n /**\n * Database name to connect to.\n */\n readonly database?: string;\n\n /**\n * Encrypt database connection\n */\n readonly encrypt?: boolean;\n\n /**\n * Validate database certificate\n */\n readonly sslValidateCertificate?: boolean;\n\n /**\n * Key for encrypted connection\n */\n readonly key?: string;\n\n /**\n * Cert for encrypted connection\n */\n readonly cert?: string;\n\n /**\n * Ca for encrypted connection\n */\n readonly ca?: string;\n\n}\n"],"sourceRoot":"../.."}
@@ -6,6 +6,7 @@ import { DataTypeDefaults } from "../types/DataTypeDefaults";
6
6
  import { MappedColumnTypes } from "../types/MappedColumnTypes";
7
7
  import { SapConnectionOptions } from "./SapConnectionOptions";
8
8
  import { SapQueryRunner } from "./SapQueryRunner";
9
+ import { ReplicationMode } from "../types/ReplicationMode";
9
10
  /**
10
11
  * Organizes communication with SAP Hana DBMS.
11
12
  *
@@ -104,7 +105,7 @@ export declare class SapDriver implements Driver {
104
105
  /**
105
106
  * Creates a query runner used to execute database queries.
106
107
  */
107
- createQueryRunner(mode?: "master" | "slave"): SapQueryRunner;
108
+ createQueryRunner(mode: ReplicationMode): SapQueryRunner;
108
109
  /**
109
110
  * Replaces parameters in the given sql with special escaping character
110
111
  * and an array of parameter names to be passed to a query.
@@ -181,6 +182,10 @@ export declare class SapDriver implements Driver {
181
182
  * Returns true if driver supports uuid values generation on its own.
182
183
  */
183
184
  isUUIDGenerationSupported(): boolean;
185
+ /**
186
+ * Returns true if driver supports fulltext indices.
187
+ */
188
+ isFullTextColumnTypeSupported(): boolean;
184
189
  /**
185
190
  * Creates an escaped parameter.
186
191
  */
@@ -165,8 +165,8 @@ var SapDriver = /** @class */ (function () {
165
165
  dbParams.databaseName = this.options.database;
166
166
  if (this.options.encrypt)
167
167
  dbParams.encrypt = this.options.encrypt;
168
- if (this.options.validateCertificate)
169
- dbParams.validateCertificate = this.options.validateCertificate;
168
+ if (this.options.sslValidateCertificate)
169
+ dbParams.validateCertificate = this.options.sslValidateCertificate;
170
170
  if (this.options.key)
171
171
  dbParams.key = this.options.key;
172
172
  if (this.options.cert)
@@ -175,7 +175,7 @@ var SapDriver = /** @class */ (function () {
175
175
  dbParams.ca = this.options.ca;
176
176
  options = {
177
177
  min: this.options.pool && this.options.pool.min ? this.options.pool.min : 1,
178
- max: this.options.pool && this.options.pool.max ? this.options.pool.max : 1,
178
+ max: this.options.pool && this.options.pool.max ? this.options.pool.max : 10,
179
179
  };
180
180
  if (this.options.pool && this.options.pool.checkInterval)
181
181
  options.checkInterval = this.options.pool.checkInterval;
@@ -224,7 +224,6 @@ var SapDriver = /** @class */ (function () {
224
224
  * Creates a query runner used to execute database queries.
225
225
  */
226
226
  SapDriver.prototype.createQueryRunner = function (mode) {
227
- if (mode === void 0) { mode = "master"; }
228
227
  return new SapQueryRunner_1.SapQueryRunner(this, mode);
229
228
  };
230
229
  /**
@@ -233,6 +232,8 @@ var SapDriver = /** @class */ (function () {
233
232
  */
234
233
  SapDriver.prototype.escapeQueryWithParameters = function (sql, parameters, nativeParameters) {
235
234
  var builtParameters = Object.keys(nativeParameters).map(function (key) {
235
+ if (nativeParameters[key] instanceof Date)
236
+ return DateUtils_1.DateUtils.mixedDateToDatetimeString(nativeParameters[key], true);
236
237
  return nativeParameters[key];
237
238
  });
238
239
  if (!parameters || !Object.keys(parameters).length)
@@ -258,6 +259,9 @@ var SapDriver = /** @class */ (function () {
258
259
  else if (value instanceof Function) {
259
260
  return value();
260
261
  }
262
+ else if (value instanceof Date) {
263
+ return DateUtils_1.DateUtils.mixedDateToDatetimeString(value, true);
264
+ }
261
265
  else {
262
266
  builtParameters.push(value);
263
267
  return "?";
@@ -493,15 +497,15 @@ var SapDriver = /** @class */ (function () {
493
497
  return false; // we don't need new columns, we only need exist and changed
494
498
  // console.log("table:", columnMetadata.entityMetadata.tableName);
495
499
  // console.log("name:", tableColumn.name, columnMetadata.databaseName);
496
- // console.log("type:", tableColumn.type, this.normalizeType(columnMetadata));
497
- // console.log("length:", tableColumn.length, columnMetadata.length);
500
+ // console.log("type:", tableColumn.type, _this.normalizeType(columnMetadata));
501
+ // console.log("length:", tableColumn.length, _this.getColumnLength(columnMetadata));
498
502
  // console.log("width:", tableColumn.width, columnMetadata.width);
499
503
  // console.log("precision:", tableColumn.precision, columnMetadata.precision);
500
504
  // console.log("scale:", tableColumn.scale, columnMetadata.scale);
501
505
  // console.log("default:", tableColumn.default, columnMetadata.default);
502
506
  // console.log("isPrimary:", tableColumn.isPrimary, columnMetadata.isPrimary);
503
507
  // console.log("isNullable:", tableColumn.isNullable, columnMetadata.isNullable);
504
- // console.log("isUnique:", tableColumn.isUnique, this.normalizeIsUnique(columnMetadata));
508
+ // console.log("isUnique:", tableColumn.isUnique, _this.normalizeIsUnique(columnMetadata));
505
509
  // console.log("isGenerated:", tableColumn.isGenerated, columnMetadata.isGenerated);
506
510
  // console.log((columnMetadata.generationStrategy !== "uuid" && tableColumn.isGenerated !== columnMetadata.isGenerated));
507
511
  // console.log("==========================================");
@@ -509,7 +513,7 @@ var SapDriver = /** @class */ (function () {
509
513
  var hanaNullComapatibleDefault = normalizeDefault == null ? undefined : normalizeDefault;
510
514
  return tableColumn.name !== columnMetadata.databaseName
511
515
  || tableColumn.type !== _this.normalizeType(columnMetadata)
512
- || tableColumn.length !== columnMetadata.length
516
+ || columnMetadata.length && tableColumn.length !== _this.getColumnLength(columnMetadata)
513
517
  || tableColumn.precision !== columnMetadata.precision
514
518
  || tableColumn.scale !== columnMetadata.scale
515
519
  // || tableColumn.comment !== columnMetadata.comment || // todo
@@ -517,7 +521,7 @@ var SapDriver = /** @class */ (function () {
517
521
  || tableColumn.isPrimary !== columnMetadata.isPrimary
518
522
  || tableColumn.isNullable !== columnMetadata.isNullable
519
523
  || tableColumn.isUnique !== _this.normalizeIsUnique(columnMetadata)
520
- || tableColumn.isGenerated !== columnMetadata.isGenerated;
524
+ || (columnMetadata.generationStrategy !== "uuid" && tableColumn.isGenerated !== columnMetadata.isGenerated);
521
525
  });
522
526
  };
523
527
  /**
@@ -532,6 +536,12 @@ var SapDriver = /** @class */ (function () {
532
536
  SapDriver.prototype.isUUIDGenerationSupported = function () {
533
537
  return false;
534
538
  };
539
+ /**
540
+ * Returns true if driver supports fulltext indices.
541
+ */
542
+ SapDriver.prototype.isFullTextColumnTypeSupported = function () {
543
+ return true;
544
+ };
535
545
  /**
536
546
  * Creates an escaped parameter.
537
547
  */
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/driver/sap/SapDriver.ts"],"names":[],"mappings":"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","file":"SapDriver.js","sourcesContent":["import {ColumnType, Connection, EntityMetadata, ObjectLiteral, TableColumn} from \"../..\";\nimport {DriverPackageNotInstalledError} from \"../../error/DriverPackageNotInstalledError\";\nimport {ColumnMetadata} from \"../../metadata/ColumnMetadata\";\nimport {PlatformTools} from \"../../platform/PlatformTools\";\nimport {RdbmsSchemaBuilder} from \"../../schema-builder/RdbmsSchemaBuilder\";\nimport {ApplyValueTransformers} from \"../../util/ApplyValueTransformers\";\nimport {DateUtils} from \"../../util/DateUtils\";\nimport {OrmUtils} from \"../../util/OrmUtils\";\nimport {Driver} from \"../Driver\";\nimport {DataTypeDefaults} from \"../types/DataTypeDefaults\";\nimport {MappedColumnTypes} from \"../types/MappedColumnTypes\";\nimport {SapConnectionOptions} from \"./SapConnectionOptions\";\nimport {SapQueryRunner} from \"./SapQueryRunner\";\n\n/**\n * Organizes communication with SAP Hana DBMS.\n *\n * todo: looks like there is no built in support for connection pooling, we need to figure out something\n */\nexport class SapDriver implements Driver {\n\n // -------------------------------------------------------------------------\n // Public Properties\n // -------------------------------------------------------------------------\n\n /**\n * Connection used by driver.\n */\n connection: Connection;\n\n /**\n * Hana Pool instance.\n */\n client: any;\n\n /**\n * Pool for master database.\n */\n master: any;\n\n /**\n * Pool for slave databases.\n * Used in replication.\n */\n slaves: any[] = [];\n\n // -------------------------------------------------------------------------\n // Public Implemented Properties\n // -------------------------------------------------------------------------\n\n /**\n * Connection options.\n */\n options: SapConnectionOptions;\n\n /**\n * Master database used to perform all write queries.\n */\n database?: string;\n\n /**\n * Indicates if replication is enabled.\n */\n isReplicated: boolean = false;\n\n /**\n * Indicates if tree tables are supported by this driver.\n */\n treeSupport = true;\n\n /**\n * Gets list of supported column data types by a driver.\n *\n * @see https://help.sap.com/viewer/4fe29514fd584807ac9f2a04f6754767/2.0.03/en-US/20a1569875191014b507cf392724b7eb.html\n */\n supportedDataTypes: ColumnType[] = [\n \"tinyint\",\n \"smallint\",\n \"int\",\n \"integer\",\n \"bigint\",\n \"smalldecimal\",\n \"decimal\",\n \"dec\",\n \"real\",\n \"double\",\n \"float\",\n \"date\",\n \"time\",\n \"seconddate\",\n \"timestamp\",\n \"boolean\",\n \"char\",\n \"nchar\",\n \"varchar\",\n \"nvarchar\",\n \"text\",\n \"alphanum\",\n \"shorttext\",\n \"array\",\n \"varbinary\",\n \"blob\",\n \"clob\",\n \"nclob\",\n \"st_geometry\",\n \"st_point\",\n ];\n\n /**\n * Gets list of spatial column data types.\n */\n spatialTypes: ColumnType[] = [\n \"st_geometry\",\n \"st_point\",\n ];\n\n /**\n * Gets list of column data types that support length by a driver.\n */\n withLengthColumnTypes: ColumnType[] = [\n \"varchar\",\n \"nvarchar\",\n \"alphanum\",\n \"shorttext\",\n \"varbinary\"\n ];\n\n /**\n * Gets list of column data types that support precision by a driver.\n */\n withPrecisionColumnTypes: ColumnType[] = [\n \"decimal\",\n ];\n\n /**\n * Gets list of column data types that support scale by a driver.\n */\n withScaleColumnTypes: ColumnType[] = [\n \"decimal\",\n ];\n\n /**\n * Orm has special columns and we need to know what database column types should be for those types.\n * Column types are driver dependant.\n */\n mappedDataTypes: MappedColumnTypes = {\n createDate: \"timestamp\",\n createDateDefault: \"CURRENT_TIMESTAMP\",\n updateDate: \"timestamp\",\n updateDateDefault: \"CURRENT_TIMESTAMP\",\n deleteDate: \"timestamp\",\n deleteDateNullable: true,\n version: \"integer\",\n treeLevel: \"integer\",\n migrationId: \"integer\",\n migrationName: \"nvarchar\",\n migrationTimestamp: \"bigint\",\n cacheId: \"integer\",\n cacheIdentifier: \"nvarchar\",\n cacheTime: \"bigint\",\n cacheDuration: \"integer\",\n cacheQuery: \"nvarchar(5000)\" as any,\n cacheResult: \"text\",\n metadataType: \"nvarchar\",\n metadataDatabase: \"nvarchar\",\n metadataSchema: \"nvarchar\",\n metadataTable: \"nvarchar\",\n metadataName: \"nvarchar\",\n metadataValue: \"nvarchar(5000)\" as any,\n };\n\n /**\n * Default values of length, precision and scale depends on column data type.\n * Used in the cases when length/precision/scale is not specified by user.\n */\n dataTypeDefaults: DataTypeDefaults = {\n \"char\": { length: 1 },\n \"nchar\": { length: 1 },\n \"varchar\": { length: 255 },\n \"nvarchar\": { length: 255 },\n \"shorttext\": { length: 255 },\n \"varbinary\": { length: 255 },\n \"decimal\": { precision: 18, scale: 0 },\n };\n\n /**\n * Max length allowed by SAP HANA for aliases (identifiers).\n * @see https://help.sap.com/viewer/4fe29514fd584807ac9f2a04f6754767/2.0.03/en-US/20a760537519101497e3cfe07b348f3c.html\n */\n maxAliasLength = 128;\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(connection: Connection) {\n this.connection = connection;\n this.options = connection.options as SapConnectionOptions;\n this.loadDependencies();\n }\n\n // -------------------------------------------------------------------------\n // Public Implemented Methods\n // -------------------------------------------------------------------------\n\n /**\n * Performs connection to the database.\n * Based on pooling options, it can either create connection immediately,\n * either create a pool and create connection when needed.\n */\n async connect(): Promise<void> {\n // HANA connection info\n const dbParams = {\n hostName: this.options.host,\n port: this.options.port,\n userName: this.options.username,\n password: this.options.password,\n ...this.options.extra\n };\n\n if (this.options.database) dbParams.databaseName = this.options.database;\n if (this.options.encrypt) dbParams.encrypt = this.options.encrypt;\n if (this.options.validateCertificate) dbParams.validateCertificate = this.options.validateCertificate;\n if (this.options.key) dbParams.key = this.options.key;\n if (this.options.cert) dbParams.cert = this.options.cert;\n if (this.options.ca) dbParams.ca = this.options.ca;\n\n // pool options\n const options: any = {\n min: this.options.pool && this.options.pool.min ? this.options.pool.min : 1,\n max: this.options.pool && this.options.pool.max ? this.options.pool.max : 1,\n };\n\n if (this.options.pool && this.options.pool.checkInterval) options.checkInterval = this.options.pool.checkInterval;\n if (this.options.pool && this.options.pool.maxWaitingRequests) options.maxWaitingRequests = this.options.pool.maxWaitingRequests;\n if (this.options.pool && this.options.pool.requestTimeout) options.requestTimeout = this.options.pool.requestTimeout;\n if (this.options.pool && this.options.pool.idleTimeout) options.idleTimeout = this.options.pool.idleTimeout;\n\n const { logger } = this.connection;\n\n const poolErrorHandler = options.poolErrorHandler || ((error: any) => logger.log(\"warn\", `SAP Hana pool raised an error. ${error}`));\n this.client.eventEmitter.on(\"poolError\", poolErrorHandler);\n\n // create the pool\n this.master = this.client.createPool(dbParams, options);\n\n this.database = this.options.database;\n }\n\n /**\n * Makes any action after connection (e.g. create extensions in Postgres driver).\n */\n afterConnect(): Promise<void> {\n return Promise.resolve();\n }\n\n /**\n * Closes connection with the database.\n */\n async disconnect(): Promise<void> {\n const promise = this.master.clear();\n this.master = undefined;\n return promise;\n }\n\n /**\n * Creates a schema builder used to build and sync a schema.\n */\n createSchemaBuilder() {\n return new RdbmsSchemaBuilder(this.connection);\n }\n\n /**\n * Creates a query runner used to execute database queries.\n */\n createQueryRunner(mode: \"master\"|\"slave\" = \"master\") {\n return new SapQueryRunner(this, mode);\n }\n\n /**\n * Replaces parameters in the given sql with special escaping character\n * and an array of parameter names to be passed to a query.\n */\n escapeQueryWithParameters(sql: string, parameters: ObjectLiteral, nativeParameters: ObjectLiteral): [string, any[]] {\n const builtParameters: any[] = Object.keys(nativeParameters).map(key => {\n return nativeParameters[key];\n });\n\n if (!parameters || !Object.keys(parameters).length)\n return [sql, builtParameters];\n\n const keys = Object.keys(parameters).map(parameter => \"(:(\\\\.\\\\.\\\\.)?\" + parameter + \"\\\\b)\").join(\"|\");\n sql = sql.replace(new RegExp(keys, \"g\"), (key: string): string => {\n let value: any;\n let isArray = false;\n if (key.substr(0, 4) === \":...\") {\n isArray = true;\n value = parameters[key.substr(4)];\n } else {\n value = parameters[key.substr(1)];\n }\n\n if (isArray) {\n return value.map((v: any) => {\n builtParameters.push(v);\n return \"?\";\n // return \"$\" + builtParameters.length;\n }).join(\", \");\n\n } else if (value instanceof Function) {\n return value();\n\n } else {\n builtParameters.push(value);\n return \"?\";\n // return \"$\" + builtParameters.length;\n }\n }); // todo: make replace only in value statements, otherwise problems\n return [sql, builtParameters];\n }\n\n /**\n * Escapes a column name.\n */\n escape(columnName: string): string {\n return `\"${columnName}\"`;\n }\n\n /**\n * Build full table name with schema name and table name.\n * E.g. \"mySchema\".\"myTable\"\n */\n buildTableName(tableName: string, schema?: string): string {\n return schema ? `${schema}.${tableName}` : tableName;\n }\n\n /**\n * Prepares given value to a value to be persisted, based on its column type and metadata.\n */\n preparePersistentValue(value: any, columnMetadata: ColumnMetadata): any {\n if (columnMetadata.transformer)\n value = ApplyValueTransformers.transformTo(columnMetadata.transformer, value);\n\n if (value === null || value === undefined)\n return value;\n\n if (columnMetadata.type === Boolean) {\n return value === true ? 1 : 0;\n\n } else if (columnMetadata.type === \"date\") {\n return DateUtils.mixedDateToDateString(value);\n\n } else if (columnMetadata.type === \"time\") {\n return DateUtils.mixedDateToTimeString(value);\n\n } else if (columnMetadata.type === \"timestamp\"\n || columnMetadata.type === Date) {\n return DateUtils.mixedDateToDatetimeString(value, true);\n\n } else if (columnMetadata.type === \"seconddate\") {\n return DateUtils.mixedDateToDatetimeString(value, false);\n\n } else if (columnMetadata.type === \"simple-array\") {\n return DateUtils.simpleArrayToString(value);\n\n } else if (columnMetadata.type === \"simple-json\") {\n return DateUtils.simpleJsonToString(value);\n\n } else if (columnMetadata.type === \"simple-enum\") {\n return DateUtils.simpleEnumToString(value);\n\n } else if (columnMetadata.isArray) {\n return () => `ARRAY(${value.map((it: any) => `'${it}'`)})`;\n }\n\n return value;\n }\n\n /**\n * Prepares given value to a value to be persisted, based on its column type or metadata.\n */\n prepareHydratedValue(value: any, columnMetadata: ColumnMetadata): any {\n if (value === null || value === undefined)\n return columnMetadata.transformer ? ApplyValueTransformers.transformFrom(columnMetadata.transformer, value) : value;\n\n if (columnMetadata.type === Boolean) {\n value = value ? true : false;\n\n } else if (columnMetadata.type === \"timestamp\"\n || columnMetadata.type === \"seconddate\"\n || columnMetadata.type === Date) {\n value = DateUtils.normalizeHydratedDate(value);\n\n } else if (columnMetadata.type === \"date\") {\n value = DateUtils.mixedDateToDateString(value);\n\n } else if (columnMetadata.type === \"time\") {\n value = DateUtils.mixedTimeToString(value);\n\n } else if (columnMetadata.type === \"simple-array\") {\n value = DateUtils.stringToSimpleArray(value);\n\n } else if (columnMetadata.type === \"simple-json\") {\n value = DateUtils.stringToSimpleJson(value);\n\n } else if (columnMetadata.type === \"simple-enum\") {\n value = DateUtils.stringToSimpleEnum(value, columnMetadata);\n }\n\n if (columnMetadata.transformer)\n value = ApplyValueTransformers.transformFrom(columnMetadata.transformer, value);\n\n return value;\n }\n\n /**\n * Creates a database type from a given column metadata.\n */\n normalizeType(column: { type?: ColumnType, length?: number | string, precision?: number|null, scale?: number }): string {\n if (column.type === Number || column.type === \"int\") {\n return \"integer\";\n\n } else if (column.type === String) {\n return \"nvarchar\";\n\n } else if (column.type === Date) {\n return \"timestamp\";\n\n } else if (column.type === Boolean) {\n return \"boolean\";\n\n } else if ((column.type as any) === Buffer) {\n return \"blob\";\n\n } else if (column.type === \"uuid\") {\n return \"nvarchar\";\n\n } else if (column.type === \"simple-array\" || column.type === \"simple-json\") {\n return \"text\";\n\n } else if (column.type === \"simple-enum\") {\n return \"nvarchar\";\n\n } else {\n return column.type as string || \"\";\n }\n }\n\n /**\n * Normalizes \"default\" value of the column.\n */\n normalizeDefault(columnMetadata: ColumnMetadata): string {\n const defaultValue = columnMetadata.default;\n\n if (typeof defaultValue === \"number\") {\n return \"\" + defaultValue;\n\n } else if (typeof defaultValue === \"boolean\") {\n return defaultValue === true ? \"true\" : \"false\";\n\n } else if (typeof defaultValue === \"function\") {\n return defaultValue();\n\n } else if (typeof defaultValue === \"string\") {\n return `'${defaultValue}'`;\n\n } else {\n return defaultValue;\n }\n }\n\n /**\n * Normalizes \"isUnique\" value of the column.\n */\n normalizeIsUnique(column: ColumnMetadata): boolean {\n return column.entityMetadata.indices.some(idx => idx.isUnique && idx.columns.length === 1 && idx.columns[0] === column);\n }\n\n /**\n * Returns default column lengths, which is required on column creation.\n */\n getColumnLength(column: ColumnMetadata|TableColumn): string {\n if (column.length)\n return column.length.toString();\n\n if (column.generationStrategy === \"uuid\")\n return \"36\";\n\n switch (column.type) {\n case \"varchar\":\n case \"nvarchar\":\n case \"shorttext\":\n case String:\n return \"255\";\n case \"alphanum\":\n return \"127\";\n case \"varbinary\":\n return \"255\";\n }\n\n return \"\";\n }\n\n /**\n * Creates column type definition including length, precision and scale\n */\n createFullType(column: TableColumn): string {\n let type = column.type;\n\n // used 'getColumnLength()' method, because SqlServer sets `varchar` and `nvarchar` length to 1 by default.\n if (this.getColumnLength(column)) {\n type += `(${this.getColumnLength(column)})`;\n\n } else if (column.precision !== null && column.precision !== undefined && column.scale !== null && column.scale !== undefined) {\n type += `(${column.precision},${column.scale})`;\n\n } else if (column.precision !== null && column.precision !== undefined) {\n type += `(${column.precision})`;\n }\n\n if (column.isArray)\n type += \" array\";\n\n return type;\n }\n\n /**\n * Obtains a new database connection to a master server.\n * Used for replication.\n * If replication is not setup then returns default connection's database connection.\n */\n obtainMasterConnection(): Promise<any> {\n return this.master.getConnection();\n }\n\n /**\n * Obtains a new database connection to a slave server.\n * Used for replication.\n * If replication is not setup then returns master (default) connection's database connection.\n */\n obtainSlaveConnection(): Promise<any> {\n return this.obtainMasterConnection();\n }\n\n /**\n * Creates generated map of values generated or returned by database after INSERT query.\n */\n createGeneratedMap(metadata: EntityMetadata, insertResult: ObjectLiteral) {\n const generatedMap = metadata.generatedColumns.reduce((map, generatedColumn) => {\n let value: any;\n if (generatedColumn.generationStrategy === \"increment\" && insertResult) {\n value = insertResult;\n // } else if (generatedColumn.generationStrategy === \"uuid\") {\n // console.log(\"getting db value:\", generatedColumn.databaseName);\n // value = generatedColumn.getEntityValue(uuidMap);\n }\n\n return OrmUtils.mergeDeep(map, generatedColumn.createValueMap(value));\n }, {} as ObjectLiteral);\n\n return Object.keys(generatedMap).length > 0 ? generatedMap : undefined;\n }\n\n /**\n * Differentiate columns of this table and columns from the given column metadatas columns\n * and returns only changed.\n */\n findChangedColumns(tableColumns: TableColumn[], columnMetadatas: ColumnMetadata[]): ColumnMetadata[] {\n return columnMetadatas.filter(columnMetadata => {\n const tableColumn = tableColumns.find(c => c.name === columnMetadata.databaseName);\n if (!tableColumn)\n return false; // we don't need new columns, we only need exist and changed\n\n // console.log(\"table:\", columnMetadata.entityMetadata.tableName);\n // console.log(\"name:\", tableColumn.name, columnMetadata.databaseName);\n // console.log(\"type:\", tableColumn.type, this.normalizeType(columnMetadata));\n // console.log(\"length:\", tableColumn.length, columnMetadata.length);\n // console.log(\"width:\", tableColumn.width, columnMetadata.width);\n // console.log(\"precision:\", tableColumn.precision, columnMetadata.precision);\n // console.log(\"scale:\", tableColumn.scale, columnMetadata.scale);\n // console.log(\"default:\", tableColumn.default, columnMetadata.default);\n // console.log(\"isPrimary:\", tableColumn.isPrimary, columnMetadata.isPrimary);\n // console.log(\"isNullable:\", tableColumn.isNullable, columnMetadata.isNullable);\n // console.log(\"isUnique:\", tableColumn.isUnique, this.normalizeIsUnique(columnMetadata));\n // console.log(\"isGenerated:\", tableColumn.isGenerated, columnMetadata.isGenerated);\n // console.log((columnMetadata.generationStrategy !== \"uuid\" && tableColumn.isGenerated !== columnMetadata.isGenerated));\n // console.log(\"==========================================\");\n\n const normalizeDefault = this.normalizeDefault(columnMetadata);\n const hanaNullComapatibleDefault = normalizeDefault == null ? undefined : normalizeDefault;\n\n return tableColumn.name !== columnMetadata.databaseName\n || tableColumn.type !== this.normalizeType(columnMetadata)\n || tableColumn.length !== columnMetadata.length\n || tableColumn.precision !== columnMetadata.precision\n || tableColumn.scale !== columnMetadata.scale\n // || tableColumn.comment !== columnMetadata.comment || // todo\n || (!tableColumn.isGenerated && (hanaNullComapatibleDefault !== tableColumn.default)) // we included check for generated here, because generated columns already can have default values\n || tableColumn.isPrimary !== columnMetadata.isPrimary\n || tableColumn.isNullable !== columnMetadata.isNullable\n || tableColumn.isUnique !== this.normalizeIsUnique(columnMetadata)\n || tableColumn.isGenerated !== columnMetadata.isGenerated;\n });\n }\n\n /**\n * Returns true if driver supports RETURNING / OUTPUT statement.\n */\n isReturningSqlSupported(): boolean {\n return false;\n }\n\n /**\n * Returns true if driver supports uuid values generation on its own.\n */\n isUUIDGenerationSupported(): boolean {\n return false;\n }\n\n /**\n * Creates an escaped parameter.\n */\n createParameter(parameterName: string, index: number): string {\n return \"?\";\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * If driver dependency is not given explicitly, then try to load it via \"require\".\n */\n protected loadDependencies(): void {\n try {\n this.client = PlatformTools.load(\"hdb-pool\");\n\n } catch (e) { // todo: better error for browser env\n throw new DriverPackageNotInstalledError(\"SAP Hana\", \"hdb-pool\");\n }\n\n try {\n PlatformTools.load(\"@sap/hana-client\");\n\n } catch (e) { // todo: better error for browser env\n throw new DriverPackageNotInstalledError(\"SAP Hana\", \"@sap/hana-client\");\n }\n }\n\n}\n"],"sourceRoot":"../.."}
1
+ {"version":3,"sources":["../../src/driver/sap/SapDriver.ts"],"names":[],"mappings":"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","file":"SapDriver.js","sourcesContent":["import {ColumnType, Connection, EntityMetadata, ObjectLiteral, TableColumn} from \"../..\";\nimport {DriverPackageNotInstalledError} from \"../../error/DriverPackageNotInstalledError\";\nimport {ColumnMetadata} from \"../../metadata/ColumnMetadata\";\nimport {PlatformTools} from \"../../platform/PlatformTools\";\nimport {RdbmsSchemaBuilder} from \"../../schema-builder/RdbmsSchemaBuilder\";\nimport {ApplyValueTransformers} from \"../../util/ApplyValueTransformers\";\nimport {DateUtils} from \"../../util/DateUtils\";\nimport {OrmUtils} from \"../../util/OrmUtils\";\nimport {Driver} from \"../Driver\";\nimport {DataTypeDefaults} from \"../types/DataTypeDefaults\";\nimport {MappedColumnTypes} from \"../types/MappedColumnTypes\";\nimport {SapConnectionOptions} from \"./SapConnectionOptions\";\nimport {SapQueryRunner} from \"./SapQueryRunner\";\nimport {ReplicationMode} from \"../types/ReplicationMode\";\n\n/**\n * Organizes communication with SAP Hana DBMS.\n *\n * todo: looks like there is no built in support for connection pooling, we need to figure out something\n */\nexport class SapDriver implements Driver {\n\n // -------------------------------------------------------------------------\n // Public Properties\n // -------------------------------------------------------------------------\n\n /**\n * Connection used by driver.\n */\n connection: Connection;\n\n /**\n * Hana Pool instance.\n */\n client: any;\n\n /**\n * Pool for master database.\n */\n master: any;\n\n /**\n * Pool for slave databases.\n * Used in replication.\n */\n slaves: any[] = [];\n\n // -------------------------------------------------------------------------\n // Public Implemented Properties\n // -------------------------------------------------------------------------\n\n /**\n * Connection options.\n */\n options: SapConnectionOptions;\n\n /**\n * Master database used to perform all write queries.\n */\n database?: string;\n\n /**\n * Indicates if replication is enabled.\n */\n isReplicated: boolean = false;\n\n /**\n * Indicates if tree tables are supported by this driver.\n */\n treeSupport = true;\n\n /**\n * Gets list of supported column data types by a driver.\n *\n * @see https://help.sap.com/viewer/4fe29514fd584807ac9f2a04f6754767/2.0.03/en-US/20a1569875191014b507cf392724b7eb.html\n */\n supportedDataTypes: ColumnType[] = [\n \"tinyint\",\n \"smallint\",\n \"int\",\n \"integer\",\n \"bigint\",\n \"smalldecimal\",\n \"decimal\",\n \"dec\",\n \"real\",\n \"double\",\n \"float\",\n \"date\",\n \"time\",\n \"seconddate\",\n \"timestamp\",\n \"boolean\",\n \"char\",\n \"nchar\",\n \"varchar\",\n \"nvarchar\",\n \"text\",\n \"alphanum\",\n \"shorttext\",\n \"array\",\n \"varbinary\",\n \"blob\",\n \"clob\",\n \"nclob\",\n \"st_geometry\",\n \"st_point\",\n ];\n\n /**\n * Gets list of spatial column data types.\n */\n spatialTypes: ColumnType[] = [\n \"st_geometry\",\n \"st_point\",\n ];\n\n /**\n * Gets list of column data types that support length by a driver.\n */\n withLengthColumnTypes: ColumnType[] = [\n \"varchar\",\n \"nvarchar\",\n \"alphanum\",\n \"shorttext\",\n \"varbinary\"\n ];\n\n /**\n * Gets list of column data types that support precision by a driver.\n */\n withPrecisionColumnTypes: ColumnType[] = [\n \"decimal\",\n ];\n\n /**\n * Gets list of column data types that support scale by a driver.\n */\n withScaleColumnTypes: ColumnType[] = [\n \"decimal\",\n ];\n\n /**\n * Orm has special columns and we need to know what database column types should be for those types.\n * Column types are driver dependant.\n */\n mappedDataTypes: MappedColumnTypes = {\n createDate: \"timestamp\",\n createDateDefault: \"CURRENT_TIMESTAMP\",\n updateDate: \"timestamp\",\n updateDateDefault: \"CURRENT_TIMESTAMP\",\n deleteDate: \"timestamp\",\n deleteDateNullable: true,\n version: \"integer\",\n treeLevel: \"integer\",\n migrationId: \"integer\",\n migrationName: \"nvarchar\",\n migrationTimestamp: \"bigint\",\n cacheId: \"integer\",\n cacheIdentifier: \"nvarchar\",\n cacheTime: \"bigint\",\n cacheDuration: \"integer\",\n cacheQuery: \"nvarchar(5000)\" as any,\n cacheResult: \"text\",\n metadataType: \"nvarchar\",\n metadataDatabase: \"nvarchar\",\n metadataSchema: \"nvarchar\",\n metadataTable: \"nvarchar\",\n metadataName: \"nvarchar\",\n metadataValue: \"nvarchar(5000)\" as any,\n };\n\n /**\n * Default values of length, precision and scale depends on column data type.\n * Used in the cases when length/precision/scale is not specified by user.\n */\n dataTypeDefaults: DataTypeDefaults = {\n \"char\": { length: 1 },\n \"nchar\": { length: 1 },\n \"varchar\": { length: 255 },\n \"nvarchar\": { length: 255 },\n \"shorttext\": { length: 255 },\n \"varbinary\": { length: 255 },\n \"decimal\": { precision: 18, scale: 0 },\n };\n\n /**\n * Max length allowed by SAP HANA for aliases (identifiers).\n * @see https://help.sap.com/viewer/4fe29514fd584807ac9f2a04f6754767/2.0.03/en-US/20a760537519101497e3cfe07b348f3c.html\n */\n maxAliasLength = 128;\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(connection: Connection) {\n this.connection = connection;\n this.options = connection.options as SapConnectionOptions;\n this.loadDependencies();\n }\n\n // -------------------------------------------------------------------------\n // Public Implemented Methods\n // -------------------------------------------------------------------------\n\n /**\n * Performs connection to the database.\n * Based on pooling options, it can either create connection immediately,\n * either create a pool and create connection when needed.\n */\n async connect(): Promise<void> {\n // HANA connection info\n const dbParams = {\n hostName: this.options.host,\n port: this.options.port,\n userName: this.options.username,\n password: this.options.password,\n ...this.options.extra\n };\n\n if (this.options.database) dbParams.databaseName = this.options.database;\n if (this.options.encrypt) dbParams.encrypt = this.options.encrypt;\n if (this.options.sslValidateCertificate) dbParams.validateCertificate = this.options.sslValidateCertificate;\n if (this.options.key) dbParams.key = this.options.key;\n if (this.options.cert) dbParams.cert = this.options.cert;\n if (this.options.ca) dbParams.ca = this.options.ca;\n\n // pool options\n const options: any = {\n min: this.options.pool && this.options.pool.min ? this.options.pool.min : 1,\n max: this.options.pool && this.options.pool.max ? this.options.pool.max : 10,\n };\n\n if (this.options.pool && this.options.pool.checkInterval) options.checkInterval = this.options.pool.checkInterval;\n if (this.options.pool && this.options.pool.maxWaitingRequests) options.maxWaitingRequests = this.options.pool.maxWaitingRequests;\n if (this.options.pool && this.options.pool.requestTimeout) options.requestTimeout = this.options.pool.requestTimeout;\n if (this.options.pool && this.options.pool.idleTimeout) options.idleTimeout = this.options.pool.idleTimeout;\n\n const { logger } = this.connection;\n\n const poolErrorHandler = options.poolErrorHandler || ((error: any) => logger.log(\"warn\", `SAP Hana pool raised an error. ${error}`));\n this.client.eventEmitter.on(\"poolError\", poolErrorHandler);\n\n // create the pool\n this.master = this.client.createPool(dbParams, options);\n\n this.database = this.options.database;\n }\n\n /**\n * Makes any action after connection (e.g. create extensions in Postgres driver).\n */\n afterConnect(): Promise<void> {\n return Promise.resolve();\n }\n\n /**\n * Closes connection with the database.\n */\n async disconnect(): Promise<void> {\n const promise = this.master.clear();\n this.master = undefined;\n return promise;\n }\n\n /**\n * Creates a schema builder used to build and sync a schema.\n */\n createSchemaBuilder() {\n return new RdbmsSchemaBuilder(this.connection);\n }\n\n /**\n * Creates a query runner used to execute database queries.\n */\n createQueryRunner(mode: ReplicationMode) {\n return new SapQueryRunner(this, mode);\n }\n\n /**\n * Replaces parameters in the given sql with special escaping character\n * and an array of parameter names to be passed to a query.\n */\n escapeQueryWithParameters(sql: string, parameters: ObjectLiteral, nativeParameters: ObjectLiteral): [string, any[]] {\n const builtParameters: any[] = Object.keys(nativeParameters).map(key => {\n\n if (nativeParameters[key] instanceof Date)\n return DateUtils.mixedDateToDatetimeString(nativeParameters[key], true);\n\n return nativeParameters[key];\n });\n\n if (!parameters || !Object.keys(parameters).length)\n return [sql, builtParameters];\n\n const keys = Object.keys(parameters).map(parameter => \"(:(\\\\.\\\\.\\\\.)?\" + parameter + \"\\\\b)\").join(\"|\");\n sql = sql.replace(new RegExp(keys, \"g\"), (key: string): string => {\n let value: any;\n let isArray = false;\n if (key.substr(0, 4) === \":...\") {\n isArray = true;\n value = parameters[key.substr(4)];\n } else {\n value = parameters[key.substr(1)];\n }\n\n if (isArray) {\n return value.map((v: any) => {\n builtParameters.push(v);\n return \"?\";\n // return \"$\" + builtParameters.length;\n }).join(\", \");\n\n } else if (value instanceof Function) {\n return value();\n\n } else if (value instanceof Date) {\n return DateUtils.mixedDateToDatetimeString(value, true);\n\n } else {\n builtParameters.push(value);\n return \"?\";\n // return \"$\" + builtParameters.length;\n }\n }); // todo: make replace only in value statements, otherwise problems\n return [sql, builtParameters];\n }\n\n /**\n * Escapes a column name.\n */\n escape(columnName: string): string {\n return `\"${columnName}\"`;\n }\n\n /**\n * Build full table name with schema name and table name.\n * E.g. \"mySchema\".\"myTable\"\n */\n buildTableName(tableName: string, schema?: string): string {\n return schema ? `${schema}.${tableName}` : tableName;\n }\n\n /**\n * Prepares given value to a value to be persisted, based on its column type and metadata.\n */\n preparePersistentValue(value: any, columnMetadata: ColumnMetadata): any {\n if (columnMetadata.transformer)\n value = ApplyValueTransformers.transformTo(columnMetadata.transformer, value);\n\n if (value === null || value === undefined)\n return value;\n\n if (columnMetadata.type === Boolean) {\n return value === true ? 1 : 0;\n\n } else if (columnMetadata.type === \"date\") {\n return DateUtils.mixedDateToDateString(value);\n\n } else if (columnMetadata.type === \"time\") {\n return DateUtils.mixedDateToTimeString(value);\n\n } else if (columnMetadata.type === \"timestamp\"\n || columnMetadata.type === Date) {\n return DateUtils.mixedDateToDatetimeString(value, true);\n\n } else if (columnMetadata.type === \"seconddate\") {\n return DateUtils.mixedDateToDatetimeString(value, false);\n\n } else if (columnMetadata.type === \"simple-array\") {\n return DateUtils.simpleArrayToString(value);\n\n } else if (columnMetadata.type === \"simple-json\") {\n return DateUtils.simpleJsonToString(value);\n\n } else if (columnMetadata.type === \"simple-enum\") {\n return DateUtils.simpleEnumToString(value);\n\n } else if (columnMetadata.isArray) {\n return () => `ARRAY(${value.map((it: any) => `'${it}'`)})`;\n }\n\n return value;\n }\n\n /**\n * Prepares given value to a value to be persisted, based on its column type or metadata.\n */\n prepareHydratedValue(value: any, columnMetadata: ColumnMetadata): any {\n if (value === null || value === undefined)\n return columnMetadata.transformer ? ApplyValueTransformers.transformFrom(columnMetadata.transformer, value) : value;\n\n if (columnMetadata.type === Boolean) {\n value = value ? true : false;\n\n } else if (columnMetadata.type === \"timestamp\"\n || columnMetadata.type === \"seconddate\"\n || columnMetadata.type === Date) {\n value = DateUtils.normalizeHydratedDate(value);\n\n } else if (columnMetadata.type === \"date\") {\n value = DateUtils.mixedDateToDateString(value);\n\n } else if (columnMetadata.type === \"time\") {\n value = DateUtils.mixedTimeToString(value);\n\n } else if (columnMetadata.type === \"simple-array\") {\n value = DateUtils.stringToSimpleArray(value);\n\n } else if (columnMetadata.type === \"simple-json\") {\n value = DateUtils.stringToSimpleJson(value);\n\n } else if (columnMetadata.type === \"simple-enum\") {\n value = DateUtils.stringToSimpleEnum(value, columnMetadata);\n }\n\n if (columnMetadata.transformer)\n value = ApplyValueTransformers.transformFrom(columnMetadata.transformer, value);\n\n return value;\n }\n\n /**\n * Creates a database type from a given column metadata.\n */\n normalizeType(column: { type?: ColumnType, length?: number | string, precision?: number|null, scale?: number }): string {\n if (column.type === Number || column.type === \"int\") {\n return \"integer\";\n\n } else if (column.type === String) {\n return \"nvarchar\";\n\n } else if (column.type === Date) {\n return \"timestamp\";\n\n } else if (column.type === Boolean) {\n return \"boolean\";\n\n } else if ((column.type as any) === Buffer) {\n return \"blob\";\n\n } else if (column.type === \"uuid\") {\n return \"nvarchar\";\n\n } else if (column.type === \"simple-array\" || column.type === \"simple-json\") {\n return \"text\";\n\n } else if (column.type === \"simple-enum\") {\n return \"nvarchar\";\n\n } else {\n return column.type as string || \"\";\n }\n }\n\n /**\n * Normalizes \"default\" value of the column.\n */\n normalizeDefault(columnMetadata: ColumnMetadata): string {\n const defaultValue = columnMetadata.default;\n\n if (typeof defaultValue === \"number\") {\n return \"\" + defaultValue;\n\n } else if (typeof defaultValue === \"boolean\") {\n return defaultValue === true ? \"true\" : \"false\";\n\n } else if (typeof defaultValue === \"function\") {\n return defaultValue();\n\n } else if (typeof defaultValue === \"string\") {\n return `'${defaultValue}'`;\n\n } else {\n return defaultValue;\n }\n }\n\n /**\n * Normalizes \"isUnique\" value of the column.\n */\n normalizeIsUnique(column: ColumnMetadata): boolean {\n return column.entityMetadata.indices.some(idx => idx.isUnique && idx.columns.length === 1 && idx.columns[0] === column);\n }\n\n /**\n * Returns default column lengths, which is required on column creation.\n */\n getColumnLength(column: ColumnMetadata|TableColumn): string {\n if (column.length)\n return column.length.toString();\n\n if (column.generationStrategy === \"uuid\")\n return \"36\";\n\n switch (column.type) {\n case \"varchar\":\n case \"nvarchar\":\n case \"shorttext\":\n case String:\n return \"255\";\n case \"alphanum\":\n return \"127\";\n case \"varbinary\":\n return \"255\";\n }\n\n return \"\";\n }\n\n /**\n * Creates column type definition including length, precision and scale\n */\n createFullType(column: TableColumn): string {\n let type = column.type;\n\n // used 'getColumnLength()' method, because SqlServer sets `varchar` and `nvarchar` length to 1 by default.\n if (this.getColumnLength(column)) {\n type += `(${this.getColumnLength(column)})`;\n\n } else if (column.precision !== null && column.precision !== undefined && column.scale !== null && column.scale !== undefined) {\n type += `(${column.precision},${column.scale})`;\n\n } else if (column.precision !== null && column.precision !== undefined) {\n type += `(${column.precision})`;\n }\n\n if (column.isArray)\n type += \" array\";\n\n return type;\n }\n\n /**\n * Obtains a new database connection to a master server.\n * Used for replication.\n * If replication is not setup then returns default connection's database connection.\n */\n obtainMasterConnection(): Promise<any> {\n return this.master.getConnection();\n }\n\n /**\n * Obtains a new database connection to a slave server.\n * Used for replication.\n * If replication is not setup then returns master (default) connection's database connection.\n */\n obtainSlaveConnection(): Promise<any> {\n return this.obtainMasterConnection();\n }\n\n /**\n * Creates generated map of values generated or returned by database after INSERT query.\n */\n createGeneratedMap(metadata: EntityMetadata, insertResult: ObjectLiteral) {\n const generatedMap = metadata.generatedColumns.reduce((map, generatedColumn) => {\n let value: any;\n if (generatedColumn.generationStrategy === \"increment\" && insertResult) {\n value = insertResult;\n // } else if (generatedColumn.generationStrategy === \"uuid\") {\n // console.log(\"getting db value:\", generatedColumn.databaseName);\n // value = generatedColumn.getEntityValue(uuidMap);\n }\n\n return OrmUtils.mergeDeep(map, generatedColumn.createValueMap(value));\n }, {} as ObjectLiteral);\n\n return Object.keys(generatedMap).length > 0 ? generatedMap : undefined;\n }\n\n /**\n * Differentiate columns of this table and columns from the given column metadatas columns\n * and returns only changed.\n */\n findChangedColumns(tableColumns: TableColumn[], columnMetadatas: ColumnMetadata[]): ColumnMetadata[] {\n return columnMetadatas.filter(columnMetadata => {\n const tableColumn = tableColumns.find(c => c.name === columnMetadata.databaseName);\n if (!tableColumn)\n return false; // we don't need new columns, we only need exist and changed\n\n // console.log(\"table:\", columnMetadata.entityMetadata.tableName);\n // console.log(\"name:\", tableColumn.name, columnMetadata.databaseName);\n // console.log(\"type:\", tableColumn.type, _this.normalizeType(columnMetadata));\n // console.log(\"length:\", tableColumn.length, _this.getColumnLength(columnMetadata));\n // console.log(\"width:\", tableColumn.width, columnMetadata.width);\n // console.log(\"precision:\", tableColumn.precision, columnMetadata.precision);\n // console.log(\"scale:\", tableColumn.scale, columnMetadata.scale);\n // console.log(\"default:\", tableColumn.default, columnMetadata.default);\n // console.log(\"isPrimary:\", tableColumn.isPrimary, columnMetadata.isPrimary);\n // console.log(\"isNullable:\", tableColumn.isNullable, columnMetadata.isNullable);\n // console.log(\"isUnique:\", tableColumn.isUnique, _this.normalizeIsUnique(columnMetadata));\n // console.log(\"isGenerated:\", tableColumn.isGenerated, columnMetadata.isGenerated);\n // console.log((columnMetadata.generationStrategy !== \"uuid\" && tableColumn.isGenerated !== columnMetadata.isGenerated));\n // console.log(\"==========================================\");\n\n const normalizeDefault = this.normalizeDefault(columnMetadata);\n const hanaNullComapatibleDefault = normalizeDefault == null ? undefined : normalizeDefault;\n\n return tableColumn.name !== columnMetadata.databaseName\n || tableColumn.type !== this.normalizeType(columnMetadata)\n || columnMetadata.length && tableColumn.length !== this.getColumnLength(columnMetadata)\n || tableColumn.precision !== columnMetadata.precision\n || tableColumn.scale !== columnMetadata.scale\n // || tableColumn.comment !== columnMetadata.comment || // todo\n || (!tableColumn.isGenerated && (hanaNullComapatibleDefault !== tableColumn.default)) // we included check for generated here, because generated columns already can have default values\n || tableColumn.isPrimary !== columnMetadata.isPrimary\n || tableColumn.isNullable !== columnMetadata.isNullable\n || tableColumn.isUnique !== this.normalizeIsUnique(columnMetadata)\n || (columnMetadata.generationStrategy !== \"uuid\" && tableColumn.isGenerated !== columnMetadata.isGenerated);\n });\n }\n\n /**\n * Returns true if driver supports RETURNING / OUTPUT statement.\n */\n isReturningSqlSupported(): boolean {\n return false;\n }\n\n /**\n * Returns true if driver supports uuid values generation on its own.\n */\n isUUIDGenerationSupported(): boolean {\n return false;\n }\n\n /**\n * Returns true if driver supports fulltext indices.\n */\n isFullTextColumnTypeSupported(): boolean {\n return true;\n }\n\n /**\n * Creates an escaped parameter.\n */\n createParameter(parameterName: string, index: number): string {\n return \"?\";\n }\n\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n\n /**\n * If driver dependency is not given explicitly, then try to load it via \"require\".\n */\n protected loadDependencies(): void {\n try {\n this.client = PlatformTools.load(\"hdb-pool\");\n\n } catch (e) { // todo: better error for browser env\n throw new DriverPackageNotInstalledError(\"SAP Hana\", \"hdb-pool\");\n }\n\n try {\n PlatformTools.load(\"@sap/hana-client\");\n\n } catch (e) { // todo: better error for browser env\n throw new DriverPackageNotInstalledError(\"SAP Hana\", \"@sap/hana-client\");\n }\n }\n\n}\n"],"sourceRoot":"../.."}
@@ -13,6 +13,7 @@ import { View } from "../../schema-builder/view/View";
13
13
  import { Query } from "../Query";
14
14
  import { IsolationLevel } from "../types/IsolationLevel";
15
15
  import { SapDriver } from "./SapDriver";
16
+ import { ReplicationMode } from "../types/ReplicationMode";
16
17
  /**
17
18
  * Runs queries on a single SQL Server database connection.
18
19
  */
@@ -31,7 +32,7 @@ export declare class SapQueryRunner extends BaseQueryRunner implements QueryRunn
31
32
  * Promise used to obtain a database connection from a pool for a first time.
32
33
  */
33
34
  protected databaseConnectionPromise: Promise<any>;
34
- constructor(driver: SapDriver, mode?: "master" | "slave");
35
+ constructor(driver: SapDriver, mode: ReplicationMode);
35
36
  /**
36
37
  * Creates/uses database connection from the connection pool to perform further operations.
37
38
  * Returns obtained database connection.
@@ -25,7 +25,6 @@ var SapQueryRunner = /** @class */ (function (_super) {
25
25
  // Constructor
26
26
  // -------------------------------------------------------------------------
27
27
  function SapQueryRunner(driver, mode) {
28
- if (mode === void 0) { mode = "master"; }
29
28
  var _this = _super.call(this) || this;
30
29
  // -------------------------------------------------------------------------
31
30
  // Protected Properties
@@ -813,13 +812,36 @@ var SapQueryRunner = /** @class */ (function (_super) {
813
812
  */
814
813
  SapQueryRunner.prototype.addColumns = function (tableOrName, columns) {
815
814
  return tslib_1.__awaiter(this, void 0, void 0, function () {
816
- var _this = this;
817
- return tslib_1.__generator(this, function (_a) {
818
- switch (_a.label) {
819
- case 0: return [4 /*yield*/, index_1.PromiseUtils.runInSequence(columns, function (column) { return _this.addColumn(tableOrName, column); })];
815
+ var columns_1, columns_1_1, column, e_1_1;
816
+ var e_1, _a;
817
+ return tslib_1.__generator(this, function (_b) {
818
+ switch (_b.label) {
819
+ case 0:
820
+ _b.trys.push([0, 5, 6, 7]);
821
+ columns_1 = tslib_1.__values(columns), columns_1_1 = columns_1.next();
822
+ _b.label = 1;
820
823
  case 1:
821
- _a.sent();
822
- return [2 /*return*/];
824
+ if (!!columns_1_1.done) return [3 /*break*/, 4];
825
+ column = columns_1_1.value;
826
+ return [4 /*yield*/, this.addColumn(tableOrName, column)];
827
+ case 2:
828
+ _b.sent();
829
+ _b.label = 3;
830
+ case 3:
831
+ columns_1_1 = columns_1.next();
832
+ return [3 /*break*/, 1];
833
+ case 4: return [3 /*break*/, 7];
834
+ case 5:
835
+ e_1_1 = _b.sent();
836
+ e_1 = { error: e_1_1 };
837
+ return [3 /*break*/, 7];
838
+ case 6:
839
+ try {
840
+ if (columns_1_1 && !columns_1_1.done && (_a = columns_1.return)) _a.call(columns_1);
841
+ }
842
+ finally { if (e_1) throw e_1.error; }
843
+ return [7 /*endfinally*/];
844
+ case 7: return [2 /*return*/];
823
845
  }
824
846
  });
825
847
  });
@@ -1061,13 +1083,36 @@ var SapQueryRunner = /** @class */ (function (_super) {
1061
1083
  */
1062
1084
  SapQueryRunner.prototype.changeColumns = function (tableOrName, changedColumns) {
1063
1085
  return tslib_1.__awaiter(this, void 0, void 0, function () {
1064
- var _this = this;
1065
- return tslib_1.__generator(this, function (_a) {
1066
- switch (_a.label) {
1067
- case 0: return [4 /*yield*/, index_1.PromiseUtils.runInSequence(changedColumns, function (changedColumn) { return _this.changeColumn(tableOrName, changedColumn.oldColumn, changedColumn.newColumn); })];
1086
+ var changedColumns_1, changedColumns_1_1, _a, oldColumn, newColumn, e_2_1;
1087
+ var e_2, _b;
1088
+ return tslib_1.__generator(this, function (_c) {
1089
+ switch (_c.label) {
1090
+ case 0:
1091
+ _c.trys.push([0, 5, 6, 7]);
1092
+ changedColumns_1 = tslib_1.__values(changedColumns), changedColumns_1_1 = changedColumns_1.next();
1093
+ _c.label = 1;
1068
1094
  case 1:
1069
- _a.sent();
1070
- return [2 /*return*/];
1095
+ if (!!changedColumns_1_1.done) return [3 /*break*/, 4];
1096
+ _a = changedColumns_1_1.value, oldColumn = _a.oldColumn, newColumn = _a.newColumn;
1097
+ return [4 /*yield*/, this.changeColumn(tableOrName, oldColumn, newColumn)];
1098
+ case 2:
1099
+ _c.sent();
1100
+ _c.label = 3;
1101
+ case 3:
1102
+ changedColumns_1_1 = changedColumns_1.next();
1103
+ return [3 /*break*/, 1];
1104
+ case 4: return [3 /*break*/, 7];
1105
+ case 5:
1106
+ e_2_1 = _c.sent();
1107
+ e_2 = { error: e_2_1 };
1108
+ return [3 /*break*/, 7];
1109
+ case 6:
1110
+ try {
1111
+ if (changedColumns_1_1 && !changedColumns_1_1.done && (_b = changedColumns_1.return)) _b.call(changedColumns_1);
1112
+ }
1113
+ finally { if (e_2) throw e_2.error; }
1114
+ return [7 /*endfinally*/];
1115
+ case 7: return [2 /*return*/];
1071
1116
  }
1072
1117
  });
1073
1118
  });
@@ -1191,13 +1236,36 @@ var SapQueryRunner = /** @class */ (function (_super) {
1191
1236
  */
1192
1237
  SapQueryRunner.prototype.dropColumns = function (tableOrName, columns) {
1193
1238
  return tslib_1.__awaiter(this, void 0, void 0, function () {
1194
- var _this = this;
1195
- return tslib_1.__generator(this, function (_a) {
1196
- switch (_a.label) {
1197
- case 0: return [4 /*yield*/, index_1.PromiseUtils.runInSequence(columns, function (column) { return _this.dropColumn(tableOrName, column); })];
1239
+ var columns_2, columns_2_1, column, e_3_1;
1240
+ var e_3, _a;
1241
+ return tslib_1.__generator(this, function (_b) {
1242
+ switch (_b.label) {
1243
+ case 0:
1244
+ _b.trys.push([0, 5, 6, 7]);
1245
+ columns_2 = tslib_1.__values(columns), columns_2_1 = columns_2.next();
1246
+ _b.label = 1;
1198
1247
  case 1:
1199
- _a.sent();
1200
- return [2 /*return*/];
1248
+ if (!!columns_2_1.done) return [3 /*break*/, 4];
1249
+ column = columns_2_1.value;
1250
+ return [4 /*yield*/, this.dropColumn(tableOrName, column)];
1251
+ case 2:
1252
+ _b.sent();
1253
+ _b.label = 3;
1254
+ case 3:
1255
+ columns_2_1 = columns_2.next();
1256
+ return [3 /*break*/, 1];
1257
+ case 4: return [3 /*break*/, 7];
1258
+ case 5:
1259
+ e_3_1 = _b.sent();
1260
+ e_3 = { error: e_3_1 };
1261
+ return [3 /*break*/, 7];
1262
+ case 6:
1263
+ try {
1264
+ if (columns_2_1 && !columns_2_1.done && (_a = columns_2.return)) _a.call(columns_2);
1265
+ }
1266
+ finally { if (e_3) throw e_3.error; }
1267
+ return [7 /*endfinally*/];
1268
+ case 7: return [2 /*return*/];
1201
1269
  }
1202
1270
  });
1203
1271
  });
@@ -1940,7 +2008,7 @@ var SapQueryRunner = /** @class */ (function (_super) {
1940
2008
  return "(\"SCHEMA_NAME\" = '" + schema + "' AND \"TABLE_NAME\" = '" + name + "')";
1941
2009
  }).join(" OR ");
1942
2010
  tablesSql = "SELECT * FROM \"SYS\".\"TABLES\" WHERE " + tablesCondition;
1943
- columnsSql = "SELECT * FROM \"SYS\".\"TABLE_COLUMNS\" WHERE " + tablesCondition;
2011
+ columnsSql = "SELECT * FROM \"SYS\".\"TABLE_COLUMNS\" WHERE " + tablesCondition + " ORDER BY \"POSITION\"";
1944
2012
  constraintsCondition = tableNames.map(function (tableName) {
1945
2013
  var _a = tslib_1.__read(tableName.split("."), 2), schema = _a[0], name = _a[1];
1946
2014
  if (!name) {
@@ -1949,7 +2017,7 @@ var SapQueryRunner = /** @class */ (function (_super) {
1949
2017
  }
1950
2018
  return "(\"SCHEMA_NAME\" = '" + schema + "' AND \"TABLE_NAME\" = '" + name + "')";
1951
2019
  }).join(" OR ");
1952
- constraintsSql = "SELECT * FROM \"SYS\".\"CONSTRAINTS\" WHERE (" + constraintsCondition + ")";
2020
+ constraintsSql = "SELECT * FROM \"SYS\".\"CONSTRAINTS\" WHERE (" + constraintsCondition + ") ORDER BY \"POSITION\"";
1953
2021
  indicesCondition = tableNames.map(function (tableName) {
1954
2022
  var _a = tslib_1.__read(tableName.split("."), 2), schema = _a[0], name = _a[1];
1955
2023
  if (!name) {
@@ -1960,7 +2028,7 @@ var SapQueryRunner = /** @class */ (function (_super) {
1960
2028
  }).join(" OR ");
1961
2029
  indicesSql = "SELECT \"I\".\"INDEX_TYPE\", \"I\".\"SCHEMA_NAME\", \"I\".\"TABLE_NAME\", \"I\".\"INDEX_NAME\", \"IC\".\"COLUMN_NAME\", \"I\".\"CONSTRAINT\" " +
1962
2030
  "FROM \"SYS\".\"INDEXES\" \"I\" INNER JOIN \"SYS\".\"INDEX_COLUMNS\" \"IC\" ON \"IC\".\"INDEX_OID\" = \"I\".\"INDEX_OID\" " +
1963
- ("WHERE (" + indicesCondition + ") AND (\"I\".\"CONSTRAINT\" IS NULL OR \"I\".\"CONSTRAINT\" != 'PRIMARY KEY') AND \"I\".\"INDEX_NAME\" NOT LIKE '%_SYS_FULLTEXT_%'");
2031
+ ("WHERE (" + indicesCondition + ") AND (\"I\".\"CONSTRAINT\" IS NULL OR \"I\".\"CONSTRAINT\" != 'PRIMARY KEY') AND \"I\".\"INDEX_NAME\" NOT LIKE '%_SYS_FULLTEXT_%' ORDER BY \"IC\".\"POSITION\"");
1964
2032
  foreignKeysCondition = tableNames.map(function (tableName) {
1965
2033
  var _a = tslib_1.__read(tableName.split("."), 2), schema = _a[0], name = _a[1];
1966
2034
  if (!name) {
@@ -1969,7 +2037,7 @@ var SapQueryRunner = /** @class */ (function (_super) {
1969
2037
  }
1970
2038
  return "(\"SCHEMA_NAME\" = '" + schema + "' AND \"TABLE_NAME\" = '" + name + "')";
1971
2039
  }).join(" OR ");
1972
- foreignKeysSql = "SELECT * FROM \"SYS\".\"REFERENTIAL_CONSTRAINTS\" WHERE (" + foreignKeysCondition + ")";
2040
+ foreignKeysSql = "SELECT * FROM \"SYS\".\"REFERENTIAL_CONSTRAINTS\" WHERE (" + foreignKeysCondition + ") ORDER BY \"POSITION\"";
1973
2041
  return [4 /*yield*/, Promise.all([
1974
2042
  this.query(tablesSql),
1975
2043
  this.query(columnsSql),