@mikro-orm/sql 7.0.2-dev.8 → 7.0.2

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 (87) hide show
  1. package/AbstractSqlConnection.d.ts +95 -47
  2. package/AbstractSqlConnection.js +240 -232
  3. package/AbstractSqlDriver.d.ts +412 -155
  4. package/AbstractSqlDriver.js +2062 -1937
  5. package/AbstractSqlPlatform.d.ts +84 -73
  6. package/AbstractSqlPlatform.js +163 -158
  7. package/PivotCollectionPersister.d.ts +33 -15
  8. package/PivotCollectionPersister.js +158 -160
  9. package/README.md +128 -294
  10. package/SqlEntityManager.d.ts +68 -20
  11. package/SqlEntityManager.js +54 -37
  12. package/SqlEntityRepository.d.ts +15 -14
  13. package/SqlEntityRepository.js +24 -23
  14. package/dialects/mssql/MsSqlNativeQueryBuilder.d.ts +12 -12
  15. package/dialects/mssql/MsSqlNativeQueryBuilder.js +192 -194
  16. package/dialects/mysql/BaseMySqlPlatform.d.ts +64 -45
  17. package/dialects/mysql/BaseMySqlPlatform.js +134 -131
  18. package/dialects/mysql/MySqlExceptionConverter.d.ts +6 -6
  19. package/dialects/mysql/MySqlExceptionConverter.js +91 -77
  20. package/dialects/mysql/MySqlNativeQueryBuilder.d.ts +3 -3
  21. package/dialects/mysql/MySqlNativeQueryBuilder.js +66 -69
  22. package/dialects/mysql/MySqlSchemaHelper.d.ts +39 -39
  23. package/dialects/mysql/MySqlSchemaHelper.js +327 -319
  24. package/dialects/oracledb/OracleDialect.d.ts +81 -52
  25. package/dialects/oracledb/OracleDialect.js +155 -149
  26. package/dialects/oracledb/OracleNativeQueryBuilder.d.ts +12 -12
  27. package/dialects/oracledb/OracleNativeQueryBuilder.js +232 -236
  28. package/dialects/postgresql/BasePostgreSqlPlatform.d.ts +108 -105
  29. package/dialects/postgresql/BasePostgreSqlPlatform.js +351 -350
  30. package/dialects/postgresql/FullTextType.d.ts +10 -6
  31. package/dialects/postgresql/FullTextType.js +51 -51
  32. package/dialects/postgresql/PostgreSqlExceptionConverter.d.ts +5 -5
  33. package/dialects/postgresql/PostgreSqlExceptionConverter.js +55 -43
  34. package/dialects/postgresql/PostgreSqlNativeQueryBuilder.d.ts +1 -1
  35. package/dialects/postgresql/PostgreSqlNativeQueryBuilder.js +4 -4
  36. package/dialects/postgresql/PostgreSqlSchemaHelper.d.ts +102 -82
  37. package/dialects/postgresql/PostgreSqlSchemaHelper.js +711 -683
  38. package/dialects/sqlite/BaseSqliteConnection.d.ts +3 -5
  39. package/dialects/sqlite/BaseSqliteConnection.js +21 -19
  40. package/dialects/sqlite/NodeSqliteDialect.d.ts +1 -1
  41. package/dialects/sqlite/NodeSqliteDialect.js +23 -23
  42. package/dialects/sqlite/SqliteDriver.d.ts +1 -1
  43. package/dialects/sqlite/SqliteDriver.js +3 -3
  44. package/dialects/sqlite/SqliteExceptionConverter.d.ts +6 -6
  45. package/dialects/sqlite/SqliteExceptionConverter.js +67 -51
  46. package/dialects/sqlite/SqliteNativeQueryBuilder.d.ts +2 -2
  47. package/dialects/sqlite/SqliteNativeQueryBuilder.js +7 -7
  48. package/dialects/sqlite/SqlitePlatform.d.ts +63 -72
  49. package/dialects/sqlite/SqlitePlatform.js +139 -139
  50. package/dialects/sqlite/SqliteSchemaHelper.d.ts +70 -60
  51. package/dialects/sqlite/SqliteSchemaHelper.js +533 -520
  52. package/package.json +4 -4
  53. package/plugin/index.d.ts +44 -35
  54. package/plugin/index.js +44 -36
  55. package/plugin/transformer.d.ts +117 -94
  56. package/plugin/transformer.js +890 -881
  57. package/query/ArrayCriteriaNode.d.ts +4 -4
  58. package/query/ArrayCriteriaNode.js +18 -18
  59. package/query/CriteriaNode.d.ts +35 -25
  60. package/query/CriteriaNode.js +133 -123
  61. package/query/CriteriaNodeFactory.d.ts +49 -6
  62. package/query/CriteriaNodeFactory.js +97 -94
  63. package/query/NativeQueryBuilder.d.ts +120 -117
  64. package/query/NativeQueryBuilder.js +484 -480
  65. package/query/ObjectCriteriaNode.d.ts +12 -12
  66. package/query/ObjectCriteriaNode.js +298 -282
  67. package/query/QueryBuilder.d.ts +1546 -904
  68. package/query/QueryBuilder.js +2270 -2145
  69. package/query/QueryBuilderHelper.d.ts +153 -72
  70. package/query/QueryBuilderHelper.js +1079 -1028
  71. package/query/ScalarCriteriaNode.d.ts +3 -3
  72. package/query/ScalarCriteriaNode.js +53 -46
  73. package/query/enums.d.ts +16 -14
  74. package/query/enums.js +16 -14
  75. package/query/raw.d.ts +16 -6
  76. package/query/raw.js +10 -10
  77. package/schema/DatabaseSchema.d.ts +73 -50
  78. package/schema/DatabaseSchema.js +331 -307
  79. package/schema/DatabaseTable.d.ts +96 -73
  80. package/schema/DatabaseTable.js +1012 -927
  81. package/schema/SchemaComparator.d.ts +58 -54
  82. package/schema/SchemaComparator.js +745 -719
  83. package/schema/SchemaHelper.d.ts +110 -80
  84. package/schema/SchemaHelper.js +676 -645
  85. package/schema/SqlSchemaGenerator.d.ts +79 -58
  86. package/schema/SqlSchemaGenerator.js +536 -501
  87. package/typings.d.ts +380 -266
@@ -1,4 +1,19 @@
1
- import { type Dictionary, type EntityData, type EntityKey, type EntityMetadata, type EntityName, type EntityProperty, type FilterQuery, type FlatQueryOrderMap, type FormulaTable, LockMode, type QueryOrderMap, Raw, type RawQueryFragment, type RawQueryFragmentSymbol } from '@mikro-orm/core';
1
+ import {
2
+ type Dictionary,
3
+ type EntityData,
4
+ type EntityKey,
5
+ type EntityMetadata,
6
+ type EntityName,
7
+ type EntityProperty,
8
+ type FilterQuery,
9
+ type FlatQueryOrderMap,
10
+ type FormulaTable,
11
+ LockMode,
12
+ type QueryOrderMap,
13
+ Raw,
14
+ type RawQueryFragment,
15
+ type RawQueryFragmentSymbol,
16
+ } from '@mikro-orm/core';
2
17
  import { JoinType, QueryType } from './enums.js';
3
18
  import type { InternalField, JoinOptions } from '../typings.js';
4
19
  import type { AbstractSqlDriver } from '../AbstractSqlDriver.js';
@@ -7,79 +22,145 @@ import type { NativeQueryBuilder } from './NativeQueryBuilder.js';
7
22
  * @internal
8
23
  */
9
24
  export declare class QueryBuilderHelper {
10
- #private;
11
- constructor(entityName: EntityName, alias: string, aliasMap: Dictionary<Alias<any>>, subQueries: Dictionary<string>, driver: AbstractSqlDriver, tptAliasMap?: Dictionary<string>);
12
- /**
13
- * For TPT inheritance, finds the correct alias for a property based on which entity owns it.
14
- * Returns the main alias if not a TPT property or if the property belongs to the main entity.
15
- */
16
- getTPTAliasForProperty(propName: string, defaultAlias: string): string;
17
- mapper(field: string | Raw | RawQueryFragmentSymbol, type?: QueryType): string;
18
- mapper(field: string | Raw | RawQueryFragmentSymbol, type?: QueryType, value?: any, alias?: string | null, schema?: string): string;
19
- processData(data: Dictionary, convertCustomTypes: boolean, multi?: boolean): any;
20
- joinOneToReference(prop: EntityProperty, ownerAlias: string, alias: string, type: JoinType, cond?: Dictionary, schema?: string): JoinOptions;
21
- joinManyToOneReference(prop: EntityProperty, ownerAlias: string, alias: string, type: JoinType, cond?: Dictionary, schema?: string): JoinOptions;
22
- joinManyToManyReference(prop: EntityProperty, ownerAlias: string, alias: string, pivotAlias: string, type: JoinType, cond: Dictionary, path: string, schema?: string): Dictionary<JoinOptions>;
23
- processJoins(qb: NativeQueryBuilder, joins: Dictionary<JoinOptions>, schema?: string, schemaOverride?: string): void;
24
- createJoinExpression(join: JoinOptions, joins: Dictionary<JoinOptions>, schema?: string, schemaOverride?: string): {
25
- sql: string;
26
- params: unknown[];
27
- };
28
- mapJoinColumns(type: QueryType, join: JoinOptions): (string | Raw)[];
29
- isOneToOneInverse(field: string, meta?: EntityMetadata): boolean;
30
- getTableName(entityName: EntityName): string;
31
- /**
32
- * Checks whether the RE can be rewritten to simple LIKE query
33
- */
34
- isSimpleRegExp(re: any): re is RegExp;
35
- getRegExpParam(re: RegExp): string;
36
- appendOnConflictClause<T>(type: QueryType, onConflict: OnConflictClause<T>[], qb: NativeQueryBuilder): void;
37
- appendQueryCondition(type: QueryType, cond: any, qb: NativeQueryBuilder, operator?: '$and' | '$or', method?: 'where' | 'having'): void;
38
- _appendQueryCondition(type: QueryType, cond: any, operator?: '$and' | '$or'): {
39
- sql: string;
40
- params: unknown[];
41
- };
42
- private append;
43
- private appendQuerySubCondition;
44
- private processObjectSubCondition;
45
- private getValueReplacement;
46
- private getOperatorReplacement;
47
- validateQueryOrder<T>(orderBy: QueryOrderMap<T>): void;
48
- getQueryOrder(type: QueryType, orderBy: FlatQueryOrderMap | FlatQueryOrderMap[], populate: Dictionary<string>, collation?: string): string[];
49
- getQueryOrderFromObject(type: QueryType, orderBy: FlatQueryOrderMap, populate: Dictionary<string>, collation?: string): string[];
50
- splitField<T>(field: EntityKey<T>, greedyAlias?: boolean): [string, EntityKey<T>, string | undefined];
51
- getLockSQL(qb: NativeQueryBuilder, lockMode: LockMode, lockTables?: string[], joinsMap?: Dictionary<JoinOptions>): void;
52
- updateVersionProperty(qb: NativeQueryBuilder, data: Dictionary): void;
53
- private prefix;
54
- private appendGroupCondition;
55
- private isPrefixed;
56
- private fieldName;
57
- getProperty(field: string, alias?: string): EntityProperty | undefined;
58
- isTableNameAliasRequired(type: QueryType): boolean;
59
- private processEmbeddedArrayCondition;
60
- private buildJsonArrayExists;
61
- private resolveEmbeddedProp;
62
- private buildEmbeddedArrayOperatorCondition;
63
- private processJsonElemMatch;
64
- /**
65
- * Shared logic for building WHERE conditions inside JSON array EXISTS subqueries.
66
- * Used by both embedded array queries (metadata-driven) and $elemMatch (type-inferred).
67
- */
68
- private buildArrayElementWhere;
69
- private inferJsonValueType;
70
- processOnConflictCondition(cond: FilterQuery<any>, schema?: string): FilterQuery<any>;
71
- createFormulaTable(alias: string, meta: EntityMetadata, schema?: string): FormulaTable;
25
+ #private;
26
+ constructor(
27
+ entityName: EntityName,
28
+ alias: string,
29
+ aliasMap: Dictionary<Alias<any>>,
30
+ subQueries: Dictionary<string>,
31
+ driver: AbstractSqlDriver,
32
+ tptAliasMap?: Dictionary<string>,
33
+ );
34
+ /**
35
+ * For TPT inheritance, finds the correct alias for a property based on which entity owns it.
36
+ * Returns the main alias if not a TPT property or if the property belongs to the main entity.
37
+ */
38
+ getTPTAliasForProperty(propName: string, defaultAlias: string): string;
39
+ mapper(field: string | Raw | RawQueryFragmentSymbol, type?: QueryType): string;
40
+ mapper(
41
+ field: string | Raw | RawQueryFragmentSymbol,
42
+ type?: QueryType,
43
+ value?: any,
44
+ alias?: string | null,
45
+ schema?: string,
46
+ ): string;
47
+ processData(data: Dictionary, convertCustomTypes: boolean, multi?: boolean): any;
48
+ joinOneToReference(
49
+ prop: EntityProperty,
50
+ ownerAlias: string,
51
+ alias: string,
52
+ type: JoinType,
53
+ cond?: Dictionary,
54
+ schema?: string,
55
+ ): JoinOptions;
56
+ joinManyToOneReference(
57
+ prop: EntityProperty,
58
+ ownerAlias: string,
59
+ alias: string,
60
+ type: JoinType,
61
+ cond?: Dictionary,
62
+ schema?: string,
63
+ ): JoinOptions;
64
+ joinManyToManyReference(
65
+ prop: EntityProperty,
66
+ ownerAlias: string,
67
+ alias: string,
68
+ pivotAlias: string,
69
+ type: JoinType,
70
+ cond: Dictionary,
71
+ path: string,
72
+ schema?: string,
73
+ ): Dictionary<JoinOptions>;
74
+ processJoins(qb: NativeQueryBuilder, joins: Dictionary<JoinOptions>, schema?: string, schemaOverride?: string): void;
75
+ createJoinExpression(
76
+ join: JoinOptions,
77
+ joins: Dictionary<JoinOptions>,
78
+ schema?: string,
79
+ schemaOverride?: string,
80
+ ): {
81
+ sql: string;
82
+ params: unknown[];
83
+ };
84
+ mapJoinColumns(type: QueryType, join: JoinOptions): (string | Raw)[];
85
+ isOneToOneInverse(field: string, meta?: EntityMetadata): boolean;
86
+ getTableName(entityName: EntityName): string;
87
+ /**
88
+ * Checks whether the RE can be rewritten to simple LIKE query
89
+ */
90
+ isSimpleRegExp(re: any): re is RegExp;
91
+ getRegExpParam(re: RegExp): string;
92
+ appendOnConflictClause<T>(type: QueryType, onConflict: OnConflictClause<T>[], qb: NativeQueryBuilder): void;
93
+ appendQueryCondition(
94
+ type: QueryType,
95
+ cond: any,
96
+ qb: NativeQueryBuilder,
97
+ operator?: '$and' | '$or',
98
+ method?: 'where' | 'having',
99
+ ): void;
100
+ _appendQueryCondition(
101
+ type: QueryType,
102
+ cond: any,
103
+ operator?: '$and' | '$or',
104
+ ): {
105
+ sql: string;
106
+ params: unknown[];
107
+ };
108
+ private append;
109
+ private appendQuerySubCondition;
110
+ private processObjectSubCondition;
111
+ private getValueReplacement;
112
+ private getOperatorReplacement;
113
+ validateQueryOrder<T>(orderBy: QueryOrderMap<T>): void;
114
+ getQueryOrder(
115
+ type: QueryType,
116
+ orderBy: FlatQueryOrderMap | FlatQueryOrderMap[],
117
+ populate: Dictionary<string>,
118
+ collation?: string,
119
+ ): string[];
120
+ getQueryOrderFromObject(
121
+ type: QueryType,
122
+ orderBy: FlatQueryOrderMap,
123
+ populate: Dictionary<string>,
124
+ collation?: string,
125
+ ): string[];
126
+ splitField<T>(field: EntityKey<T>, greedyAlias?: boolean): [string, EntityKey<T>, string | undefined];
127
+ getLockSQL(
128
+ qb: NativeQueryBuilder,
129
+ lockMode: LockMode,
130
+ lockTables?: string[],
131
+ joinsMap?: Dictionary<JoinOptions>,
132
+ ): void;
133
+ updateVersionProperty(qb: NativeQueryBuilder, data: Dictionary): void;
134
+ private prefix;
135
+ private appendGroupCondition;
136
+ private isPrefixed;
137
+ private fieldName;
138
+ getProperty(field: string, alias?: string): EntityProperty | undefined;
139
+ isTableNameAliasRequired(type: QueryType): boolean;
140
+ private processEmbeddedArrayCondition;
141
+ private buildJsonArrayExists;
142
+ private resolveEmbeddedProp;
143
+ private buildEmbeddedArrayOperatorCondition;
144
+ private processJsonElemMatch;
145
+ /**
146
+ * Shared logic for building WHERE conditions inside JSON array EXISTS subqueries.
147
+ * Used by both embedded array queries (metadata-driven) and $elemMatch (type-inferred).
148
+ */
149
+ private buildArrayElementWhere;
150
+ private inferJsonValueType;
151
+ processOnConflictCondition(cond: FilterQuery<any>, schema?: string): FilterQuery<any>;
152
+ createFormulaTable(alias: string, meta: EntityMetadata, schema?: string): FormulaTable;
72
153
  }
73
154
  export interface Alias<T> {
74
- aliasName: string;
75
- entityName: EntityName<T>;
76
- meta: EntityMetadata<T>;
77
- subQuery?: NativeQueryBuilder | RawQueryFragment;
78
- rawTableName?: string;
155
+ aliasName: string;
156
+ entityName: EntityName<T>;
157
+ meta: EntityMetadata<T>;
158
+ subQuery?: NativeQueryBuilder | RawQueryFragment;
159
+ rawTableName?: string;
79
160
  }
80
161
  export interface OnConflictClause<T> {
81
- fields: string[] | Raw;
82
- ignore?: boolean;
83
- merge?: EntityData<T> | InternalField<T>[];
84
- where?: FilterQuery<T>;
162
+ fields: string[] | Raw;
163
+ ignore?: boolean;
164
+ merge?: EntityData<T> | InternalField<T>[];
165
+ where?: FilterQuery<T>;
85
166
  }