typeorm 0.3.27-dev.fa3cd43 → 0.3.28-dev.1f19abb

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 (120) hide show
  1. package/browser/data-source/BaseDataSourceOptions.d.ts +18 -0
  2. package/browser/data-source/BaseDataSourceOptions.js.map +1 -1
  3. package/browser/decorator/columns/Column.d.ts +7 -7
  4. package/browser/decorator/columns/Column.js +1 -1
  5. package/browser/decorator/columns/Column.js.map +1 -1
  6. package/browser/decorator/options/ColumnNumericOptions.d.ts +8 -1
  7. package/browser/decorator/options/ColumnNumericOptions.js.map +1 -1
  8. package/browser/decorator/options/ColumnOptions.d.ts +6 -0
  9. package/browser/decorator/options/ColumnOptions.js.map +1 -1
  10. package/browser/decorator/options/ColumnUnsignedOptions.d.ts +28 -0
  11. package/browser/decorator/options/ColumnUnsignedOptions.js +3 -0
  12. package/browser/decorator/options/ColumnUnsignedOptions.js.map +1 -0
  13. package/browser/decorator/options/PrimaryGeneratedColumnNumericOptions.d.ts +3 -0
  14. package/browser/decorator/options/PrimaryGeneratedColumnNumericOptions.js.map +1 -1
  15. package/browser/driver/aurora-mysql/AuroraMysqlDriver.d.ts +15 -19
  16. package/browser/driver/aurora-mysql/AuroraMysqlDriver.js +7 -27
  17. package/browser/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
  18. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.d.ts +7 -7
  19. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js +15 -13
  20. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
  21. package/browser/driver/mongodb/typings.d.ts +5 -0
  22. package/browser/driver/mongodb/typings.js.map +1 -1
  23. package/browser/driver/mysql/MysqlDriver.d.ts +23 -19
  24. package/browser/driver/mysql/MysqlDriver.js +63 -29
  25. package/browser/driver/mysql/MysqlDriver.js.map +1 -1
  26. package/browser/driver/mysql/MysqlQueryRunner.d.ts +1 -0
  27. package/browser/driver/mysql/MysqlQueryRunner.js +12 -6
  28. package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
  29. package/browser/driver/postgres/PostgresDriver.d.ts +2 -2
  30. package/browser/driver/postgres/PostgresDriver.js +42 -3
  31. package/browser/driver/postgres/PostgresDriver.js.map +1 -1
  32. package/browser/driver/postgres/PostgresQueryRunner.js +7 -0
  33. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  34. package/browser/driver/sap/SapDriver.js +6 -0
  35. package/browser/driver/sap/SapDriver.js.map +1 -1
  36. package/browser/driver/spanner/SpannerConnectionOptions.d.ts +0 -5
  37. package/browser/driver/spanner/SpannerConnectionOptions.js.map +1 -1
  38. package/browser/driver/spanner/SpannerDriver.d.ts +0 -4
  39. package/browser/driver/spanner/SpannerDriver.js +0 -4
  40. package/browser/driver/spanner/SpannerDriver.js.map +1 -1
  41. package/browser/driver/sqlserver/SqlServerConnectionOptions.d.ts +5 -0
  42. package/browser/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
  43. package/browser/driver/sqlserver/SqlServerQueryRunner.js +1 -1
  44. package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  45. package/browser/driver/types/ColumnTypes.d.ts +4 -4
  46. package/browser/driver/types/ColumnTypes.js.map +1 -1
  47. package/browser/entity-schema/EntitySchemaOptions.d.ts +2 -0
  48. package/browser/entity-schema/EntitySchemaOptions.js.map +1 -1
  49. package/browser/entity-schema/EntitySchemaTransformer.js +9 -0
  50. package/browser/entity-schema/EntitySchemaTransformer.js.map +1 -1
  51. package/browser/metadata-builder/EntityMetadataBuilder.js +1 -8
  52. package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  53. package/browser/query-builder/QueryBuilder.js +26 -12
  54. package/browser/query-builder/QueryBuilder.js.map +1 -1
  55. package/browser/query-builder/SelectQueryBuilder.js +42 -35
  56. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  57. package/commands/InitCommand.js +22 -15
  58. package/commands/InitCommand.js.map +1 -1
  59. package/data-source/BaseDataSourceOptions.d.ts +18 -0
  60. package/data-source/BaseDataSourceOptions.js.map +1 -1
  61. package/decorator/columns/Column.d.ts +7 -7
  62. package/decorator/columns/Column.js +1 -1
  63. package/decorator/columns/Column.js.map +1 -1
  64. package/decorator/options/ColumnNumericOptions.d.ts +8 -1
  65. package/decorator/options/ColumnNumericOptions.js.map +1 -1
  66. package/decorator/options/ColumnOptions.d.ts +6 -0
  67. package/decorator/options/ColumnOptions.js.map +1 -1
  68. package/decorator/options/ColumnUnsignedOptions.d.ts +28 -0
  69. package/decorator/options/{ColumnWithWidthOptions.js → ColumnUnsignedOptions.js} +1 -1
  70. package/decorator/options/ColumnUnsignedOptions.js.map +1 -0
  71. package/decorator/options/PrimaryGeneratedColumnNumericOptions.d.ts +3 -0
  72. package/decorator/options/PrimaryGeneratedColumnNumericOptions.js.map +1 -1
  73. package/driver/aurora-mysql/AuroraMysqlDriver.d.ts +15 -19
  74. package/driver/aurora-mysql/AuroraMysqlDriver.js +7 -27
  75. package/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
  76. package/driver/aurora-mysql/AuroraMysqlQueryRunner.d.ts +7 -7
  77. package/driver/aurora-mysql/AuroraMysqlQueryRunner.js +15 -13
  78. package/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
  79. package/driver/mongodb/typings.d.ts +5 -0
  80. package/driver/mongodb/typings.js.map +1 -1
  81. package/driver/mysql/MysqlDriver.d.ts +23 -19
  82. package/driver/mysql/MysqlDriver.js +63 -29
  83. package/driver/mysql/MysqlDriver.js.map +1 -1
  84. package/driver/mysql/MysqlQueryRunner.d.ts +1 -0
  85. package/driver/mysql/MysqlQueryRunner.js +12 -6
  86. package/driver/mysql/MysqlQueryRunner.js.map +1 -1
  87. package/driver/postgres/PostgresDriver.d.ts +2 -2
  88. package/driver/postgres/PostgresDriver.js +42 -3
  89. package/driver/postgres/PostgresDriver.js.map +1 -1
  90. package/driver/postgres/PostgresQueryRunner.js +7 -0
  91. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  92. package/driver/sap/SapDriver.js +6 -0
  93. package/driver/sap/SapDriver.js.map +1 -1
  94. package/driver/spanner/SpannerConnectionOptions.d.ts +0 -5
  95. package/driver/spanner/SpannerConnectionOptions.js.map +1 -1
  96. package/driver/spanner/SpannerDriver.d.ts +0 -4
  97. package/driver/spanner/SpannerDriver.js +0 -4
  98. package/driver/spanner/SpannerDriver.js.map +1 -1
  99. package/driver/sqlserver/SqlServerConnectionOptions.d.ts +5 -0
  100. package/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
  101. package/driver/sqlserver/SqlServerQueryRunner.js +1 -1
  102. package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  103. package/driver/types/ColumnTypes.d.ts +4 -4
  104. package/driver/types/ColumnTypes.js.map +1 -1
  105. package/entity-schema/EntitySchemaOptions.d.ts +2 -0
  106. package/entity-schema/EntitySchemaOptions.js.map +1 -1
  107. package/entity-schema/EntitySchemaTransformer.js +9 -0
  108. package/entity-schema/EntitySchemaTransformer.js.map +1 -1
  109. package/metadata-builder/EntityMetadataBuilder.js +1 -8
  110. package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  111. package/package.json +1 -1
  112. package/query-builder/QueryBuilder.js +26 -12
  113. package/query-builder/QueryBuilder.js.map +1 -1
  114. package/query-builder/SelectQueryBuilder.js +42 -35
  115. package/query-builder/SelectQueryBuilder.js.map +1 -1
  116. package/browser/decorator/options/ColumnWithWidthOptions.d.ts +0 -19
  117. package/browser/decorator/options/ColumnWithWidthOptions.js +0 -3
  118. package/browser/decorator/options/ColumnWithWidthOptions.js.map +0 -1
  119. package/decorator/options/ColumnWithWidthOptions.d.ts +0 -19
  120. 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
  }>;
@@ -42,8 +42,7 @@ export class PostgresDriver {
42
42
  /**
43
43
  * Gets list of supported column data types by a driver.
44
44
  *
45
- * @see https://www.tutorialspoint.com/postgresql/postgresql_data_types.htm
46
- * @see https://www.postgresql.org/docs/9.2/static/datatype.html
45
+ * @see https://www.postgresql.org/docs/current/datatype.html
47
46
  */
48
47
  this.supportedDataTypes = [
49
48
  "int",
@@ -102,6 +101,7 @@ export class PostgresDriver {
102
101
  "xml",
103
102
  "json",
104
103
  "jsonb",
104
+ "jsonpath",
105
105
  "int4range",
106
106
  "int8range",
107
107
  "numrange",
@@ -118,6 +118,8 @@ export class PostgresDriver {
118
118
  "geography",
119
119
  "cube",
120
120
  "ltree",
121
+ "vector",
122
+ "halfvec",
121
123
  ];
122
124
  /**
123
125
  * Returns type of upsert supported by driver if any
@@ -138,6 +140,8 @@ export class PostgresDriver {
138
140
  "bit",
139
141
  "varbit",
140
142
  "bit varying",
143
+ "vector",
144
+ "halfvec",
141
145
  ];
142
146
  /**
143
147
  * Gets list of column data types that support precision by a driver.
@@ -285,7 +289,7 @@ export class PostgresDriver {
285
289
  }
286
290
  async enableExtensions(extensionsMetadata, connection) {
287
291
  const { logger } = this.connection;
288
- const { hasUuidColumns, hasCitextColumns, hasHstoreColumns, hasCubeColumns, hasGeometryColumns, hasLtreeColumns, hasExclusionConstraints, } = extensionsMetadata;
292
+ const { hasUuidColumns, hasCitextColumns, hasHstoreColumns, hasCubeColumns, hasGeometryColumns, hasLtreeColumns, hasVectorColumns, hasExclusionConstraints, } = extensionsMetadata;
289
293
  if (hasUuidColumns)
290
294
  try {
291
295
  await this.executeQuery(connection, `CREATE EXTENSION IF NOT EXISTS "${this.options.uuidExtension || "uuid-ossp"}"`);
@@ -328,6 +332,13 @@ export class PostgresDriver {
328
332
  catch (_) {
329
333
  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");
330
334
  }
335
+ if (hasVectorColumns)
336
+ try {
337
+ await this.executeQuery(connection, `CREATE EXTENSION IF NOT EXISTS "vector"`);
338
+ }
339
+ catch (_) {
340
+ 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");
341
+ }
331
342
  if (hasExclusionConstraints)
332
343
  try {
333
344
  // The btree_gist extension provides operator support in PostgreSQL exclusion constraints
@@ -358,6 +369,9 @@ export class PostgresDriver {
358
369
  return (metadata.columns.filter((column) => column.type === "ltree")
359
370
  .length > 0);
360
371
  });
372
+ const hasVectorColumns = this.connection.entityMetadatas.some((metadata) => {
373
+ return metadata.columns.some((column) => column.type === "vector" || column.type === "halfvec");
374
+ });
361
375
  const hasExclusionConstraints = this.connection.entityMetadatas.some((metadata) => {
362
376
  return metadata.exclusions.length > 0;
363
377
  });
@@ -368,6 +382,7 @@ export class PostgresDriver {
368
382
  hasCubeColumns,
369
383
  hasGeometryColumns,
370
384
  hasLtreeColumns,
385
+ hasVectorColumns,
371
386
  hasExclusionConstraints,
372
387
  hasExtensions: hasUuidColumns ||
373
388
  hasCitextColumns ||
@@ -375,6 +390,7 @@ export class PostgresDriver {
375
390
  hasGeometryColumns ||
376
391
  hasCubeColumns ||
377
392
  hasLtreeColumns ||
393
+ hasVectorColumns ||
378
394
  hasExclusionConstraints,
379
395
  };
380
396
  }
@@ -429,6 +445,15 @@ export class PostgresDriver {
429
445
  else if (["json", "jsonb", ...this.spatialTypes].indexOf(columnMetadata.type) >= 0) {
430
446
  return JSON.stringify(value);
431
447
  }
448
+ else if (columnMetadata.type === "vector" ||
449
+ columnMetadata.type === "halfvec") {
450
+ if (Array.isArray(value)) {
451
+ return `[${value.join(",")}]`;
452
+ }
453
+ else {
454
+ return value;
455
+ }
456
+ }
432
457
  else if (columnMetadata.type === "hstore") {
433
458
  if (typeof value === "string") {
434
459
  return value;
@@ -502,6 +527,16 @@ export class PostgresDriver {
502
527
  else if (columnMetadata.type === "time") {
503
528
  value = DateUtils.mixedTimeToString(value);
504
529
  }
530
+ else if (columnMetadata.type === "vector" ||
531
+ columnMetadata.type === "halfvec") {
532
+ if (typeof value === "string" &&
533
+ value.startsWith("[") &&
534
+ value.endsWith("]")) {
535
+ if (value === "[]")
536
+ return [];
537
+ return value.slice(1, -1).split(",").map(Number);
538
+ }
539
+ }
505
540
  else if (columnMetadata.type === "hstore") {
506
541
  if (columnMetadata.hstoreType === "object") {
507
542
  const unescapeString = (str) => str.replace(/\\./g, (m) => m[1]);
@@ -857,6 +892,10 @@ export class PostgresDriver {
857
892
  type = column.type;
858
893
  }
859
894
  }
895
+ else if (column.type === "vector" || column.type === "halfvec") {
896
+ type =
897
+ column.type + (column.length ? "(" + column.length + ")" : "");
898
+ }
860
899
  if (column.isArray)
861
900
  type += " array";
862
901
  return type;