typeorm 0.3.10 → 0.3.11-dev.1cb738a

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 (252) hide show
  1. package/README.md +5 -3
  2. package/browser/cli-ts-node-commonjs.js +0 -0
  3. package/browser/cli-ts-node-esm.js +0 -0
  4. package/browser/decorator/columns/VirtualColumn.d.ts +10 -0
  5. package/browser/decorator/columns/VirtualColumn.js +46 -0
  6. package/browser/decorator/columns/VirtualColumn.js.map +1 -0
  7. package/browser/decorator/options/VirtualColumnOptions.d.ts +27 -0
  8. package/browser/decorator/options/VirtualColumnOptions.js +3 -0
  9. package/browser/decorator/options/VirtualColumnOptions.js.map +1 -0
  10. package/browser/driver/aurora-mysql/AuroraMysqlDriver.js +4 -0
  11. package/browser/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
  12. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.d.ts +1 -1
  13. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js +26 -7
  14. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
  15. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js +0 -6
  16. package/browser/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
  17. package/browser/driver/cockroachdb/CockroachQueryRunner.d.ts +1 -1
  18. package/browser/driver/cockroachdb/CockroachQueryRunner.js +5 -3
  19. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  20. package/browser/driver/mysql/MysqlDriver.js +8 -0
  21. package/browser/driver/mysql/MysqlDriver.js.map +1 -1
  22. package/browser/driver/mysql/MysqlQueryRunner.d.ts +1 -1
  23. package/browser/driver/mysql/MysqlQueryRunner.js +5 -3
  24. package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
  25. package/browser/driver/oracle/OracleDriver.js +4 -0
  26. package/browser/driver/oracle/OracleDriver.js.map +1 -1
  27. package/browser/driver/oracle/OracleQueryRunner.d.ts +1 -1
  28. package/browser/driver/oracle/OracleQueryRunner.js +5 -3
  29. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  30. package/browser/driver/postgres/PostgresDriver.js +4 -0
  31. package/browser/driver/postgres/PostgresDriver.js.map +1 -1
  32. package/browser/driver/postgres/PostgresQueryRunner.d.ts +18 -2
  33. package/browser/driver/postgres/PostgresQueryRunner.js +105 -3
  34. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  35. package/browser/driver/react-native/ReactNativeQueryRunner.js +4 -4
  36. package/browser/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  37. package/browser/driver/sap/SapDriver.js +4 -0
  38. package/browser/driver/sap/SapDriver.js.map +1 -1
  39. package/browser/driver/sap/SapQueryRunner.d.ts +1 -1
  40. package/browser/driver/sap/SapQueryRunner.js +5 -3
  41. package/browser/driver/sap/SapQueryRunner.js.map +1 -1
  42. package/browser/driver/spanner/SpannerDriver.js +4 -0
  43. package/browser/driver/spanner/SpannerDriver.js.map +1 -1
  44. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js +10 -0
  45. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  46. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +1 -1
  47. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +5 -3
  48. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  49. package/browser/driver/sqlserver/SqlServerDriver.js +4 -0
  50. package/browser/driver/sqlserver/SqlServerDriver.js.map +1 -1
  51. package/browser/driver/sqlserver/SqlServerQueryRunner.d.ts +1 -1
  52. package/browser/driver/sqlserver/SqlServerQueryRunner.js +5 -3
  53. package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  54. package/browser/find-options/FindOperatorType.d.ts +1 -1
  55. package/browser/find-options/FindOperatorType.js.map +1 -1
  56. package/browser/find-options/FindOptionsOrder.d.ts +1 -1
  57. package/browser/find-options/FindOptionsOrder.js.map +1 -1
  58. package/browser/find-options/FindOptionsRelations.d.ts +1 -1
  59. package/browser/find-options/FindOptionsRelations.js.map +1 -1
  60. package/browser/find-options/FindOptionsSelect.d.ts +1 -1
  61. package/browser/find-options/FindOptionsSelect.js.map +1 -1
  62. package/browser/find-options/FindOptionsWhere.d.ts +2 -2
  63. package/browser/find-options/FindOptionsWhere.js.map +1 -1
  64. package/browser/find-options/operator/And.d.ts +2 -0
  65. package/browser/find-options/operator/And.js +6 -0
  66. package/browser/find-options/operator/And.js.map +1 -0
  67. package/browser/find-options/operator/Any.d.ts +1 -1
  68. package/browser/find-options/operator/Any.js.map +1 -1
  69. package/browser/find-options/operator/ArrayContainedBy.d.ts +1 -1
  70. package/browser/find-options/operator/ArrayContainedBy.js.map +1 -1
  71. package/browser/find-options/operator/ArrayContains.d.ts +1 -1
  72. package/browser/find-options/operator/ArrayContains.js.map +1 -1
  73. package/browser/find-options/operator/ArrayOverlap.d.ts +1 -1
  74. package/browser/find-options/operator/ArrayOverlap.js.map +1 -1
  75. package/browser/find-options/operator/In.d.ts +1 -1
  76. package/browser/find-options/operator/In.js.map +1 -1
  77. package/browser/index.d.ts +2 -0
  78. package/browser/index.js +2 -0
  79. package/browser/index.js.map +1 -1
  80. package/browser/metadata/ColumnMetadata.d.ts +12 -0
  81. package/browser/metadata/ColumnMetadata.js +13 -0
  82. package/browser/metadata/ColumnMetadata.js.map +1 -1
  83. package/browser/metadata-args/types/ColumnMode.d.ts +1 -1
  84. package/browser/metadata-args/types/ColumnMode.js.map +1 -1
  85. package/browser/metadata-builder/EntityMetadataValidator.js +9 -5
  86. package/browser/metadata-builder/EntityMetadataValidator.js.map +1 -1
  87. package/browser/migration/MigrationExecutor.js +13 -3
  88. package/browser/migration/MigrationExecutor.js.map +1 -1
  89. package/browser/naming-strategy/NamingStrategyInterface.d.ts +2 -1
  90. package/browser/naming-strategy/NamingStrategyInterface.js.map +1 -1
  91. package/browser/persistence/tree/MaterializedPathSubjectExecutor.d.ts +1 -0
  92. package/browser/persistence/tree/MaterializedPathSubjectExecutor.js +19 -4
  93. package/browser/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
  94. package/browser/query-builder/QueryBuilder.js +9 -0
  95. package/browser/query-builder/QueryBuilder.js.map +1 -1
  96. package/browser/query-builder/RelationLoader.js +1 -0
  97. package/browser/query-builder/RelationLoader.js.map +1 -1
  98. package/browser/query-builder/SelectQueryBuilder.js +23 -8
  99. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  100. package/browser/query-builder/WhereClause.d.ts +1 -1
  101. package/browser/query-builder/WhereClause.js.map +1 -1
  102. package/browser/query-runner/BaseQueryRunner.d.ts +1 -1
  103. package/browser/query-runner/BaseQueryRunner.js.map +1 -1
  104. package/browser/query-runner/QueryRunner.d.ts +1 -1
  105. package/browser/query-runner/QueryRunner.js.map +1 -1
  106. package/browser/repository/Repository.d.ts +1 -1
  107. package/browser/repository/Repository.js.map +1 -1
  108. package/browser/repository/TreeRepository.d.ts +0 -4
  109. package/browser/repository/TreeRepository.js +0 -11
  110. package/browser/repository/TreeRepository.js.map +1 -1
  111. package/browser/schema-builder/RdbmsSchemaBuilder.d.ts +4 -0
  112. package/browser/schema-builder/RdbmsSchemaBuilder.js +85 -7
  113. package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  114. package/browser/schema-builder/table/Table.js +1 -1
  115. package/browser/schema-builder/table/Table.js.map +1 -1
  116. package/browser/schema-builder/view/View.d.ts +13 -1
  117. package/browser/schema-builder/view/View.js +16 -0
  118. package/browser/schema-builder/view/View.js.map +1 -1
  119. package/browser/util/DateUtils.js +2 -1
  120. package/browser/util/DateUtils.js.map +1 -1
  121. package/browser/util/OrmUtils.js +2 -1
  122. package/browser/util/OrmUtils.js.map +1 -1
  123. package/browser/util/TreeRepositoryUtils.js +16 -6
  124. package/browser/util/TreeRepositoryUtils.js.map +1 -1
  125. package/cli-ts-node-commonjs.js +0 -0
  126. package/cli-ts-node-esm.js +0 -0
  127. package/cli.js +0 -0
  128. package/commands/MigrationRevertCommand.js +1 -0
  129. package/commands/MigrationRevertCommand.js.map +1 -1
  130. package/decorator/columns/VirtualColumn.d.ts +10 -0
  131. package/decorator/columns/VirtualColumn.js +50 -0
  132. package/decorator/columns/VirtualColumn.js.map +1 -0
  133. package/decorator/options/VirtualColumnOptions.d.ts +27 -0
  134. package/decorator/options/VirtualColumnOptions.js +4 -0
  135. package/decorator/options/VirtualColumnOptions.js.map +1 -0
  136. package/driver/aurora-mysql/AuroraMysqlDriver.js +4 -0
  137. package/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
  138. package/driver/aurora-mysql/AuroraMysqlQueryRunner.d.ts +1 -1
  139. package/driver/aurora-mysql/AuroraMysqlQueryRunner.js +26 -7
  140. package/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
  141. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js +0 -6
  142. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
  143. package/driver/cockroachdb/CockroachQueryRunner.d.ts +1 -1
  144. package/driver/cockroachdb/CockroachQueryRunner.js +5 -3
  145. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  146. package/driver/mysql/MysqlDriver.js +8 -0
  147. package/driver/mysql/MysqlDriver.js.map +1 -1
  148. package/driver/mysql/MysqlQueryRunner.d.ts +1 -1
  149. package/driver/mysql/MysqlQueryRunner.js +5 -3
  150. package/driver/mysql/MysqlQueryRunner.js.map +1 -1
  151. package/driver/oracle/OracleDriver.js +4 -0
  152. package/driver/oracle/OracleDriver.js.map +1 -1
  153. package/driver/oracle/OracleQueryRunner.d.ts +1 -1
  154. package/driver/oracle/OracleQueryRunner.js +5 -3
  155. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  156. package/driver/postgres/PostgresDriver.js +4 -0
  157. package/driver/postgres/PostgresDriver.js.map +1 -1
  158. package/driver/postgres/PostgresQueryRunner.d.ts +18 -2
  159. package/driver/postgres/PostgresQueryRunner.js +105 -3
  160. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  161. package/driver/react-native/ReactNativeQueryRunner.js +4 -4
  162. package/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  163. package/driver/sap/SapDriver.js +4 -0
  164. package/driver/sap/SapDriver.js.map +1 -1
  165. package/driver/sap/SapQueryRunner.d.ts +1 -1
  166. package/driver/sap/SapQueryRunner.js +5 -3
  167. package/driver/sap/SapQueryRunner.js.map +1 -1
  168. package/driver/spanner/SpannerDriver.js +4 -0
  169. package/driver/spanner/SpannerDriver.js.map +1 -1
  170. package/driver/sqlite-abstract/AbstractSqliteDriver.js +10 -0
  171. package/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  172. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +1 -1
  173. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +5 -3
  174. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  175. package/driver/sqlserver/SqlServerDriver.js +4 -0
  176. package/driver/sqlserver/SqlServerDriver.js.map +1 -1
  177. package/driver/sqlserver/SqlServerQueryRunner.d.ts +1 -1
  178. package/driver/sqlserver/SqlServerQueryRunner.js +5 -3
  179. package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  180. package/find-options/FindOperatorType.d.ts +1 -1
  181. package/find-options/FindOperatorType.js.map +1 -1
  182. package/find-options/FindOptionsOrder.d.ts +1 -1
  183. package/find-options/FindOptionsOrder.js.map +1 -1
  184. package/find-options/FindOptionsRelations.d.ts +1 -1
  185. package/find-options/FindOptionsRelations.js.map +1 -1
  186. package/find-options/FindOptionsSelect.d.ts +1 -1
  187. package/find-options/FindOptionsSelect.js.map +1 -1
  188. package/find-options/FindOptionsWhere.d.ts +2 -2
  189. package/find-options/FindOptionsWhere.js.map +1 -1
  190. package/find-options/operator/And.d.ts +2 -0
  191. package/find-options/operator/And.js +10 -0
  192. package/find-options/operator/And.js.map +1 -0
  193. package/find-options/operator/Any.d.ts +1 -1
  194. package/find-options/operator/Any.js.map +1 -1
  195. package/find-options/operator/ArrayContainedBy.d.ts +1 -1
  196. package/find-options/operator/ArrayContainedBy.js.map +1 -1
  197. package/find-options/operator/ArrayContains.d.ts +1 -1
  198. package/find-options/operator/ArrayContains.js.map +1 -1
  199. package/find-options/operator/ArrayOverlap.d.ts +1 -1
  200. package/find-options/operator/ArrayOverlap.js.map +1 -1
  201. package/find-options/operator/In.d.ts +1 -1
  202. package/find-options/operator/In.js.map +1 -1
  203. package/index.d.ts +2 -0
  204. package/index.js +2 -0
  205. package/index.js.map +1 -1
  206. package/index.mjs +4 -0
  207. package/metadata/ColumnMetadata.d.ts +12 -0
  208. package/metadata/ColumnMetadata.js +13 -0
  209. package/metadata/ColumnMetadata.js.map +1 -1
  210. package/metadata-args/types/ColumnMode.d.ts +1 -1
  211. package/metadata-args/types/ColumnMode.js.map +1 -1
  212. package/metadata-builder/EntityMetadataValidator.js +9 -5
  213. package/metadata-builder/EntityMetadataValidator.js.map +1 -1
  214. package/migration/MigrationExecutor.js +13 -3
  215. package/migration/MigrationExecutor.js.map +1 -1
  216. package/naming-strategy/NamingStrategyInterface.d.ts +2 -1
  217. package/naming-strategy/NamingStrategyInterface.js.map +1 -1
  218. package/package.json +1 -274
  219. package/persistence/tree/MaterializedPathSubjectExecutor.d.ts +1 -0
  220. package/persistence/tree/MaterializedPathSubjectExecutor.js +19 -4
  221. package/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
  222. package/query-builder/QueryBuilder.js +9 -0
  223. package/query-builder/QueryBuilder.js.map +1 -1
  224. package/query-builder/RelationLoader.js +1 -0
  225. package/query-builder/RelationLoader.js.map +1 -1
  226. package/query-builder/SelectQueryBuilder.js +23 -8
  227. package/query-builder/SelectQueryBuilder.js.map +1 -1
  228. package/query-builder/WhereClause.d.ts +1 -1
  229. package/query-builder/WhereClause.js.map +1 -1
  230. package/query-runner/BaseQueryRunner.d.ts +1 -1
  231. package/query-runner/BaseQueryRunner.js.map +1 -1
  232. package/query-runner/QueryRunner.d.ts +1 -1
  233. package/query-runner/QueryRunner.js.map +1 -1
  234. package/repository/Repository.d.ts +1 -1
  235. package/repository/Repository.js.map +1 -1
  236. package/repository/TreeRepository.d.ts +0 -4
  237. package/repository/TreeRepository.js +0 -11
  238. package/repository/TreeRepository.js.map +1 -1
  239. package/schema-builder/RdbmsSchemaBuilder.d.ts +4 -0
  240. package/schema-builder/RdbmsSchemaBuilder.js +85 -7
  241. package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  242. package/schema-builder/table/Table.js +1 -1
  243. package/schema-builder/table/Table.js.map +1 -1
  244. package/schema-builder/view/View.d.ts +13 -1
  245. package/schema-builder/view/View.js +16 -0
  246. package/schema-builder/view/View.js.map +1 -1
  247. package/util/DateUtils.js +2 -1
  248. package/util/DateUtils.js.map +1 -1
  249. package/util/OrmUtils.js +2 -1
  250. package/util/OrmUtils.js.map +1 -1
  251. package/util/TreeRepositoryUtils.js +16 -6
  252. package/util/TreeRepositoryUtils.js.map +1 -1
@@ -1482,8 +1482,12 @@ export class SelectQueryBuilder extends QueryBuilder {
1482
1482
  : [];
1483
1483
  const allColumns = [...columns, ...nonSelectedPrimaryColumns];
1484
1484
  const finalSelects = [];
1485
+ const escapedAliasName = this.escape(aliasName);
1485
1486
  allColumns.forEach((column) => {
1486
- let selectionPath = this.escape(aliasName) + "." + this.escape(column.databaseName);
1487
+ let selectionPath = escapedAliasName + "." + this.escape(column.databaseName);
1488
+ if (column.isVirtualProperty && column.query) {
1489
+ selectionPath = `(${column.query(escapedAliasName)})`;
1490
+ }
1487
1491
  if (this.connection.driver.spatialTypes.indexOf(column.type) !== -1) {
1488
1492
  if (DriverUtils.isMySQLFamily(this.connection.driver) ||
1489
1493
  this.connection.driver.options.type === "aurora-mysql") {
@@ -2260,7 +2264,19 @@ export class SelectQueryBuilder extends QueryBuilder {
2260
2264
  : (nulls === null || nulls === void 0 ? void 0 : nulls.toLowerCase()) === "last"
2261
2265
  ? "NULLS LAST"
2262
2266
  : undefined;
2263
- this.addOrderBy(`${alias}.${propertyPath}`, direction, nulls);
2267
+ let aliasPath = `${alias}.${propertyPath}`;
2268
+ if (column.isVirtualProperty && column.query) {
2269
+ const selection = this.expressionMap.selects.find((s) => s.selection === aliasPath);
2270
+ if (selection) {
2271
+ // this is not building correctly now???
2272
+ aliasPath = DriverUtils.buildAlias(this.connection.driver, alias, column.databaseName);
2273
+ selection.aliasName = aliasPath;
2274
+ }
2275
+ else {
2276
+ aliasPath = `(${column.query(alias)})`;
2277
+ }
2278
+ }
2279
+ this.addOrderBy(aliasPath, direction, nulls);
2264
2280
  // this.orderBys.push({ alias: alias + "." + propertyPath, direction, nulls });
2265
2281
  }
2266
2282
  else if (embed) {
@@ -2314,7 +2330,10 @@ export class SelectQueryBuilder extends QueryBuilder {
2314
2330
  if (!embed && !column && !relation)
2315
2331
  throw new EntityPropertyNotFoundError(propertyPath, metadata);
2316
2332
  if (column) {
2317
- const aliasPath = `${alias}.${propertyPath}`;
2333
+ let aliasPath = `${alias}.${propertyPath}`;
2334
+ if (column.isVirtualProperty && column.query) {
2335
+ aliasPath = `(${column.query(alias)})`;
2336
+ }
2318
2337
  // const parameterName = alias + "_" + propertyPath.split(".").join("_") + "_" + parameterIndex;
2319
2338
  // todo: we need to handle other operators as well?
2320
2339
  let parameterValue = where[key];
@@ -2446,7 +2465,7 @@ export class SelectQueryBuilder extends QueryBuilder {
2446
2465
  const existJoin = this.joins.find((join) => join.alias === joinAlias);
2447
2466
  if (!existJoin) {
2448
2467
  this.joins.push({
2449
- type: "inner",
2468
+ type: "left",
2450
2469
  select: false,
2451
2470
  selection: undefined,
2452
2471
  alias: joinAlias,
@@ -2454,10 +2473,6 @@ export class SelectQueryBuilder extends QueryBuilder {
2454
2473
  relationMetadata: relation,
2455
2474
  });
2456
2475
  }
2457
- else {
2458
- if (existJoin.type === "left")
2459
- existJoin.type = "inner";
2460
- }
2461
2476
  const condition = this.buildWhere(where[key], relation.inverseEntityMetadata, joinAlias);
2462
2477
  if (condition) {
2463
2478
  andConditions.push(condition);