typeorm 0.3.27-dev.fa3cd43 → 0.3.28-dev.02e7b71

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 (197) hide show
  1. package/README.md +21 -5
  2. package/browser/data-source/BaseDataSourceOptions.d.ts +18 -0
  3. package/browser/data-source/BaseDataSourceOptions.js.map +1 -1
  4. package/browser/decorator/columns/Column.d.ts +7 -7
  5. package/browser/decorator/columns/Column.js +1 -1
  6. package/browser/decorator/columns/Column.js.map +1 -1
  7. package/browser/decorator/options/ColumnNumericOptions.d.ts +8 -1
  8. package/browser/decorator/options/ColumnNumericOptions.js.map +1 -1
  9. package/browser/decorator/options/ColumnOptions.d.ts +6 -0
  10. package/browser/decorator/options/ColumnOptions.js.map +1 -1
  11. package/browser/decorator/options/ColumnUnsignedOptions.d.ts +28 -0
  12. package/browser/decorator/options/ColumnUnsignedOptions.js +3 -0
  13. package/browser/decorator/options/ColumnUnsignedOptions.js.map +1 -0
  14. package/browser/decorator/options/PrimaryGeneratedColumnNumericOptions.d.ts +3 -0
  15. package/browser/decorator/options/PrimaryGeneratedColumnNumericOptions.js.map +1 -1
  16. package/browser/decorator/tree/TreeChildren.d.ts +1 -1
  17. package/browser/decorator/tree/TreeChildren.js +1 -1
  18. package/browser/decorator/tree/TreeChildren.js.map +1 -1
  19. package/browser/decorator/tree/TreeParent.d.ts +1 -1
  20. package/browser/decorator/tree/TreeParent.js +1 -1
  21. package/browser/decorator/tree/TreeParent.js.map +1 -1
  22. package/browser/driver/aurora-mysql/AuroraMysqlDriver.d.ts +15 -19
  23. package/browser/driver/aurora-mysql/AuroraMysqlDriver.js +7 -27
  24. package/browser/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
  25. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.d.ts +9 -9
  26. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js +17 -15
  27. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
  28. package/browser/driver/cockroachdb/CockroachDriver.d.ts +1 -1
  29. package/browser/driver/cockroachdb/CockroachDriver.js +1 -1
  30. package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
  31. package/browser/driver/mongodb/MongoConnectionOptions.d.ts +16 -0
  32. package/browser/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  33. package/browser/driver/mongodb/MongoDriver.js +5 -0
  34. package/browser/driver/mongodb/MongoDriver.js.map +1 -1
  35. package/browser/driver/mongodb/MongoQueryRunner.d.ts +4 -4
  36. package/browser/driver/mongodb/MongoQueryRunner.js +5 -5
  37. package/browser/driver/mongodb/MongoQueryRunner.js.map +1 -1
  38. package/browser/driver/mongodb/typings.d.ts +6 -1
  39. package/browser/driver/mongodb/typings.js.map +1 -1
  40. package/browser/driver/mysql/MysqlDriver.d.ts +23 -19
  41. package/browser/driver/mysql/MysqlDriver.js +63 -29
  42. package/browser/driver/mysql/MysqlDriver.js.map +1 -1
  43. package/browser/driver/mysql/MysqlQueryRunner.d.ts +3 -2
  44. package/browser/driver/mysql/MysqlQueryRunner.js +14 -8
  45. package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
  46. package/browser/driver/oracle/OracleQueryRunner.d.ts +2 -2
  47. package/browser/driver/oracle/OracleQueryRunner.js +2 -2
  48. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  49. package/browser/driver/postgres/PostgresDriver.d.ts +2 -2
  50. package/browser/driver/postgres/PostgresDriver.js +42 -3
  51. package/browser/driver/postgres/PostgresDriver.js.map +1 -1
  52. package/browser/driver/postgres/PostgresQueryRunner.js +7 -0
  53. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  54. package/browser/driver/sap/SapDriver.js +7 -1
  55. package/browser/driver/sap/SapDriver.js.map +1 -1
  56. package/browser/driver/sap/SapQueryRunner.d.ts +1 -1
  57. package/browser/driver/sap/SapQueryRunner.js +1 -1
  58. package/browser/driver/sap/SapQueryRunner.js.map +1 -1
  59. package/browser/driver/spanner/SpannerConnectionOptions.d.ts +0 -5
  60. package/browser/driver/spanner/SpannerConnectionOptions.js.map +1 -1
  61. package/browser/driver/spanner/SpannerDriver.d.ts +0 -4
  62. package/browser/driver/spanner/SpannerDriver.js +0 -4
  63. package/browser/driver/spanner/SpannerDriver.js.map +1 -1
  64. package/browser/driver/spanner/SpannerQueryRunner.d.ts +1 -1
  65. package/browser/driver/spanner/SpannerQueryRunner.js +1 -1
  66. package/browser/driver/spanner/SpannerQueryRunner.js.map +1 -1
  67. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +2 -2
  68. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +2 -2
  69. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  70. package/browser/driver/sqlserver/MssqlParameter.d.ts +1 -0
  71. package/browser/driver/sqlserver/MssqlParameter.js.map +1 -1
  72. package/browser/driver/sqlserver/SqlServerConnectionOptions.d.ts +5 -0
  73. package/browser/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
  74. package/browser/driver/sqlserver/SqlServerDriver.js +26 -1
  75. package/browser/driver/sqlserver/SqlServerDriver.js.map +1 -1
  76. package/browser/driver/sqlserver/SqlServerQueryRunner.d.ts +1 -1
  77. package/browser/driver/sqlserver/SqlServerQueryRunner.js +17 -6
  78. package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  79. package/browser/driver/types/ColumnTypes.d.ts +4 -4
  80. package/browser/driver/types/ColumnTypes.js.map +1 -1
  81. package/browser/entity-schema/EntitySchemaOptions.d.ts +2 -0
  82. package/browser/entity-schema/EntitySchemaOptions.js.map +1 -1
  83. package/browser/entity-schema/EntitySchemaTransformer.js +9 -0
  84. package/browser/entity-schema/EntitySchemaTransformer.js.map +1 -1
  85. package/browser/find-options/FindOptionsUtils.d.ts +0 -161
  86. package/browser/find-options/FindOptionsUtils.js +0 -161
  87. package/browser/find-options/FindOptionsUtils.js.map +1 -1
  88. package/browser/metadata-builder/EntityMetadataBuilder.js +1 -8
  89. package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  90. package/browser/query-builder/QueryBuilder.js +26 -12
  91. package/browser/query-builder/QueryBuilder.js.map +1 -1
  92. package/browser/query-builder/SelectQueryBuilder.js +42 -35
  93. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  94. package/browser/query-runner/QueryRunner.d.ts +1 -1
  95. package/browser/query-runner/QueryRunner.js.map +1 -1
  96. package/commands/InitCommand.js +24 -16
  97. package/commands/InitCommand.js.map +1 -1
  98. package/data-source/BaseDataSourceOptions.d.ts +18 -0
  99. package/data-source/BaseDataSourceOptions.js.map +1 -1
  100. package/decorator/columns/Column.d.ts +7 -7
  101. package/decorator/columns/Column.js +1 -1
  102. package/decorator/columns/Column.js.map +1 -1
  103. package/decorator/options/ColumnNumericOptions.d.ts +8 -1
  104. package/decorator/options/ColumnNumericOptions.js.map +1 -1
  105. package/decorator/options/ColumnOptions.d.ts +6 -0
  106. package/decorator/options/ColumnOptions.js.map +1 -1
  107. package/decorator/options/ColumnUnsignedOptions.d.ts +28 -0
  108. package/decorator/options/{ColumnWithWidthOptions.js → ColumnUnsignedOptions.js} +1 -1
  109. package/decorator/options/ColumnUnsignedOptions.js.map +1 -0
  110. package/decorator/options/PrimaryGeneratedColumnNumericOptions.d.ts +3 -0
  111. package/decorator/options/PrimaryGeneratedColumnNumericOptions.js.map +1 -1
  112. package/decorator/tree/TreeChildren.d.ts +1 -1
  113. package/decorator/tree/TreeChildren.js +1 -1
  114. package/decorator/tree/TreeChildren.js.map +1 -1
  115. package/decorator/tree/TreeParent.d.ts +1 -1
  116. package/decorator/tree/TreeParent.js +1 -1
  117. package/decorator/tree/TreeParent.js.map +1 -1
  118. package/driver/aurora-mysql/AuroraMysqlDriver.d.ts +15 -19
  119. package/driver/aurora-mysql/AuroraMysqlDriver.js +7 -27
  120. package/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
  121. package/driver/aurora-mysql/AuroraMysqlQueryRunner.d.ts +9 -9
  122. package/driver/aurora-mysql/AuroraMysqlQueryRunner.js +17 -15
  123. package/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
  124. package/driver/cockroachdb/CockroachDriver.d.ts +1 -1
  125. package/driver/cockroachdb/CockroachDriver.js +1 -1
  126. package/driver/cockroachdb/CockroachDriver.js.map +1 -1
  127. package/driver/mongodb/MongoConnectionOptions.d.ts +16 -0
  128. package/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  129. package/driver/mongodb/MongoDriver.js +5 -0
  130. package/driver/mongodb/MongoDriver.js.map +1 -1
  131. package/driver/mongodb/MongoQueryRunner.d.ts +4 -4
  132. package/driver/mongodb/MongoQueryRunner.js +5 -5
  133. package/driver/mongodb/MongoQueryRunner.js.map +1 -1
  134. package/driver/mongodb/typings.d.ts +6 -1
  135. package/driver/mongodb/typings.js.map +1 -1
  136. package/driver/mysql/MysqlDriver.d.ts +23 -19
  137. package/driver/mysql/MysqlDriver.js +63 -29
  138. package/driver/mysql/MysqlDriver.js.map +1 -1
  139. package/driver/mysql/MysqlQueryRunner.d.ts +3 -2
  140. package/driver/mysql/MysqlQueryRunner.js +14 -8
  141. package/driver/mysql/MysqlQueryRunner.js.map +1 -1
  142. package/driver/oracle/OracleQueryRunner.d.ts +2 -2
  143. package/driver/oracle/OracleQueryRunner.js +2 -2
  144. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  145. package/driver/postgres/PostgresDriver.d.ts +2 -2
  146. package/driver/postgres/PostgresDriver.js +42 -3
  147. package/driver/postgres/PostgresDriver.js.map +1 -1
  148. package/driver/postgres/PostgresQueryRunner.js +7 -0
  149. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  150. package/driver/sap/SapDriver.js +8 -2
  151. package/driver/sap/SapDriver.js.map +1 -1
  152. package/driver/sap/SapQueryRunner.d.ts +1 -1
  153. package/driver/sap/SapQueryRunner.js +1 -1
  154. package/driver/sap/SapQueryRunner.js.map +1 -1
  155. package/driver/spanner/SpannerConnectionOptions.d.ts +0 -5
  156. package/driver/spanner/SpannerConnectionOptions.js.map +1 -1
  157. package/driver/spanner/SpannerDriver.d.ts +0 -4
  158. package/driver/spanner/SpannerDriver.js +0 -4
  159. package/driver/spanner/SpannerDriver.js.map +1 -1
  160. package/driver/spanner/SpannerQueryRunner.d.ts +1 -1
  161. package/driver/spanner/SpannerQueryRunner.js +1 -1
  162. package/driver/spanner/SpannerQueryRunner.js.map +1 -1
  163. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +2 -2
  164. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +2 -2
  165. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  166. package/driver/sqlserver/MssqlParameter.d.ts +1 -0
  167. package/driver/sqlserver/MssqlParameter.js.map +1 -1
  168. package/driver/sqlserver/SqlServerConnectionOptions.d.ts +5 -0
  169. package/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
  170. package/driver/sqlserver/SqlServerDriver.js +26 -1
  171. package/driver/sqlserver/SqlServerDriver.js.map +1 -1
  172. package/driver/sqlserver/SqlServerQueryRunner.d.ts +1 -1
  173. package/driver/sqlserver/SqlServerQueryRunner.js +17 -6
  174. package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  175. package/driver/types/ColumnTypes.d.ts +4 -4
  176. package/driver/types/ColumnTypes.js.map +1 -1
  177. package/entity-schema/EntitySchemaOptions.d.ts +2 -0
  178. package/entity-schema/EntitySchemaOptions.js.map +1 -1
  179. package/entity-schema/EntitySchemaTransformer.js +9 -0
  180. package/entity-schema/EntitySchemaTransformer.js.map +1 -1
  181. package/find-options/FindOptionsUtils.d.ts +0 -161
  182. package/find-options/FindOptionsUtils.js +0 -161
  183. package/find-options/FindOptionsUtils.js.map +1 -1
  184. package/metadata-builder/EntityMetadataBuilder.js +1 -8
  185. package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  186. package/package.json +1 -1
  187. package/query-builder/QueryBuilder.js +26 -12
  188. package/query-builder/QueryBuilder.js.map +1 -1
  189. package/query-builder/SelectQueryBuilder.js +42 -35
  190. package/query-builder/SelectQueryBuilder.js.map +1 -1
  191. package/query-runner/QueryRunner.d.ts +1 -1
  192. package/query-runner/QueryRunner.js.map +1 -1
  193. package/browser/decorator/options/ColumnWithWidthOptions.d.ts +0 -19
  194. package/browser/decorator/options/ColumnWithWidthOptions.js +0 -3
  195. package/browser/decorator/options/ColumnWithWidthOptions.js.map +0 -1
  196. package/decorator/options/ColumnWithWidthOptions.d.ts +0 -19
  197. package/decorator/options/ColumnWithWidthOptions.js.map +0 -1
@@ -83,8 +83,7 @@ export declare class PostgresDriver implements Driver {
83
83
  /**
84
84
  * Gets list of supported column data types by a driver.
85
85
  *
86
- * @see https://www.tutorialspoint.com/postgresql/postgresql_data_types.htm
87
- * @see https://www.postgresql.org/docs/9.2/static/datatype.html
86
+ * @see https://www.postgresql.org/docs/current/datatype.html
88
87
  */
89
88
  supportedDataTypes: ColumnType[];
90
89
  /**
@@ -147,6 +146,7 @@ export declare class PostgresDriver implements Driver {
147
146
  hasCubeColumns: boolean;
148
147
  hasGeometryColumns: boolean;
149
148
  hasLtreeColumns: boolean;
149
+ hasVectorColumns: boolean;
150
150
  hasExclusionConstraints: boolean;
151
151
  hasExtensions: boolean;
152
152
  }>;
@@ -45,8 +45,7 @@ class PostgresDriver {
45
45
  /**
46
46
  * Gets list of supported column data types by a driver.
47
47
  *
48
- * @see https://www.tutorialspoint.com/postgresql/postgresql_data_types.htm
49
- * @see https://www.postgresql.org/docs/9.2/static/datatype.html
48
+ * @see https://www.postgresql.org/docs/current/datatype.html
50
49
  */
51
50
  this.supportedDataTypes = [
52
51
  "int",
@@ -105,6 +104,7 @@ class PostgresDriver {
105
104
  "xml",
106
105
  "json",
107
106
  "jsonb",
107
+ "jsonpath",
108
108
  "int4range",
109
109
  "int8range",
110
110
  "numrange",
@@ -121,6 +121,8 @@ class PostgresDriver {
121
121
  "geography",
122
122
  "cube",
123
123
  "ltree",
124
+ "vector",
125
+ "halfvec",
124
126
  ];
125
127
  /**
126
128
  * Returns type of upsert supported by driver if any
@@ -141,6 +143,8 @@ class PostgresDriver {
141
143
  "bit",
142
144
  "varbit",
143
145
  "bit varying",
146
+ "vector",
147
+ "halfvec",
144
148
  ];
145
149
  /**
146
150
  * Gets list of column data types that support precision by a driver.
@@ -288,7 +292,7 @@ class PostgresDriver {
288
292
  }
289
293
  async enableExtensions(extensionsMetadata, connection) {
290
294
  const { logger } = this.connection;
291
- const { hasUuidColumns, hasCitextColumns, hasHstoreColumns, hasCubeColumns, hasGeometryColumns, hasLtreeColumns, hasExclusionConstraints, } = extensionsMetadata;
295
+ const { hasUuidColumns, hasCitextColumns, hasHstoreColumns, hasCubeColumns, hasGeometryColumns, hasLtreeColumns, hasVectorColumns, hasExclusionConstraints, } = extensionsMetadata;
292
296
  if (hasUuidColumns)
293
297
  try {
294
298
  await this.executeQuery(connection, `CREATE EXTENSION IF NOT EXISTS "${this.options.uuidExtension || "uuid-ossp"}"`);
@@ -331,6 +335,13 @@ class PostgresDriver {
331
335
  catch (_) {
332
336
  logger.log("warn", "At least one of the entities has a ltree column, but the 'ltree' extension cannot be installed automatically. Please install it manually using superuser rights");
333
337
  }
338
+ if (hasVectorColumns)
339
+ try {
340
+ await this.executeQuery(connection, `CREATE EXTENSION IF NOT EXISTS "vector"`);
341
+ }
342
+ catch (_) {
343
+ logger.log("warn", "At least one of the entities has a vector column, but the 'vector' extension (pgvector) cannot be installed automatically. Please install it manually using superuser rights");
344
+ }
334
345
  if (hasExclusionConstraints)
335
346
  try {
336
347
  // The btree_gist extension provides operator support in PostgreSQL exclusion constraints
@@ -361,6 +372,9 @@ class PostgresDriver {
361
372
  return (metadata.columns.filter((column) => column.type === "ltree")
362
373
  .length > 0);
363
374
  });
375
+ const hasVectorColumns = this.connection.entityMetadatas.some((metadata) => {
376
+ return metadata.columns.some((column) => column.type === "vector" || column.type === "halfvec");
377
+ });
364
378
  const hasExclusionConstraints = this.connection.entityMetadatas.some((metadata) => {
365
379
  return metadata.exclusions.length > 0;
366
380
  });
@@ -371,6 +385,7 @@ class PostgresDriver {
371
385
  hasCubeColumns,
372
386
  hasGeometryColumns,
373
387
  hasLtreeColumns,
388
+ hasVectorColumns,
374
389
  hasExclusionConstraints,
375
390
  hasExtensions: hasUuidColumns ||
376
391
  hasCitextColumns ||
@@ -378,6 +393,7 @@ class PostgresDriver {
378
393
  hasGeometryColumns ||
379
394
  hasCubeColumns ||
380
395
  hasLtreeColumns ||
396
+ hasVectorColumns ||
381
397
  hasExclusionConstraints,
382
398
  };
383
399
  }
@@ -432,6 +448,15 @@ class PostgresDriver {
432
448
  else if (["json", "jsonb", ...this.spatialTypes].indexOf(columnMetadata.type) >= 0) {
433
449
  return JSON.stringify(value);
434
450
  }
451
+ else if (columnMetadata.type === "vector" ||
452
+ columnMetadata.type === "halfvec") {
453
+ if (Array.isArray(value)) {
454
+ return `[${value.join(",")}]`;
455
+ }
456
+ else {
457
+ return value;
458
+ }
459
+ }
435
460
  else if (columnMetadata.type === "hstore") {
436
461
  if (typeof value === "string") {
437
462
  return value;
@@ -505,6 +530,16 @@ class PostgresDriver {
505
530
  else if (columnMetadata.type === "time") {
506
531
  value = DateUtils_1.DateUtils.mixedTimeToString(value);
507
532
  }
533
+ else if (columnMetadata.type === "vector" ||
534
+ columnMetadata.type === "halfvec") {
535
+ if (typeof value === "string" &&
536
+ value.startsWith("[") &&
537
+ value.endsWith("]")) {
538
+ if (value === "[]")
539
+ return [];
540
+ return value.slice(1, -1).split(",").map(Number);
541
+ }
542
+ }
508
543
  else if (columnMetadata.type === "hstore") {
509
544
  if (columnMetadata.hstoreType === "object") {
510
545
  const unescapeString = (str) => str.replace(/\\./g, (m) => m[1]);
@@ -860,6 +895,10 @@ class PostgresDriver {
860
895
  type = column.type;
861
896
  }
862
897
  }
898
+ else if (column.type === "vector" || column.type === "halfvec") {
899
+ type =
900
+ column.type + (column.length ? "(" + column.length + ")" : "");
901
+ }
863
902
  if (column.isArray)
864
903
  type += " array";
865
904
  return type;