typeorm 0.3.6-dev.9d331b1 → 0.3.6-dev.bbdc20f

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 (370) hide show
  1. package/README.md +34 -14
  2. package/browser/cache/DbQueryResultCache.js +9 -1
  3. package/browser/cache/DbQueryResultCache.js.map +1 -1
  4. package/browser/cache/RedisQueryResultCache.js +3 -0
  5. package/browser/cache/RedisQueryResultCache.js.map +1 -1
  6. package/browser/data-source/DataSourceOptions.d.ts +2 -1
  7. package/browser/data-source/DataSourceOptions.js.map +1 -1
  8. package/browser/decorator/Index.js +1 -0
  9. package/browser/decorator/Index.js.map +1 -1
  10. package/browser/decorator/columns/PrimaryColumn.js +4 -1
  11. package/browser/decorator/columns/PrimaryColumn.js.map +1 -1
  12. package/browser/decorator/options/ColumnOptions.d.ts +10 -2
  13. package/browser/decorator/options/ColumnOptions.js.map +1 -1
  14. package/browser/decorator/options/IndexOptions.d.ts +8 -0
  15. package/browser/decorator/options/IndexOptions.js.map +1 -1
  16. package/browser/decorator/options/JoinColumnOptions.d.ts +4 -0
  17. package/browser/decorator/options/JoinColumnOptions.js.map +1 -1
  18. package/browser/decorator/options/PrimaryGeneratedColumnIdentityOptions.d.ts +4 -0
  19. package/browser/decorator/options/PrimaryGeneratedColumnIdentityOptions.js.map +1 -1
  20. package/browser/decorator/options/PrimaryGeneratedColumnNumericOptions.d.ts +4 -0
  21. package/browser/decorator/options/PrimaryGeneratedColumnNumericOptions.js.map +1 -1
  22. package/browser/decorator/options/PrimaryGeneratedColumnUUIDOptions.d.ts +4 -0
  23. package/browser/decorator/options/PrimaryGeneratedColumnUUIDOptions.js.map +1 -1
  24. package/browser/decorator/relations/JoinColumn.js +1 -0
  25. package/browser/decorator/relations/JoinColumn.js.map +1 -1
  26. package/browser/driver/DriverFactory.js +4 -0
  27. package/browser/driver/DriverFactory.js.map +1 -1
  28. package/browser/driver/aurora-mysql/AuroraMysqlDriver.d.ts +1 -1
  29. package/browser/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
  30. package/browser/driver/cockroachdb/CockroachDriver.js +4 -1
  31. package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
  32. package/browser/driver/cockroachdb/CockroachQueryRunner.d.ts +3 -3
  33. package/browser/driver/cockroachdb/CockroachQueryRunner.js +233 -33
  34. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  35. package/browser/driver/mongodb/typings.d.ts +5 -5
  36. package/browser/driver/mongodb/typings.js.map +1 -1
  37. package/browser/driver/mysql/MysqlDriver.d.ts +1 -0
  38. package/browser/driver/mysql/MysqlDriver.js +94 -23
  39. package/browser/driver/mysql/MysqlDriver.js.map +1 -1
  40. package/browser/driver/mysql/MysqlQueryRunner.js +219 -24
  41. package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
  42. package/browser/driver/oracle/OracleDriver.js +79 -15
  43. package/browser/driver/oracle/OracleDriver.js.map +1 -1
  44. package/browser/driver/oracle/OracleQueryRunner.d.ts +3 -3
  45. package/browser/driver/oracle/OracleQueryRunner.js +216 -42
  46. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  47. package/browser/driver/postgres/PostgresDriver.js +95 -18
  48. package/browser/driver/postgres/PostgresDriver.js.map +1 -1
  49. package/browser/driver/postgres/PostgresQueryRunner.d.ts +3 -3
  50. package/browser/driver/postgres/PostgresQueryRunner.js +159 -59
  51. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  52. package/browser/driver/spanner/SpannerConnectionCredentialsOptions.d.ts +17 -0
  53. package/browser/driver/spanner/SpannerConnectionCredentialsOptions.js +3 -0
  54. package/browser/driver/spanner/SpannerConnectionCredentialsOptions.js.map +1 -0
  55. package/browser/driver/spanner/SpannerConnectionOptions.d.ts +120 -0
  56. package/browser/driver/spanner/SpannerConnectionOptions.js +3 -0
  57. package/browser/driver/spanner/SpannerConnectionOptions.js.map +1 -0
  58. package/browser/driver/spanner/SpannerDriver.d.ts +241 -0
  59. package/browser/driver/spanner/SpannerDriver.js +604 -0
  60. package/browser/driver/spanner/SpannerDriver.js.map +1 -0
  61. package/browser/driver/spanner/SpannerQueryRunner.d.ts +350 -0
  62. package/browser/driver/spanner/SpannerQueryRunner.js +1445 -0
  63. package/browser/driver/spanner/SpannerQueryRunner.js.map +1 -0
  64. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js +65 -16
  65. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  66. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +218 -32
  67. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  68. package/browser/driver/sqlserver/SqlServerDriver.d.ts +3 -1
  69. package/browser/driver/sqlserver/SqlServerDriver.js +99 -26
  70. package/browser/driver/sqlserver/SqlServerDriver.js.map +1 -1
  71. package/browser/driver/sqlserver/SqlServerQueryRunner.d.ts +3 -3
  72. package/browser/driver/sqlserver/SqlServerQueryRunner.js +251 -37
  73. package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  74. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.d.ts +1 -1
  75. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js.map +1 -1
  76. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.d.ts +2 -2
  77. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js.map +1 -1
  78. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.d.ts +2 -2
  79. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js.map +1 -1
  80. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.d.ts +2 -2
  81. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js.map +1 -1
  82. package/browser/driver/types/ColumnTypes.d.ts +1 -1
  83. package/browser/driver/types/ColumnTypes.js.map +1 -1
  84. package/browser/driver/types/DatabaseType.d.ts +1 -1
  85. package/browser/driver/types/DatabaseType.js.map +1 -1
  86. package/browser/entity-manager/EntityManager.js +1 -1
  87. package/browser/entity-manager/EntityManager.js.map +1 -1
  88. package/browser/entity-schema/EntitySchemaColumnOptions.d.ts +6 -2
  89. package/browser/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
  90. package/browser/entity-schema/EntitySchemaIndexOptions.d.ts +8 -0
  91. package/browser/entity-schema/EntitySchemaIndexOptions.js.map +1 -1
  92. package/browser/entity-schema/EntitySchemaTransformer.js +3 -0
  93. package/browser/entity-schema/EntitySchemaTransformer.js.map +1 -1
  94. package/browser/find-options/FindOneOptions.d.ts +1 -1
  95. package/browser/find-options/FindOneOptions.js.map +1 -1
  96. package/browser/find-options/FindOptionsUtils.d.ts +2 -1
  97. package/browser/find-options/FindOptionsUtils.js +2 -1
  98. package/browser/find-options/FindOptionsUtils.js.map +1 -1
  99. package/browser/logger/AdvancedConsoleLogger.d.ts +1 -1
  100. package/browser/logger/AdvancedConsoleLogger.js +1 -1
  101. package/browser/logger/AdvancedConsoleLogger.js.map +1 -1
  102. package/browser/metadata/ColumnMetadata.d.ts +10 -2
  103. package/browser/metadata/ColumnMetadata.js +8 -0
  104. package/browser/metadata/ColumnMetadata.js.map +1 -1
  105. package/browser/metadata/EntityMetadata.js +1 -1
  106. package/browser/metadata/EntityMetadata.js.map +1 -1
  107. package/browser/metadata/ForeignKeyMetadata.d.ts +7 -0
  108. package/browser/metadata/ForeignKeyMetadata.js +4 -1
  109. package/browser/metadata/ForeignKeyMetadata.js.map +1 -1
  110. package/browser/metadata/IndexMetadata.d.ts +8 -0
  111. package/browser/metadata/IndexMetadata.js +9 -0
  112. package/browser/metadata/IndexMetadata.js.map +1 -1
  113. package/browser/metadata-args/IndexMetadataArgs.d.ts +8 -0
  114. package/browser/metadata-args/IndexMetadataArgs.js.map +1 -1
  115. package/browser/metadata-args/JoinColumnMetadataArgs.d.ts +4 -0
  116. package/browser/metadata-args/JoinColumnMetadataArgs.js.map +1 -1
  117. package/browser/metadata-builder/EntityMetadataBuilder.js +13 -6
  118. package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  119. package/browser/metadata-builder/EntityMetadataValidator.js +17 -0
  120. package/browser/metadata-builder/EntityMetadataValidator.js.map +1 -1
  121. package/browser/metadata-builder/JunctionEntityMetadataBuilder.js +18 -6
  122. package/browser/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  123. package/browser/metadata-builder/RelationJoinColumnBuilder.js +2 -0
  124. package/browser/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
  125. package/browser/migration/MigrationExecutor.js +1 -1
  126. package/browser/migration/MigrationExecutor.js.map +1 -1
  127. package/browser/persistence/SubjectDatabaseEntityLoader.d.ts +1 -1
  128. package/browser/persistence/SubjectDatabaseEntityLoader.js +1 -1
  129. package/browser/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  130. package/browser/persistence/SubjectExecutor.js +1 -1
  131. package/browser/persistence/SubjectExecutor.js.map +1 -1
  132. package/browser/persistence/subject-builder/CascadesSubjectBuilder.d.ts +1 -1
  133. package/browser/persistence/subject-builder/CascadesSubjectBuilder.js +1 -1
  134. package/browser/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
  135. package/browser/persistence/subject-builder/ManyToManySubjectBuilder.js +1 -1
  136. package/browser/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
  137. package/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js +1 -1
  138. package/browser/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -1
  139. package/browser/platform/PlatformTools.js +5 -0
  140. package/browser/platform/PlatformTools.js.map +1 -1
  141. package/browser/query-builder/InsertQueryBuilder.js +15 -3
  142. package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
  143. package/browser/query-builder/QueryBuilder.d.ts +1 -1
  144. package/browser/query-builder/QueryBuilder.js +15 -15
  145. package/browser/query-builder/QueryBuilder.js.map +1 -1
  146. package/browser/query-builder/QueryExpressionMap.d.ts +2 -2
  147. package/browser/query-builder/QueryExpressionMap.js +1 -1
  148. package/browser/query-builder/QueryExpressionMap.js.map +1 -1
  149. package/browser/query-builder/ReturningResultsEntityUpdator.js +2 -2
  150. package/browser/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
  151. package/browser/query-builder/SelectQueryBuilder.d.ts +1 -1
  152. package/browser/query-builder/SelectQueryBuilder.js +25 -4
  153. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  154. package/browser/query-builder/UpdateQueryBuilder.js +18 -7
  155. package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
  156. package/browser/query-runner/BaseQueryRunner.d.ts +10 -0
  157. package/browser/query-runner/BaseQueryRunner.js +25 -1
  158. package/browser/query-runner/BaseQueryRunner.js.map +1 -1
  159. package/browser/query-runner/QueryRunner.d.ts +2 -2
  160. package/browser/query-runner/QueryRunner.js.map +1 -1
  161. package/browser/schema-builder/RdbmsSchemaBuilder.d.ts +6 -2
  162. package/browser/schema-builder/RdbmsSchemaBuilder.js +26 -6
  163. package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  164. package/browser/schema-builder/options/TableColumnOptions.d.ts +10 -2
  165. package/browser/schema-builder/options/TableColumnOptions.js.map +1 -1
  166. package/browser/schema-builder/options/TableForeignKeyOptions.d.ts +1 -1
  167. package/browser/schema-builder/options/TableForeignKeyOptions.js.map +1 -1
  168. package/browser/schema-builder/options/TableIndexOptions.d.ts +8 -0
  169. package/browser/schema-builder/options/TableIndexOptions.js.map +1 -1
  170. package/browser/schema-builder/table/TableColumn.d.ts +6 -2
  171. package/browser/schema-builder/table/TableColumn.js +2 -0
  172. package/browser/schema-builder/table/TableColumn.js.map +1 -1
  173. package/browser/schema-builder/table/TableIndex.d.ts +8 -0
  174. package/browser/schema-builder/table/TableIndex.js +3 -0
  175. package/browser/schema-builder/table/TableIndex.js.map +1 -1
  176. package/browser/schema-builder/util/TableUtils.js +1 -0
  177. package/browser/schema-builder/util/TableUtils.js.map +1 -1
  178. package/browser/util/OrmUtils.d.ts +1 -1
  179. package/browser/util/OrmUtils.js +4 -4
  180. package/browser/util/OrmUtils.js.map +1 -1
  181. package/browser/util/escapeRegExp.d.ts +1 -0
  182. package/browser/util/escapeRegExp.js +6 -0
  183. package/browser/util/escapeRegExp.js.map +1 -0
  184. package/cache/DbQueryResultCache.js +9 -1
  185. package/cache/DbQueryResultCache.js.map +1 -1
  186. package/cache/RedisQueryResultCache.js +3 -0
  187. package/cache/RedisQueryResultCache.js.map +1 -1
  188. package/commands/InitCommand.js +1 -1
  189. package/commands/InitCommand.js.map +1 -1
  190. package/commands/MigrationGenerateCommand.js +3 -2
  191. package/commands/MigrationGenerateCommand.js.map +1 -1
  192. package/data-source/DataSourceOptions.d.ts +2 -1
  193. package/data-source/DataSourceOptions.js.map +1 -1
  194. package/decorator/Index.js +1 -0
  195. package/decorator/Index.js.map +1 -1
  196. package/decorator/columns/PrimaryColumn.js +4 -1
  197. package/decorator/columns/PrimaryColumn.js.map +1 -1
  198. package/decorator/options/ColumnOptions.d.ts +10 -2
  199. package/decorator/options/ColumnOptions.js.map +1 -1
  200. package/decorator/options/IndexOptions.d.ts +8 -0
  201. package/decorator/options/IndexOptions.js.map +1 -1
  202. package/decorator/options/JoinColumnOptions.d.ts +4 -0
  203. package/decorator/options/JoinColumnOptions.js.map +1 -1
  204. package/decorator/options/PrimaryGeneratedColumnIdentityOptions.d.ts +4 -0
  205. package/decorator/options/PrimaryGeneratedColumnIdentityOptions.js.map +1 -1
  206. package/decorator/options/PrimaryGeneratedColumnNumericOptions.d.ts +4 -0
  207. package/decorator/options/PrimaryGeneratedColumnNumericOptions.js.map +1 -1
  208. package/decorator/options/PrimaryGeneratedColumnUUIDOptions.d.ts +4 -0
  209. package/decorator/options/PrimaryGeneratedColumnUUIDOptions.js.map +1 -1
  210. package/decorator/relations/JoinColumn.js +1 -0
  211. package/decorator/relations/JoinColumn.js.map +1 -1
  212. package/driver/DriverFactory.js +4 -0
  213. package/driver/DriverFactory.js.map +1 -1
  214. package/driver/aurora-mysql/AuroraMysqlDriver.d.ts +1 -1
  215. package/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
  216. package/driver/cockroachdb/CockroachDriver.js +4 -1
  217. package/driver/cockroachdb/CockroachDriver.js.map +1 -1
  218. package/driver/cockroachdb/CockroachQueryRunner.d.ts +3 -3
  219. package/driver/cockroachdb/CockroachQueryRunner.js +233 -33
  220. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  221. package/driver/mongodb/typings.d.ts +5 -5
  222. package/driver/mongodb/typings.js.map +1 -1
  223. package/driver/mysql/MysqlDriver.d.ts +1 -0
  224. package/driver/mysql/MysqlDriver.js +94 -23
  225. package/driver/mysql/MysqlDriver.js.map +1 -1
  226. package/driver/mysql/MysqlQueryRunner.js +219 -24
  227. package/driver/mysql/MysqlQueryRunner.js.map +1 -1
  228. package/driver/oracle/OracleDriver.js +79 -15
  229. package/driver/oracle/OracleDriver.js.map +1 -1
  230. package/driver/oracle/OracleQueryRunner.d.ts +3 -3
  231. package/driver/oracle/OracleQueryRunner.js +216 -42
  232. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  233. package/driver/postgres/PostgresDriver.js +95 -18
  234. package/driver/postgres/PostgresDriver.js.map +1 -1
  235. package/driver/postgres/PostgresQueryRunner.d.ts +3 -3
  236. package/driver/postgres/PostgresQueryRunner.js +159 -59
  237. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  238. package/driver/spanner/SpannerConnectionCredentialsOptions.d.ts +17 -0
  239. package/driver/spanner/SpannerConnectionCredentialsOptions.js +4 -0
  240. package/driver/spanner/SpannerConnectionCredentialsOptions.js.map +1 -0
  241. package/driver/spanner/SpannerConnectionOptions.d.ts +120 -0
  242. package/driver/spanner/SpannerConnectionOptions.js +4 -0
  243. package/driver/spanner/SpannerConnectionOptions.js.map +1 -0
  244. package/driver/spanner/SpannerDriver.d.ts +241 -0
  245. package/driver/spanner/SpannerDriver.js +608 -0
  246. package/driver/spanner/SpannerDriver.js.map +1 -0
  247. package/driver/spanner/SpannerQueryRunner.d.ts +350 -0
  248. package/driver/spanner/SpannerQueryRunner.js +1449 -0
  249. package/driver/spanner/SpannerQueryRunner.js.map +1 -0
  250. package/driver/sqlite-abstract/AbstractSqliteDriver.js +65 -16
  251. package/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  252. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +218 -32
  253. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  254. package/driver/sqlserver/SqlServerDriver.d.ts +3 -1
  255. package/driver/sqlserver/SqlServerDriver.js +99 -26
  256. package/driver/sqlserver/SqlServerDriver.js.map +1 -1
  257. package/driver/sqlserver/SqlServerQueryRunner.d.ts +3 -3
  258. package/driver/sqlserver/SqlServerQueryRunner.js +251 -37
  259. package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  260. package/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.d.ts +1 -1
  261. package/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js.map +1 -1
  262. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.d.ts +2 -2
  263. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js.map +1 -1
  264. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.d.ts +2 -2
  265. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js.map +1 -1
  266. package/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.d.ts +2 -2
  267. package/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js.map +1 -1
  268. package/driver/types/ColumnTypes.d.ts +1 -1
  269. package/driver/types/ColumnTypes.js.map +1 -1
  270. package/driver/types/DatabaseType.d.ts +1 -1
  271. package/driver/types/DatabaseType.js.map +1 -1
  272. package/entity-manager/EntityManager.js +1 -1
  273. package/entity-manager/EntityManager.js.map +1 -1
  274. package/entity-schema/EntitySchemaColumnOptions.d.ts +6 -2
  275. package/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
  276. package/entity-schema/EntitySchemaIndexOptions.d.ts +8 -0
  277. package/entity-schema/EntitySchemaIndexOptions.js.map +1 -1
  278. package/entity-schema/EntitySchemaTransformer.js +3 -0
  279. package/entity-schema/EntitySchemaTransformer.js.map +1 -1
  280. package/find-options/FindOneOptions.d.ts +1 -1
  281. package/find-options/FindOneOptions.js.map +1 -1
  282. package/find-options/FindOptionsUtils.d.ts +2 -1
  283. package/find-options/FindOptionsUtils.js +2 -1
  284. package/find-options/FindOptionsUtils.js.map +1 -1
  285. package/logger/AdvancedConsoleLogger.d.ts +1 -1
  286. package/logger/AdvancedConsoleLogger.js +1 -1
  287. package/logger/AdvancedConsoleLogger.js.map +1 -1
  288. package/metadata/ColumnMetadata.d.ts +10 -2
  289. package/metadata/ColumnMetadata.js +8 -0
  290. package/metadata/ColumnMetadata.js.map +1 -1
  291. package/metadata/EntityMetadata.js +1 -1
  292. package/metadata/EntityMetadata.js.map +1 -1
  293. package/metadata/ForeignKeyMetadata.d.ts +7 -0
  294. package/metadata/ForeignKeyMetadata.js +4 -1
  295. package/metadata/ForeignKeyMetadata.js.map +1 -1
  296. package/metadata/IndexMetadata.d.ts +8 -0
  297. package/metadata/IndexMetadata.js +9 -0
  298. package/metadata/IndexMetadata.js.map +1 -1
  299. package/metadata-args/IndexMetadataArgs.d.ts +8 -0
  300. package/metadata-args/IndexMetadataArgs.js.map +1 -1
  301. package/metadata-args/JoinColumnMetadataArgs.d.ts +4 -0
  302. package/metadata-args/JoinColumnMetadataArgs.js.map +1 -1
  303. package/metadata-builder/EntityMetadataBuilder.js +13 -6
  304. package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  305. package/metadata-builder/EntityMetadataValidator.js +17 -0
  306. package/metadata-builder/EntityMetadataValidator.js.map +1 -1
  307. package/metadata-builder/JunctionEntityMetadataBuilder.js +18 -6
  308. package/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  309. package/metadata-builder/RelationJoinColumnBuilder.js +2 -0
  310. package/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
  311. package/migration/MigrationExecutor.js +1 -1
  312. package/migration/MigrationExecutor.js.map +1 -1
  313. package/package.json +1 -1
  314. package/persistence/SubjectDatabaseEntityLoader.d.ts +1 -1
  315. package/persistence/SubjectDatabaseEntityLoader.js +1 -1
  316. package/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  317. package/persistence/SubjectExecutor.js +1 -1
  318. package/persistence/SubjectExecutor.js.map +1 -1
  319. package/persistence/subject-builder/CascadesSubjectBuilder.d.ts +1 -1
  320. package/persistence/subject-builder/CascadesSubjectBuilder.js +1 -1
  321. package/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
  322. package/persistence/subject-builder/ManyToManySubjectBuilder.js +1 -1
  323. package/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
  324. package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js +1 -1
  325. package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -1
  326. package/platform/PlatformTools.js +5 -0
  327. package/platform/PlatformTools.js.map +1 -1
  328. package/query-builder/InsertQueryBuilder.js +15 -3
  329. package/query-builder/InsertQueryBuilder.js.map +1 -1
  330. package/query-builder/QueryBuilder.d.ts +1 -1
  331. package/query-builder/QueryBuilder.js +15 -15
  332. package/query-builder/QueryBuilder.js.map +1 -1
  333. package/query-builder/QueryExpressionMap.d.ts +2 -2
  334. package/query-builder/QueryExpressionMap.js +1 -1
  335. package/query-builder/QueryExpressionMap.js.map +1 -1
  336. package/query-builder/ReturningResultsEntityUpdator.js +2 -2
  337. package/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
  338. package/query-builder/SelectQueryBuilder.d.ts +1 -1
  339. package/query-builder/SelectQueryBuilder.js +25 -4
  340. package/query-builder/SelectQueryBuilder.js.map +1 -1
  341. package/query-builder/UpdateQueryBuilder.js +18 -7
  342. package/query-builder/UpdateQueryBuilder.js.map +1 -1
  343. package/query-runner/BaseQueryRunner.d.ts +10 -0
  344. package/query-runner/BaseQueryRunner.js +25 -1
  345. package/query-runner/BaseQueryRunner.js.map +1 -1
  346. package/query-runner/QueryRunner.d.ts +2 -2
  347. package/query-runner/QueryRunner.js.map +1 -1
  348. package/schema-builder/RdbmsSchemaBuilder.d.ts +6 -2
  349. package/schema-builder/RdbmsSchemaBuilder.js +26 -6
  350. package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  351. package/schema-builder/options/TableColumnOptions.d.ts +10 -2
  352. package/schema-builder/options/TableColumnOptions.js.map +1 -1
  353. package/schema-builder/options/TableForeignKeyOptions.d.ts +1 -1
  354. package/schema-builder/options/TableForeignKeyOptions.js.map +1 -1
  355. package/schema-builder/options/TableIndexOptions.d.ts +8 -0
  356. package/schema-builder/options/TableIndexOptions.js.map +1 -1
  357. package/schema-builder/table/TableColumn.d.ts +6 -2
  358. package/schema-builder/table/TableColumn.js +2 -0
  359. package/schema-builder/table/TableColumn.js.map +1 -1
  360. package/schema-builder/table/TableIndex.d.ts +8 -0
  361. package/schema-builder/table/TableIndex.js +3 -0
  362. package/schema-builder/table/TableIndex.js.map +1 -1
  363. package/schema-builder/util/TableUtils.js +1 -0
  364. package/schema-builder/util/TableUtils.js.map +1 -1
  365. package/util/OrmUtils.d.ts +1 -1
  366. package/util/OrmUtils.js +4 -4
  367. package/util/OrmUtils.js.map +1 -1
  368. package/util/escapeRegExp.d.ts +1 -0
  369. package/util/escapeRegExp.js +10 -0
  370. package/util/escapeRegExp.js.map +1 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/schema-builder/options/TableIndexOptions.ts"],"names":[],"mappings":"","file":"TableIndexOptions.js","sourcesContent":["/**\n * Database's table index options.\n */\nexport interface TableIndexOptions {\n // -------------------------------------------------------------------------\n // Public Properties\n // -------------------------------------------------------------------------\n\n /**\n * Constraint name.\n */\n name?: string\n\n /**\n * Columns included in this index.\n */\n columnNames: string[]\n\n /**\n * Indicates if this index is unique.\n */\n isUnique?: boolean\n\n /**\n * The SPATIAL modifier indexes the entire column and does not allow indexed columns to contain NULL values.\n * Works only in MySQL.\n */\n isSpatial?: boolean\n\n /**\n * The FULLTEXT modifier indexes the entire column and does not allow prefixing.\n * Supported only in MySQL & SAP HANA.\n */\n isFulltext?: boolean\n\n /**\n * Fulltext parser.\n * Works only in MySQL.\n */\n parser?: string\n\n /**\n * Index filter condition.\n */\n where?: string\n}\n"],"sourceRoot":"../.."}
1
+ {"version":3,"sources":["../../src/schema-builder/options/TableIndexOptions.ts"],"names":[],"mappings":"","file":"TableIndexOptions.js","sourcesContent":["/**\n * Database's table index options.\n */\nexport interface TableIndexOptions {\n // -------------------------------------------------------------------------\n // Public Properties\n // -------------------------------------------------------------------------\n\n /**\n * Constraint name.\n */\n name?: string\n\n /**\n * Columns included in this index.\n */\n columnNames: string[]\n\n /**\n * Indicates if this index is unique.\n */\n isUnique?: boolean\n\n /**\n * The SPATIAL modifier indexes the entire column and does not allow indexed columns to contain NULL values.\n * Works only in MySQL.\n */\n isSpatial?: boolean\n\n /**\n * The FULLTEXT modifier indexes the entire column and does not allow prefixing.\n * Supported only in MySQL & SAP HANA.\n */\n isFulltext?: boolean\n\n /**\n * NULL_FILTERED indexes are particularly useful for indexing sparse columns, where most rows contain a NULL value.\n * In these cases, the NULL_FILTERED index can be considerably smaller and more efficient to maintain than\n * a normal index that includes NULL values.\n *\n * Works only in Spanner.\n */\n isNullFiltered?: boolean\n\n /**\n * Fulltext parser.\n * Works only in MySQL.\n */\n parser?: string\n\n /**\n * Index filter condition.\n */\n where?: string\n}\n"],"sourceRoot":"../.."}
@@ -95,11 +95,15 @@ export declare class TableColumn {
95
95
  */
96
96
  enumName?: string;
97
97
  /**
98
- * Generated column expression. Supports only in MySQL.
98
+ * Name of the primary key constraint for primary column.
99
+ */
100
+ primaryKeyConstraintName?: string;
101
+ /**
102
+ * Generated column expression.
99
103
  */
100
104
  asExpression?: string;
101
105
  /**
102
- * Generated column type. Supports only in MySQL.
106
+ * Generated column type.
103
107
  */
104
108
  generatedType?: "VIRTUAL" | "STORED";
105
109
  /**
@@ -67,6 +67,7 @@ class TableColumn {
67
67
  this.comment = options.comment;
68
68
  this.enum = options.enum;
69
69
  this.enumName = options.enumName;
70
+ this.primaryKeyConstraintName = options.primaryKeyConstraintName;
70
71
  this.asExpression = options.asExpression;
71
72
  this.generatedType = options.generatedType;
72
73
  this.spatialFeatureType = options.spatialFeatureType;
@@ -93,6 +94,7 @@ class TableColumn {
93
94
  unsigned: this.unsigned,
94
95
  enum: this.enum,
95
96
  enumName: this.enumName,
97
+ primaryKeyConstraintName: this.primaryKeyConstraintName,
96
98
  asExpression: this.asExpression,
97
99
  generatedType: this.generatedType,
98
100
  default: this.default,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/schema-builder/table/TableColumn.ts"],"names":[],"mappings":"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","file":"TableColumn.js","sourcesContent":["import { TableColumnOptions } from \"../options/TableColumnOptions\"\n\n/**\n * Table's columns in the database represented in this class.\n */\nexport class TableColumn {\n readonly \"@instanceof\" = Symbol.for(\"TableColumn\")\n\n // -------------------------------------------------------------------------\n // Public Properties\n // -------------------------------------------------------------------------\n\n /**\n * Column name.\n */\n name: string\n\n /**\n * Column type.\n */\n type: string\n\n /**\n * Column's default value.\n */\n default?: any\n\n /**\n * ON UPDATE trigger. Works only for MySQL.\n */\n onUpdate?: string\n\n /**\n * Indicates if column is NULL, or is NOT NULL in the database.\n */\n isNullable: boolean = false\n\n /**\n * Indicates if column is auto-generated sequence.\n */\n isGenerated: boolean = false\n\n /**\n * Specifies generation strategy if this column will use auto increment.\n * `rowid` option supported only in CockroachDB.\n */\n generationStrategy?: \"uuid\" | \"increment\" | \"rowid\" | \"identity\"\n\n /**\n * Indicates if column is a primary key.\n */\n isPrimary: boolean = false\n\n /**\n * Indicates if column has unique value.\n */\n isUnique: boolean = false\n\n /**\n * Indicates if column stores array.\n */\n isArray: boolean = false\n\n /**\n * Column's comment.\n */\n comment?: string\n\n /**\n * Column type's length. Used only on some column types.\n * For example type = \"string\" and length = \"100\" means that ORM will create a column with type varchar(100).\n */\n length: string = \"\"\n\n /**\n * Column type's display width. Used only on some column types in MySQL.\n * For example, INT(4) specifies an INT with a display width of four digits.\n */\n width?: number\n\n /**\n * Defines column character set.\n */\n charset?: string\n\n /**\n * Defines column collation.\n */\n collation?: string\n\n /**\n * The precision for a decimal (exact numeric) column (applies only for decimal column), which is the maximum\n * number of digits that are stored for the values.\n */\n precision?: number | null\n\n /**\n * The scale for a decimal (exact numeric) column (applies only for decimal column), which represents the number\n * of digits to the right of the decimal point and must not be greater than precision.\n */\n scale?: number\n\n /**\n * Puts ZEROFILL attribute on to numeric column. Works only for MySQL.\n * If you specify ZEROFILL for a numeric column, MySQL automatically adds the UNSIGNED attribute to the column\n */\n zerofill: boolean = false\n\n /**\n * Puts UNSIGNED attribute on to numeric column. Works only for MySQL.\n */\n unsigned: boolean = false\n\n /**\n * Array of possible enumerated values.\n */\n enum?: string[]\n\n /**\n * Exact name of enum\n */\n enumName?: string\n\n /**\n * Generated column expression. Supports only in MySQL.\n */\n asExpression?: string\n\n /**\n * Generated column type. Supports only in MySQL.\n */\n generatedType?: \"VIRTUAL\" | \"STORED\"\n\n /**\n * Identity column type. Supports only in Postgres 10+.\n */\n generatedIdentity?: \"ALWAYS\" | \"BY DEFAULT\"\n\n /**\n * Spatial Feature Type (Geometry, Point, Polygon, etc.)\n */\n spatialFeatureType?: string\n\n /**\n * SRID (Spatial Reference ID (EPSG code))\n */\n srid?: number\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(options?: TableColumnOptions) {\n if (options) {\n this.name = options.name\n this.type = options.type || \"\"\n this.length = options.length || \"\"\n this.width = options.width\n this.charset = options.charset\n this.collation = options.collation\n this.precision = options.precision\n this.scale = options.scale\n this.zerofill = options.zerofill || false\n this.unsigned = this.zerofill ? true : options.unsigned || false\n this.default = options.default\n this.onUpdate = options.onUpdate\n this.isNullable = options.isNullable || false\n this.isGenerated = options.isGenerated || false\n this.generationStrategy = options.generationStrategy\n this.generatedIdentity = options.generatedIdentity\n this.isPrimary = options.isPrimary || false\n this.isUnique = options.isUnique || false\n this.isArray = options.isArray || false\n this.comment = options.comment\n this.enum = options.enum\n this.enumName = options.enumName\n this.asExpression = options.asExpression\n this.generatedType = options.generatedType\n this.spatialFeatureType = options.spatialFeatureType\n this.srid = options.srid\n }\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Clones this column to a new column with exact same properties as this column has.\n */\n clone(): TableColumn {\n return new TableColumn(<TableColumnOptions>{\n name: this.name,\n type: this.type,\n length: this.length,\n width: this.width,\n charset: this.charset,\n collation: this.collation,\n precision: this.precision,\n scale: this.scale,\n zerofill: this.zerofill,\n unsigned: this.unsigned,\n enum: this.enum,\n enumName: this.enumName,\n asExpression: this.asExpression,\n generatedType: this.generatedType,\n default: this.default,\n onUpdate: this.onUpdate,\n isNullable: this.isNullable,\n isGenerated: this.isGenerated,\n generationStrategy: this.generationStrategy,\n generatedIdentity: this.generatedIdentity,\n isPrimary: this.isPrimary,\n isUnique: this.isUnique,\n isArray: this.isArray,\n comment: this.comment,\n spatialFeatureType: this.spatialFeatureType,\n srid: this.srid,\n })\n }\n}\n"],"sourceRoot":"../.."}
1
+ {"version":3,"sources":["../../src/schema-builder/table/TableColumn.ts"],"names":[],"mappings":"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","file":"TableColumn.js","sourcesContent":["import { TableColumnOptions } from \"../options/TableColumnOptions\"\n\n/**\n * Table's columns in the database represented in this class.\n */\nexport class TableColumn {\n readonly \"@instanceof\" = Symbol.for(\"TableColumn\")\n\n // -------------------------------------------------------------------------\n // Public Properties\n // -------------------------------------------------------------------------\n\n /**\n * Column name.\n */\n name: string\n\n /**\n * Column type.\n */\n type: string\n\n /**\n * Column's default value.\n */\n default?: any\n\n /**\n * ON UPDATE trigger. Works only for MySQL.\n */\n onUpdate?: string\n\n /**\n * Indicates if column is NULL, or is NOT NULL in the database.\n */\n isNullable: boolean = false\n\n /**\n * Indicates if column is auto-generated sequence.\n */\n isGenerated: boolean = false\n\n /**\n * Specifies generation strategy if this column will use auto increment.\n * `rowid` option supported only in CockroachDB.\n */\n generationStrategy?: \"uuid\" | \"increment\" | \"rowid\" | \"identity\"\n\n /**\n * Indicates if column is a primary key.\n */\n isPrimary: boolean = false\n\n /**\n * Indicates if column has unique value.\n */\n isUnique: boolean = false\n\n /**\n * Indicates if column stores array.\n */\n isArray: boolean = false\n\n /**\n * Column's comment.\n */\n comment?: string\n\n /**\n * Column type's length. Used only on some column types.\n * For example type = \"string\" and length = \"100\" means that ORM will create a column with type varchar(100).\n */\n length: string = \"\"\n\n /**\n * Column type's display width. Used only on some column types in MySQL.\n * For example, INT(4) specifies an INT with a display width of four digits.\n */\n width?: number\n\n /**\n * Defines column character set.\n */\n charset?: string\n\n /**\n * Defines column collation.\n */\n collation?: string\n\n /**\n * The precision for a decimal (exact numeric) column (applies only for decimal column), which is the maximum\n * number of digits that are stored for the values.\n */\n precision?: number | null\n\n /**\n * The scale for a decimal (exact numeric) column (applies only for decimal column), which represents the number\n * of digits to the right of the decimal point and must not be greater than precision.\n */\n scale?: number\n\n /**\n * Puts ZEROFILL attribute on to numeric column. Works only for MySQL.\n * If you specify ZEROFILL for a numeric column, MySQL automatically adds the UNSIGNED attribute to the column\n */\n zerofill: boolean = false\n\n /**\n * Puts UNSIGNED attribute on to numeric column. Works only for MySQL.\n */\n unsigned: boolean = false\n\n /**\n * Array of possible enumerated values.\n */\n enum?: string[]\n\n /**\n * Exact name of enum\n */\n enumName?: string\n\n /**\n * Name of the primary key constraint for primary column.\n */\n primaryKeyConstraintName?: string\n\n /**\n * Generated column expression.\n */\n asExpression?: string\n\n /**\n * Generated column type.\n */\n generatedType?: \"VIRTUAL\" | \"STORED\"\n\n /**\n * Identity column type. Supports only in Postgres 10+.\n */\n generatedIdentity?: \"ALWAYS\" | \"BY DEFAULT\"\n\n /**\n * Spatial Feature Type (Geometry, Point, Polygon, etc.)\n */\n spatialFeatureType?: string\n\n /**\n * SRID (Spatial Reference ID (EPSG code))\n */\n srid?: number\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(options?: TableColumnOptions) {\n if (options) {\n this.name = options.name\n this.type = options.type || \"\"\n this.length = options.length || \"\"\n this.width = options.width\n this.charset = options.charset\n this.collation = options.collation\n this.precision = options.precision\n this.scale = options.scale\n this.zerofill = options.zerofill || false\n this.unsigned = this.zerofill ? true : options.unsigned || false\n this.default = options.default\n this.onUpdate = options.onUpdate\n this.isNullable = options.isNullable || false\n this.isGenerated = options.isGenerated || false\n this.generationStrategy = options.generationStrategy\n this.generatedIdentity = options.generatedIdentity\n this.isPrimary = options.isPrimary || false\n this.isUnique = options.isUnique || false\n this.isArray = options.isArray || false\n this.comment = options.comment\n this.enum = options.enum\n this.enumName = options.enumName\n this.primaryKeyConstraintName = options.primaryKeyConstraintName\n this.asExpression = options.asExpression\n this.generatedType = options.generatedType\n this.spatialFeatureType = options.spatialFeatureType\n this.srid = options.srid\n }\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Clones this column to a new column with exact same properties as this column has.\n */\n clone(): TableColumn {\n return new TableColumn(<TableColumnOptions>{\n name: this.name,\n type: this.type,\n length: this.length,\n width: this.width,\n charset: this.charset,\n collation: this.collation,\n precision: this.precision,\n scale: this.scale,\n zerofill: this.zerofill,\n unsigned: this.unsigned,\n enum: this.enum,\n enumName: this.enumName,\n primaryKeyConstraintName: this.primaryKeyConstraintName,\n asExpression: this.asExpression,\n generatedType: this.generatedType,\n default: this.default,\n onUpdate: this.onUpdate,\n isNullable: this.isNullable,\n isGenerated: this.isGenerated,\n generationStrategy: this.generationStrategy,\n generatedIdentity: this.generatedIdentity,\n isPrimary: this.isPrimary,\n isUnique: this.isUnique,\n isArray: this.isArray,\n comment: this.comment,\n spatialFeatureType: this.spatialFeatureType,\n srid: this.srid,\n })\n }\n}\n"],"sourceRoot":"../.."}
@@ -27,6 +27,14 @@ export declare class TableIndex {
27
27
  * Works only in MySQL.
28
28
  */
29
29
  isFulltext: boolean;
30
+ /**
31
+ * NULL_FILTERED indexes are particularly useful for indexing sparse columns, where most rows contain a NULL value.
32
+ * In these cases, the NULL_FILTERED index can be considerably smaller and more efficient to maintain than
33
+ * a normal index that includes NULL values.
34
+ *
35
+ * Works only in Spanner.
36
+ */
37
+ isNullFiltered: boolean;
30
38
  /**
31
39
  * Fulltext parser.
32
40
  * Works only in MySQL.
@@ -19,6 +19,7 @@ class TableIndex {
19
19
  this.isUnique = !!options.isUnique;
20
20
  this.isSpatial = !!options.isSpatial;
21
21
  this.isFulltext = !!options.isFulltext;
22
+ this.isNullFiltered = !!options.isNullFiltered;
22
23
  this.parser = options.parser;
23
24
  this.where = options.where ? options.where : "";
24
25
  }
@@ -35,6 +36,7 @@ class TableIndex {
35
36
  isUnique: this.isUnique,
36
37
  isSpatial: this.isSpatial,
37
38
  isFulltext: this.isFulltext,
39
+ isNullFiltered: this.isNullFiltered,
38
40
  parser: this.parser,
39
41
  where: this.where,
40
42
  });
@@ -52,6 +54,7 @@ class TableIndex {
52
54
  isUnique: indexMetadata.isUnique,
53
55
  isSpatial: indexMetadata.isSpatial,
54
56
  isFulltext: indexMetadata.isFulltext,
57
+ isNullFiltered: indexMetadata.isNullFiltered,
55
58
  parser: indexMetadata.parser,
56
59
  where: indexMetadata.where,
57
60
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/schema-builder/table/TableIndex.ts"],"names":[],"mappings":";;;AAGA;;GAEG;AACH,MAAa,UAAU;IA6CnB,4EAA4E;IAC5E,cAAc;IACd,4EAA4E;IAE5E,YAAY,OAA0B;QAhD7B,mBAAa,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;QAWjD;;WAEG;QACH,gBAAW,GAAa,EAAE,CAAA;QAmCtB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;QACxB,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAA;QACtC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAA;QAClC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,CAAA;QACpC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,CAAA;QACtC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;QAC5B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;IACnD,CAAC;IAED,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAE5E;;OAEG;IACH,KAAK;QACD,OAAO,IAAI,UAAU,CAAoB;YACrC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;YAClC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK;SACpB,CAAC,CAAA;IACN,CAAC;IAED,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAE5E;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,aAA4B;QACtC,OAAO,IAAI,UAAU,CAAoB;YACrC,IAAI,EAAE,aAAa,CAAC,IAAI;YACxB,WAAW,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,CAClC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAClC;YACD,QAAQ,EAAE,aAAa,CAAC,QAAQ;YAChC,SAAS,EAAE,aAAa,CAAC,SAAS;YAClC,UAAU,EAAE,aAAa,CAAC,UAAU;YACpC,MAAM,EAAE,aAAa,CAAC,MAAM;YAC5B,KAAK,EAAE,aAAa,CAAC,KAAK;SAC7B,CAAC,CAAA;IACN,CAAC;CACJ;AAlGD,gCAkGC","file":"TableIndex.js","sourcesContent":["import { IndexMetadata } from \"../../metadata/IndexMetadata\"\nimport { TableIndexOptions } from \"../options/TableIndexOptions\"\n\n/**\n * Database's table index stored in this class.\n */\nexport class TableIndex {\n readonly \"@instanceof\" = Symbol.for(\"TableIndex\")\n\n // -------------------------------------------------------------------------\n // Public Properties\n // -------------------------------------------------------------------------\n\n /**\n * Index name.\n */\n name?: string\n\n /**\n * Columns included in this index.\n */\n columnNames: string[] = []\n\n /**\n * Indicates if this index is unique.\n */\n isUnique: boolean\n\n /**\n * The SPATIAL modifier indexes the entire column and does not allow indexed columns to contain NULL values.\n * Works only in MySQL.\n */\n isSpatial: boolean\n\n /**\n * The FULLTEXT modifier indexes the entire column and does not allow prefixing.\n * Works only in MySQL.\n */\n isFulltext: boolean\n\n /**\n * Fulltext parser.\n * Works only in MySQL.\n */\n parser?: string\n\n /**\n * Index filter condition.\n */\n where: string\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(options: TableIndexOptions) {\n this.name = options.name\n this.columnNames = options.columnNames\n this.isUnique = !!options.isUnique\n this.isSpatial = !!options.isSpatial\n this.isFulltext = !!options.isFulltext\n this.parser = options.parser\n this.where = options.where ? options.where : \"\"\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates a new copy of this index with exactly same properties.\n */\n clone(): TableIndex {\n return new TableIndex(<TableIndexOptions>{\n name: this.name,\n columnNames: [...this.columnNames],\n isUnique: this.isUnique,\n isSpatial: this.isSpatial,\n isFulltext: this.isFulltext,\n parser: this.parser,\n where: this.where,\n })\n }\n\n // -------------------------------------------------------------------------\n // Static Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates index from the index metadata object.\n */\n static create(indexMetadata: IndexMetadata): TableIndex {\n return new TableIndex(<TableIndexOptions>{\n name: indexMetadata.name,\n columnNames: indexMetadata.columns.map(\n (column) => column.databaseName,\n ),\n isUnique: indexMetadata.isUnique,\n isSpatial: indexMetadata.isSpatial,\n isFulltext: indexMetadata.isFulltext,\n parser: indexMetadata.parser,\n where: indexMetadata.where,\n })\n }\n}\n"],"sourceRoot":"../.."}
1
+ {"version":3,"sources":["../../src/schema-builder/table/TableIndex.ts"],"names":[],"mappings":";;;AAGA;;GAEG;AACH,MAAa,UAAU;IAsDnB,4EAA4E;IAC5E,cAAc;IACd,4EAA4E;IAE5E,YAAY,OAA0B;QAzD7B,mBAAa,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;QAWjD;;WAEG;QACH,gBAAW,GAAa,EAAE,CAAA;QA4CtB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;QACxB,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAA;QACtC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAA;QAClC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,CAAA;QACpC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,CAAA;QACtC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,OAAO,CAAC,cAAc,CAAA;QAC9C,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;QAC5B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;IACnD,CAAC;IAED,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAE5E;;OAEG;IACH,KAAK;QACD,OAAO,IAAI,UAAU,CAAoB;YACrC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;YAClC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK;SACpB,CAAC,CAAA;IACN,CAAC;IAED,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAE5E;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,aAA4B;QACtC,OAAO,IAAI,UAAU,CAAoB;YACrC,IAAI,EAAE,aAAa,CAAC,IAAI;YACxB,WAAW,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,CAClC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAClC;YACD,QAAQ,EAAE,aAAa,CAAC,QAAQ;YAChC,SAAS,EAAE,aAAa,CAAC,SAAS;YAClC,UAAU,EAAE,aAAa,CAAC,UAAU;YACpC,cAAc,EAAE,aAAa,CAAC,cAAc;YAC5C,MAAM,EAAE,aAAa,CAAC,MAAM;YAC5B,KAAK,EAAE,aAAa,CAAC,KAAK;SAC7B,CAAC,CAAA;IACN,CAAC;CACJ;AA9GD,gCA8GC","file":"TableIndex.js","sourcesContent":["import { IndexMetadata } from \"../../metadata/IndexMetadata\"\nimport { TableIndexOptions } from \"../options/TableIndexOptions\"\n\n/**\n * Database's table index stored in this class.\n */\nexport class TableIndex {\n readonly \"@instanceof\" = Symbol.for(\"TableIndex\")\n\n // -------------------------------------------------------------------------\n // Public Properties\n // -------------------------------------------------------------------------\n\n /**\n * Index name.\n */\n name?: string\n\n /**\n * Columns included in this index.\n */\n columnNames: string[] = []\n\n /**\n * Indicates if this index is unique.\n */\n isUnique: boolean\n\n /**\n * The SPATIAL modifier indexes the entire column and does not allow indexed columns to contain NULL values.\n * Works only in MySQL.\n */\n isSpatial: boolean\n\n /**\n * The FULLTEXT modifier indexes the entire column and does not allow prefixing.\n * Works only in MySQL.\n */\n isFulltext: boolean\n\n /**\n * NULL_FILTERED indexes are particularly useful for indexing sparse columns, where most rows contain a NULL value.\n * In these cases, the NULL_FILTERED index can be considerably smaller and more efficient to maintain than\n * a normal index that includes NULL values.\n *\n * Works only in Spanner.\n */\n isNullFiltered: boolean\n\n /**\n * Fulltext parser.\n * Works only in MySQL.\n */\n parser?: string\n\n /**\n * Index filter condition.\n */\n where: string\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(options: TableIndexOptions) {\n this.name = options.name\n this.columnNames = options.columnNames\n this.isUnique = !!options.isUnique\n this.isSpatial = !!options.isSpatial\n this.isFulltext = !!options.isFulltext\n this.isNullFiltered = !!options.isNullFiltered\n this.parser = options.parser\n this.where = options.where ? options.where : \"\"\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates a new copy of this index with exactly same properties.\n */\n clone(): TableIndex {\n return new TableIndex(<TableIndexOptions>{\n name: this.name,\n columnNames: [...this.columnNames],\n isUnique: this.isUnique,\n isSpatial: this.isSpatial,\n isFulltext: this.isFulltext,\n isNullFiltered: this.isNullFiltered,\n parser: this.parser,\n where: this.where,\n })\n }\n\n // -------------------------------------------------------------------------\n // Static Methods\n // -------------------------------------------------------------------------\n\n /**\n * Creates index from the index metadata object.\n */\n static create(indexMetadata: IndexMetadata): TableIndex {\n return new TableIndex(<TableIndexOptions>{\n name: indexMetadata.name,\n columnNames: indexMetadata.columns.map(\n (column) => column.databaseName,\n ),\n isUnique: indexMetadata.isUnique,\n isSpatial: indexMetadata.isSpatial,\n isFulltext: indexMetadata.isFulltext,\n isNullFiltered: indexMetadata.isNullFiltered,\n parser: indexMetadata.parser,\n where: indexMetadata.where,\n })\n }\n}\n"],"sourceRoot":"../.."}
@@ -30,6 +30,7 @@ class TableUtils {
30
30
  ? columnMetadata.enum.map((val) => val + "")
31
31
  : columnMetadata.enum,
32
32
  enumName: columnMetadata.enumName,
33
+ primaryKeyConstraintName: columnMetadata.primaryKeyConstraintName,
33
34
  spatialFeatureType: columnMetadata.spatialFeatureType,
34
35
  srid: columnMetadata.srid,
35
36
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/schema-builder/util/TableUtils.ts"],"names":[],"mappings":";;;AAIA,MAAa,UAAU;IACnB,MAAM,CAAC,wBAAwB,CAC3B,cAA8B,EAC9B,MAAc;QAEd,OAAO;YACH,IAAI,EAAE,cAAc,CAAC,YAAY;YACjC,MAAM,EAAE,MAAM,CAAC,eAAe,CAAC,cAAc,CAAC;YAC9C,KAAK,EAAE,cAAc,CAAC,KAAK;YAC3B,OAAO,EAAE,cAAc,CAAC,OAAO;YAC/B,SAAS,EAAE,cAAc,CAAC,SAAS;YACnC,SAAS,EAAE,cAAc,CAAC,SAAS;YACnC,KAAK,EAAE,cAAc,CAAC,KAAK;YAC3B,QAAQ,EAAE,cAAc,CAAC,QAAQ;YACjC,QAAQ,EAAE,cAAc,CAAC,QAAQ;YACjC,YAAY,EAAE,cAAc,CAAC,YAAY;YACzC,aAAa,EAAE,cAAc,CAAC,aAAa;YAC3C,OAAO,EAAE,MAAM,CAAC,gBAAgB,CAAC,cAAc,CAAC;YAChD,QAAQ,EAAE,cAAc,CAAC,QAAQ;YACjC,OAAO,EAAE,cAAc,CAAC,OAAO;YAC/B,WAAW,EAAE,cAAc,CAAC,WAAW;YACvC,kBAAkB,EAAE,cAAc,CAAC,kBAAkB;YACrD,iBAAiB,EAAE,cAAc,CAAC,iBAAiB;YACnD,UAAU,EAAE,cAAc,CAAC,UAAU;YACrC,IAAI,EAAE,MAAM,CAAC,aAAa,CAAC,cAAc,CAAC;YAC1C,SAAS,EAAE,cAAc,CAAC,SAAS;YACnC,QAAQ,EAAE,MAAM,CAAC,iBAAiB,CAAC,cAAc,CAAC;YAClD,OAAO,EAAE,cAAc,CAAC,OAAO,IAAI,KAAK;YACxC,IAAI,EAAE,cAAc,CAAC,IAAI;gBACrB,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC;gBAC5C,CAAC,CAAC,cAAc,CAAC,IAAI;YACzB,QAAQ,EAAE,cAAc,CAAC,QAAQ;YACjC,kBAAkB,EAAE,cAAc,CAAC,kBAAkB;YACrD,IAAI,EAAE,cAAc,CAAC,IAAI;SAC5B,CAAA;IACL,CAAC;CACJ;AApCD,gCAoCC","file":"TableUtils.js","sourcesContent":["import { TableColumnOptions } from \"../options/TableColumnOptions\"\nimport { ColumnMetadata } from \"../../metadata/ColumnMetadata\"\nimport { Driver } from \"../../driver/Driver\"\n\nexport class TableUtils {\n static createTableColumnOptions(\n columnMetadata: ColumnMetadata,\n driver: Driver,\n ): TableColumnOptions {\n return {\n name: columnMetadata.databaseName,\n length: driver.getColumnLength(columnMetadata),\n width: columnMetadata.width,\n charset: columnMetadata.charset,\n collation: columnMetadata.collation,\n precision: columnMetadata.precision,\n scale: columnMetadata.scale,\n zerofill: columnMetadata.zerofill,\n unsigned: columnMetadata.unsigned,\n asExpression: columnMetadata.asExpression,\n generatedType: columnMetadata.generatedType,\n default: driver.normalizeDefault(columnMetadata),\n onUpdate: columnMetadata.onUpdate,\n comment: columnMetadata.comment,\n isGenerated: columnMetadata.isGenerated,\n generationStrategy: columnMetadata.generationStrategy,\n generatedIdentity: columnMetadata.generatedIdentity,\n isNullable: columnMetadata.isNullable,\n type: driver.normalizeType(columnMetadata),\n isPrimary: columnMetadata.isPrimary,\n isUnique: driver.normalizeIsUnique(columnMetadata),\n isArray: columnMetadata.isArray || false,\n enum: columnMetadata.enum\n ? columnMetadata.enum.map((val) => val + \"\")\n : columnMetadata.enum,\n enumName: columnMetadata.enumName,\n spatialFeatureType: columnMetadata.spatialFeatureType,\n srid: columnMetadata.srid,\n }\n }\n}\n"],"sourceRoot":"../.."}
1
+ {"version":3,"sources":["../../src/schema-builder/util/TableUtils.ts"],"names":[],"mappings":";;;AAIA,MAAa,UAAU;IACnB,MAAM,CAAC,wBAAwB,CAC3B,cAA8B,EAC9B,MAAc;QAEd,OAAO;YACH,IAAI,EAAE,cAAc,CAAC,YAAY;YACjC,MAAM,EAAE,MAAM,CAAC,eAAe,CAAC,cAAc,CAAC;YAC9C,KAAK,EAAE,cAAc,CAAC,KAAK;YAC3B,OAAO,EAAE,cAAc,CAAC,OAAO;YAC/B,SAAS,EAAE,cAAc,CAAC,SAAS;YACnC,SAAS,EAAE,cAAc,CAAC,SAAS;YACnC,KAAK,EAAE,cAAc,CAAC,KAAK;YAC3B,QAAQ,EAAE,cAAc,CAAC,QAAQ;YACjC,QAAQ,EAAE,cAAc,CAAC,QAAQ;YACjC,YAAY,EAAE,cAAc,CAAC,YAAY;YACzC,aAAa,EAAE,cAAc,CAAC,aAAa;YAC3C,OAAO,EAAE,MAAM,CAAC,gBAAgB,CAAC,cAAc,CAAC;YAChD,QAAQ,EAAE,cAAc,CAAC,QAAQ;YACjC,OAAO,EAAE,cAAc,CAAC,OAAO;YAC/B,WAAW,EAAE,cAAc,CAAC,WAAW;YACvC,kBAAkB,EAAE,cAAc,CAAC,kBAAkB;YACrD,iBAAiB,EAAE,cAAc,CAAC,iBAAiB;YACnD,UAAU,EAAE,cAAc,CAAC,UAAU;YACrC,IAAI,EAAE,MAAM,CAAC,aAAa,CAAC,cAAc,CAAC;YAC1C,SAAS,EAAE,cAAc,CAAC,SAAS;YACnC,QAAQ,EAAE,MAAM,CAAC,iBAAiB,CAAC,cAAc,CAAC;YAClD,OAAO,EAAE,cAAc,CAAC,OAAO,IAAI,KAAK;YACxC,IAAI,EAAE,cAAc,CAAC,IAAI;gBACrB,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC;gBAC5C,CAAC,CAAC,cAAc,CAAC,IAAI;YACzB,QAAQ,EAAE,cAAc,CAAC,QAAQ;YACjC,wBAAwB,EAAE,cAAc,CAAC,wBAAwB;YACjE,kBAAkB,EAAE,cAAc,CAAC,kBAAkB;YACrD,IAAI,EAAE,cAAc,CAAC,IAAI;SAC5B,CAAA;IACL,CAAC;CACJ;AArCD,gCAqCC","file":"TableUtils.js","sourcesContent":["import { TableColumnOptions } from \"../options/TableColumnOptions\"\nimport { ColumnMetadata } from \"../../metadata/ColumnMetadata\"\nimport { Driver } from \"../../driver/Driver\"\n\nexport class TableUtils {\n static createTableColumnOptions(\n columnMetadata: ColumnMetadata,\n driver: Driver,\n ): TableColumnOptions {\n return {\n name: columnMetadata.databaseName,\n length: driver.getColumnLength(columnMetadata),\n width: columnMetadata.width,\n charset: columnMetadata.charset,\n collation: columnMetadata.collation,\n precision: columnMetadata.precision,\n scale: columnMetadata.scale,\n zerofill: columnMetadata.zerofill,\n unsigned: columnMetadata.unsigned,\n asExpression: columnMetadata.asExpression,\n generatedType: columnMetadata.generatedType,\n default: driver.normalizeDefault(columnMetadata),\n onUpdate: columnMetadata.onUpdate,\n comment: columnMetadata.comment,\n isGenerated: columnMetadata.isGenerated,\n generationStrategy: columnMetadata.generationStrategy,\n generatedIdentity: columnMetadata.generatedIdentity,\n isNullable: columnMetadata.isNullable,\n type: driver.normalizeType(columnMetadata),\n isPrimary: columnMetadata.isPrimary,\n isUnique: driver.normalizeIsUnique(columnMetadata),\n isArray: columnMetadata.isArray || false,\n enum: columnMetadata.enum\n ? columnMetadata.enum.map((val) => val + \"\")\n : columnMetadata.enum,\n enumName: columnMetadata.enumName,\n primaryKeyConstraintName: columnMetadata.primaryKeyConstraintName,\n spatialFeatureType: columnMetadata.spatialFeatureType,\n srid: columnMetadata.srid,\n }\n }\n}\n"],"sourceRoot":"../.."}
@@ -4,7 +4,7 @@ export declare class OrmUtils {
4
4
  * Chunks array into pieces.
5
5
  */
6
6
  static chunk<T>(array: T[], size: number): T[][];
7
- static splitClassesAndStrings<T>(clsesAndStrings: (string | T)[]): [T[], string[]];
7
+ static splitClassesAndStrings<T>(classesAndStrings: (string | T)[]): [T[], string[]];
8
8
  static groupBy<T, R>(array: T[], propertyCallback: (item: T) => R): {
9
9
  id: R;
10
10
  items: T[];
package/util/OrmUtils.js CHANGED
@@ -13,10 +13,10 @@ class OrmUtils {
13
13
  return array.slice(i * size, i * size + size);
14
14
  });
15
15
  }
16
- static splitClassesAndStrings(clsesAndStrings) {
16
+ static splitClassesAndStrings(classesAndStrings) {
17
17
  return [
18
- clsesAndStrings.filter((cls) => typeof cls !== "string"),
19
- clsesAndStrings.filter((str) => typeof str === "string"),
18
+ classesAndStrings.filter((cls) => typeof cls !== "string"),
19
+ classesAndStrings.filter((str) => typeof str === "string"),
20
20
  ];
21
21
  }
22
22
  static groupBy(array, propertyCallback) {
@@ -272,7 +272,7 @@ class OrmUtils {
272
272
  // Especially useful on the step where we compare prototypes
273
273
  if (x === y)
274
274
  return true;
275
- // Unequal, but either is null or undefined (use case: jsonb comparasion)
275
+ // Unequal, but either is null or undefined (use case: jsonb comparison)
276
276
  // PR #3776, todo: add tests
277
277
  if (x === null || y === null || x === undefined || y === undefined)
278
278
  return false;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/util/OrmUtils.ts"],"names":[],"mappings":"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","file":"OrmUtils.js","sourcesContent":["import { ObjectLiteral } from \"../common/ObjectLiteral\"\n\nexport class OrmUtils {\n // -------------------------------------------------------------------------\n // Public methods\n // -------------------------------------------------------------------------\n\n /**\n * Chunks array into pieces.\n */\n static chunk<T>(array: T[], size: number): T[][] {\n return Array.from(Array(Math.ceil(array.length / size)), (_, i) => {\n return array.slice(i * size, i * size + size)\n })\n }\n\n static splitClassesAndStrings<T>(\n clsesAndStrings: (string | T)[],\n ): [T[], string[]] {\n return [\n clsesAndStrings.filter((cls): cls is T => typeof cls !== \"string\"),\n clsesAndStrings.filter(\n (str): str is string => typeof str === \"string\",\n ),\n ]\n }\n\n static groupBy<T, R>(\n array: T[],\n propertyCallback: (item: T) => R,\n ): { id: R; items: T[] }[] {\n return array.reduce((groupedArray, value) => {\n const key = propertyCallback(value)\n let grouped = groupedArray.find((i) => i.id === key)\n if (!grouped) {\n grouped = { id: key, items: [] }\n groupedArray.push(grouped)\n }\n grouped.items.push(value)\n return groupedArray\n }, [] as Array<{ id: R; items: T[] }>)\n }\n\n static uniq<T>(array: T[], criteria?: (item: T) => any): T[]\n static uniq<T, K extends keyof T>(array: T[], property: K): T[]\n static uniq<T, K extends keyof T>(\n array: T[],\n criteriaOrProperty?: ((item: T) => any) | K,\n ): T[] {\n return array.reduce((uniqueArray, item) => {\n let found: boolean = false\n if (typeof criteriaOrProperty === \"function\") {\n const itemValue = criteriaOrProperty(item)\n found = !!uniqueArray.find(\n (uniqueItem) =>\n criteriaOrProperty(uniqueItem) === itemValue,\n )\n } else if (typeof criteriaOrProperty === \"string\") {\n found = !!uniqueArray.find(\n (uniqueItem) =>\n uniqueItem[criteriaOrProperty] ===\n item[criteriaOrProperty],\n )\n } else {\n found = uniqueArray.indexOf(item) !== -1\n }\n\n if (!found) uniqueArray.push(item)\n\n return uniqueArray\n }, [] as T[])\n }\n\n // Checks if it's an object made by Object.create(null), {} or new Object()\n private static isPlainObject(item: any) {\n if (item === null || item === undefined) {\n return false\n }\n\n return !item.constructor || item.constructor === Object\n }\n\n private static mergeArrayKey(\n target: any,\n key: number,\n value: any,\n memo: Map<any, any>,\n ) {\n // Have we seen this before? Prevent infinite recursion.\n if (memo.has(value)) {\n target[key] = memo.get(value)\n return\n }\n\n if (value instanceof Promise) {\n // Skip promises entirely.\n // This is a hold-over from the old code & is because we don't want to pull in\n // the lazy fields. Ideally we'd remove these promises via another function first\n // but for now we have to do it here.\n return\n }\n\n if (!this.isPlainObject(value) && !Array.isArray(value)) {\n target[key] = value\n return\n }\n\n if (!target[key]) {\n target[key] = Array.isArray(value) ? [] : {}\n }\n\n memo.set(value, target[key])\n this.merge(target[key], value, memo)\n memo.delete(value)\n }\n\n private static mergeObjectKey(\n target: any,\n key: string,\n value: any,\n memo: Map<any, any>,\n ) {\n // Have we seen this before? Prevent infinite recursion.\n if (memo.has(value)) {\n Object.assign(target, { [key]: memo.get(value) })\n return\n }\n\n if (value instanceof Promise) {\n // Skip promises entirely.\n // This is a hold-over from the old code & is because we don't want to pull in\n // the lazy fields. Ideally we'd remove these promises via another function first\n // but for now we have to do it here.\n return\n }\n\n if (!this.isPlainObject(value) && !Array.isArray(value)) {\n Object.assign(target, { [key]: value })\n return\n }\n\n if (!target[key]) {\n Object.assign(target, { [key]: Array.isArray(value) ? [] : {} })\n }\n\n memo.set(value, target[key])\n this.merge(target[key], value, memo)\n memo.delete(value)\n }\n\n private static merge(\n target: any,\n source: any,\n memo: Map<any, any> = new Map(),\n ): any {\n if (this.isPlainObject(target) && this.isPlainObject(source)) {\n for (const key of Object.keys(source)) {\n this.mergeObjectKey(target, key, source[key], memo)\n }\n }\n\n if (Array.isArray(target) && Array.isArray(source)) {\n for (let key = 0; key < source.length; key++) {\n this.mergeArrayKey(target, key, source[key], memo)\n }\n }\n }\n\n /**\n * Deep Object.assign.\n */\n static mergeDeep(target: any, ...sources: any[]): any {\n if (!sources.length) {\n return target\n }\n\n for (const source of sources) {\n OrmUtils.merge(target, source)\n }\n\n return target\n }\n\n /**\n * Deep compare objects.\n *\n * @see http://stackoverflow.com/a/1144249\n */\n static deepCompare(...args: any[]): boolean {\n let i: any, l: any, leftChain: any, rightChain: any\n\n if (arguments.length < 1) {\n return true // Die silently? Don't know how to handle such case, please help...\n // throw \"Need two or more arguments to compare\";\n }\n\n for (i = 1, l = arguments.length; i < l; i++) {\n leftChain = [] // Todo: this can be cached\n rightChain = []\n\n if (\n !this.compare2Objects(\n leftChain,\n rightChain,\n arguments[0],\n arguments[i],\n )\n ) {\n return false\n }\n }\n\n return true\n }\n\n /**\n * Gets deeper value of object.\n */\n static deepValue(obj: ObjectLiteral, path: string) {\n const segments = path.split(\".\")\n for (let i = 0, len = segments.length; i < len; i++) {\n obj = obj[segments[i]]\n }\n return obj\n }\n\n static replaceEmptyObjectsWithBooleans(obj: any) {\n for (let key in obj) {\n if (obj[key] && typeof obj[key] === \"object\") {\n if (Object.keys(obj[key]).length === 0) {\n obj[key] = true\n } else {\n this.replaceEmptyObjectsWithBooleans(obj[key])\n }\n }\n }\n }\n\n static propertyPathsToTruthyObject(paths: string[]) {\n let obj: any = {}\n for (let path of paths) {\n const props = path.split(\".\")\n if (!props.length) continue\n\n if (!obj[props[0]] || obj[props[0]] === true) {\n obj[props[0]] = {}\n }\n let recursiveChild = obj[props[0]]\n for (let [key, prop] of props.entries()) {\n if (key === 0) continue\n\n if (recursiveChild[prop]) {\n recursiveChild = recursiveChild[prop]\n } else if (key === props.length - 1) {\n recursiveChild[prop] = {}\n recursiveChild = null\n } else {\n recursiveChild[prop] = {}\n recursiveChild = recursiveChild[prop]\n }\n }\n }\n this.replaceEmptyObjectsWithBooleans(obj)\n return obj\n }\n\n /**\n * Check if two entity-id-maps are the same\n */\n static compareIds(\n firstId: ObjectLiteral | undefined,\n secondId: ObjectLiteral | undefined,\n ): boolean {\n if (\n firstId === undefined ||\n firstId === null ||\n secondId === undefined ||\n secondId === null\n )\n return false\n\n // Optimized version for the common case\n if (\n ((typeof firstId.id === \"string\" &&\n typeof secondId.id === \"string\") ||\n (typeof firstId.id === \"number\" &&\n typeof secondId.id === \"number\")) &&\n Object.keys(firstId).length === 1 &&\n Object.keys(secondId).length === 1\n ) {\n return firstId.id === secondId.id\n }\n\n return OrmUtils.deepCompare(firstId, secondId)\n }\n\n /**\n * Transforms given value into boolean value.\n */\n static toBoolean(value: any): boolean {\n if (typeof value === \"boolean\") return value\n\n if (typeof value === \"string\") return value === \"true\" || value === \"1\"\n\n if (typeof value === \"number\") return value > 0\n\n return false\n }\n\n /**\n * Composes an object from the given array of keys and values.\n */\n static zipObject(keys: any[], values: any[]): ObjectLiteral {\n return keys.reduce((object, column, index) => {\n object[column] = values[index]\n return object\n }, {} as ObjectLiteral)\n }\n\n /**\n * Compares two arrays.\n */\n static isArraysEqual(arr1: any[], arr2: any[]): boolean {\n if (arr1.length !== arr2.length) return false\n return arr1.every((element) => {\n return arr2.indexOf(element) !== -1\n })\n }\n\n static areMutuallyExclusive<T>(...lists: T[][]): boolean {\n const haveSharedObjects = lists.some((list) => {\n const otherLists = lists.filter((otherList) => otherList !== list)\n return list.some((item) =>\n otherLists.some((otherList) => otherList.includes(item)),\n )\n })\n return !haveSharedObjects\n }\n\n // -------------------------------------------------------------------------\n // Private methods\n // -------------------------------------------------------------------------\n\n private static compare2Objects(\n leftChain: any,\n rightChain: any,\n x: any,\n y: any,\n ) {\n let p\n\n // remember that NaN === NaN returns false\n // and isNaN(undefined) returns true\n if (Number.isNaN(x) && Number.isNaN(y)) return true\n\n // Compare primitives and functions.\n // Check if both arguments link to the same object.\n // Especially useful on the step where we compare prototypes\n if (x === y) return true\n\n // Unequal, but either is null or undefined (use case: jsonb comparasion)\n // PR #3776, todo: add tests\n if (x === null || y === null || x === undefined || y === undefined)\n return false\n\n // Fix the buffer compare bug.\n // See: https://github.com/typeorm/typeorm/issues/3654\n if (\n (typeof x.equals === \"function\" ||\n typeof x.equals === \"function\") &&\n x.equals(y)\n )\n return true\n\n // Works in case when functions are created in constructor.\n // Comparing dates is a common scenario. Another built-ins?\n // We can even handle functions passed across iframes\n if (\n (typeof x === \"function\" && typeof y === \"function\") ||\n (x instanceof Date && y instanceof Date) ||\n (x instanceof RegExp && y instanceof RegExp) ||\n (typeof x === \"string\" && typeof y === \"string\") ||\n (typeof x === \"number\" && typeof y === \"number\")\n )\n return x.toString() === y.toString()\n\n // At last checking prototypes as good as we can\n if (!(typeof x === \"object\" && typeof y === \"object\")) return false\n\n if (x.isPrototypeOf(y) || y.isPrototypeOf(x)) return false\n\n if (x.constructor !== y.constructor) return false\n\n if (x.prototype !== y.prototype) return false\n\n // Check for infinitive linking loops\n if (leftChain.indexOf(x) > -1 || rightChain.indexOf(y) > -1)\n return false\n\n // Quick checking of one object being a subset of another.\n // todo: cache the structure of arguments[0] for performance\n for (p in y) {\n if (y.hasOwnProperty(p) !== x.hasOwnProperty(p)) {\n return false\n } else if (typeof y[p] !== typeof x[p]) {\n return false\n }\n }\n\n for (p in x) {\n if (y.hasOwnProperty(p) !== x.hasOwnProperty(p)) {\n return false\n } else if (typeof y[p] !== typeof x[p]) {\n return false\n }\n\n switch (typeof x[p]) {\n case \"object\":\n case \"function\":\n leftChain.push(x)\n rightChain.push(y)\n\n if (\n !this.compare2Objects(leftChain, rightChain, x[p], y[p])\n ) {\n return false\n }\n\n leftChain.pop()\n rightChain.pop()\n break\n\n default:\n if (x[p] !== y[p]) {\n return false\n }\n break\n }\n }\n\n return true\n }\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../src/util/OrmUtils.ts"],"names":[],"mappings":"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","file":"OrmUtils.js","sourcesContent":["import { ObjectLiteral } from \"../common/ObjectLiteral\"\n\nexport class OrmUtils {\n // -------------------------------------------------------------------------\n // Public methods\n // -------------------------------------------------------------------------\n\n /**\n * Chunks array into pieces.\n */\n static chunk<T>(array: T[], size: number): T[][] {\n return Array.from(Array(Math.ceil(array.length / size)), (_, i) => {\n return array.slice(i * size, i * size + size)\n })\n }\n\n static splitClassesAndStrings<T>(\n classesAndStrings: (string | T)[],\n ): [T[], string[]] {\n return [\n classesAndStrings.filter(\n (cls): cls is T => typeof cls !== \"string\",\n ),\n classesAndStrings.filter(\n (str): str is string => typeof str === \"string\",\n ),\n ]\n }\n\n static groupBy<T, R>(\n array: T[],\n propertyCallback: (item: T) => R,\n ): { id: R; items: T[] }[] {\n return array.reduce((groupedArray, value) => {\n const key = propertyCallback(value)\n let grouped = groupedArray.find((i) => i.id === key)\n if (!grouped) {\n grouped = { id: key, items: [] }\n groupedArray.push(grouped)\n }\n grouped.items.push(value)\n return groupedArray\n }, [] as Array<{ id: R; items: T[] }>)\n }\n\n static uniq<T>(array: T[], criteria?: (item: T) => any): T[]\n static uniq<T, K extends keyof T>(array: T[], property: K): T[]\n static uniq<T, K extends keyof T>(\n array: T[],\n criteriaOrProperty?: ((item: T) => any) | K,\n ): T[] {\n return array.reduce((uniqueArray, item) => {\n let found: boolean = false\n if (typeof criteriaOrProperty === \"function\") {\n const itemValue = criteriaOrProperty(item)\n found = !!uniqueArray.find(\n (uniqueItem) =>\n criteriaOrProperty(uniqueItem) === itemValue,\n )\n } else if (typeof criteriaOrProperty === \"string\") {\n found = !!uniqueArray.find(\n (uniqueItem) =>\n uniqueItem[criteriaOrProperty] ===\n item[criteriaOrProperty],\n )\n } else {\n found = uniqueArray.indexOf(item) !== -1\n }\n\n if (!found) uniqueArray.push(item)\n\n return uniqueArray\n }, [] as T[])\n }\n\n // Checks if it's an object made by Object.create(null), {} or new Object()\n private static isPlainObject(item: any) {\n if (item === null || item === undefined) {\n return false\n }\n\n return !item.constructor || item.constructor === Object\n }\n\n private static mergeArrayKey(\n target: any,\n key: number,\n value: any,\n memo: Map<any, any>,\n ) {\n // Have we seen this before? Prevent infinite recursion.\n if (memo.has(value)) {\n target[key] = memo.get(value)\n return\n }\n\n if (value instanceof Promise) {\n // Skip promises entirely.\n // This is a hold-over from the old code & is because we don't want to pull in\n // the lazy fields. Ideally we'd remove these promises via another function first\n // but for now we have to do it here.\n return\n }\n\n if (!this.isPlainObject(value) && !Array.isArray(value)) {\n target[key] = value\n return\n }\n\n if (!target[key]) {\n target[key] = Array.isArray(value) ? [] : {}\n }\n\n memo.set(value, target[key])\n this.merge(target[key], value, memo)\n memo.delete(value)\n }\n\n private static mergeObjectKey(\n target: any,\n key: string,\n value: any,\n memo: Map<any, any>,\n ) {\n // Have we seen this before? Prevent infinite recursion.\n if (memo.has(value)) {\n Object.assign(target, { [key]: memo.get(value) })\n return\n }\n\n if (value instanceof Promise) {\n // Skip promises entirely.\n // This is a hold-over from the old code & is because we don't want to pull in\n // the lazy fields. Ideally we'd remove these promises via another function first\n // but for now we have to do it here.\n return\n }\n\n if (!this.isPlainObject(value) && !Array.isArray(value)) {\n Object.assign(target, { [key]: value })\n return\n }\n\n if (!target[key]) {\n Object.assign(target, { [key]: Array.isArray(value) ? [] : {} })\n }\n\n memo.set(value, target[key])\n this.merge(target[key], value, memo)\n memo.delete(value)\n }\n\n private static merge(\n target: any,\n source: any,\n memo: Map<any, any> = new Map(),\n ): any {\n if (this.isPlainObject(target) && this.isPlainObject(source)) {\n for (const key of Object.keys(source)) {\n this.mergeObjectKey(target, key, source[key], memo)\n }\n }\n\n if (Array.isArray(target) && Array.isArray(source)) {\n for (let key = 0; key < source.length; key++) {\n this.mergeArrayKey(target, key, source[key], memo)\n }\n }\n }\n\n /**\n * Deep Object.assign.\n */\n static mergeDeep(target: any, ...sources: any[]): any {\n if (!sources.length) {\n return target\n }\n\n for (const source of sources) {\n OrmUtils.merge(target, source)\n }\n\n return target\n }\n\n /**\n * Deep compare objects.\n *\n * @see http://stackoverflow.com/a/1144249\n */\n static deepCompare(...args: any[]): boolean {\n let i: any, l: any, leftChain: any, rightChain: any\n\n if (arguments.length < 1) {\n return true // Die silently? Don't know how to handle such case, please help...\n // throw \"Need two or more arguments to compare\";\n }\n\n for (i = 1, l = arguments.length; i < l; i++) {\n leftChain = [] // Todo: this can be cached\n rightChain = []\n\n if (\n !this.compare2Objects(\n leftChain,\n rightChain,\n arguments[0],\n arguments[i],\n )\n ) {\n return false\n }\n }\n\n return true\n }\n\n /**\n * Gets deeper value of object.\n */\n static deepValue(obj: ObjectLiteral, path: string) {\n const segments = path.split(\".\")\n for (let i = 0, len = segments.length; i < len; i++) {\n obj = obj[segments[i]]\n }\n return obj\n }\n\n static replaceEmptyObjectsWithBooleans(obj: any) {\n for (let key in obj) {\n if (obj[key] && typeof obj[key] === \"object\") {\n if (Object.keys(obj[key]).length === 0) {\n obj[key] = true\n } else {\n this.replaceEmptyObjectsWithBooleans(obj[key])\n }\n }\n }\n }\n\n static propertyPathsToTruthyObject(paths: string[]) {\n let obj: any = {}\n for (let path of paths) {\n const props = path.split(\".\")\n if (!props.length) continue\n\n if (!obj[props[0]] || obj[props[0]] === true) {\n obj[props[0]] = {}\n }\n let recursiveChild = obj[props[0]]\n for (let [key, prop] of props.entries()) {\n if (key === 0) continue\n\n if (recursiveChild[prop]) {\n recursiveChild = recursiveChild[prop]\n } else if (key === props.length - 1) {\n recursiveChild[prop] = {}\n recursiveChild = null\n } else {\n recursiveChild[prop] = {}\n recursiveChild = recursiveChild[prop]\n }\n }\n }\n this.replaceEmptyObjectsWithBooleans(obj)\n return obj\n }\n\n /**\n * Check if two entity-id-maps are the same\n */\n static compareIds(\n firstId: ObjectLiteral | undefined,\n secondId: ObjectLiteral | undefined,\n ): boolean {\n if (\n firstId === undefined ||\n firstId === null ||\n secondId === undefined ||\n secondId === null\n )\n return false\n\n // Optimized version for the common case\n if (\n ((typeof firstId.id === \"string\" &&\n typeof secondId.id === \"string\") ||\n (typeof firstId.id === \"number\" &&\n typeof secondId.id === \"number\")) &&\n Object.keys(firstId).length === 1 &&\n Object.keys(secondId).length === 1\n ) {\n return firstId.id === secondId.id\n }\n\n return OrmUtils.deepCompare(firstId, secondId)\n }\n\n /**\n * Transforms given value into boolean value.\n */\n static toBoolean(value: any): boolean {\n if (typeof value === \"boolean\") return value\n\n if (typeof value === \"string\") return value === \"true\" || value === \"1\"\n\n if (typeof value === \"number\") return value > 0\n\n return false\n }\n\n /**\n * Composes an object from the given array of keys and values.\n */\n static zipObject(keys: any[], values: any[]): ObjectLiteral {\n return keys.reduce((object, column, index) => {\n object[column] = values[index]\n return object\n }, {} as ObjectLiteral)\n }\n\n /**\n * Compares two arrays.\n */\n static isArraysEqual(arr1: any[], arr2: any[]): boolean {\n if (arr1.length !== arr2.length) return false\n return arr1.every((element) => {\n return arr2.indexOf(element) !== -1\n })\n }\n\n static areMutuallyExclusive<T>(...lists: T[][]): boolean {\n const haveSharedObjects = lists.some((list) => {\n const otherLists = lists.filter((otherList) => otherList !== list)\n return list.some((item) =>\n otherLists.some((otherList) => otherList.includes(item)),\n )\n })\n return !haveSharedObjects\n }\n\n // -------------------------------------------------------------------------\n // Private methods\n // -------------------------------------------------------------------------\n\n private static compare2Objects(\n leftChain: any,\n rightChain: any,\n x: any,\n y: any,\n ) {\n let p\n\n // remember that NaN === NaN returns false\n // and isNaN(undefined) returns true\n if (Number.isNaN(x) && Number.isNaN(y)) return true\n\n // Compare primitives and functions.\n // Check if both arguments link to the same object.\n // Especially useful on the step where we compare prototypes\n if (x === y) return true\n\n // Unequal, but either is null or undefined (use case: jsonb comparison)\n // PR #3776, todo: add tests\n if (x === null || y === null || x === undefined || y === undefined)\n return false\n\n // Fix the buffer compare bug.\n // See: https://github.com/typeorm/typeorm/issues/3654\n if (\n (typeof x.equals === \"function\" ||\n typeof x.equals === \"function\") &&\n x.equals(y)\n )\n return true\n\n // Works in case when functions are created in constructor.\n // Comparing dates is a common scenario. Another built-ins?\n // We can even handle functions passed across iframes\n if (\n (typeof x === \"function\" && typeof y === \"function\") ||\n (x instanceof Date && y instanceof Date) ||\n (x instanceof RegExp && y instanceof RegExp) ||\n (typeof x === \"string\" && typeof y === \"string\") ||\n (typeof x === \"number\" && typeof y === \"number\")\n )\n return x.toString() === y.toString()\n\n // At last checking prototypes as good as we can\n if (!(typeof x === \"object\" && typeof y === \"object\")) return false\n\n if (x.isPrototypeOf(y) || y.isPrototypeOf(x)) return false\n\n if (x.constructor !== y.constructor) return false\n\n if (x.prototype !== y.prototype) return false\n\n // Check for infinitive linking loops\n if (leftChain.indexOf(x) > -1 || rightChain.indexOf(y) > -1)\n return false\n\n // Quick checking of one object being a subset of another.\n // todo: cache the structure of arguments[0] for performance\n for (p in y) {\n if (y.hasOwnProperty(p) !== x.hasOwnProperty(p)) {\n return false\n } else if (typeof y[p] !== typeof x[p]) {\n return false\n }\n }\n\n for (p in x) {\n if (y.hasOwnProperty(p) !== x.hasOwnProperty(p)) {\n return false\n } else if (typeof y[p] !== typeof x[p]) {\n return false\n }\n\n switch (typeof x[p]) {\n case \"object\":\n case \"function\":\n leftChain.push(x)\n rightChain.push(y)\n\n if (\n !this.compare2Objects(leftChain, rightChain, x[p], y[p])\n ) {\n return false\n }\n\n leftChain.pop()\n rightChain.pop()\n break\n\n default:\n if (x[p] !== y[p]) {\n return false\n }\n break\n }\n }\n\n return true\n }\n}\n"],"sourceRoot":".."}
@@ -0,0 +1 @@
1
+ export declare const escapeRegExp: (s: String) => string;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.escapeRegExp = void 0;
4
+ // Escape special characters in regular expressions
5
+ // Per https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Escaping
6
+ const ESCAPE_REGEXP = /[.*+\-?^${}()|[\]\\]/g;
7
+ const escapeRegExp = (s) => s.replace(ESCAPE_REGEXP, "\\$&");
8
+ exports.escapeRegExp = escapeRegExp;
9
+
10
+ //# sourceMappingURL=escapeRegExp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/util/escapeRegExp.ts"],"names":[],"mappings":";;;AAAA,mDAAmD;AACnD,iGAAiG;AACjG,MAAM,aAAa,GAAG,uBAAuB,CAAA;AACtC,MAAM,YAAY,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA;AAA9D,QAAA,YAAY,gBAAkD","file":"escapeRegExp.js","sourcesContent":["// Escape special characters in regular expressions\n// Per https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Escaping\nconst ESCAPE_REGEXP = /[.*+\\-?^${}()|[\\]\\\\]/g\nexport const escapeRegExp = (s: String) => s.replace(ESCAPE_REGEXP, \"\\\\$&\")\n"],"sourceRoot":".."}