typeorm 0.2.38-dev.d8f6037 → 0.2.39-dev.179ae75

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 (657) hide show
  1. package/README.md +60 -59
  2. package/browser/connection/ConnectionMetadataBuilder.js +4 -4
  3. package/browser/connection/ConnectionMetadataBuilder.js.map +1 -1
  4. package/browser/connection/ConnectionOptionsReader.js +2 -1
  5. package/browser/connection/ConnectionOptionsReader.js.map +1 -1
  6. package/browser/connection/options-reader/ConnectionOptionsYmlReader.js +1 -1
  7. package/browser/connection/options-reader/ConnectionOptionsYmlReader.js.map +1 -1
  8. package/browser/decorator/transaction/Transaction.js +3 -3
  9. package/browser/decorator/transaction/Transaction.js.map +1 -1
  10. package/browser/driver/DriverUtils.js +1 -1
  11. package/browser/driver/DriverUtils.js.map +1 -1
  12. package/browser/driver/aurora-data-api/AuroraDataApiConnectionOptions.d.ts +5 -0
  13. package/browser/driver/aurora-data-api/AuroraDataApiConnectionOptions.js.map +1 -1
  14. package/browser/driver/aurora-data-api/AuroraDataApiDriver.js +6 -5
  15. package/browser/driver/aurora-data-api/AuroraDataApiDriver.js.map +1 -1
  16. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js +19 -48
  17. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
  18. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.d.ts +5 -0
  19. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.js.map +1 -1
  20. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js +2 -1
  21. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js.map +1 -1
  22. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js +17 -46
  23. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js.map +1 -1
  24. package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.d.ts +5 -0
  25. package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -1
  26. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js +4 -3
  27. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
  28. package/browser/driver/cockroachdb/CockroachConnectionOptions.d.ts +10 -0
  29. package/browser/driver/cockroachdb/CockroachConnectionOptions.js.map +1 -1
  30. package/browser/driver/cockroachdb/CockroachDriver.js +5 -4
  31. package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
  32. package/browser/driver/cockroachdb/CockroachQueryRunner.js +46 -77
  33. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  34. package/browser/driver/cordova/CordovaConnectionOptions.d.ts +5 -0
  35. package/browser/driver/cordova/CordovaConnectionOptions.js.map +1 -1
  36. package/browser/driver/cordova/CordovaDriver.js +2 -1
  37. package/browser/driver/cordova/CordovaDriver.js.map +1 -1
  38. package/browser/driver/expo/ExpoQueryRunner.js +12 -43
  39. package/browser/driver/expo/ExpoQueryRunner.js.map +1 -1
  40. package/browser/driver/mongodb/MongoConnectionOptions.d.ts +5 -0
  41. package/browser/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  42. package/browser/driver/mongodb/MongoDriver.js +2 -1
  43. package/browser/driver/mongodb/MongoDriver.js.map +1 -1
  44. package/browser/driver/mysql/MysqlConnectionOptions.d.ts +6 -0
  45. package/browser/driver/mysql/MysqlConnectionOptions.js.map +1 -1
  46. package/browser/driver/mysql/MysqlDriver.js +4 -2
  47. package/browser/driver/mysql/MysqlDriver.js.map +1 -1
  48. package/browser/driver/mysql/MysqlQueryRunner.js +24 -54
  49. package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
  50. package/browser/driver/nativescript/NativescriptQueryRunner.js +45 -37
  51. package/browser/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  52. package/browser/driver/oracle/OracleConnectionOptions.d.ts +5 -0
  53. package/browser/driver/oracle/OracleConnectionOptions.js.map +1 -1
  54. package/browser/driver/oracle/OracleDriver.js +5 -4
  55. package/browser/driver/oracle/OracleDriver.js.map +1 -1
  56. package/browser/driver/oracle/OracleQueryRunner.js +20 -48
  57. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  58. package/browser/driver/postgres/PostgresConnectionOptions.d.ts +10 -0
  59. package/browser/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  60. package/browser/driver/postgres/PostgresDriver.js +6 -5
  61. package/browser/driver/postgres/PostgresDriver.js.map +1 -1
  62. package/browser/driver/postgres/PostgresQueryRunner.js +21 -51
  63. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  64. package/browser/driver/react-native/ReactNativeConnectionOptions.d.ts +5 -0
  65. package/browser/driver/react-native/ReactNativeConnectionOptions.js.map +1 -1
  66. package/browser/driver/react-native/ReactNativeDriver.js +2 -1
  67. package/browser/driver/react-native/ReactNativeDriver.js.map +1 -1
  68. package/browser/driver/sap/SapConnectionOptions.d.ts +16 -6
  69. package/browser/driver/sap/SapConnectionOptions.js.map +1 -1
  70. package/browser/driver/sap/SapDriver.js +6 -3
  71. package/browser/driver/sap/SapDriver.js.map +1 -1
  72. package/browser/driver/sap/SapQueryRunner.js +20 -50
  73. package/browser/driver/sap/SapQueryRunner.js.map +1 -1
  74. package/browser/driver/sqlite/SqliteConnectionOptions.d.ts +5 -0
  75. package/browser/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
  76. package/browser/driver/sqlite/SqliteDriver.js +4 -3
  77. package/browser/driver/sqlite/SqliteDriver.js.map +1 -1
  78. package/browser/driver/sqlite/SqliteQueryRunner.js +16 -8
  79. package/browser/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  80. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +19 -49
  81. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  82. package/browser/driver/sqljs/SqljsConnectionOptions.d.ts +5 -0
  83. package/browser/driver/sqljs/SqljsConnectionOptions.js.map +1 -1
  84. package/browser/driver/sqljs/SqljsDriver.js +4 -2
  85. package/browser/driver/sqljs/SqljsDriver.js.map +1 -1
  86. package/browser/driver/sqlserver/SqlServerConnectionOptions.d.ts +5 -0
  87. package/browser/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
  88. package/browser/driver/sqlserver/SqlServerDriver.js +7 -6
  89. package/browser/driver/sqlserver/SqlServerDriver.js.map +1 -1
  90. package/browser/driver/sqlserver/SqlServerQueryRunner.js +84 -116
  91. package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  92. package/browser/entity-manager/MongoEntityManager.js +8 -13
  93. package/browser/entity-manager/MongoEntityManager.js.map +1 -1
  94. package/browser/find-options/FindOptionsUtils.js +1 -1
  95. package/browser/find-options/FindOptionsUtils.js.map +1 -1
  96. package/browser/metadata/ColumnMetadata.js +4 -4
  97. package/browser/metadata/ColumnMetadata.js.map +1 -1
  98. package/browser/metadata/EmbeddedMetadata.js +1 -1
  99. package/browser/metadata/EmbeddedMetadata.js.map +1 -1
  100. package/browser/metadata/EntityMetadata.js +1 -1
  101. package/browser/metadata/EntityMetadata.js.map +1 -1
  102. package/browser/metadata/RelationMetadata.js +4 -4
  103. package/browser/metadata/RelationMetadata.js.map +1 -1
  104. package/browser/metadata-builder/EntityMetadataBuilder.js +5 -5
  105. package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  106. package/browser/metadata-builder/JunctionEntityMetadataBuilder.js +1 -1
  107. package/browser/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  108. package/browser/naming-strategy/DefaultNamingStrategy.js +5 -5
  109. package/browser/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  110. package/browser/persistence/Subject.js +1 -1
  111. package/browser/persistence/Subject.js.map +1 -1
  112. package/browser/persistence/SubjectDatabaseEntityLoader.js +1 -1
  113. package/browser/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  114. package/browser/persistence/SubjectExecutor.js +1 -1
  115. package/browser/persistence/SubjectExecutor.js.map +1 -1
  116. package/browser/persistence/SubjectTopoligicalSorter.js +5 -5
  117. package/browser/persistence/SubjectTopoligicalSorter.js.map +1 -1
  118. package/browser/persistence/tree/ClosureSubjectExecutor.js +4 -4
  119. package/browser/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
  120. package/browser/query-builder/DeleteQueryBuilder.js +3 -10
  121. package/browser/query-builder/DeleteQueryBuilder.js.map +1 -1
  122. package/browser/query-builder/InsertQueryBuilder.js +4 -6
  123. package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
  124. package/browser/query-builder/QueryBuilder.js +9 -9
  125. package/browser/query-builder/QueryBuilder.js.map +1 -1
  126. package/browser/query-builder/RelationLoader.js +2 -2
  127. package/browser/query-builder/RelationLoader.js.map +1 -1
  128. package/browser/query-builder/RelationRemover.js +6 -6
  129. package/browser/query-builder/RelationRemover.js.map +1 -1
  130. package/browser/query-builder/SelectQueryBuilder.js +14 -14
  131. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  132. package/browser/query-builder/SoftDeleteQueryBuilder.js +3 -10
  133. package/browser/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  134. package/browser/query-builder/UpdateQueryBuilder.js +5 -12
  135. package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
  136. package/browser/query-builder/relation-id/RelationIdLoader.js +1 -1
  137. package/browser/query-builder/relation-id/RelationIdLoader.js.map +1 -1
  138. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js +2 -2
  139. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  140. package/browser/query-runner/BaseQueryRunner.js +2 -2
  141. package/browser/query-runner/BaseQueryRunner.js.map +1 -1
  142. package/browser/query-runner/QueryLock.js +1 -1
  143. package/browser/query-runner/QueryLock.js.map +1 -1
  144. package/browser/repository/BaseEntity.js +1 -1
  145. package/browser/repository/BaseEntity.js.map +1 -1
  146. package/browser/repository/Repository.js +1 -1
  147. package/browser/repository/Repository.js.map +1 -1
  148. package/browser/repository/TreeRepository.js +2 -2
  149. package/browser/repository/TreeRepository.js.map +1 -1
  150. package/browser/schema-builder/table/TableCheck.js +1 -1
  151. package/browser/schema-builder/table/TableCheck.js.map +1 -1
  152. package/browser/schema-builder/table/TableForeignKey.js +2 -2
  153. package/browser/schema-builder/table/TableForeignKey.js.map +1 -1
  154. package/browser/schema-builder/table/TableIndex.js +1 -1
  155. package/browser/schema-builder/table/TableIndex.js.map +1 -1
  156. package/browser/schema-builder/table/TableUnique.js +1 -1
  157. package/browser/schema-builder/table/TableUnique.js.map +1 -1
  158. package/browser/subscriber/Broadcaster.d.ts +23 -2
  159. package/browser/subscriber/Broadcaster.js +35 -2
  160. package/browser/subscriber/Broadcaster.js.map +1 -1
  161. package/browser/subscriber/BroadcasterResult.d.ts +4 -0
  162. package/browser/subscriber/BroadcasterResult.js +19 -0
  163. package/browser/subscriber/BroadcasterResult.js.map +1 -1
  164. package/cache/DbQueryResultCache.js +12 -12
  165. package/cache/RedisQueryResultCache.js +12 -12
  166. package/cli.js +1 -6
  167. package/cli.js.map +1 -1
  168. package/commands/CacheClearCommand.js +4 -4
  169. package/commands/CacheClearCommand.js.map +1 -1
  170. package/commands/CommandUtils.js +10 -10
  171. package/commands/CommandUtils.js.map +1 -1
  172. package/commands/EntityCreateCommand.js +3 -3
  173. package/commands/EntityCreateCommand.js.map +1 -1
  174. package/commands/InitCommand.js +5 -5
  175. package/commands/InitCommand.js.map +1 -1
  176. package/commands/MigrationCreateCommand.js +5 -5
  177. package/commands/MigrationCreateCommand.js.map +1 -1
  178. package/commands/MigrationGenerateCommand.js +7 -7
  179. package/commands/MigrationGenerateCommand.js.map +1 -1
  180. package/commands/MigrationRevertCommand.js +4 -4
  181. package/commands/MigrationRevertCommand.js.map +1 -1
  182. package/commands/MigrationRunCommand.js +5 -5
  183. package/commands/MigrationRunCommand.js.map +1 -1
  184. package/commands/MigrationShowCommand.js +5 -5
  185. package/commands/MigrationShowCommand.js.map +1 -1
  186. package/commands/QueryCommand.js +4 -4
  187. package/commands/QueryCommand.js.map +1 -1
  188. package/commands/SchemaDropCommand.js +4 -4
  189. package/commands/SchemaDropCommand.js.map +1 -1
  190. package/commands/SchemaLogCommand.js +5 -5
  191. package/commands/SchemaLogCommand.js.map +1 -1
  192. package/commands/SchemaSyncCommand.js +4 -4
  193. package/commands/SchemaSyncCommand.js.map +1 -1
  194. package/commands/SubscriberCreateCommand.js +3 -3
  195. package/commands/SubscriberCreateCommand.js.map +1 -1
  196. package/commands/VersionCommand.js +3 -3
  197. package/commands/VersionCommand.js.map +1 -1
  198. package/connection/Connection.js +19 -19
  199. package/connection/Connection.js.map +1 -1
  200. package/connection/ConnectionMetadataBuilder.js +11 -11
  201. package/connection/ConnectionMetadataBuilder.js.map +1 -1
  202. package/connection/ConnectionOptionsReader.js +11 -10
  203. package/connection/ConnectionOptionsReader.js.map +1 -1
  204. package/connection/options-reader/ConnectionOptionsEnvReader.js +2 -2
  205. package/connection/options-reader/ConnectionOptionsXmlReader.js +3 -3
  206. package/connection/options-reader/ConnectionOptionsXmlReader.js.map +1 -1
  207. package/connection/options-reader/ConnectionOptionsYmlReader.js +4 -4
  208. package/connection/options-reader/ConnectionOptionsYmlReader.js.map +1 -1
  209. package/decorator/Check.js +1 -1
  210. package/decorator/Check.js.map +1 -1
  211. package/decorator/EntityRepository.js +1 -1
  212. package/decorator/EntityRepository.js.map +1 -1
  213. package/decorator/Exclusion.js +1 -1
  214. package/decorator/Exclusion.js.map +1 -1
  215. package/decorator/Generated.js +1 -1
  216. package/decorator/Generated.js.map +1 -1
  217. package/decorator/Index.js +1 -1
  218. package/decorator/Index.js.map +1 -1
  219. package/decorator/Unique.js +1 -1
  220. package/decorator/Unique.js.map +1 -1
  221. package/decorator/columns/Column.js +4 -4
  222. package/decorator/columns/Column.js.map +1 -1
  223. package/decorator/columns/CreateDateColumn.js +1 -1
  224. package/decorator/columns/CreateDateColumn.js.map +1 -1
  225. package/decorator/columns/DeleteDateColumn.js +1 -1
  226. package/decorator/columns/DeleteDateColumn.js.map +1 -1
  227. package/decorator/columns/ObjectIdColumn.js +1 -1
  228. package/decorator/columns/ObjectIdColumn.js.map +1 -1
  229. package/decorator/columns/PrimaryColumn.js +2 -2
  230. package/decorator/columns/PrimaryColumn.js.map +1 -1
  231. package/decorator/columns/PrimaryGeneratedColumn.js +2 -2
  232. package/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
  233. package/decorator/columns/UpdateDateColumn.js +1 -1
  234. package/decorator/columns/UpdateDateColumn.js.map +1 -1
  235. package/decorator/columns/VersionColumn.js +1 -1
  236. package/decorator/columns/VersionColumn.js.map +1 -1
  237. package/decorator/columns/ViewColumn.js +1 -1
  238. package/decorator/columns/ViewColumn.js.map +1 -1
  239. package/decorator/entity/ChildEntity.js +2 -2
  240. package/decorator/entity/ChildEntity.js.map +1 -1
  241. package/decorator/entity/Entity.js +1 -1
  242. package/decorator/entity/Entity.js.map +1 -1
  243. package/decorator/entity/TableInheritance.js +1 -1
  244. package/decorator/entity/TableInheritance.js.map +1 -1
  245. package/decorator/entity-view/ViewEntity.js +1 -1
  246. package/decorator/entity-view/ViewEntity.js.map +1 -1
  247. package/decorator/listeners/AfterInsert.js +1 -1
  248. package/decorator/listeners/AfterInsert.js.map +1 -1
  249. package/decorator/listeners/AfterLoad.js +1 -1
  250. package/decorator/listeners/AfterLoad.js.map +1 -1
  251. package/decorator/listeners/AfterRemove.js +1 -1
  252. package/decorator/listeners/AfterRemove.js.map +1 -1
  253. package/decorator/listeners/AfterUpdate.js +1 -1
  254. package/decorator/listeners/AfterUpdate.js.map +1 -1
  255. package/decorator/listeners/BeforeInsert.js +1 -1
  256. package/decorator/listeners/BeforeInsert.js.map +1 -1
  257. package/decorator/listeners/BeforeRemove.js +1 -1
  258. package/decorator/listeners/BeforeRemove.js.map +1 -1
  259. package/decorator/listeners/BeforeUpdate.js +1 -1
  260. package/decorator/listeners/BeforeUpdate.js.map +1 -1
  261. package/decorator/listeners/EventSubscriber.js +1 -1
  262. package/decorator/listeners/EventSubscriber.js.map +1 -1
  263. package/decorator/relations/JoinColumn.js +1 -1
  264. package/decorator/relations/JoinColumn.js.map +1 -1
  265. package/decorator/relations/JoinTable.js +1 -1
  266. package/decorator/relations/JoinTable.js.map +1 -1
  267. package/decorator/relations/ManyToMany.js +1 -1
  268. package/decorator/relations/ManyToMany.js.map +1 -1
  269. package/decorator/relations/ManyToOne.js +1 -1
  270. package/decorator/relations/ManyToOne.js.map +1 -1
  271. package/decorator/relations/OneToMany.js +1 -1
  272. package/decorator/relations/OneToMany.js.map +1 -1
  273. package/decorator/relations/OneToOne.js +1 -1
  274. package/decorator/relations/OneToOne.js.map +1 -1
  275. package/decorator/relations/RelationCount.js +1 -1
  276. package/decorator/relations/RelationCount.js.map +1 -1
  277. package/decorator/relations/RelationId.js +1 -1
  278. package/decorator/relations/RelationId.js.map +1 -1
  279. package/decorator/transaction/Transaction.js +7 -7
  280. package/decorator/transaction/Transaction.js.map +1 -1
  281. package/decorator/transaction/TransactionManager.js +1 -1
  282. package/decorator/transaction/TransactionManager.js.map +1 -1
  283. package/decorator/transaction/TransactionRepository.js +1 -1
  284. package/decorator/transaction/TransactionRepository.js.map +1 -1
  285. package/decorator/tree/Tree.js +1 -1
  286. package/decorator/tree/Tree.js.map +1 -1
  287. package/decorator/tree/TreeChildren.js +1 -1
  288. package/decorator/tree/TreeChildren.js.map +1 -1
  289. package/decorator/tree/TreeLevelColumn.js +1 -1
  290. package/decorator/tree/TreeLevelColumn.js.map +1 -1
  291. package/decorator/tree/TreeParent.js +1 -1
  292. package/decorator/tree/TreeParent.js.map +1 -1
  293. package/driver/DriverUtils.js +9 -9
  294. package/driver/DriverUtils.js.map +1 -1
  295. package/driver/aurora-data-api/AuroraDataApiConnection.js +1 -1
  296. package/driver/aurora-data-api/AuroraDataApiConnection.js.map +1 -1
  297. package/driver/aurora-data-api/AuroraDataApiConnectionOptions.d.ts +5 -0
  298. package/driver/aurora-data-api/AuroraDataApiConnectionOptions.js.map +1 -1
  299. package/driver/aurora-data-api/AuroraDataApiDriver.js +12 -11
  300. package/driver/aurora-data-api/AuroraDataApiDriver.js.map +1 -1
  301. package/driver/aurora-data-api/AuroraDataApiQueryRunner.js +146 -175
  302. package/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
  303. package/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.d.ts +5 -0
  304. package/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.js.map +1 -1
  305. package/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js +10 -9
  306. package/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js.map +1 -1
  307. package/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js +29 -58
  308. package/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js.map +1 -1
  309. package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.d.ts +5 -0
  310. package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -1
  311. package/driver/better-sqlite3/BetterSqlite3Driver.js +12 -11
  312. package/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
  313. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js +5 -5
  314. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
  315. package/driver/capacitor/CapacitorDriver.js +7 -7
  316. package/driver/capacitor/CapacitorDriver.js.map +1 -1
  317. package/driver/capacitor/CapacitorQueryRunner.js +5 -5
  318. package/driver/capacitor/CapacitorQueryRunner.js.map +1 -1
  319. package/driver/cockroachdb/CockroachConnectionOptions.d.ts +10 -0
  320. package/driver/cockroachdb/CockroachConnectionOptions.js.map +1 -1
  321. package/driver/cockroachdb/CockroachDriver.js +15 -14
  322. package/driver/cockroachdb/CockroachDriver.js.map +1 -1
  323. package/driver/cockroachdb/CockroachQueryRunner.js +180 -211
  324. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  325. package/driver/cordova/CordovaConnectionOptions.d.ts +5 -0
  326. package/driver/cordova/CordovaConnectionOptions.js.map +1 -1
  327. package/driver/cordova/CordovaDriver.js +5 -4
  328. package/driver/cordova/CordovaDriver.js.map +1 -1
  329. package/driver/cordova/CordovaQueryRunner.js +13 -13
  330. package/driver/cordova/CordovaQueryRunner.js.map +1 -1
  331. package/driver/expo/ExpoDriver.js +3 -3
  332. package/driver/expo/ExpoDriver.js.map +1 -1
  333. package/driver/expo/ExpoQueryRunner.js +23 -54
  334. package/driver/expo/ExpoQueryRunner.js.map +1 -1
  335. package/driver/mongodb/MongoConnectionOptions.d.ts +5 -0
  336. package/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  337. package/driver/mongodb/MongoDriver.js +4 -3
  338. package/driver/mongodb/MongoDriver.js.map +1 -1
  339. package/driver/mongodb/MongoQueryRunner.js +178 -178
  340. package/driver/mysql/MysqlConnectionOptions.d.ts +6 -0
  341. package/driver/mysql/MysqlConnectionOptions.js.map +1 -1
  342. package/driver/mysql/MysqlDriver.js +9 -7
  343. package/driver/mysql/MysqlDriver.js.map +1 -1
  344. package/driver/mysql/MysqlQueryRunner.js +152 -182
  345. package/driver/mysql/MysqlQueryRunner.js.map +1 -1
  346. package/driver/nativescript/NativescriptDriver.js +3 -3
  347. package/driver/nativescript/NativescriptDriver.js.map +1 -1
  348. package/driver/nativescript/NativescriptQueryRunner.js +48 -40
  349. package/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  350. package/driver/oracle/OracleConnectionOptions.d.ts +5 -0
  351. package/driver/oracle/OracleConnectionOptions.js.map +1 -1
  352. package/driver/oracle/OracleDriver.js +13 -12
  353. package/driver/oracle/OracleDriver.js.map +1 -1
  354. package/driver/oracle/OracleQueryRunner.js +143 -171
  355. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  356. package/driver/postgres/PostgresConnectionOptions.d.ts +10 -0
  357. package/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  358. package/driver/postgres/PostgresDriver.js +24 -23
  359. package/driver/postgres/PostgresDriver.js.map +1 -1
  360. package/driver/postgres/PostgresQueryRunner.js +169 -199
  361. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  362. package/driver/react-native/ReactNativeConnectionOptions.d.ts +5 -0
  363. package/driver/react-native/ReactNativeConnectionOptions.js.map +1 -1
  364. package/driver/react-native/ReactNativeDriver.js +5 -4
  365. package/driver/react-native/ReactNativeDriver.js.map +1 -1
  366. package/driver/react-native/ReactNativeQueryRunner.js +3 -3
  367. package/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  368. package/driver/sap/SapConnectionOptions.d.ts +16 -6
  369. package/driver/sap/SapConnectionOptions.js.map +1 -1
  370. package/driver/sap/SapDriver.js +11 -8
  371. package/driver/sap/SapDriver.js.map +1 -1
  372. package/driver/sap/SapQueryRunner.js +153 -183
  373. package/driver/sap/SapQueryRunner.js.map +1 -1
  374. package/driver/sqlite/SqliteConnectionOptions.d.ts +5 -0
  375. package/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
  376. package/driver/sqlite/SqliteDriver.js +12 -11
  377. package/driver/sqlite/SqliteDriver.js.map +1 -1
  378. package/driver/sqlite/SqliteQueryRunner.js +21 -13
  379. package/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  380. package/driver/sqlite-abstract/AbstractSqliteDriver.js +4 -4
  381. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +138 -168
  382. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  383. package/driver/sqljs/SqljsConnectionOptions.d.ts +5 -0
  384. package/driver/sqljs/SqljsConnectionOptions.js.map +1 -1
  385. package/driver/sqljs/SqljsDriver.js +17 -15
  386. package/driver/sqljs/SqljsDriver.js.map +1 -1
  387. package/driver/sqljs/SqljsQueryRunner.js +9 -9
  388. package/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  389. package/driver/sqlserver/SqlServerConnectionOptions.d.ts +5 -0
  390. package/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
  391. package/driver/sqlserver/SqlServerDriver.js +13 -12
  392. package/driver/sqlserver/SqlServerDriver.js.map +1 -1
  393. package/driver/sqlserver/SqlServerQueryRunner.js +220 -252
  394. package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  395. package/entity-manager/EntityManager.js +30 -30
  396. package/entity-manager/EntityManager.js.map +1 -1
  397. package/entity-manager/MongoEntityManager.js +23 -28
  398. package/entity-manager/MongoEntityManager.js.map +1 -1
  399. package/entity-manager/SqljsEntityManager.js +5 -5
  400. package/entity-manager/SqljsEntityManager.js.map +1 -1
  401. package/entity-schema/EntitySchemaTransformer.js +1 -1
  402. package/entity-schema/EntitySchemaTransformer.js.map +1 -1
  403. package/error/AlreadyHasActiveConnectionError.js +1 -1
  404. package/error/AlreadyHasActiveConnectionError.js.map +1 -1
  405. package/error/CannotAttachTreeChildrenEntityError.js +1 -1
  406. package/error/CannotAttachTreeChildrenEntityError.js.map +1 -1
  407. package/error/CannotConnectAlreadyConnectedError.js +1 -1
  408. package/error/CannotConnectAlreadyConnectedError.js.map +1 -1
  409. package/error/CannotCreateEntityIdMapError.js +1 -1
  410. package/error/CannotCreateEntityIdMapError.js.map +1 -1
  411. package/error/CannotDetermineEntityError.js +1 -1
  412. package/error/CannotDetermineEntityError.js.map +1 -1
  413. package/error/CannotExecuteNotConnectedError.js +1 -1
  414. package/error/CannotExecuteNotConnectedError.js.map +1 -1
  415. package/error/CannotGetEntityManagerNotConnectedError.js +1 -1
  416. package/error/CannotGetEntityManagerNotConnectedError.js.map +1 -1
  417. package/error/CannotReflectMethodParameterTypeError.js +1 -1
  418. package/error/CannotReflectMethodParameterTypeError.js.map +1 -1
  419. package/error/CircularRelationsError.js +1 -1
  420. package/error/CircularRelationsError.js.map +1 -1
  421. package/error/ColumnTypeUndefinedError.js +1 -1
  422. package/error/ColumnTypeUndefinedError.js.map +1 -1
  423. package/error/ConnectionIsNotSetError.js +1 -1
  424. package/error/ConnectionIsNotSetError.js.map +1 -1
  425. package/error/ConnectionNotFoundError.js +1 -1
  426. package/error/ConnectionNotFoundError.js.map +1 -1
  427. package/error/CustomRepositoryCannotInheritRepositoryError.js +1 -1
  428. package/error/CustomRepositoryCannotInheritRepositoryError.js.map +1 -1
  429. package/error/CustomRepositoryDoesNotHaveEntityError.js +1 -1
  430. package/error/CustomRepositoryDoesNotHaveEntityError.js.map +1 -1
  431. package/error/CustomRepositoryNotFoundError.js +1 -1
  432. package/error/CustomRepositoryNotFoundError.js.map +1 -1
  433. package/error/DataTypeNotSupportedError.js +1 -1
  434. package/error/DataTypeNotSupportedError.js.map +1 -1
  435. package/error/DriverOptionNotSetError.js +1 -1
  436. package/error/DriverOptionNotSetError.js.map +1 -1
  437. package/error/DriverPackageNotInstalledError.js +1 -1
  438. package/error/DriverPackageNotInstalledError.js.map +1 -1
  439. package/error/EntityColumnNotFound.js +1 -1
  440. package/error/EntityColumnNotFound.js.map +1 -1
  441. package/error/EntityMetadataNotFoundError.js +1 -1
  442. package/error/EntityMetadataNotFoundError.js.map +1 -1
  443. package/error/EntityNotFoundError.js +1 -1
  444. package/error/EntityNotFoundError.js.map +1 -1
  445. package/error/FindRelationsNotFoundError.js +1 -1
  446. package/error/FindRelationsNotFoundError.js.map +1 -1
  447. package/error/InitializedRelationError.js +1 -1
  448. package/error/InitializedRelationError.js.map +1 -1
  449. package/error/InsertValuesMissingError.js +1 -1
  450. package/error/InsertValuesMissingError.js.map +1 -1
  451. package/error/LimitOnUpdateNotSupportedError.js +1 -1
  452. package/error/LimitOnUpdateNotSupportedError.js.map +1 -1
  453. package/error/LockNotSupportedOnGivenDriverError.js +1 -1
  454. package/error/LockNotSupportedOnGivenDriverError.js.map +1 -1
  455. package/error/MetadataAlreadyExistsError.js +1 -1
  456. package/error/MetadataAlreadyExistsError.js.map +1 -1
  457. package/error/MetadataWithSuchNameAlreadyExistsError.js +1 -1
  458. package/error/MetadataWithSuchNameAlreadyExistsError.js.map +1 -1
  459. package/error/MissingDeleteDateColumnError.js +1 -1
  460. package/error/MissingDeleteDateColumnError.js.map +1 -1
  461. package/error/MissingDriverError.js +1 -1
  462. package/error/MissingDriverError.js.map +1 -1
  463. package/error/MissingJoinColumnError.js +1 -1
  464. package/error/MissingJoinColumnError.js.map +1 -1
  465. package/error/MissingJoinTableError.js +1 -1
  466. package/error/MissingJoinTableError.js.map +1 -1
  467. package/error/MissingPrimaryColumnError.js +1 -1
  468. package/error/MissingPrimaryColumnError.js.map +1 -1
  469. package/error/MustBeEntityError.js +1 -1
  470. package/error/MustBeEntityError.js.map +1 -1
  471. package/error/NamingStrategyNotFoundError.js +1 -1
  472. package/error/NamingStrategyNotFoundError.js.map +1 -1
  473. package/error/NestedSetMultipleRootError.js +1 -1
  474. package/error/NestedSetMultipleRootError.js.map +1 -1
  475. package/error/NoConnectionForRepositoryError.js +1 -1
  476. package/error/NoConnectionForRepositoryError.js.map +1 -1
  477. package/error/NoConnectionOptionError.js +1 -1
  478. package/error/NoConnectionOptionError.js.map +1 -1
  479. package/error/NoNeedToReleaseEntityManagerError.js +1 -1
  480. package/error/NoNeedToReleaseEntityManagerError.js.map +1 -1
  481. package/error/NoVersionOrUpdateDateColumnError.js +1 -1
  482. package/error/NoVersionOrUpdateDateColumnError.js.map +1 -1
  483. package/error/OffsetWithoutLimitNotSupportedError.js +1 -1
  484. package/error/OffsetWithoutLimitNotSupportedError.js.map +1 -1
  485. package/error/OptimisticLockCanNotBeUsedError.js +1 -1
  486. package/error/OptimisticLockCanNotBeUsedError.js.map +1 -1
  487. package/error/OptimisticLockVersionMismatchError.js +1 -1
  488. package/error/OptimisticLockVersionMismatchError.js.map +1 -1
  489. package/error/PersistedEntityNotFoundError.js +1 -1
  490. package/error/PersistedEntityNotFoundError.js.map +1 -1
  491. package/error/PessimisticLockTransactionRequiredError.js +1 -1
  492. package/error/PessimisticLockTransactionRequiredError.js.map +1 -1
  493. package/error/PrimaryColumnCannotBeNullableError.js +1 -1
  494. package/error/PrimaryColumnCannotBeNullableError.js.map +1 -1
  495. package/error/QueryFailedError.js +3 -3
  496. package/error/QueryFailedError.js.map +1 -1
  497. package/error/QueryRunnerAlreadyReleasedError.js +1 -1
  498. package/error/QueryRunnerAlreadyReleasedError.js.map +1 -1
  499. package/error/QueryRunnerProviderAlreadyReleasedError.js +1 -1
  500. package/error/QueryRunnerProviderAlreadyReleasedError.js.map +1 -1
  501. package/error/RepositoryNotFoundError.js +1 -1
  502. package/error/RepositoryNotFoundError.js.map +1 -1
  503. package/error/RepositoryNotTreeError.js +1 -1
  504. package/error/RepositoryNotTreeError.js.map +1 -1
  505. package/error/ReturningStatementNotSupportedError.js +1 -1
  506. package/error/ReturningStatementNotSupportedError.js.map +1 -1
  507. package/error/SubjectRemovedAndUpdatedError.js +1 -1
  508. package/error/SubjectRemovedAndUpdatedError.js.map +1 -1
  509. package/error/SubjectWithoutIdentifierError.js +1 -1
  510. package/error/SubjectWithoutIdentifierError.js.map +1 -1
  511. package/error/TransactionAlreadyStartedError.js +1 -1
  512. package/error/TransactionAlreadyStartedError.js.map +1 -1
  513. package/error/TransactionNotStartedError.js +1 -1
  514. package/error/TransactionNotStartedError.js.map +1 -1
  515. package/error/TreeRepositoryNotSupportedError.js +1 -1
  516. package/error/TreeRepositoryNotSupportedError.js.map +1 -1
  517. package/error/TypeORMError.js +1 -1
  518. package/error/TypeORMError.js.map +1 -1
  519. package/error/UpdateValuesMissingError.js +1 -1
  520. package/error/UpdateValuesMissingError.js.map +1 -1
  521. package/error/UsingJoinColumnIsNotAllowedError.js +1 -1
  522. package/error/UsingJoinColumnIsNotAllowedError.js.map +1 -1
  523. package/error/UsingJoinColumnOnlyOnOneSideAllowedError.js +1 -1
  524. package/error/UsingJoinColumnOnlyOnOneSideAllowedError.js.map +1 -1
  525. package/error/UsingJoinTableIsNotAllowedError.js +1 -1
  526. package/error/UsingJoinTableIsNotAllowedError.js.map +1 -1
  527. package/error/UsingJoinTableOnlyOnOneSideAllowedError.js +1 -1
  528. package/error/UsingJoinTableOnlyOnOneSideAllowedError.js.map +1 -1
  529. package/error/index.js +62 -62
  530. package/error/index.js.map +1 -1
  531. package/find-options/FindOptionsUtils.js +4 -4
  532. package/find-options/FindOptionsUtils.js.map +1 -1
  533. package/globals.js +7 -7
  534. package/globals.js.map +1 -1
  535. package/index.js +102 -102
  536. package/index.js.map +1 -1
  537. package/logger/DebugLogger.js +9 -9
  538. package/logger/DebugLogger.js.map +1 -1
  539. package/logger/FileLogger.js +1 -1
  540. package/logger/FileLogger.js.map +1 -1
  541. package/metadata/ColumnMetadata.js +4 -4
  542. package/metadata/ColumnMetadata.js.map +1 -1
  543. package/metadata/EmbeddedMetadata.js +1 -1
  544. package/metadata/EmbeddedMetadata.js.map +1 -1
  545. package/metadata/EntityMetadata.js +2 -2
  546. package/metadata/EntityMetadata.js.map +1 -1
  547. package/metadata/RelationMetadata.js +4 -4
  548. package/metadata/RelationMetadata.js.map +1 -1
  549. package/metadata-builder/EntityMetadataBuilder.js +5 -5
  550. package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  551. package/metadata-builder/JunctionEntityMetadataBuilder.js +1 -1
  552. package/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  553. package/migration/MigrationExecutor.js +33 -33
  554. package/migration/MigrationExecutor.js.map +1 -1
  555. package/naming-strategy/DefaultNamingStrategy.js +10 -10
  556. package/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  557. package/package.json +1 -1
  558. package/persistence/EntityPersistExecutor.js +5 -5
  559. package/persistence/EntityPersistExecutor.js.map +1 -1
  560. package/persistence/Subject.js +1 -1
  561. package/persistence/Subject.js.map +1 -1
  562. package/persistence/SubjectDatabaseEntityLoader.js +6 -6
  563. package/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  564. package/persistence/SubjectExecutor.js +31 -31
  565. package/persistence/SubjectExecutor.js.map +1 -1
  566. package/persistence/SubjectTopoligicalSorter.js +5 -5
  567. package/persistence/SubjectTopoligicalSorter.js.map +1 -1
  568. package/persistence/subject-builder/CascadesSubjectBuilder.js +1 -1
  569. package/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
  570. package/persistence/tree/ClosureSubjectExecutor.js +13 -13
  571. package/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
  572. package/persistence/tree/MaterializedPathSubjectExecutor.js +5 -5
  573. package/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
  574. package/persistence/tree/NestedSetSubjectExecutor.js +14 -14
  575. package/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
  576. package/platform/PlatformTools.js +8 -8
  577. package/platform/PlatformTools.js.map +1 -1
  578. package/query-builder/DeleteQueryBuilder.js +7 -14
  579. package/query-builder/DeleteQueryBuilder.js.map +1 -1
  580. package/query-builder/InsertQueryBuilder.js +9 -11
  581. package/query-builder/InsertQueryBuilder.js.map +1 -1
  582. package/query-builder/JoinAttribute.js +1 -1
  583. package/query-builder/JoinAttribute.js.map +1 -1
  584. package/query-builder/QueryBuilder.js +37 -37
  585. package/query-builder/QueryBuilder.js.map +1 -1
  586. package/query-builder/QueryBuilderUtils.js +1 -1
  587. package/query-builder/QueryBuilderUtils.js.map +1 -1
  588. package/query-builder/QueryExpressionMap.js +3 -3
  589. package/query-builder/QueryExpressionMap.js.map +1 -1
  590. package/query-builder/RelationLoader.js +2 -2
  591. package/query-builder/RelationLoader.js.map +1 -1
  592. package/query-builder/RelationQueryBuilder.js +13 -13
  593. package/query-builder/RelationQueryBuilder.js.map +1 -1
  594. package/query-builder/RelationRemover.js +12 -12
  595. package/query-builder/RelationRemover.js.map +1 -1
  596. package/query-builder/RelationUpdater.js +2 -2
  597. package/query-builder/ReturningResultsEntityUpdator.js +6 -6
  598. package/query-builder/SelectQueryBuilder.js +43 -43
  599. package/query-builder/SelectQueryBuilder.js.map +1 -1
  600. package/query-builder/SoftDeleteQueryBuilder.js +7 -14
  601. package/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  602. package/query-builder/UpdateQueryBuilder.js +10 -17
  603. package/query-builder/UpdateQueryBuilder.js.map +1 -1
  604. package/query-builder/relation-count/RelationCountAttribute.js +2 -2
  605. package/query-builder/relation-count/RelationCountAttribute.js.map +1 -1
  606. package/query-builder/relation-count/RelationCountLoader.js +4 -4
  607. package/query-builder/relation-id/RelationIdAttribute.js +1 -1
  608. package/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
  609. package/query-builder/relation-id/RelationIdLoader.js +5 -5
  610. package/query-builder/relation-id/RelationIdLoader.js.map +1 -1
  611. package/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js +3 -3
  612. package/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
  613. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js +2 -2
  614. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  615. package/query-runner/BaseQueryRunner.js +25 -25
  616. package/query-runner/BaseQueryRunner.js.map +1 -1
  617. package/query-runner/QueryLock.js +3 -3
  618. package/query-runner/QueryLock.js.map +1 -1
  619. package/repository/AbstractRepository.js +1 -1
  620. package/repository/AbstractRepository.js.map +1 -1
  621. package/repository/BaseEntity.js +4 -4
  622. package/repository/BaseEntity.js.map +1 -1
  623. package/repository/MongoRepository.js +1 -1
  624. package/repository/MongoRepository.js.map +1 -1
  625. package/repository/Repository.js +1 -1
  626. package/repository/Repository.js.map +1 -1
  627. package/repository/TreeRepository.js +7 -7
  628. package/repository/TreeRepository.js.map +1 -1
  629. package/schema-builder/MongoSchemaBuilder.js +2 -2
  630. package/schema-builder/RdbmsSchemaBuilder.js +95 -95
  631. package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  632. package/schema-builder/table/Table.js +1 -1
  633. package/schema-builder/table/Table.js.map +1 -1
  634. package/schema-builder/table/TableCheck.js +1 -1
  635. package/schema-builder/table/TableCheck.js.map +1 -1
  636. package/schema-builder/table/TableForeignKey.js +2 -2
  637. package/schema-builder/table/TableForeignKey.js.map +1 -1
  638. package/schema-builder/table/TableIndex.js +1 -1
  639. package/schema-builder/table/TableIndex.js.map +1 -1
  640. package/schema-builder/table/TableUnique.js +1 -1
  641. package/schema-builder/table/TableUnique.js.map +1 -1
  642. package/subscriber/Broadcaster.d.ts +23 -2
  643. package/subscriber/Broadcaster.js +35 -2
  644. package/subscriber/Broadcaster.js.map +1 -1
  645. package/subscriber/BroadcasterResult.d.ts +4 -0
  646. package/subscriber/BroadcasterResult.js +19 -0
  647. package/subscriber/BroadcasterResult.js.map +1 -1
  648. package/util/DateUtils.js +1 -1
  649. package/util/DateUtils.js.map +1 -1
  650. package/util/DirectoryExportedClassesLoader.js +1 -1
  651. package/util/DirectoryExportedClassesLoader.js.map +1 -1
  652. package/util/ObjectUtils.js +2 -2
  653. package/util/ObjectUtils.js.map +1 -1
  654. package/util/OrmUtils.js +2 -2
  655. package/util/OrmUtils.js.map +1 -1
  656. package/util/StringUtils.js +2 -2
  657. package/util/StringUtils.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/driver/aurora-data-api/AuroraDataApiDriver.ts"],"names":[],"mappings":"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","file":"AuroraDataApiDriver.js","sourcesContent":["import {Driver} from \"../Driver\";\nimport {DriverUtils} from \"../DriverUtils\";\nimport {AuroraDataApiQueryRunner} from \"./AuroraDataApiQueryRunner\";\nimport {ObjectLiteral} from \"../../common/ObjectLiteral\";\nimport {ColumnMetadata} from \"../../metadata/ColumnMetadata\";\nimport {DateUtils} from \"../../util/DateUtils\";\nimport {PlatformTools} from \"../../platform/PlatformTools\";\nimport {Connection} from \"../../connection/Connection\";\nimport {RdbmsSchemaBuilder} from \"../../schema-builder/RdbmsSchemaBuilder\";\nimport {AuroraDataApiConnectionOptions} from \"./AuroraDataApiConnectionOptions\";\nimport {MappedColumnTypes} from \"../types/MappedColumnTypes\";\nimport {ColumnType} from \"../types/ColumnTypes\";\nimport {DataTypeDefaults} from \"../types/DataTypeDefaults\";\nimport {TableColumn} from \"../../schema-builder/table/TableColumn\";\nimport {AuroraDataApiConnectionCredentialsOptions} from \"./AuroraDataApiConnectionCredentialsOptions\";\nimport {EntityMetadata} from \"../../metadata/EntityMetadata\";\nimport {OrmUtils} from \"../../util/OrmUtils\";\nimport {ApplyValueTransformers} from \"../../util/ApplyValueTransformers\";\nimport {ReplicationMode} from \"../types/ReplicationMode\";\nimport { TypeORMError } from \"../../error\";\nimport { Table } from \"../../schema-builder/table/Table\";\nimport { View } from \"../../schema-builder/view/View\";\nimport { TableForeignKey } from \"../../schema-builder/table/TableForeignKey\";\n\n/**\n * Organizes communication with MySQL DBMS.\n */\nexport class AuroraDataApiDriver implements Driver {\n\n // -------------------------------------------------------------------------\n // Public Properties\n // -------------------------------------------------------------------------\n\n connection: Connection;\n /**\n * Aurora Data API underlying library.\n */\n DataApiDriver: any;\n\n client: any;\n\n /**\n * Connection pool.\n * Used in non-replication mode.\n */\n pool: any;\n\n /**\n * Pool cluster used in replication mode.\n */\n poolCluster: any;\n\n // -------------------------------------------------------------------------\n // Public Implemented Properties\n // -------------------------------------------------------------------------\n\n /**\n * Connection options.\n */\n options: AuroraDataApiConnectionOptions;\n\n /**\n * Database name used to perform all write queries.\n */\n database?: string;\n\n /**\n * Schema name used to performn all write queries.\n */\n schema?: 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://www.tutorialspoint.com/mysql/mysql-data-types.htm\n * @see https://dev.mysql.com/doc/refman/8.0/en/data-types.html\n */\n supportedDataTypes: ColumnType[] = [\n // numeric types\n \"bit\",\n \"int\",\n \"integer\", // synonym for int\n \"tinyint\",\n \"smallint\",\n \"mediumint\",\n \"bigint\",\n \"float\",\n \"double\",\n \"double precision\", // synonym for double\n \"real\", // synonym for double\n \"decimal\",\n \"dec\", // synonym for decimal\n \"numeric\", // synonym for decimal\n \"fixed\", // synonym for decimal\n \"bool\", // synonym for tinyint\n \"boolean\", // synonym for tinyint\n // date and time types\n \"date\",\n \"datetime\",\n \"timestamp\",\n \"time\",\n \"year\",\n // string types\n \"char\",\n \"nchar\", // synonym for national char\n \"national char\",\n \"varchar\",\n \"nvarchar\", // synonym for national varchar\n \"national varchar\",\n \"blob\",\n \"text\",\n \"tinyblob\",\n \"tinytext\",\n \"mediumblob\",\n \"mediumtext\",\n \"longblob\",\n \"longtext\",\n \"enum\",\n \"set\",\n \"binary\",\n \"varbinary\",\n // json data type\n \"json\",\n // spatial data types\n \"geometry\",\n \"point\",\n \"linestring\",\n \"polygon\",\n \"multipoint\",\n \"multilinestring\",\n \"multipolygon\",\n \"geometrycollection\"\n ];\n\n /**\n * Gets list of spatial column data types.\n */\n spatialTypes: ColumnType[] = [\n \"geometry\",\n \"point\",\n \"linestring\",\n \"polygon\",\n \"multipoint\",\n \"multilinestring\",\n \"multipolygon\",\n \"geometrycollection\"\n ];\n\n /**\n * Gets list of column data types that support length by a driver.\n */\n withLengthColumnTypes: ColumnType[] = [\n \"char\",\n \"varchar\",\n \"nvarchar\",\n \"binary\",\n \"varbinary\"\n ];\n\n /**\n * Gets list of column data types that support length by a driver.\n */\n withWidthColumnTypes: ColumnType[] = [\n \"bit\",\n \"tinyint\",\n \"smallint\",\n \"mediumint\",\n \"int\",\n \"integer\",\n \"bigint\"\n ];\n\n /**\n * Gets list of column data types that support precision by a driver.\n */\n withPrecisionColumnTypes: ColumnType[] = [\n \"decimal\",\n \"dec\",\n \"numeric\",\n \"fixed\",\n \"float\",\n \"double\",\n \"double precision\",\n \"real\",\n \"time\",\n \"datetime\",\n \"timestamp\"\n ];\n\n /**\n * Gets list of column data types that supports scale by a driver.\n */\n withScaleColumnTypes: ColumnType[] = [\n \"decimal\",\n \"dec\",\n \"numeric\",\n \"fixed\",\n \"float\",\n \"double\",\n \"double precision\",\n \"real\"\n ];\n\n /**\n * Gets list of column data types that supports UNSIGNED and ZEROFILL attributes.\n */\n unsignedAndZerofillTypes: ColumnType[] = [\n \"int\",\n \"integer\",\n \"smallint\",\n \"tinyint\",\n \"mediumint\",\n \"bigint\",\n \"decimal\",\n \"dec\",\n \"numeric\",\n \"fixed\",\n \"float\",\n \"double\",\n \"double precision\",\n \"real\"\n ];\n\n /**\n * ORM has special columns and we need to know what database column types should be for those columns.\n * Column types are driver dependant.\n */\n mappedDataTypes: MappedColumnTypes = {\n createDate: \"datetime\",\n createDatePrecision: 6,\n createDateDefault: \"CURRENT_TIMESTAMP(6)\",\n updateDate: \"datetime\",\n updateDatePrecision: 6,\n updateDateDefault: \"CURRENT_TIMESTAMP(6)\",\n deleteDate: \"datetime\",\n deleteDatePrecision: 6,\n deleteDateNullable: true,\n version: \"int\",\n treeLevel: \"int\",\n migrationId: \"int\",\n migrationName: \"varchar\",\n migrationTimestamp: \"bigint\",\n cacheId: \"int\",\n cacheIdentifier: \"varchar\",\n cacheTime: \"bigint\",\n cacheDuration: \"int\",\n cacheQuery: \"text\",\n cacheResult: \"text\",\n metadataType: \"varchar\",\n metadataDatabase: \"varchar\",\n metadataSchema: \"varchar\",\n metadataTable: \"varchar\",\n metadataName: \"varchar\",\n metadataValue: \"text\",\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 \"varchar\": { length: 255 },\n \"nvarchar\": { length: 255 },\n \"national varchar\": { length: 255 },\n \"char\": { length: 1 },\n \"binary\": { length: 1 },\n \"varbinary\": { length: 255 },\n \"decimal\": { precision: 10, scale: 0 },\n \"dec\": { precision: 10, scale: 0 },\n \"numeric\": { precision: 10, scale: 0 },\n \"fixed\": { precision: 10, scale: 0 },\n \"float\": { precision: 12 },\n \"double\": { precision: 22 },\n \"time\": { precision: 0 },\n \"datetime\": { precision: 0 },\n \"timestamp\": { precision: 0 },\n \"bit\": { width: 1 },\n \"int\": { width: 11 },\n \"integer\": { width: 11 },\n \"tinyint\": { width: 4 },\n \"smallint\": { width: 6 },\n \"mediumint\": { width: 9 },\n \"bigint\": { width: 20 }\n };\n\n\n /**\n * Max length allowed by MySQL for aliases.\n * @see https://dev.mysql.com/doc/refman/5.5/en/identifiers.html\n */\n maxAliasLength = 63;\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(connection: Connection) {\n this.connection = connection;\n this.options = connection.options as AuroraDataApiConnectionOptions;\n\n // load mysql package\n this.loadDependencies();\n\n this.client = new this.DataApiDriver(\n this.options.region,\n this.options.secretArn,\n this.options.resourceArn,\n this.options.database,\n (query: string, parameters?: any[]) => this.connection.logger.logQuery(query, parameters),\n this.options.serviceConfigOptions,\n this.options.formatOptions,\n );\n\n this.database = DriverUtils.buildDriverOptions(this.options).database;\n\n // validate options to make sure everything is set\n // todo: revisit validation with replication in mind\n // if (!(this.options.host || (this.options.extra && this.options.extra.socketPath)) && !this.options.socketPath)\n // throw new DriverOptionNotSetError(\"socketPath and host\");\n // if (!this.options.username)\n // throw new DriverOptionNotSetError(\"username\");\n // if (!this.options.database)\n // throw new DriverOptionNotSetError(\"database\");\n // todo: check what is going on when connection is setup without database and how to connect to a database then?\n // todo: provide options to auto-create a database if it does not exist yet\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Performs connection to the database.\n */\n async connect(): Promise<void> {\n if (!this.database) {\n const queryRunner = await this.createQueryRunner(\"master\");\n\n this.database = await queryRunner.getCurrentDatabase();\n\n await queryRunner.release();\n }\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 }\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 AuroraDataApiQueryRunner(this, new this.DataApiDriver(\n this.options.region,\n this.options.secretArn,\n this.options.resourceArn,\n this.options.database,\n (query: string, parameters?: any[]) => this.connection.logger.logQuery(query, parameters),\n this.options.serviceConfigOptions,\n this.options.formatOptions,\n ));\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 escapedParameters: any[] = Object.keys(nativeParameters).map(key => nativeParameters[key]);\n if (!parameters || !Object.keys(parameters).length)\n return [sql, escapedParameters];\n\n sql = sql.replace(/:(\\.\\.\\.)?([A-Za-z0-9_.]+)/g, (full, isArray: string, key: string): string => {\n if (!parameters.hasOwnProperty(key)) {\n return full;\n }\n\n let value: any = parameters[key];\n\n if (isArray) {\n return value.map((v: any) => {\n escapedParameters.push(v);\n return this.createParameter(key, escapedParameters.length - 1);\n }).join(\", \");\n\n }\n\n if (value instanceof Function) {\n return value();\n\n }\n\n escapedParameters.push(value);\n return this.createParameter(key, escapedParameters.length - 1);\n }); // todo: make replace only in value statements, otherwise problems\n return [sql, escapedParameters];\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 database name, schema name and table name.\n * E.g. myDB.mySchema.myTable\n */\n buildTableName(tableName: string, schema?: string, database?: string): string {\n let tablePath = [ tableName ];\n\n if (database) {\n tablePath.unshift(database);\n }\n\n return tablePath.join('.');\n }\n\n /**\n * Parse a target table name or other types and return a normalized table definition.\n */\n parseTableName(target: EntityMetadata | Table | View | TableForeignKey | string): { database?: string, schema?: string, tableName: string } {\n const driverDatabase = this.database;\n const driverSchema = undefined;\n\n if (target instanceof Table || target instanceof View) {\n const parsed = this.parseTableName(target.name);\n\n return {\n database: target.database || parsed.database || driverDatabase,\n schema: target.schema || parsed.schema || driverSchema,\n tableName: parsed.tableName\n };\n }\n\n if (target instanceof TableForeignKey) {\n const parsed = this.parseTableName(target.referencedTableName);\n\n return {\n database: target.referencedDatabase || parsed.database || driverDatabase,\n schema: target.referencedSchema || parsed.schema || driverSchema,\n tableName: parsed.tableName\n };\n }\n\n if (target instanceof EntityMetadata) {\n // EntityMetadata tableName is never a path\n\n return {\n database: target.database || driverDatabase,\n schema: target.schema || driverSchema,\n tableName: target.tableName\n }\n\n }\n\n const parts = target.split(\".\")\n\n return {\n database: (parts.length > 1 ? parts[0] : undefined) || driverDatabase,\n schema: driverSchema,\n tableName: parts.length > 1 ? parts[1] : parts[0]\n };\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 (!this.options.formatOptions || this.options.formatOptions.castParameters !== false) {\n return this.client.preparePersistentValue(value, columnMetadata)\n }\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 === \"json\") {\n return JSON.stringify(value);\n\n } else if (columnMetadata.type === \"timestamp\" || columnMetadata.type === \"datetime\" || columnMetadata.type === Date) {\n return DateUtils.mixedDateToDate(value);\n\n } else if (columnMetadata.type === \"simple-array\" || columnMetadata.type === \"set\") {\n return DateUtils.simpleArrayToString(value);\n\n } else if (columnMetadata.type === \"simple-json\") {\n return DateUtils.simpleJsonToString(value);\n\n } else if (columnMetadata.type === \"enum\" || columnMetadata.type === \"simple-enum\") {\n return \"\" + value;\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 (!this.options.formatOptions || this.options.formatOptions.castParameters !== false) {\n return this.client.prepareHydratedValue(value, columnMetadata)\n }\n\n if (columnMetadata.type === Boolean || columnMetadata.type === \"bool\" || columnMetadata.type === \"boolean\") {\n value = value ? true : false;\n\n } else if (columnMetadata.type === \"datetime\" || 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 === \"json\") {\n value = typeof value === \"string\" ? JSON.parse(value) : value;\n\n } else if (columnMetadata.type === \"time\") {\n value = DateUtils.mixedTimeToString(value);\n\n } else if (columnMetadata.type === \"simple-array\" || columnMetadata.type === \"set\") {\n value = DateUtils.stringToSimpleArray(value);\n\n } else if (columnMetadata.type === \"simple-json\") {\n value = DateUtils.stringToSimpleJson(value);\n\n } else if ((columnMetadata.type === \"enum\" || columnMetadata.type === \"simple-enum\")\n && columnMetadata.enum\n && !isNaN(value)\n && columnMetadata.enum.indexOf(parseInt(value)) >= 0) {\n // convert to number if that exists in possible enum options\n value = parseInt(value);\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 === \"integer\") {\n return \"int\";\n\n } else if (column.type === String) {\n return \"varchar\";\n\n } else if (column.type === Date) {\n return \"datetime\";\n\n } else if ((column.type as any) === Buffer) {\n return \"blob\";\n\n } else if (column.type === Boolean) {\n return \"tinyint\";\n\n } else if (column.type === \"uuid\") {\n return \"varchar\";\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 \"enum\";\n\n } else if (column.type === \"double precision\" || column.type === \"real\") {\n return \"double\";\n\n } else if (column.type === \"dec\" || column.type === \"numeric\" || column.type === \"fixed\") {\n return \"decimal\";\n\n } else if (column.type === \"bool\" || column.type === \"boolean\") {\n return \"tinyint\";\n\n } else if (column.type === \"nvarchar\" || column.type === \"national varchar\") {\n return \"varchar\";\n\n } else if (column.type === \"nchar\" || column.type === \"national char\") {\n return \"char\";\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 | undefined {\n const defaultValue = columnMetadata.default;\n\n if (defaultValue === null) {\n return undefined\n }\n\n if ((columnMetadata.type === \"enum\" || columnMetadata.type === \"simple-enum\") && defaultValue !== undefined) {\n return `'${defaultValue}'`;\n }\n\n if ((columnMetadata.type === \"set\") && defaultValue !== undefined) {\n return `'${DateUtils.simpleArrayToString(defaultValue)}'`;\n }\n\n if (typeof defaultValue === \"number\") {\n return `${defaultValue}`;\n }\n\n if (typeof defaultValue === \"boolean\") {\n return defaultValue ? \"1\" : \"0\";\n }\n\n if (typeof defaultValue === \"function\") {\n return defaultValue();\n }\n\n if (typeof defaultValue === \"string\") {\n return `'${defaultValue}'`;\n }\n\n if (defaultValue === undefined) {\n return undefined;\n }\n\n return `${defaultValue}`;\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 /**\n * fix https://github.com/typeorm/typeorm/issues/1139\n */\n if (column.generationStrategy === \"uuid\")\n return \"36\";\n\n switch (column.type) {\n case String:\n case \"varchar\":\n case \"nvarchar\":\n case \"national varchar\":\n return \"255\";\n case \"varbinary\":\n return \"255\";\n default:\n return \"\";\n }\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 MySQL requires column length for `varchar`, `nvarchar` and `varbinary` data types\n if (this.getColumnLength(column)) {\n type += `(${this.getColumnLength(column)})`;\n\n } else if (column.width) {\n type += `(${column.width})`;\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 new Promise<any>((ok, fail) => {\n if (this.poolCluster) {\n this.poolCluster.getConnection(\"MASTER\", (err: any, dbConnection: any) => {\n err ? fail(err) : ok(this.prepareDbConnection(dbConnection));\n });\n\n } else if (this.pool) {\n this.pool.getConnection((err: any, dbConnection: any) => {\n err ? fail(err) : ok(this.prepareDbConnection(dbConnection));\n });\n } else {\n fail(new TypeORMError(`Connection is not established with mysql database`));\n }\n });\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 if (!this.poolCluster)\n return this.obtainMasterConnection();\n\n return new Promise<any>((ok, fail) => {\n this.poolCluster.getConnection(\"SLAVE*\", (err: any, dbConnection: any) => {\n err ? fail(err) : ok(this.prepareDbConnection(dbConnection));\n });\n });\n }\n\n /**\n * Creates generated map of values generated or returned by database after INSERT query.\n */\n createGeneratedMap(metadata: EntityMetadata, insertResult: any, entityIndex: number) {\n const generatedMap = metadata.generatedColumns.reduce((map, generatedColumn) => {\n let value: any;\n if (generatedColumn.generationStrategy === \"increment\" && insertResult.insertId) {\n // NOTE: When multiple rows is inserted by a single INSERT statement,\n // `insertId` is the value generated for the first inserted row only.\n value = insertResult.insertId + entityIndex;\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(\"zerofill:\", tableColumn.zerofill, columnMetadata.zerofill);\n // console.log(\"unsigned:\", tableColumn.unsigned, columnMetadata.unsigned);\n // console.log(\"asExpression:\", tableColumn.asExpression, columnMetadata.asExpression);\n // console.log(\"generatedType:\", tableColumn.generatedType, columnMetadata.generatedType);\n // console.log(\"comment:\", tableColumn.comment, this.escapeComment(columnMetadata.comment));\n // console.log(\"default:\", tableColumn.default, columnMetadata.default);\n // console.log(\"enum:\", tableColumn.enum, columnMetadata.enum);\n // console.log(\"default changed:\", !this.compareDefaultValues(this.normalizeDefault(columnMetadata), tableColumn.default));\n // console.log(\"onUpdate:\", tableColumn.onUpdate, columnMetadata.onUpdate);\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 let columnMetadataLength = columnMetadata.length;\n if (!columnMetadataLength && columnMetadata.generationStrategy === \"uuid\") { // fixing #3374\n columnMetadataLength = this.getColumnLength(columnMetadata);\n }\n\n return tableColumn.name !== columnMetadata.databaseName\n || tableColumn.type !== this.normalizeType(columnMetadata)\n || tableColumn.length !== columnMetadataLength\n || tableColumn.width !== columnMetadata.width\n || tableColumn.precision !== columnMetadata.precision\n || tableColumn.scale !== columnMetadata.scale\n || tableColumn.zerofill !== columnMetadata.zerofill\n || tableColumn.unsigned !== columnMetadata.unsigned\n || tableColumn.asExpression !== columnMetadata.asExpression\n || tableColumn.generatedType !== columnMetadata.generatedType\n || tableColumn.comment !== this.escapeComment(columnMetadata.comment)\n || !this.compareDefaultValues(this.normalizeDefault(columnMetadata), tableColumn.default)\n || (tableColumn.enum && columnMetadata.enum && !OrmUtils.isArraysEqual(tableColumn.enum, columnMetadata.enum.map(val => val + \"\")))\n || tableColumn.onUpdate !== columnMetadata.onUpdate\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 * Loads all driver dependencies.\n */\n protected loadDependencies(): void {\n this.DataApiDriver = PlatformTools.load(\"typeorm-aurora-data-api-driver\");\n\n // Driver uses rollup for publishing, which has issues when using typeorm in combination with webpack\n // See https://github.com/webpack/webpack/issues/4742#issuecomment-295556787\n this.DataApiDriver = this.DataApiDriver.default || this.DataApiDriver;\n }\n\n /**\n * Creates a new connection pool for a given database credentials.\n */\n protected createConnectionOptions(options: AuroraDataApiConnectionOptions, credentials: AuroraDataApiConnectionCredentialsOptions): Promise<any> {\n\n credentials = Object.assign({}, credentials, DriverUtils.buildDriverOptions(credentials)); // todo: do it better way\n\n // build connection options for the driver\n return Object.assign({}, {\n resourceArn: options.resourceArn,\n secretArn: options.secretArn,\n database: options.database,\n region: options.region,\n type: options.type,\n }, {\n host: credentials.host,\n user: credentials.username,\n password: credentials.password,\n database: credentials.database,\n port: credentials.port,\n ssl: options.ssl\n },\n\n options.extra || {});\n }\n\n /**\n * Creates a new connection pool for a given database credentials.\n */\n protected async createPool(connectionOptions: any): Promise<any> {\n return {};\n }\n\n /**\n * Attaches all required base handlers to a database connection, such as the unhandled error handler.\n */\n private prepareDbConnection(connection: any): any {\n const { logger } = this.connection;\n /*\n Attaching an error handler to connection errors is essential, as, otherwise, errors raised will go unhandled and\n cause the hosting app to crash.\n */\n if (connection.listeners(\"error\").length === 0) {\n connection.on(\"error\", (error: any) => logger.log(\"warn\", `MySQL connection raised an error. ${error}`));\n }\n return connection;\n }\n\n /**\n * Checks if \"DEFAULT\" values in the column metadata and in the database are equal.\n */\n protected compareDefaultValues(columnMetadataValue: string | undefined, databaseValue: string | undefined): boolean {\n if (typeof columnMetadataValue === \"string\" && typeof databaseValue === \"string\") {\n // we need to cut out \"'\" because in mysql we can understand returned value is a string or a function\n // as result compare cannot understand if default is really changed or not\n columnMetadataValue = columnMetadataValue.replace(/^'+|'+$/g, \"\");\n databaseValue = databaseValue.replace(/^'+|'+$/g, \"\");\n }\n\n return columnMetadataValue === databaseValue;\n }\n\n /**\n * Escapes a given comment.\n */\n protected escapeComment(comment?: string) {\n if (!comment) return comment;\n\n comment = comment.replace(/\\u0000/g, \"\"); // Null bytes aren't allowed in comments\n\n return comment;\n }\n\n}\n"],"sourceRoot":"../.."}
1
+ {"version":3,"sources":["../../src/driver/aurora-data-api/AuroraDataApiDriver.ts"],"names":[],"mappings":";;;;AACA,8CAA2C;AAC3C,uEAAoE;AAGpE,kDAA+C;AAC/C,8DAA2D;AAE3D,8EAA2E;AAO3E,gEAA6D;AAC7D,gDAA6C;AAC7C,4EAAyE;AAEzE,qCAA2C;AAC3C,0DAAyD;AACzD,uDAAsD;AACtD,8EAA6E;AAE7E;;GAEG;AACH;IAmRI,4EAA4E;IAC5E,cAAc;IACd,4EAA4E;IAE5E,6BAAY,UAAsB;QAAlC,iBA6BC;QAxQD;;WAEG;QACH,iBAAY,GAAY,KAAK,CAAC;QAE9B;;WAEG;QACH,gBAAW,GAAG,IAAI,CAAC;QAEnB;;;;;WAKG;QACH,uBAAkB,GAAiB;YAC/B,gBAAgB;YAChB,KAAK;YACL,KAAK;YACL,SAAS;YACT,SAAS;YACT,UAAU;YACV,WAAW;YACX,QAAQ;YACR,OAAO;YACP,QAAQ;YACR,kBAAkB;YAClB,MAAM;YACN,SAAS;YACT,KAAK;YACL,SAAS;YACT,OAAO;YACP,MAAM;YACN,SAAS;YACT,sBAAsB;YACtB,MAAM;YACN,UAAU;YACV,WAAW;YACX,MAAM;YACN,MAAM;YACN,eAAe;YACf,MAAM;YACN,OAAO;YACP,eAAe;YACf,SAAS;YACT,UAAU;YACV,kBAAkB;YAClB,MAAM;YACN,MAAM;YACN,UAAU;YACV,UAAU;YACV,YAAY;YACZ,YAAY;YACZ,UAAU;YACV,UAAU;YACV,MAAM;YACN,KAAK;YACL,QAAQ;YACR,WAAW;YACX,iBAAiB;YACjB,MAAM;YACN,qBAAqB;YACrB,UAAU;YACV,OAAO;YACP,YAAY;YACZ,SAAS;YACT,YAAY;YACZ,iBAAiB;YACjB,cAAc;YACd,oBAAoB;SACvB,CAAC;QAEF;;WAEG;QACH,iBAAY,GAAiB;YACzB,UAAU;YACV,OAAO;YACP,YAAY;YACZ,SAAS;YACT,YAAY;YACZ,iBAAiB;YACjB,cAAc;YACd,oBAAoB;SACvB,CAAC;QAEF;;WAEG;QACH,0BAAqB,GAAiB;YAClC,MAAM;YACN,SAAS;YACT,UAAU;YACV,QAAQ;YACR,WAAW;SACd,CAAC;QAEF;;WAEG;QACH,yBAAoB,GAAiB;YACjC,KAAK;YACL,SAAS;YACT,UAAU;YACV,WAAW;YACX,KAAK;YACL,SAAS;YACT,QAAQ;SACX,CAAC;QAEF;;WAEG;QACH,6BAAwB,GAAiB;YACrC,SAAS;YACT,KAAK;YACL,SAAS;YACT,OAAO;YACP,OAAO;YACP,QAAQ;YACR,kBAAkB;YAClB,MAAM;YACN,MAAM;YACN,UAAU;YACV,WAAW;SACd,CAAC;QAEF;;WAEG;QACH,yBAAoB,GAAiB;YACjC,SAAS;YACT,KAAK;YACL,SAAS;YACT,OAAO;YACP,OAAO;YACP,QAAQ;YACR,kBAAkB;YAClB,MAAM;SACT,CAAC;QAEF;;WAEG;QACH,6BAAwB,GAAiB;YACrC,KAAK;YACL,SAAS;YACT,UAAU;YACV,SAAS;YACT,WAAW;YACX,QAAQ;YACR,SAAS;YACT,KAAK;YACL,SAAS;YACT,OAAO;YACP,OAAO;YACP,QAAQ;YACR,kBAAkB;YAClB,MAAM;SACT,CAAC;QAEF;;;WAGG;QACH,oBAAe,GAAsB;YACjC,UAAU,EAAE,UAAU;YACtB,mBAAmB,EAAE,CAAC;YACtB,iBAAiB,EAAE,sBAAsB;YACzC,UAAU,EAAE,UAAU;YACtB,mBAAmB,EAAE,CAAC;YACtB,iBAAiB,EAAE,sBAAsB;YACzC,UAAU,EAAE,UAAU;YACtB,mBAAmB,EAAE,CAAC;YACtB,kBAAkB,EAAE,IAAI;YACxB,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,KAAK;YAChB,WAAW,EAAE,KAAK;YAClB,aAAa,EAAE,SAAS;YACxB,kBAAkB,EAAE,QAAQ;YAC5B,OAAO,EAAE,KAAK;YACd,eAAe,EAAE,SAAS;YAC1B,SAAS,EAAE,QAAQ;YACnB,aAAa,EAAE,KAAK;YACpB,UAAU,EAAE,MAAM;YAClB,WAAW,EAAE,MAAM;YACnB,YAAY,EAAE,SAAS;YACvB,gBAAgB,EAAE,SAAS;YAC3B,cAAc,EAAE,SAAS;YACzB,aAAa,EAAE,SAAS;YACxB,YAAY,EAAE,SAAS;YACvB,aAAa,EAAE,MAAM;SACxB,CAAC;QAEF;;;WAGG;QACH,qBAAgB,GAAqB;YACjC,SAAS,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE;YAC1B,UAAU,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE;YAC3B,kBAAkB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE;YACnC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE;YACrB,QAAQ,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE;YACvB,WAAW,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE;YAC5B,SAAS,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;YACtC,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;YAClC,SAAS,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;YACtC,OAAO,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;YACpC,OAAO,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;YAC1B,QAAQ,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;YAC3B,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE;YACxB,UAAU,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE;YAC5B,WAAW,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE;YAC7B,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;YACnB,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;YACpB,SAAS,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;YACxB,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;YACvB,UAAU,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;YACxB,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;YACzB,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;SAC1B,CAAC;QAGF;;;WAGG;QACH,mBAAc,GAAG,EAAE,CAAC;QAOhB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,OAAyC,CAAC;QAEpE,qBAAqB;QACrB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExB,IAAI,CAAC,MAAM,GAAG,IAAI,IAAI,CAAC,aAAa,CAChC,IAAI,CAAC,OAAO,CAAC,MAAM,EACnB,IAAI,CAAC,OAAO,CAAC,SAAS,EACtB,IAAI,CAAC,OAAO,CAAC,WAAW,EACxB,IAAI,CAAC,OAAO,CAAC,QAAQ,EACrB,UAAC,KAAa,EAAE,UAAkB,IAAK,OAAA,KAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,EAAlD,CAAkD,EACzF,IAAI,CAAC,OAAO,CAAC,oBAAoB,EACjC,IAAI,CAAC,OAAO,CAAC,aAAa,CAC7B,CAAC;QAEF,IAAI,CAAC,QAAQ,GAAG,yBAAW,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC;QAEtE,kDAAkD;QAClD,oDAAoD;QACpD,iHAAiH;QACjH,gEAAgE;QAChE,8BAA8B;QAC9B,qDAAqD;QACrD,8BAA8B;QAC9B,qDAAqD;QACrD,gHAAgH;QAChH,2EAA2E;IAC/E,CAAC;IAED,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAE5E;;OAEG;IACG,qCAAO,GAAb;;;;;;6BACQ,CAAC,IAAI,CAAC,QAAQ,EAAd,wBAAc;wBACM,qBAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAA;;wBAApD,WAAW,GAAG,SAAsC;wBAE1D,KAAA,IAAI,CAAA;wBAAY,qBAAM,WAAW,CAAC,kBAAkB,EAAE,EAAA;;wBAAtD,GAAK,QAAQ,GAAG,SAAsC,CAAC;wBAEvD,qBAAM,WAAW,CAAC,OAAO,EAAE,EAAA;;wBAA3B,SAA2B,CAAC;;;;;;KAEnC;IAED;;OAEG;IACH,0CAAY,GAAZ;QACI,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACG,wCAAU,GAAhB;;;;;;KACC;IAED;;OAEG;IACH,iDAAmB,GAAnB;QACI,OAAO,IAAI,uCAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,+CAAiB,GAAjB,UAAkB,IAAqB;QAAvC,iBAUC;QATG,OAAO,IAAI,mDAAwB,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,aAAa,CAC5D,IAAI,CAAC,OAAO,CAAC,MAAM,EACnB,IAAI,CAAC,OAAO,CAAC,SAAS,EACtB,IAAI,CAAC,OAAO,CAAC,WAAW,EACxB,IAAI,CAAC,OAAO,CAAC,QAAQ,EACrB,UAAC,KAAa,EAAE,UAAkB,IAAK,OAAA,KAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,EAAlD,CAAkD,EACzF,IAAI,CAAC,OAAO,CAAC,oBAAoB,EACjC,IAAI,CAAC,OAAO,CAAC,aAAa,CAC7B,CAAC,CAAC;IACP,CAAC;IAED;;;OAGG;IACH,uDAAyB,GAAzB,UAA0B,GAAW,EAAE,UAAyB,EAAE,gBAA+B;QAAjG,iBA6BC;QA5BG,IAAM,iBAAiB,GAAU,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,UAAA,GAAG,IAAI,OAAA,gBAAgB,CAAC,GAAG,CAAC,EAArB,CAAqB,CAAC,CAAC;QACjG,IAAI,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM;YAC9C,OAAO,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;QAEpC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,6BAA6B,EAAE,UAAC,IAAI,EAAE,OAAe,EAAE,GAAW;YAChF,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;gBACjC,OAAO,IAAI,CAAC;aACf;YAED,IAAI,KAAK,GAAQ,UAAU,CAAC,GAAG,CAAC,CAAC;YAEjC,IAAI,OAAO,EAAE;gBACT,OAAO,KAAK,CAAC,GAAG,CAAC,UAAC,CAAM;oBACpB,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAC1B,OAAO,KAAI,CAAC,eAAe,CAAC,GAAG,EAAE,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACnE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAEjB;YAED,IAAI,KAAK,YAAY,QAAQ,EAAE;gBAC3B,OAAO,KAAK,EAAE,CAAC;aAElB;YAED,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9B,OAAO,KAAI,CAAC,eAAe,CAAC,GAAG,EAAE,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC,CAAC,kEAAkE;QACtE,OAAO,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,oCAAM,GAAN,UAAO,UAAkB;QACrB,OAAO,GAAG,GAAG,UAAU,GAAG,GAAG,CAAC;IAClC,CAAC;IAED;;;OAGG;IACH,4CAAc,GAAd,UAAe,SAAiB,EAAE,MAAe,EAAE,QAAiB;QAChE,IAAI,SAAS,GAAG,CAAE,SAAS,CAAE,CAAC;QAE9B,IAAI,QAAQ,EAAE;YACV,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;SAC/B;QAED,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,4CAAc,GAAd,UAAe,MAAgE;QAC3E,IAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC;QACrC,IAAM,YAAY,GAAG,SAAS,CAAC;QAE/B,IAAI,MAAM,YAAY,aAAK,IAAI,MAAM,YAAY,WAAI,EAAE;YACnD,IAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAEhD,OAAO;gBACH,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,IAAI,cAAc;gBAC9D,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,IAAI,YAAY;gBACtD,SAAS,EAAE,MAAM,CAAC,SAAS;aAC9B,CAAC;SACL;QAED,IAAI,MAAM,YAAY,iCAAe,EAAE;YACnC,IAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;YAE/D,OAAO;gBACH,QAAQ,EAAE,MAAM,CAAC,kBAAkB,IAAI,MAAM,CAAC,QAAQ,IAAI,cAAc;gBACxE,MAAM,EAAE,MAAM,CAAC,gBAAgB,IAAI,MAAM,CAAC,MAAM,IAAI,YAAY;gBAChE,SAAS,EAAE,MAAM,CAAC,SAAS;aAC9B,CAAC;SACL;QAED,IAAI,MAAM,YAAY,+BAAc,EAAE;YAClC,2CAA2C;YAE3C,OAAO;gBACH,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,cAAc;gBAC3C,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,YAAY;gBACrC,SAAS,EAAE,MAAM,CAAC,SAAS;aAC9B,CAAC;SAEL;QAED,IAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEhC,OAAO;YACH,QAAQ,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,cAAc;YACrE,MAAM,EAAE,YAAY;YACpB,SAAS,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;SACpD,CAAC;IACN,CAAC;IAED;;OAEG;IACH,oDAAsB,GAAtB,UAAuB,KAAU,EAAE,cAA8B;QAC7D,IAAI,cAAc,CAAC,WAAW;YAC1B,KAAK,GAAG,+CAAsB,CAAC,WAAW,CAAC,cAAc,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAElF,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,cAAc,KAAK,KAAK,EAAE;YACpF,OAAO,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;SACpE;QAED,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;YACrC,OAAO,KAAK,CAAC;QAEjB,IAAI,cAAc,CAAC,IAAI,KAAK,OAAO,EAAE;YACjC,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAEjC;aAAM,IAAI,cAAc,CAAC,IAAI,KAAK,MAAM,EAAE;YACvC,OAAO,qBAAS,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;SAEjD;aAAM,IAAI,cAAc,CAAC,IAAI,KAAK,MAAM,EAAE;YACvC,OAAO,qBAAS,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;SAEjD;aAAM,IAAI,cAAc,CAAC,IAAI,KAAK,MAAM,EAAE;YACvC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SAEhC;aAAM,IAAI,cAAc,CAAC,IAAI,KAAK,WAAW,IAAI,cAAc,CAAC,IAAI,KAAK,UAAU,IAAI,cAAc,CAAC,IAAI,KAAK,IAAI,EAAE;YAClH,OAAO,qBAAS,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;SAE3C;aAAM,IAAI,cAAc,CAAC,IAAI,KAAK,cAAc,IAAI,cAAc,CAAC,IAAI,KAAK,KAAK,EAAE;YAChF,OAAO,qBAAS,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;SAE/C;aAAM,IAAI,cAAc,CAAC,IAAI,KAAK,aAAa,EAAE;YAC9C,OAAO,qBAAS,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;SAE9C;aAAM,IAAI,cAAc,CAAC,IAAI,KAAK,MAAM,IAAI,cAAc,CAAC,IAAI,KAAK,aAAa,EAAE;YAChF,OAAO,EAAE,GAAG,KAAK,CAAC;SACrB;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,kDAAoB,GAApB,UAAqB,KAAU,EAAE,cAA8B;QAC3D,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;YACrC,OAAO,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,+CAAsB,CAAC,aAAa,CAAC,cAAc,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAExH,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,cAAc,KAAK,KAAK,EAAE;YACpF,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;SAClE;QAED,IAAI,cAAc,CAAC,IAAI,KAAK,OAAO,IAAI,cAAc,CAAC,IAAI,KAAK,MAAM,IAAI,cAAc,CAAC,IAAI,KAAK,SAAS,EAAE;YACxG,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;SAEhC;aAAM,IAAI,cAAc,CAAC,IAAI,KAAK,UAAU,IAAI,cAAc,CAAC,IAAI,KAAK,IAAI,EAAE;YAC3E,KAAK,GAAG,qBAAS,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;SAElD;aAAM,IAAI,cAAc,CAAC,IAAI,KAAK,MAAM,EAAE;YACvC,KAAK,GAAG,qBAAS,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;SAElD;aAAM,IAAI,cAAc,CAAC,IAAI,KAAK,MAAM,EAAE;YACvC,KAAK,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;SAEjE;aAAM,IAAI,cAAc,CAAC,IAAI,KAAK,MAAM,EAAE;YACvC,KAAK,GAAG,qBAAS,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;SAE9C;aAAM,IAAI,cAAc,CAAC,IAAI,KAAK,cAAc,IAAI,cAAc,CAAC,IAAI,KAAK,KAAK,EAAE;YAChF,KAAK,GAAG,qBAAS,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;SAEhD;aAAM,IAAI,cAAc,CAAC,IAAI,KAAK,aAAa,EAAE;YAC9C,KAAK,GAAG,qBAAS,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;SAE/C;aAAM,IAAI,CAAC,cAAc,CAAC,IAAI,KAAK,MAAM,IAAI,cAAc,CAAC,IAAI,KAAK,aAAa,CAAC;eAC7E,cAAc,CAAC,IAAI;eACnB,CAAC,KAAK,CAAC,KAAK,CAAC;eACb,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE;YACtD,4DAA4D;YAC5D,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;SAC3B;QAED,IAAI,cAAc,CAAC,WAAW;YAC1B,KAAK,GAAG,+CAAsB,CAAC,aAAa,CAAC,cAAc,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAEpF,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,2CAAa,GAAb,UAAc,MAA6F;QACvG,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE;YACrD,OAAO,KAAK,CAAC;SAEhB;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE;YAC/B,OAAO,SAAS,CAAC;SAEpB;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE;YAC7B,OAAO,UAAU,CAAC;SAErB;aAAM,IAAK,MAAM,CAAC,IAAY,KAAK,MAAM,EAAE;YACxC,OAAO,MAAM,CAAC;SAEjB;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE;YAChC,OAAO,SAAS,CAAC;SAEpB;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE;YAC/B,OAAO,SAAS,CAAC;SAEpB;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;YACxE,OAAO,MAAM,CAAC;SAEjB;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;YACtC,OAAO,MAAM,CAAC;SAEjB;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,kBAAkB,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE;YACrE,OAAO,QAAQ,CAAC;SAEnB;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE;YACtF,OAAO,SAAS,CAAC;SAEpB;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE;YAC5D,OAAO,SAAS,CAAC;SAEpB;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,IAAI,MAAM,CAAC,IAAI,KAAK,kBAAkB,EAAE;YACzE,OAAO,SAAS,CAAC;SAEpB;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,MAAM,CAAC,IAAI,KAAK,eAAe,EAAE;YACnE,OAAO,MAAM,CAAC;SAEjB;aAAM;YACH,OAAO,MAAM,CAAC,IAAc,IAAI,EAAE,CAAC;SACtC;IACL,CAAC;IAED;;OAEG;IACH,8CAAgB,GAAhB,UAAiB,cAA8B;QAC3C,IAAM,YAAY,GAAG,cAAc,CAAC,OAAO,CAAC;QAE5C,IAAI,YAAY,KAAK,IAAI,EAAE;YACvB,OAAO,SAAS,CAAC;SACpB;QAED,IAAI,CAAC,cAAc,CAAC,IAAI,KAAK,MAAM,IAAI,cAAc,CAAC,IAAI,KAAK,aAAa,CAAC,IAAI,YAAY,KAAK,SAAS,EAAE;YACzG,OAAO,MAAI,YAAY,MAAG,CAAC;SAC9B;QAED,IAAI,CAAC,cAAc,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,YAAY,KAAK,SAAS,EAAE;YAC/D,OAAO,MAAI,qBAAS,CAAC,mBAAmB,CAAC,YAAY,CAAC,MAAG,CAAC;SAC7D;QAED,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE;YAClC,OAAO,KAAG,YAAc,CAAC;SAC5B;QAED,IAAI,OAAO,YAAY,KAAK,SAAS,EAAE;YACnC,OAAO,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;SACnC;QAED,IAAI,OAAO,YAAY,KAAK,UAAU,EAAE;YACpC,OAAO,YAAY,EAAE,CAAC;SACzB;QAED,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE;YAClC,OAAO,MAAI,YAAY,MAAG,CAAC;SAC9B;QAED,IAAI,YAAY,KAAK,SAAS,EAAE;YAC5B,OAAO,SAAS,CAAC;SACpB;QAED,OAAO,KAAG,YAAc,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,+CAAiB,GAAjB,UAAkB,MAAsB;QACpC,OAAO,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM,EAArE,CAAqE,CAAC,CAAC;IAC5H,CAAC;IAED;;OAEG;IACH,6CAAe,GAAf,UAAgB,MAAkC;QAC9C,IAAI,MAAM,CAAC,MAAM;YACb,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QAEpC;;WAEG;QACH,IAAI,MAAM,CAAC,kBAAkB,KAAK,MAAM;YACpC,OAAO,IAAI,CAAC;QAEhB,QAAQ,MAAM,CAAC,IAAI,EAAE;YACjB,KAAK,MAAM,CAAC;YACZ,KAAK,SAAS,CAAC;YACf,KAAK,UAAU,CAAC;YAChB,KAAK,kBAAkB;gBACnB,OAAO,KAAK,CAAC;YACjB,KAAK,WAAW;gBACZ,OAAO,KAAK,CAAC;YACjB;gBACI,OAAO,EAAE,CAAC;SACjB;IACL,CAAC;IAED;;OAEG;IACH,4CAAc,GAAd,UAAe,MAAmB;QAC9B,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QAEvB,6HAA6H;QAC7H,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE;YAC9B,IAAI,IAAI,MAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,MAAG,CAAC;SAE/C;aAAM,IAAI,MAAM,CAAC,KAAK,EAAE;YACrB,IAAI,IAAI,MAAI,MAAM,CAAC,KAAK,MAAG,CAAC;SAE/B;aAAM,IAAI,MAAM,CAAC,SAAS,KAAK,IAAI,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE;YAC3H,IAAI,IAAI,MAAI,MAAM,CAAC,SAAS,SAAI,MAAM,CAAC,KAAK,MAAG,CAAC;SAEnD;aAAM,IAAI,MAAM,CAAC,SAAS,KAAK,IAAI,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE;YACpE,IAAI,IAAI,MAAI,MAAM,CAAC,SAAS,MAAG,CAAC;SACnC;QAED,IAAI,MAAM,CAAC,OAAO;YACd,IAAI,IAAI,QAAQ,CAAC;QAErB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACH,oDAAsB,GAAtB;QAAA,iBAeC;QAdG,OAAO,IAAI,OAAO,CAAM,UAAC,EAAE,EAAE,IAAI;YAC7B,IAAI,KAAI,CAAC,WAAW,EAAE;gBAClB,KAAI,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,EAAE,UAAC,GAAQ,EAAE,YAAiB;oBACjE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC;gBACjE,CAAC,CAAC,CAAC;aAEN;iBAAM,IAAI,KAAI,CAAC,IAAI,EAAE;gBAClB,KAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAC,GAAQ,EAAE,YAAiB;oBAChD,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC;gBACjE,CAAC,CAAC,CAAC;aACN;iBAAM;gBACH,IAAI,CAAC,IAAI,oBAAY,CAAC,mDAAmD,CAAC,CAAC,CAAC;aAC/E;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;OAIG;IACH,mDAAqB,GAArB;QAAA,iBASC;QARG,IAAI,CAAC,IAAI,CAAC,WAAW;YACjB,OAAO,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAEzC,OAAO,IAAI,OAAO,CAAM,UAAC,EAAE,EAAE,IAAI;YAC7B,KAAI,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,EAAE,UAAC,GAAQ,EAAE,YAAiB;gBACjE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC;YACjE,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACH,gDAAkB,GAAlB,UAAmB,QAAwB,EAAE,YAAiB,EAAE,WAAmB;QAC/E,IAAM,YAAY,GAAG,QAAQ,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAC,GAAG,EAAE,eAAe;YACvE,IAAI,KAAU,CAAC;YACf,IAAI,eAAe,CAAC,kBAAkB,KAAK,WAAW,IAAI,YAAY,CAAC,QAAQ,EAAE;gBAC7E,qEAAqE;gBACrE,qEAAqE;gBACrE,KAAK,GAAG,YAAY,CAAC,QAAQ,GAAG,WAAW,CAAC;gBAChD,8DAA8D;gBAC9D,sEAAsE;gBACtE,uDAAuD;aACtD;YAED,OAAO,mBAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,eAAe,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1E,CAAC,EAAE,EAAmB,CAAC,CAAC;QAExB,OAAO,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3E,CAAC;IAED;;;OAGG;IACH,gDAAkB,GAAlB,UAAmB,YAA2B,EAAE,eAAiC;QAAjF,iBAqDC;QApDG,OAAO,eAAe,CAAC,MAAM,CAAC,UAAA,cAAc;YACxC,IAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,YAAY,EAAtC,CAAsC,CAAC,CAAC;YACnF,IAAI,CAAC,WAAW;gBACZ,OAAO,KAAK,CAAC,CAAC,4DAA4D;YAE9E,kEAAkE;YAClE,uEAAuE;YACvE,8EAA8E;YAC9E,qEAAqE;YACrE,kEAAkE;YAClE,8EAA8E;YAC9E,kEAAkE;YAClE,2EAA2E;YAC3E,2EAA2E;YAC3E,uFAAuF;YACvF,0FAA0F;YAC1F,4FAA4F;YAC5F,wEAAwE;YACxE,+DAA+D;YAC/D,2HAA2H;YAC3H,2EAA2E;YAC3E,8EAA8E;YAC9E,iFAAiF;YACjF,0FAA0F;YAC1F,oFAAoF;YACpF,yHAAyH;YACzH,6DAA6D;YAE7D,IAAI,oBAAoB,GAAG,cAAc,CAAC,MAAM,CAAC;YACjD,IAAI,CAAC,oBAAoB,IAAI,cAAc,CAAC,kBAAkB,KAAK,MAAM,EAAE,EAAE,eAAe;gBACxF,oBAAoB,GAAG,KAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;aAC/D;YAED,OAAO,WAAW,CAAC,IAAI,KAAK,cAAc,CAAC,YAAY;mBAChD,WAAW,CAAC,IAAI,KAAK,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC;mBACvD,WAAW,CAAC,MAAM,KAAK,oBAAoB;mBAC3C,WAAW,CAAC,KAAK,KAAK,cAAc,CAAC,KAAK;mBAC1C,WAAW,CAAC,SAAS,KAAK,cAAc,CAAC,SAAS;mBAClD,WAAW,CAAC,KAAK,KAAK,cAAc,CAAC,KAAK;mBAC1C,WAAW,CAAC,QAAQ,KAAK,cAAc,CAAC,QAAQ;mBAChD,WAAW,CAAC,QAAQ,KAAK,cAAc,CAAC,QAAQ;mBAChD,WAAW,CAAC,YAAY,KAAK,cAAc,CAAC,YAAY;mBACxD,WAAW,CAAC,aAAa,KAAK,cAAc,CAAC,aAAa;mBAC1D,WAAW,CAAC,OAAO,KAAK,KAAI,CAAC,aAAa,CAAC,cAAc,CAAC,OAAO,CAAC;mBAClE,CAAC,KAAI,CAAC,oBAAoB,CAAC,KAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC;mBACtF,CAAC,WAAW,CAAC,IAAI,IAAI,cAAc,CAAC,IAAI,IAAI,CAAC,mBAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,UAAA,GAAG,IAAI,OAAA,GAAG,GAAG,EAAE,EAAR,CAAQ,CAAC,CAAC,CAAC;mBAChI,WAAW,CAAC,QAAQ,KAAK,cAAc,CAAC,QAAQ;mBAChD,WAAW,CAAC,SAAS,KAAK,cAAc,CAAC,SAAS;mBAClD,WAAW,CAAC,UAAU,KAAK,cAAc,CAAC,UAAU;mBACpD,WAAW,CAAC,QAAQ,KAAK,KAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC;mBAC/D,CAAC,cAAc,CAAC,kBAAkB,KAAK,MAAM,IAAI,WAAW,CAAC,WAAW,KAAK,cAAc,CAAC,WAAW,CAAC,CAAC;QACpH,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACH,qDAAuB,GAAvB;QACI,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,uDAAyB,GAAzB;QACI,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,2DAA6B,GAA7B;QACI,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,6CAAe,GAAf,UAAgB,aAAqB,EAAE,KAAa;QAChD,OAAO,GAAG,CAAC;IACf,CAAC;IAED,4EAA4E;IAC5E,oBAAoB;IACpB,4EAA4E;IAE5E;;OAEG;IACO,8CAAgB,GAA1B;QACI,IAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,6BAAa,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAClG,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QAEnC,qGAAqG;QACrG,4EAA4E;QAC5E,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC;IAC1E,CAAC;IAED;;OAEG;IACO,qDAAuB,GAAjC,UAAkC,OAAuC,EAAE,WAAsD;QAE7H,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,WAAW,EAAE,yBAAW,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,yBAAyB;QAEpH,0CAA0C;QAC1C,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE;YACrB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,IAAI,EAAE,OAAO,CAAC,IAAI;SACrB,EAAE;YACC,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,IAAI,EAAE,WAAW,CAAC,QAAQ;YAC1B,QAAQ,EAAE,WAAW,CAAC,QAAQ;YAC9B,QAAQ,EAAE,WAAW,CAAC,QAAQ;YAC9B,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,GAAG,EAAE,OAAO,CAAC,GAAG;SACnB,EAED,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IACzB,CAAC;IAED;;OAEG;IACa,wCAAU,GAA1B,UAA2B,iBAAsB;;;gBAC7C,sBAAO,EAAE,EAAC;;;KACb;IAED;;OAEG;IACK,iDAAmB,GAA3B,UAA4B,UAAe;QAC/B,IAAA,MAAM,GAAK,IAAI,CAAC,UAAU,OAApB,CAAqB;QACnC;;;WAGG;QACH,IAAI,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5C,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,UAAC,KAAU,IAAK,OAAA,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,uCAAqC,KAAO,CAAC,EAAhE,CAAgE,CAAC,CAAC;SAC5G;QACD,OAAO,UAAU,CAAC;IACtB,CAAC;IAED;;OAEG;IACO,kDAAoB,GAA9B,UAA+B,mBAAuC,EAAE,aAAiC;QACrG,IAAI,OAAO,mBAAmB,KAAK,QAAQ,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE;YAC9E,qGAAqG;YACrG,0EAA0E;YAC1E,mBAAmB,GAAG,mBAAmB,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YAClE,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;SACzD;QAED,OAAO,mBAAmB,KAAK,aAAa,CAAC;IACjD,CAAC;IAED;;OAEG;IACO,2CAAa,GAAvB,UAAwB,OAAgB;QACpC,IAAI,CAAC,OAAO;YAAG,OAAO,OAAO,CAAC;QAE9B,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,wCAAwC;QAElF,OAAO,OAAO,CAAC;IACnB,CAAC;IAEL,0BAAC;AAAD,CAx6BA,AAw6BC,IAAA;AAx6BY,kDAAmB","file":"AuroraDataApiDriver.js","sourcesContent":["import {Driver} from \"../Driver\";\nimport {DriverUtils} from \"../DriverUtils\";\nimport {AuroraDataApiQueryRunner} from \"./AuroraDataApiQueryRunner\";\nimport {ObjectLiteral} from \"../../common/ObjectLiteral\";\nimport {ColumnMetadata} from \"../../metadata/ColumnMetadata\";\nimport {DateUtils} from \"../../util/DateUtils\";\nimport {PlatformTools} from \"../../platform/PlatformTools\";\nimport {Connection} from \"../../connection/Connection\";\nimport {RdbmsSchemaBuilder} from \"../../schema-builder/RdbmsSchemaBuilder\";\nimport {AuroraDataApiConnectionOptions} from \"./AuroraDataApiConnectionOptions\";\nimport {MappedColumnTypes} from \"../types/MappedColumnTypes\";\nimport {ColumnType} from \"../types/ColumnTypes\";\nimport {DataTypeDefaults} from \"../types/DataTypeDefaults\";\nimport {TableColumn} from \"../../schema-builder/table/TableColumn\";\nimport {AuroraDataApiConnectionCredentialsOptions} from \"./AuroraDataApiConnectionCredentialsOptions\";\nimport {EntityMetadata} from \"../../metadata/EntityMetadata\";\nimport {OrmUtils} from \"../../util/OrmUtils\";\nimport {ApplyValueTransformers} from \"../../util/ApplyValueTransformers\";\nimport {ReplicationMode} from \"../types/ReplicationMode\";\nimport { TypeORMError } from \"../../error\";\nimport { Table } from \"../../schema-builder/table/Table\";\nimport { View } from \"../../schema-builder/view/View\";\nimport { TableForeignKey } from \"../../schema-builder/table/TableForeignKey\";\n\n/**\n * Organizes communication with MySQL DBMS.\n */\nexport class AuroraDataApiDriver implements Driver {\n\n // -------------------------------------------------------------------------\n // Public Properties\n // -------------------------------------------------------------------------\n\n connection: Connection;\n /**\n * Aurora Data API underlying library.\n */\n DataApiDriver: any;\n\n client: any;\n\n /**\n * Connection pool.\n * Used in non-replication mode.\n */\n pool: any;\n\n /**\n * Pool cluster used in replication mode.\n */\n poolCluster: any;\n\n // -------------------------------------------------------------------------\n // Public Implemented Properties\n // -------------------------------------------------------------------------\n\n /**\n * Connection options.\n */\n options: AuroraDataApiConnectionOptions;\n\n /**\n * Database name used to perform all write queries.\n */\n database?: string;\n\n /**\n * Schema name used to performn all write queries.\n */\n schema?: 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://www.tutorialspoint.com/mysql/mysql-data-types.htm\n * @see https://dev.mysql.com/doc/refman/8.0/en/data-types.html\n */\n supportedDataTypes: ColumnType[] = [\n // numeric types\n \"bit\",\n \"int\",\n \"integer\", // synonym for int\n \"tinyint\",\n \"smallint\",\n \"mediumint\",\n \"bigint\",\n \"float\",\n \"double\",\n \"double precision\", // synonym for double\n \"real\", // synonym for double\n \"decimal\",\n \"dec\", // synonym for decimal\n \"numeric\", // synonym for decimal\n \"fixed\", // synonym for decimal\n \"bool\", // synonym for tinyint\n \"boolean\", // synonym for tinyint\n // date and time types\n \"date\",\n \"datetime\",\n \"timestamp\",\n \"time\",\n \"year\",\n // string types\n \"char\",\n \"nchar\", // synonym for national char\n \"national char\",\n \"varchar\",\n \"nvarchar\", // synonym for national varchar\n \"national varchar\",\n \"blob\",\n \"text\",\n \"tinyblob\",\n \"tinytext\",\n \"mediumblob\",\n \"mediumtext\",\n \"longblob\",\n \"longtext\",\n \"enum\",\n \"set\",\n \"binary\",\n \"varbinary\",\n // json data type\n \"json\",\n // spatial data types\n \"geometry\",\n \"point\",\n \"linestring\",\n \"polygon\",\n \"multipoint\",\n \"multilinestring\",\n \"multipolygon\",\n \"geometrycollection\"\n ];\n\n /**\n * Gets list of spatial column data types.\n */\n spatialTypes: ColumnType[] = [\n \"geometry\",\n \"point\",\n \"linestring\",\n \"polygon\",\n \"multipoint\",\n \"multilinestring\",\n \"multipolygon\",\n \"geometrycollection\"\n ];\n\n /**\n * Gets list of column data types that support length by a driver.\n */\n withLengthColumnTypes: ColumnType[] = [\n \"char\",\n \"varchar\",\n \"nvarchar\",\n \"binary\",\n \"varbinary\"\n ];\n\n /**\n * Gets list of column data types that support length by a driver.\n */\n withWidthColumnTypes: ColumnType[] = [\n \"bit\",\n \"tinyint\",\n \"smallint\",\n \"mediumint\",\n \"int\",\n \"integer\",\n \"bigint\"\n ];\n\n /**\n * Gets list of column data types that support precision by a driver.\n */\n withPrecisionColumnTypes: ColumnType[] = [\n \"decimal\",\n \"dec\",\n \"numeric\",\n \"fixed\",\n \"float\",\n \"double\",\n \"double precision\",\n \"real\",\n \"time\",\n \"datetime\",\n \"timestamp\"\n ];\n\n /**\n * Gets list of column data types that supports scale by a driver.\n */\n withScaleColumnTypes: ColumnType[] = [\n \"decimal\",\n \"dec\",\n \"numeric\",\n \"fixed\",\n \"float\",\n \"double\",\n \"double precision\",\n \"real\"\n ];\n\n /**\n * Gets list of column data types that supports UNSIGNED and ZEROFILL attributes.\n */\n unsignedAndZerofillTypes: ColumnType[] = [\n \"int\",\n \"integer\",\n \"smallint\",\n \"tinyint\",\n \"mediumint\",\n \"bigint\",\n \"decimal\",\n \"dec\",\n \"numeric\",\n \"fixed\",\n \"float\",\n \"double\",\n \"double precision\",\n \"real\"\n ];\n\n /**\n * ORM has special columns and we need to know what database column types should be for those columns.\n * Column types are driver dependant.\n */\n mappedDataTypes: MappedColumnTypes = {\n createDate: \"datetime\",\n createDatePrecision: 6,\n createDateDefault: \"CURRENT_TIMESTAMP(6)\",\n updateDate: \"datetime\",\n updateDatePrecision: 6,\n updateDateDefault: \"CURRENT_TIMESTAMP(6)\",\n deleteDate: \"datetime\",\n deleteDatePrecision: 6,\n deleteDateNullable: true,\n version: \"int\",\n treeLevel: \"int\",\n migrationId: \"int\",\n migrationName: \"varchar\",\n migrationTimestamp: \"bigint\",\n cacheId: \"int\",\n cacheIdentifier: \"varchar\",\n cacheTime: \"bigint\",\n cacheDuration: \"int\",\n cacheQuery: \"text\",\n cacheResult: \"text\",\n metadataType: \"varchar\",\n metadataDatabase: \"varchar\",\n metadataSchema: \"varchar\",\n metadataTable: \"varchar\",\n metadataName: \"varchar\",\n metadataValue: \"text\",\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 \"varchar\": { length: 255 },\n \"nvarchar\": { length: 255 },\n \"national varchar\": { length: 255 },\n \"char\": { length: 1 },\n \"binary\": { length: 1 },\n \"varbinary\": { length: 255 },\n \"decimal\": { precision: 10, scale: 0 },\n \"dec\": { precision: 10, scale: 0 },\n \"numeric\": { precision: 10, scale: 0 },\n \"fixed\": { precision: 10, scale: 0 },\n \"float\": { precision: 12 },\n \"double\": { precision: 22 },\n \"time\": { precision: 0 },\n \"datetime\": { precision: 0 },\n \"timestamp\": { precision: 0 },\n \"bit\": { width: 1 },\n \"int\": { width: 11 },\n \"integer\": { width: 11 },\n \"tinyint\": { width: 4 },\n \"smallint\": { width: 6 },\n \"mediumint\": { width: 9 },\n \"bigint\": { width: 20 }\n };\n\n\n /**\n * Max length allowed by MySQL for aliases.\n * @see https://dev.mysql.com/doc/refman/5.5/en/identifiers.html\n */\n maxAliasLength = 63;\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(connection: Connection) {\n this.connection = connection;\n this.options = connection.options as AuroraDataApiConnectionOptions;\n\n // load mysql package\n this.loadDependencies();\n\n this.client = new this.DataApiDriver(\n this.options.region,\n this.options.secretArn,\n this.options.resourceArn,\n this.options.database,\n (query: string, parameters?: any[]) => this.connection.logger.logQuery(query, parameters),\n this.options.serviceConfigOptions,\n this.options.formatOptions,\n );\n\n this.database = DriverUtils.buildDriverOptions(this.options).database;\n\n // validate options to make sure everything is set\n // todo: revisit validation with replication in mind\n // if (!(this.options.host || (this.options.extra && this.options.extra.socketPath)) && !this.options.socketPath)\n // throw new DriverOptionNotSetError(\"socketPath and host\");\n // if (!this.options.username)\n // throw new DriverOptionNotSetError(\"username\");\n // if (!this.options.database)\n // throw new DriverOptionNotSetError(\"database\");\n // todo: check what is going on when connection is setup without database and how to connect to a database then?\n // todo: provide options to auto-create a database if it does not exist yet\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Performs connection to the database.\n */\n async connect(): Promise<void> {\n if (!this.database) {\n const queryRunner = await this.createQueryRunner(\"master\");\n\n this.database = await queryRunner.getCurrentDatabase();\n\n await queryRunner.release();\n }\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 }\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 AuroraDataApiQueryRunner(this, new this.DataApiDriver(\n this.options.region,\n this.options.secretArn,\n this.options.resourceArn,\n this.options.database,\n (query: string, parameters?: any[]) => this.connection.logger.logQuery(query, parameters),\n this.options.serviceConfigOptions,\n this.options.formatOptions,\n ));\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 escapedParameters: any[] = Object.keys(nativeParameters).map(key => nativeParameters[key]);\n if (!parameters || !Object.keys(parameters).length)\n return [sql, escapedParameters];\n\n sql = sql.replace(/:(\\.\\.\\.)?([A-Za-z0-9_.]+)/g, (full, isArray: string, key: string): string => {\n if (!parameters.hasOwnProperty(key)) {\n return full;\n }\n\n let value: any = parameters[key];\n\n if (isArray) {\n return value.map((v: any) => {\n escapedParameters.push(v);\n return this.createParameter(key, escapedParameters.length - 1);\n }).join(\", \");\n\n }\n\n if (value instanceof Function) {\n return value();\n\n }\n\n escapedParameters.push(value);\n return this.createParameter(key, escapedParameters.length - 1);\n }); // todo: make replace only in value statements, otherwise problems\n return [sql, escapedParameters];\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 database name, schema name and table name.\n * E.g. myDB.mySchema.myTable\n */\n buildTableName(tableName: string, schema?: string, database?: string): string {\n let tablePath = [ tableName ];\n\n if (database) {\n tablePath.unshift(database);\n }\n\n return tablePath.join(\".\");\n }\n\n /**\n * Parse a target table name or other types and return a normalized table definition.\n */\n parseTableName(target: EntityMetadata | Table | View | TableForeignKey | string): { database?: string, schema?: string, tableName: string } {\n const driverDatabase = this.database;\n const driverSchema = undefined;\n\n if (target instanceof Table || target instanceof View) {\n const parsed = this.parseTableName(target.name);\n\n return {\n database: target.database || parsed.database || driverDatabase,\n schema: target.schema || parsed.schema || driverSchema,\n tableName: parsed.tableName\n };\n }\n\n if (target instanceof TableForeignKey) {\n const parsed = this.parseTableName(target.referencedTableName);\n\n return {\n database: target.referencedDatabase || parsed.database || driverDatabase,\n schema: target.referencedSchema || parsed.schema || driverSchema,\n tableName: parsed.tableName\n };\n }\n\n if (target instanceof EntityMetadata) {\n // EntityMetadata tableName is never a path\n\n return {\n database: target.database || driverDatabase,\n schema: target.schema || driverSchema,\n tableName: target.tableName\n };\n\n }\n\n const parts = target.split(\".\");\n\n return {\n database: (parts.length > 1 ? parts[0] : undefined) || driverDatabase,\n schema: driverSchema,\n tableName: parts.length > 1 ? parts[1] : parts[0]\n };\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 (!this.options.formatOptions || this.options.formatOptions.castParameters !== false) {\n return this.client.preparePersistentValue(value, columnMetadata);\n }\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 === \"json\") {\n return JSON.stringify(value);\n\n } else if (columnMetadata.type === \"timestamp\" || columnMetadata.type === \"datetime\" || columnMetadata.type === Date) {\n return DateUtils.mixedDateToDate(value);\n\n } else if (columnMetadata.type === \"simple-array\" || columnMetadata.type === \"set\") {\n return DateUtils.simpleArrayToString(value);\n\n } else if (columnMetadata.type === \"simple-json\") {\n return DateUtils.simpleJsonToString(value);\n\n } else if (columnMetadata.type === \"enum\" || columnMetadata.type === \"simple-enum\") {\n return \"\" + value;\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 (!this.options.formatOptions || this.options.formatOptions.castParameters !== false) {\n return this.client.prepareHydratedValue(value, columnMetadata);\n }\n\n if (columnMetadata.type === Boolean || columnMetadata.type === \"bool\" || columnMetadata.type === \"boolean\") {\n value = value ? true : false;\n\n } else if (columnMetadata.type === \"datetime\" || 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 === \"json\") {\n value = typeof value === \"string\" ? JSON.parse(value) : value;\n\n } else if (columnMetadata.type === \"time\") {\n value = DateUtils.mixedTimeToString(value);\n\n } else if (columnMetadata.type === \"simple-array\" || columnMetadata.type === \"set\") {\n value = DateUtils.stringToSimpleArray(value);\n\n } else if (columnMetadata.type === \"simple-json\") {\n value = DateUtils.stringToSimpleJson(value);\n\n } else if ((columnMetadata.type === \"enum\" || columnMetadata.type === \"simple-enum\")\n && columnMetadata.enum\n && !isNaN(value)\n && columnMetadata.enum.indexOf(parseInt(value)) >= 0) {\n // convert to number if that exists in possible enum options\n value = parseInt(value);\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 === \"integer\") {\n return \"int\";\n\n } else if (column.type === String) {\n return \"varchar\";\n\n } else if (column.type === Date) {\n return \"datetime\";\n\n } else if ((column.type as any) === Buffer) {\n return \"blob\";\n\n } else if (column.type === Boolean) {\n return \"tinyint\";\n\n } else if (column.type === \"uuid\") {\n return \"varchar\";\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 \"enum\";\n\n } else if (column.type === \"double precision\" || column.type === \"real\") {\n return \"double\";\n\n } else if (column.type === \"dec\" || column.type === \"numeric\" || column.type === \"fixed\") {\n return \"decimal\";\n\n } else if (column.type === \"bool\" || column.type === \"boolean\") {\n return \"tinyint\";\n\n } else if (column.type === \"nvarchar\" || column.type === \"national varchar\") {\n return \"varchar\";\n\n } else if (column.type === \"nchar\" || column.type === \"national char\") {\n return \"char\";\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 | undefined {\n const defaultValue = columnMetadata.default;\n\n if (defaultValue === null) {\n return undefined;\n }\n\n if ((columnMetadata.type === \"enum\" || columnMetadata.type === \"simple-enum\") && defaultValue !== undefined) {\n return `'${defaultValue}'`;\n }\n\n if ((columnMetadata.type === \"set\") && defaultValue !== undefined) {\n return `'${DateUtils.simpleArrayToString(defaultValue)}'`;\n }\n\n if (typeof defaultValue === \"number\") {\n return `${defaultValue}`;\n }\n\n if (typeof defaultValue === \"boolean\") {\n return defaultValue ? \"1\" : \"0\";\n }\n\n if (typeof defaultValue === \"function\") {\n return defaultValue();\n }\n\n if (typeof defaultValue === \"string\") {\n return `'${defaultValue}'`;\n }\n\n if (defaultValue === undefined) {\n return undefined;\n }\n\n return `${defaultValue}`;\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 /**\n * fix https://github.com/typeorm/typeorm/issues/1139\n */\n if (column.generationStrategy === \"uuid\")\n return \"36\";\n\n switch (column.type) {\n case String:\n case \"varchar\":\n case \"nvarchar\":\n case \"national varchar\":\n return \"255\";\n case \"varbinary\":\n return \"255\";\n default:\n return \"\";\n }\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 MySQL requires column length for `varchar`, `nvarchar` and `varbinary` data types\n if (this.getColumnLength(column)) {\n type += `(${this.getColumnLength(column)})`;\n\n } else if (column.width) {\n type += `(${column.width})`;\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 new Promise<any>((ok, fail) => {\n if (this.poolCluster) {\n this.poolCluster.getConnection(\"MASTER\", (err: any, dbConnection: any) => {\n err ? fail(err) : ok(this.prepareDbConnection(dbConnection));\n });\n\n } else if (this.pool) {\n this.pool.getConnection((err: any, dbConnection: any) => {\n err ? fail(err) : ok(this.prepareDbConnection(dbConnection));\n });\n } else {\n fail(new TypeORMError(`Connection is not established with mysql database`));\n }\n });\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 if (!this.poolCluster)\n return this.obtainMasterConnection();\n\n return new Promise<any>((ok, fail) => {\n this.poolCluster.getConnection(\"SLAVE*\", (err: any, dbConnection: any) => {\n err ? fail(err) : ok(this.prepareDbConnection(dbConnection));\n });\n });\n }\n\n /**\n * Creates generated map of values generated or returned by database after INSERT query.\n */\n createGeneratedMap(metadata: EntityMetadata, insertResult: any, entityIndex: number) {\n const generatedMap = metadata.generatedColumns.reduce((map, generatedColumn) => {\n let value: any;\n if (generatedColumn.generationStrategy === \"increment\" && insertResult.insertId) {\n // NOTE: When multiple rows is inserted by a single INSERT statement,\n // `insertId` is the value generated for the first inserted row only.\n value = insertResult.insertId + entityIndex;\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(\"zerofill:\", tableColumn.zerofill, columnMetadata.zerofill);\n // console.log(\"unsigned:\", tableColumn.unsigned, columnMetadata.unsigned);\n // console.log(\"asExpression:\", tableColumn.asExpression, columnMetadata.asExpression);\n // console.log(\"generatedType:\", tableColumn.generatedType, columnMetadata.generatedType);\n // console.log(\"comment:\", tableColumn.comment, this.escapeComment(columnMetadata.comment));\n // console.log(\"default:\", tableColumn.default, columnMetadata.default);\n // console.log(\"enum:\", tableColumn.enum, columnMetadata.enum);\n // console.log(\"default changed:\", !this.compareDefaultValues(this.normalizeDefault(columnMetadata), tableColumn.default));\n // console.log(\"onUpdate:\", tableColumn.onUpdate, columnMetadata.onUpdate);\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 let columnMetadataLength = columnMetadata.length;\n if (!columnMetadataLength && columnMetadata.generationStrategy === \"uuid\") { // fixing #3374\n columnMetadataLength = this.getColumnLength(columnMetadata);\n }\n\n return tableColumn.name !== columnMetadata.databaseName\n || tableColumn.type !== this.normalizeType(columnMetadata)\n || tableColumn.length !== columnMetadataLength\n || tableColumn.width !== columnMetadata.width\n || tableColumn.precision !== columnMetadata.precision\n || tableColumn.scale !== columnMetadata.scale\n || tableColumn.zerofill !== columnMetadata.zerofill\n || tableColumn.unsigned !== columnMetadata.unsigned\n || tableColumn.asExpression !== columnMetadata.asExpression\n || tableColumn.generatedType !== columnMetadata.generatedType\n || tableColumn.comment !== this.escapeComment(columnMetadata.comment)\n || !this.compareDefaultValues(this.normalizeDefault(columnMetadata), tableColumn.default)\n || (tableColumn.enum && columnMetadata.enum && !OrmUtils.isArraysEqual(tableColumn.enum, columnMetadata.enum.map(val => val + \"\")))\n || tableColumn.onUpdate !== columnMetadata.onUpdate\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 * Loads all driver dependencies.\n */\n protected loadDependencies(): void {\n const DataApiDriver = this.options.driver || PlatformTools.load(\"typeorm-aurora-data-api-driver\");\n this.DataApiDriver = DataApiDriver;\n\n // Driver uses rollup for publishing, which has issues when using typeorm in combination with webpack\n // See https://github.com/webpack/webpack/issues/4742#issuecomment-295556787\n this.DataApiDriver = this.DataApiDriver.default || this.DataApiDriver;\n }\n\n /**\n * Creates a new connection pool for a given database credentials.\n */\n protected createConnectionOptions(options: AuroraDataApiConnectionOptions, credentials: AuroraDataApiConnectionCredentialsOptions): Promise<any> {\n\n credentials = Object.assign({}, credentials, DriverUtils.buildDriverOptions(credentials)); // todo: do it better way\n\n // build connection options for the driver\n return Object.assign({}, {\n resourceArn: options.resourceArn,\n secretArn: options.secretArn,\n database: options.database,\n region: options.region,\n type: options.type,\n }, {\n host: credentials.host,\n user: credentials.username,\n password: credentials.password,\n database: credentials.database,\n port: credentials.port,\n ssl: options.ssl\n },\n\n options.extra || {});\n }\n\n /**\n * Creates a new connection pool for a given database credentials.\n */\n protected async createPool(connectionOptions: any): Promise<any> {\n return {};\n }\n\n /**\n * Attaches all required base handlers to a database connection, such as the unhandled error handler.\n */\n private prepareDbConnection(connection: any): any {\n const { logger } = this.connection;\n /**\n * Attaching an error handler to connection errors is essential, as, otherwise, errors raised will go unhandled and\n * cause the hosting app to crash.\n */\n if (connection.listeners(\"error\").length === 0) {\n connection.on(\"error\", (error: any) => logger.log(\"warn\", `MySQL connection raised an error. ${error}`));\n }\n return connection;\n }\n\n /**\n * Checks if \"DEFAULT\" values in the column metadata and in the database are equal.\n */\n protected compareDefaultValues(columnMetadataValue: string | undefined, databaseValue: string | undefined): boolean {\n if (typeof columnMetadataValue === \"string\" && typeof databaseValue === \"string\") {\n // we need to cut out \"'\" because in mysql we can understand returned value is a string or a function\n // as result compare cannot understand if default is really changed or not\n columnMetadataValue = columnMetadataValue.replace(/^'+|'+$/g, \"\");\n databaseValue = databaseValue.replace(/^'+|'+$/g, \"\");\n }\n\n return columnMetadataValue === databaseValue;\n }\n\n /**\n * Escapes a given comment.\n */\n protected escapeComment(comment?: string) {\n if (!comment) return comment;\n\n comment = comment.replace(/\\u0000/g, \"\"); // Null bytes aren't allowed in comments\n\n return comment;\n }\n\n}\n"],"sourceRoot":"../.."}