@mikro-orm/core 7.0.4-dev.9 → 7.0.4

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 (206) hide show
  1. package/EntityManager.d.ts +884 -583
  2. package/EntityManager.js +1922 -1895
  3. package/MikroORM.d.ts +103 -74
  4. package/MikroORM.js +178 -179
  5. package/README.md +1 -1
  6. package/cache/CacheAdapter.d.ts +36 -36
  7. package/cache/FileCacheAdapter.d.ts +30 -24
  8. package/cache/FileCacheAdapter.js +80 -78
  9. package/cache/GeneratedCacheAdapter.d.ts +18 -20
  10. package/cache/GeneratedCacheAdapter.js +30 -30
  11. package/cache/MemoryCacheAdapter.d.ts +18 -20
  12. package/cache/MemoryCacheAdapter.js +35 -36
  13. package/cache/NullCacheAdapter.d.ts +16 -16
  14. package/cache/NullCacheAdapter.js +24 -24
  15. package/connections/Connection.d.ts +95 -84
  16. package/connections/Connection.js +165 -168
  17. package/drivers/DatabaseDriver.d.ts +186 -80
  18. package/drivers/DatabaseDriver.js +450 -443
  19. package/drivers/IDatabaseDriver.d.ts +440 -301
  20. package/entity/BaseEntity.d.ts +120 -83
  21. package/entity/BaseEntity.js +43 -43
  22. package/entity/Collection.d.ts +212 -179
  23. package/entity/Collection.js +727 -721
  24. package/entity/EntityAssigner.d.ts +88 -77
  25. package/entity/EntityAssigner.js +231 -230
  26. package/entity/EntityFactory.d.ts +66 -54
  27. package/entity/EntityFactory.js +425 -383
  28. package/entity/EntityHelper.d.ts +34 -22
  29. package/entity/EntityHelper.js +280 -267
  30. package/entity/EntityIdentifier.d.ts +4 -4
  31. package/entity/EntityIdentifier.js +10 -10
  32. package/entity/EntityLoader.d.ts +98 -72
  33. package/entity/EntityLoader.js +753 -723
  34. package/entity/EntityRepository.d.ts +316 -201
  35. package/entity/EntityRepository.js +213 -213
  36. package/entity/PolymorphicRef.d.ts +5 -5
  37. package/entity/PolymorphicRef.js +10 -10
  38. package/entity/Reference.d.ts +126 -82
  39. package/entity/Reference.js +278 -274
  40. package/entity/WrappedEntity.d.ts +115 -72
  41. package/entity/WrappedEntity.js +168 -166
  42. package/entity/defineEntity.d.ts +1315 -636
  43. package/entity/defineEntity.js +527 -518
  44. package/entity/utils.d.ts +13 -3
  45. package/entity/utils.js +71 -73
  46. package/entity/validators.js +43 -43
  47. package/entity/wrap.js +8 -8
  48. package/enums.d.ts +258 -253
  49. package/enums.js +251 -252
  50. package/errors.d.ts +114 -72
  51. package/errors.js +350 -253
  52. package/events/EventManager.d.ts +26 -14
  53. package/events/EventManager.js +79 -77
  54. package/events/EventSubscriber.d.ts +29 -29
  55. package/events/TransactionEventBroadcaster.d.ts +15 -8
  56. package/events/TransactionEventBroadcaster.js +14 -14
  57. package/exceptions.d.ts +23 -40
  58. package/exceptions.js +35 -52
  59. package/hydration/Hydrator.d.ts +42 -17
  60. package/hydration/Hydrator.js +43 -43
  61. package/hydration/ObjectHydrator.d.ts +50 -17
  62. package/hydration/ObjectHydrator.js +481 -416
  63. package/index.d.ts +116 -2
  64. package/index.js +10 -1
  65. package/logging/DefaultLogger.d.ts +34 -32
  66. package/logging/DefaultLogger.js +86 -86
  67. package/logging/Logger.d.ts +41 -41
  68. package/logging/SimpleLogger.d.ts +13 -11
  69. package/logging/SimpleLogger.js +22 -22
  70. package/logging/colors.d.ts +6 -6
  71. package/logging/colors.js +11 -10
  72. package/logging/inspect.js +7 -7
  73. package/metadata/EntitySchema.d.ts +211 -127
  74. package/metadata/EntitySchema.js +397 -398
  75. package/metadata/MetadataDiscovery.d.ts +114 -114
  76. package/metadata/MetadataDiscovery.js +1951 -1863
  77. package/metadata/MetadataProvider.d.ts +24 -21
  78. package/metadata/MetadataProvider.js +82 -84
  79. package/metadata/MetadataStorage.d.ts +38 -32
  80. package/metadata/MetadataStorage.js +118 -118
  81. package/metadata/MetadataValidator.d.ts +39 -39
  82. package/metadata/MetadataValidator.js +381 -338
  83. package/metadata/discover-entities.d.ts +5 -2
  84. package/metadata/discover-entities.js +35 -27
  85. package/metadata/types.d.ts +615 -531
  86. package/naming-strategy/AbstractNamingStrategy.d.ts +54 -39
  87. package/naming-strategy/AbstractNamingStrategy.js +90 -85
  88. package/naming-strategy/EntityCaseNamingStrategy.d.ts +6 -6
  89. package/naming-strategy/EntityCaseNamingStrategy.js +22 -22
  90. package/naming-strategy/MongoNamingStrategy.d.ts +6 -6
  91. package/naming-strategy/MongoNamingStrategy.js +18 -18
  92. package/naming-strategy/NamingStrategy.d.ts +109 -99
  93. package/naming-strategy/UnderscoreNamingStrategy.d.ts +7 -7
  94. package/naming-strategy/UnderscoreNamingStrategy.js +21 -21
  95. package/not-supported.js +7 -4
  96. package/package.json +1 -1
  97. package/platforms/ExceptionConverter.d.ts +1 -1
  98. package/platforms/ExceptionConverter.js +4 -4
  99. package/platforms/Platform.d.ts +310 -299
  100. package/platforms/Platform.js +663 -636
  101. package/serialization/EntitySerializer.d.ts +49 -26
  102. package/serialization/EntitySerializer.js +224 -218
  103. package/serialization/EntityTransformer.d.ts +10 -6
  104. package/serialization/EntityTransformer.js +219 -217
  105. package/serialization/SerializationContext.d.ts +27 -23
  106. package/serialization/SerializationContext.js +105 -105
  107. package/types/ArrayType.d.ts +8 -8
  108. package/types/ArrayType.js +33 -33
  109. package/types/BigIntType.d.ts +17 -10
  110. package/types/BigIntType.js +37 -37
  111. package/types/BlobType.d.ts +3 -3
  112. package/types/BlobType.js +13 -13
  113. package/types/BooleanType.d.ts +4 -4
  114. package/types/BooleanType.js +12 -12
  115. package/types/CharacterType.d.ts +2 -2
  116. package/types/CharacterType.js +6 -6
  117. package/types/DateTimeType.d.ts +5 -5
  118. package/types/DateTimeType.js +15 -15
  119. package/types/DateType.d.ts +5 -5
  120. package/types/DateType.js +15 -15
  121. package/types/DecimalType.d.ts +7 -7
  122. package/types/DecimalType.js +26 -26
  123. package/types/DoubleType.d.ts +3 -3
  124. package/types/DoubleType.js +12 -12
  125. package/types/EnumArrayType.d.ts +5 -5
  126. package/types/EnumArrayType.js +24 -24
  127. package/types/EnumType.d.ts +3 -3
  128. package/types/EnumType.js +11 -11
  129. package/types/FloatType.d.ts +3 -3
  130. package/types/FloatType.js +9 -9
  131. package/types/IntegerType.d.ts +3 -3
  132. package/types/IntegerType.js +9 -9
  133. package/types/IntervalType.d.ts +4 -4
  134. package/types/IntervalType.js +12 -12
  135. package/types/JsonType.d.ts +8 -8
  136. package/types/JsonType.js +32 -32
  137. package/types/MediumIntType.d.ts +1 -1
  138. package/types/MediumIntType.js +3 -3
  139. package/types/SmallIntType.d.ts +3 -3
  140. package/types/SmallIntType.js +9 -9
  141. package/types/StringType.d.ts +4 -4
  142. package/types/StringType.js +12 -12
  143. package/types/TextType.d.ts +3 -3
  144. package/types/TextType.js +9 -9
  145. package/types/TimeType.d.ts +5 -5
  146. package/types/TimeType.js +17 -17
  147. package/types/TinyIntType.d.ts +3 -3
  148. package/types/TinyIntType.js +10 -10
  149. package/types/Type.d.ts +83 -79
  150. package/types/Type.js +82 -82
  151. package/types/Uint8ArrayType.d.ts +4 -4
  152. package/types/Uint8ArrayType.js +21 -21
  153. package/types/UnknownType.d.ts +4 -4
  154. package/types/UnknownType.js +12 -12
  155. package/types/UuidType.d.ts +5 -5
  156. package/types/UuidType.js +19 -19
  157. package/types/index.d.ts +75 -49
  158. package/types/index.js +52 -26
  159. package/typings.d.ts +1250 -737
  160. package/typings.js +244 -231
  161. package/unit-of-work/ChangeSet.d.ts +26 -26
  162. package/unit-of-work/ChangeSet.js +56 -56
  163. package/unit-of-work/ChangeSetComputer.d.ts +12 -12
  164. package/unit-of-work/ChangeSetComputer.js +178 -170
  165. package/unit-of-work/ChangeSetPersister.d.ts +63 -44
  166. package/unit-of-work/ChangeSetPersister.js +442 -421
  167. package/unit-of-work/CommitOrderCalculator.d.ts +40 -40
  168. package/unit-of-work/CommitOrderCalculator.js +89 -88
  169. package/unit-of-work/IdentityMap.d.ts +31 -31
  170. package/unit-of-work/IdentityMap.js +105 -105
  171. package/unit-of-work/UnitOfWork.d.ts +181 -141
  172. package/unit-of-work/UnitOfWork.js +1200 -1183
  173. package/utils/AbstractMigrator.d.ts +111 -91
  174. package/utils/AbstractMigrator.js +275 -275
  175. package/utils/AbstractSchemaGenerator.d.ts +43 -34
  176. package/utils/AbstractSchemaGenerator.js +121 -122
  177. package/utils/AsyncContext.d.ts +3 -3
  178. package/utils/AsyncContext.js +34 -35
  179. package/utils/Configuration.d.ts +852 -808
  180. package/utils/Configuration.js +359 -344
  181. package/utils/Cursor.d.ts +40 -22
  182. package/utils/Cursor.js +135 -127
  183. package/utils/DataloaderUtils.d.ts +58 -43
  184. package/utils/DataloaderUtils.js +203 -198
  185. package/utils/EntityComparator.d.ts +98 -81
  186. package/utils/EntityComparator.js +828 -728
  187. package/utils/NullHighlighter.d.ts +1 -1
  188. package/utils/NullHighlighter.js +3 -3
  189. package/utils/QueryHelper.d.ts +79 -51
  190. package/utils/QueryHelper.js +372 -361
  191. package/utils/RawQueryFragment.d.ts +50 -34
  192. package/utils/RawQueryFragment.js +107 -105
  193. package/utils/RequestContext.d.ts +32 -32
  194. package/utils/RequestContext.js +52 -53
  195. package/utils/TransactionContext.d.ts +16 -16
  196. package/utils/TransactionContext.js +27 -27
  197. package/utils/TransactionManager.d.ts +58 -58
  198. package/utils/TransactionManager.js +199 -197
  199. package/utils/Utils.d.ts +204 -145
  200. package/utils/Utils.js +812 -810
  201. package/utils/clone.js +104 -113
  202. package/utils/env-vars.js +90 -88
  203. package/utils/fs-utils.d.ts +15 -15
  204. package/utils/fs-utils.js +180 -181
  205. package/utils/upsert-utils.d.ts +20 -5
  206. package/utils/upsert-utils.js +114 -116
package/enums.d.ts CHANGED
@@ -3,319 +3,324 @@ import type { Transaction } from './connections/Connection.js';
3
3
  import type { LogContext } from './logging/Logger.js';
4
4
  /** Controls when the `EntityManager` flushes pending changes to the database. */
5
5
  export declare enum FlushMode {
6
- /** The `EntityManager` delays the flush until the current Transaction is committed. */
7
- COMMIT = "commit",
8
- /** This is the default mode, and it flushes the `EntityManager` only if necessary. */
9
- AUTO = "auto",
10
- /** Flushes the `EntityManager` before every query. */
11
- ALWAYS = "always"
6
+ /** The `EntityManager` delays the flush until the current Transaction is committed. */
7
+ COMMIT = 'commit',
8
+ /** This is the default mode, and it flushes the `EntityManager` only if necessary. */
9
+ AUTO = 'auto',
10
+ /** Flushes the `EntityManager` before every query. */
11
+ ALWAYS = 'always',
12
12
  }
13
13
  /** Controls how populate hints are resolved when using `FindOptions.populateWhere`. */
14
14
  export declare enum PopulateHint {
15
- /** Infer population hints from the `where` condition. */
16
- INFER = "infer",
17
- /** Apply population hints to all relations. */
18
- ALL = "all"
15
+ /** Infer population hints from the `where` condition. */
16
+ INFER = 'infer',
17
+ /** Apply population hints to all relations. */
18
+ ALL = 'all',
19
19
  }
20
20
  /** Special tokens used as populate path values in `FindOptions.populate`. */
21
21
  export declare enum PopulatePath {
22
- /** Infer which relations to populate based on fields accessed in the `where` or `orderBy` clause. */
23
- INFER = "$infer",
24
- /** Populate all relations. */
25
- ALL = "*"
22
+ /** Infer which relations to populate based on fields accessed in the `where` or `orderBy` clause. */
23
+ INFER = '$infer',
24
+ /** Populate all relations. */
25
+ ALL = '*',
26
26
  }
27
27
  /** Logical grouping operators for combining query conditions. */
28
28
  export declare enum GroupOperator {
29
- /** Logical AND — all conditions must match. */
30
- $and = "and",
31
- /** Logical OR — at least one condition must match. */
32
- $or = "or"
29
+ /** Logical AND — all conditions must match. */
30
+ $and = 'and',
31
+ /** Logical OR — at least one condition must match. */
32
+ $or = 'or',
33
33
  }
34
34
  /** Comparison and filtering operators used in query conditions. */
35
35
  export declare enum QueryOperator {
36
- /** Equal. */
37
- $eq = "=",
38
- /** Included in the given list. */
39
- $in = "in",
40
- /** Not included in the given list. */
41
- $nin = "not in",
42
- /** Greater than. */
43
- $gt = ">",
44
- /** Greater than or equal to. */
45
- $gte = ">=",
46
- /** Less than. */
47
- $lt = "<",
48
- /** Less than or equal to. */
49
- $lte = "<=",
50
- /** Not equal. */
51
- $ne = "!=",
52
- /** Negation wrapper. */
53
- $not = "not",
54
- /** SQL LIKE pattern matching. */
55
- $like = "like",
56
- /** Regular expression matching. */
57
- $re = "regexp",
58
- /** Full-text search. */
59
- $fulltext = "fulltext",
60
- /** Checks that the value is not null (i.e., exists). */
61
- $exists = "not null",
62
- /** Case-insensitive LIKE (PostgreSQL only). */
63
- $ilike = "ilike",// postgres only
64
- /** Array overlap operator (PostgreSQL only). */
65
- $overlap = "&&",// postgres only
66
- /** Array/JSON contains operator (PostgreSQL only). */
67
- $contains = "@>",// postgres only
68
- /** Array/JSON contained-by operator (PostgreSQL only). */
69
- $contained = "<@",// postgres only
70
- /** No element in the collection matches (SQL only). */
71
- $none = "none",// collection operators, sql only
72
- /** At least one element in the collection matches (SQL only). */
73
- $some = "some",// collection operators, sql only
74
- /** Every element in the collection matches (SQL only). */
75
- $every = "every",// collection operators, sql only
76
- /** Matches collections by their size (SQL only). */
77
- $size = "size",// collection operators, sql only
78
- /** JSON object has the given key (PostgreSQL only). */
79
- $hasKey = "?",// postgres only, json
80
- /** JSON object has all of the given keys (PostgreSQL only). */
81
- $hasKeys = "?&",// postgres only, json
82
- /** JSON object has at least one of the given keys (PostgreSQL only). */
83
- $hasSomeKeys = "?|",// postgres only, json
84
- /** Matches an element inside a JSON array (SQL only). */
85
- $elemMatch = "elemMatch"
36
+ /** Equal. */
37
+ $eq = '=',
38
+ /** Included in the given list. */
39
+ $in = 'in',
40
+ /** Not included in the given list. */
41
+ $nin = 'not in',
42
+ /** Greater than. */
43
+ $gt = '>',
44
+ /** Greater than or equal to. */
45
+ $gte = '>=',
46
+ /** Less than. */
47
+ $lt = '<',
48
+ /** Less than or equal to. */
49
+ $lte = '<=',
50
+ /** Not equal. */
51
+ $ne = '!=',
52
+ /** Negation wrapper. */
53
+ $not = 'not',
54
+ /** SQL LIKE pattern matching. */
55
+ $like = 'like',
56
+ /** Regular expression matching. */
57
+ $re = 'regexp',
58
+ /** Full-text search. */
59
+ $fulltext = 'fulltext',
60
+ /** Checks that the value is not null (i.e., exists). */
61
+ $exists = 'not null',
62
+ /** Case-insensitive LIKE (PostgreSQL only). */
63
+ $ilike = 'ilike', // postgres only
64
+ /** Array overlap operator (PostgreSQL only). */
65
+ $overlap = '&&', // postgres only
66
+ /** Array/JSON contains operator (PostgreSQL only). */
67
+ $contains = '@>', // postgres only
68
+ /** Array/JSON contained-by operator (PostgreSQL only). */
69
+ $contained = '<@', // postgres only
70
+ /** No element in the collection matches (SQL only). */
71
+ $none = 'none', // collection operators, sql only
72
+ /** At least one element in the collection matches (SQL only). */
73
+ $some = 'some', // collection operators, sql only
74
+ /** Every element in the collection matches (SQL only). */
75
+ $every = 'every', // collection operators, sql only
76
+ /** Matches collections by their size (SQL only). */
77
+ $size = 'size', // collection operators, sql only
78
+ /** JSON object has the given key (PostgreSQL only). */
79
+ $hasKey = '?', // postgres only, json
80
+ /** JSON object has all of the given keys (PostgreSQL only). */
81
+ $hasKeys = '?&', // postgres only, json
82
+ /** JSON object has at least one of the given keys (PostgreSQL only). */
83
+ $hasSomeKeys = '?|', // postgres only, json
84
+ /** Matches an element inside a JSON array (SQL only). */
85
+ $elemMatch = 'elemMatch',
86
86
  }
87
87
  export declare const ARRAY_OPERATORS: string[];
88
88
  export declare const JSON_KEY_OPERATORS: string[];
89
89
  /** Sort direction for query results. Both upper- and lower-case variants are accepted. */
90
90
  export declare enum QueryOrder {
91
- /** Ascending order. */
92
- ASC = "ASC",
93
- /** Ascending order with nulls sorted last. */
94
- ASC_NULLS_LAST = "ASC NULLS LAST",
95
- /** Ascending order with nulls sorted first. */
96
- ASC_NULLS_FIRST = "ASC NULLS FIRST",
97
- /** Descending order. */
98
- DESC = "DESC",
99
- /** Descending order with nulls sorted last. */
100
- DESC_NULLS_LAST = "DESC NULLS LAST",
101
- /** Descending order with nulls sorted first. */
102
- DESC_NULLS_FIRST = "DESC NULLS FIRST",
103
- /** Ascending order (lower-case variant). */
104
- asc = "asc",
105
- /** Ascending order with nulls sorted last (lower-case variant). */
106
- asc_nulls_last = "asc nulls last",
107
- /** Ascending order with nulls sorted first (lower-case variant). */
108
- asc_nulls_first = "asc nulls first",
109
- /** Descending order (lower-case variant). */
110
- desc = "desc",
111
- /** Descending order with nulls sorted last (lower-case variant). */
112
- desc_nulls_last = "desc nulls last",
113
- /** Descending order with nulls sorted first (lower-case variant). */
114
- desc_nulls_first = "desc nulls first"
91
+ /** Ascending order. */
92
+ ASC = 'ASC',
93
+ /** Ascending order with nulls sorted last. */
94
+ ASC_NULLS_LAST = 'ASC NULLS LAST',
95
+ /** Ascending order with nulls sorted first. */
96
+ ASC_NULLS_FIRST = 'ASC NULLS FIRST',
97
+ /** Descending order. */
98
+ DESC = 'DESC',
99
+ /** Descending order with nulls sorted last. */
100
+ DESC_NULLS_LAST = 'DESC NULLS LAST',
101
+ /** Descending order with nulls sorted first. */
102
+ DESC_NULLS_FIRST = 'DESC NULLS FIRST',
103
+ /** Ascending order (lower-case variant). */
104
+ asc = 'asc',
105
+ /** Ascending order with nulls sorted last (lower-case variant). */
106
+ asc_nulls_last = 'asc nulls last',
107
+ /** Ascending order with nulls sorted first (lower-case variant). */
108
+ asc_nulls_first = 'asc nulls first',
109
+ /** Descending order (lower-case variant). */
110
+ desc = 'desc',
111
+ /** Descending order with nulls sorted last (lower-case variant). */
112
+ desc_nulls_last = 'desc nulls last',
113
+ /** Descending order with nulls sorted first (lower-case variant). */
114
+ desc_nulls_first = 'desc nulls first',
115
115
  }
116
116
  /** Numeric sort direction, compatible with MongoDB-style ordering. */
117
117
  export declare enum QueryOrderNumeric {
118
- /** Ascending order. */
119
- ASC = 1,
120
- /** Descending order. */
121
- DESC = -1
118
+ /** Ascending order. */
119
+ ASC = 1,
120
+ /** Descending order. */
121
+ DESC = -1,
122
122
  }
123
123
  export type QueryOrderKeysFlat = QueryOrder | QueryOrderNumeric | `${QueryOrder}`;
124
124
  export type QueryOrderKeys<T> = QueryOrderKeysFlat | QueryOrderMap<T>;
125
125
  export type QueryOrderMap<T> = {
126
- [K in EntityKey<T>]?: QueryOrderKeys<ExpandProperty<T[K]>>;
126
+ [K in EntityKey<T>]?: QueryOrderKeys<ExpandProperty<T[K]>>;
127
127
  };
128
128
  export interface FlatQueryOrderMap {
129
- [x: string]: QueryOrderKeysFlat;
129
+ [x: string]: QueryOrderKeysFlat;
130
130
  }
131
131
  /** Flags that modify query builder behavior. */
132
132
  export declare enum QueryFlag {
133
- /** Add a DISTINCT clause to the SELECT statement. */
134
- DISTINCT = "DISTINCT",
135
- /** Enable result pagination via a sub-query for the primary keys. */
136
- PAGINATE = "PAGINATE",
137
- /** Disable the automatic pagination sub-query. */
138
- DISABLE_PAGINATE = "DISABLE_PAGINATE",
139
- /** Wrap UPDATE statements in a sub-query. */
140
- UPDATE_SUB_QUERY = "UPDATE_SUB_QUERY",
141
- /** Wrap DELETE statements in a sub-query. */
142
- DELETE_SUB_QUERY = "DELETE_SUB_QUERY",
143
- /** Convert values through custom type mappings when reading results. */
144
- CONVERT_CUSTOM_TYPES = "CONVERT_CUSTOM_TYPES",
145
- /** Include lazy formula properties in the SELECT clause. */
146
- INCLUDE_LAZY_FORMULAS = "INCLUDE_LAZY_FORMULAS",
147
- /** Automatically join the owning side of one-to-one relations. */
148
- AUTO_JOIN_ONE_TO_ONE_OWNER = "AUTO_JOIN_ONE_TO_ONE_OWNER",
149
- /** Infer the populate hint from the query fields. */
150
- INFER_POPULATE = "INFER_POPULATE",
151
- /** Prevent nested conditions from being promoted to INNER JOINs. */
152
- DISABLE_NESTED_INNER_JOIN = "DISABLE_NESTED_INNER_JOIN",
153
- /** Enable IDENTITY_INSERT for explicit PK values (MSSQL only). */
154
- IDENTITY_INSERT = "IDENTITY_INSERT",// mssql only
155
- /** Use an OUTPUT...INTO temp table for returning rows (MSSQL only). */
156
- OUTPUT_TABLE = "OUTPUT_TABLE"
133
+ /** Add a DISTINCT clause to the SELECT statement. */
134
+ DISTINCT = 'DISTINCT',
135
+ /** Enable result pagination via a sub-query for the primary keys. */
136
+ PAGINATE = 'PAGINATE',
137
+ /** Disable the automatic pagination sub-query. */
138
+ DISABLE_PAGINATE = 'DISABLE_PAGINATE',
139
+ /** Wrap UPDATE statements in a sub-query. */
140
+ UPDATE_SUB_QUERY = 'UPDATE_SUB_QUERY',
141
+ /** Wrap DELETE statements in a sub-query. */
142
+ DELETE_SUB_QUERY = 'DELETE_SUB_QUERY',
143
+ /** Convert values through custom type mappings when reading results. */
144
+ CONVERT_CUSTOM_TYPES = 'CONVERT_CUSTOM_TYPES',
145
+ /** Include lazy formula properties in the SELECT clause. */
146
+ INCLUDE_LAZY_FORMULAS = 'INCLUDE_LAZY_FORMULAS',
147
+ /** Automatically join the owning side of one-to-one relations. */
148
+ AUTO_JOIN_ONE_TO_ONE_OWNER = 'AUTO_JOIN_ONE_TO_ONE_OWNER',
149
+ /** Infer the populate hint from the query fields. */
150
+ INFER_POPULATE = 'INFER_POPULATE',
151
+ /** Prevent nested conditions from being promoted to INNER JOINs. */
152
+ DISABLE_NESTED_INNER_JOIN = 'DISABLE_NESTED_INNER_JOIN',
153
+ /** Enable IDENTITY_INSERT for explicit PK values (MSSQL only). */
154
+ IDENTITY_INSERT = 'IDENTITY_INSERT', // mssql only
155
+ /** Use an OUTPUT...INTO temp table for returning rows (MSSQL only). */
156
+ OUTPUT_TABLE = 'OUTPUT_TABLE',
157
157
  }
158
158
  export declare const SCALAR_TYPES: Set<string>;
159
159
  /** Describes the kind of relationship a property represents. */
160
160
  export declare enum ReferenceKind {
161
- /** A plain scalar property (not a relation). */
162
- SCALAR = "scalar",
163
- /** A one-to-one relation. */
164
- ONE_TO_ONE = "1:1",
165
- /** A one-to-many relation (inverse side of a many-to-one). */
166
- ONE_TO_MANY = "1:m",
167
- /** A many-to-one relation (owning side). */
168
- MANY_TO_ONE = "m:1",
169
- /** A many-to-many relation. */
170
- MANY_TO_MANY = "m:n",
171
- /** An embedded entity (inline object stored within the parent). */
172
- EMBEDDED = "embedded"
161
+ /** A plain scalar property (not a relation). */
162
+ SCALAR = 'scalar',
163
+ /** A one-to-one relation. */
164
+ ONE_TO_ONE = '1:1',
165
+ /** A one-to-many relation (inverse side of a many-to-one). */
166
+ ONE_TO_MANY = '1:m',
167
+ /** A many-to-one relation (owning side). */
168
+ MANY_TO_ONE = 'm:1',
169
+ /** A many-to-many relation. */
170
+ MANY_TO_MANY = 'm:n',
171
+ /** An embedded entity (inline object stored within the parent). */
172
+ EMBEDDED = 'embedded',
173
173
  }
174
174
  /** Cascade operations that propagate from a parent entity to its relations. */
175
175
  export declare enum Cascade {
176
- /** Cascade persist — new related entities are automatically persisted. */
177
- PERSIST = "persist",
178
- /** Cascade merge — detached related entities are merged into the identity map. */
179
- MERGE = "merge",
180
- /** Cascade remove — removing the parent also removes related entities. */
181
- REMOVE = "remove",
182
- /** Enable all cascade operations (persist, merge, remove). */
183
- ALL = "all",
184
- /** @internal */
185
- SCHEDULE_ORPHAN_REMOVAL = "schedule_orphan_removal",
186
- /** @internal */
187
- CANCEL_ORPHAN_REMOVAL = "cancel_orphan_removal"
176
+ /** Cascade persist — new related entities are automatically persisted. */
177
+ PERSIST = 'persist',
178
+ /** Cascade merge — detached related entities are merged into the identity map. */
179
+ MERGE = 'merge',
180
+ /** Cascade remove — removing the parent also removes related entities. */
181
+ REMOVE = 'remove',
182
+ /** Enable all cascade operations (persist, merge, remove). */
183
+ ALL = 'all',
184
+ /** @internal */
185
+ SCHEDULE_ORPHAN_REMOVAL = 'schedule_orphan_removal',
186
+ /** @internal */
187
+ CANCEL_ORPHAN_REMOVAL = 'cancel_orphan_removal',
188
188
  }
189
189
  /** Strategy used to load related entities when populating. */
190
190
  export declare enum LoadStrategy {
191
- /** Load relations with a separate SELECT ... WHERE pk IN (...) query. */
192
- SELECT_IN = "select-in",
193
- /** Load relations via SQL JOINs in a single query. */
194
- JOINED = "joined",
195
- /** Use joined strategy for to-one relations and select-in for to-many. */
196
- BALANCED = "balanced"
191
+ /** Load relations with a separate SELECT ... WHERE pk IN (...) query. */
192
+ SELECT_IN = 'select-in',
193
+ /** Load relations via SQL JOINs in a single query. */
194
+ JOINED = 'joined',
195
+ /** Use joined strategy for to-one relations and select-in for to-many. */
196
+ BALANCED = 'balanced',
197
197
  }
198
198
  /** Controls which relation types use the dataloader for batched loading. */
199
199
  export declare enum DataloaderType {
200
- /** Dataloader is disabled. */
201
- NONE = 0,
202
- /** Use the dataloader for Reference (to-one) relations only. */
203
- REFERENCE = 1,
204
- /** Use the dataloader for Collection (to-many) relations only. */
205
- COLLECTION = 2,
206
- /** Use the dataloader for both Reference and Collection relations. */
207
- ALL = 3
200
+ /** Dataloader is disabled. */
201
+ NONE = 0,
202
+ /** Use the dataloader for Reference (to-one) relations only. */
203
+ REFERENCE = 1,
204
+ /** Use the dataloader for Collection (to-many) relations only. */
205
+ COLLECTION = 2,
206
+ /** Use the dataloader for both Reference and Collection relations. */
207
+ ALL = 3,
208
208
  }
209
209
  /** Locking strategy for concurrency control. */
210
210
  export declare enum LockMode {
211
- /** No locking. */
212
- NONE = 0,
213
- /** Optimistic locking via a version column. */
214
- OPTIMISTIC = 1,
215
- /** Pessimistic shared lock (FOR SHARE). */
216
- PESSIMISTIC_READ = 2,
217
- /** Pessimistic exclusive lock (FOR UPDATE). */
218
- PESSIMISTIC_WRITE = 3,
219
- /** Pessimistic exclusive lock that skips already-locked rows (FOR UPDATE SKIP LOCKED). */
220
- PESSIMISTIC_PARTIAL_WRITE = 4,
221
- /** Pessimistic exclusive lock that fails immediately if the row is locked (FOR UPDATE NOWAIT). */
222
- PESSIMISTIC_WRITE_OR_FAIL = 5,
223
- /** Pessimistic shared lock that skips already-locked rows (FOR SHARE SKIP LOCKED). */
224
- PESSIMISTIC_PARTIAL_READ = 6,
225
- /** Pessimistic shared lock that fails immediately if the row is locked (FOR SHARE NOWAIT). */
226
- PESSIMISTIC_READ_OR_FAIL = 7
211
+ /** No locking. */
212
+ NONE = 0,
213
+ /** Optimistic locking via a version column. */
214
+ OPTIMISTIC = 1,
215
+ /** Pessimistic shared lock (FOR SHARE). */
216
+ PESSIMISTIC_READ = 2,
217
+ /** Pessimistic exclusive lock (FOR UPDATE). */
218
+ PESSIMISTIC_WRITE = 3,
219
+ /** Pessimistic exclusive lock that skips already-locked rows (FOR UPDATE SKIP LOCKED). */
220
+ PESSIMISTIC_PARTIAL_WRITE = 4,
221
+ /** Pessimistic exclusive lock that fails immediately if the row is locked (FOR UPDATE NOWAIT). */
222
+ PESSIMISTIC_WRITE_OR_FAIL = 5,
223
+ /** Pessimistic shared lock that skips already-locked rows (FOR SHARE SKIP LOCKED). */
224
+ PESSIMISTIC_PARTIAL_READ = 6,
225
+ /** Pessimistic shared lock that fails immediately if the row is locked (FOR SHARE NOWAIT). */
226
+ PESSIMISTIC_READ_OR_FAIL = 7,
227
227
  }
228
228
  /** Transaction isolation levels as defined by the SQL standard (plus vendor extensions). */
229
229
  export declare enum IsolationLevel {
230
- /** Allows dirty reads, non-repeatable reads, and phantom reads. */
231
- READ_UNCOMMITTED = "read uncommitted",
232
- /** Prevents dirty reads; non-repeatable and phantom reads are still possible. */
233
- READ_COMMITTED = "read committed",
234
- /** Snapshot isolation — each transaction sees a consistent snapshot of the database (MSSQL). */
235
- SNAPSHOT = "snapshot",
236
- /** Prevents dirty and non-repeatable reads; phantom reads are still possible. */
237
- REPEATABLE_READ = "repeatable read",
238
- /** Full isolation — transactions are executed as if they were run sequentially. */
239
- SERIALIZABLE = "serializable"
230
+ /** Allows dirty reads, non-repeatable reads, and phantom reads. */
231
+ READ_UNCOMMITTED = 'read uncommitted',
232
+ /** Prevents dirty reads; non-repeatable and phantom reads are still possible. */
233
+ READ_COMMITTED = 'read committed',
234
+ /** Snapshot isolation — each transaction sees a consistent snapshot of the database (MSSQL). */
235
+ SNAPSHOT = 'snapshot',
236
+ /** Prevents dirty and non-repeatable reads; phantom reads are still possible. */
237
+ REPEATABLE_READ = 'repeatable read',
238
+ /** Full isolation — transactions are executed as if they were run sequentially. */
239
+ SERIALIZABLE = 'serializable',
240
240
  }
241
241
  /** Lifecycle and transaction events emitted by the ORM. */
242
242
  export declare enum EventType {
243
- /** Fired when an entity instance is created (via constructor or `em.create`). */
244
- onInit = "onInit",
245
- /** Fired after an entity is loaded from the database. */
246
- onLoad = "onLoad",
247
- /** Fired before a new entity is inserted into the database. */
248
- beforeCreate = "beforeCreate",
249
- /** Fired after a new entity has been inserted into the database. */
250
- afterCreate = "afterCreate",
251
- /** Fired before an existing entity is updated in the database. */
252
- beforeUpdate = "beforeUpdate",
253
- /** Fired after an existing entity has been updated in the database. */
254
- afterUpdate = "afterUpdate",
255
- /** Fired before an upsert operation. */
256
- beforeUpsert = "beforeUpsert",
257
- /** Fired after an upsert operation. */
258
- afterUpsert = "afterUpsert",
259
- /** Fired before an entity is deleted from the database. */
260
- beforeDelete = "beforeDelete",
261
- /** Fired after an entity has been deleted from the database. */
262
- afterDelete = "afterDelete",
263
- /** Fired at the very beginning of `em.flush()`, before change detection. */
264
- beforeFlush = "beforeFlush",
265
- /** Fired during `em.flush()` after change detection but before database writes. */
266
- onFlush = "onFlush",
267
- /** Fired after `em.flush()` has completed all database writes. */
268
- afterFlush = "afterFlush",
269
- /** Fired before a new database transaction is started. */
270
- beforeTransactionStart = "beforeTransactionStart",
271
- /** Fired after a new database transaction has been started. */
272
- afterTransactionStart = "afterTransactionStart",
273
- /** Fired before a database transaction is committed. */
274
- beforeTransactionCommit = "beforeTransactionCommit",
275
- /** Fired after a database transaction has been committed. */
276
- afterTransactionCommit = "afterTransactionCommit",
277
- /** Fired before a database transaction is rolled back. */
278
- beforeTransactionRollback = "beforeTransactionRollback",
279
- /** Fired after a database transaction has been rolled back. */
280
- afterTransactionRollback = "afterTransactionRollback"
243
+ /** Fired when an entity instance is created (via constructor or `em.create`). */
244
+ onInit = 'onInit',
245
+ /** Fired after an entity is loaded from the database. */
246
+ onLoad = 'onLoad',
247
+ /** Fired before a new entity is inserted into the database. */
248
+ beforeCreate = 'beforeCreate',
249
+ /** Fired after a new entity has been inserted into the database. */
250
+ afterCreate = 'afterCreate',
251
+ /** Fired before an existing entity is updated in the database. */
252
+ beforeUpdate = 'beforeUpdate',
253
+ /** Fired after an existing entity has been updated in the database. */
254
+ afterUpdate = 'afterUpdate',
255
+ /** Fired before an upsert operation. */
256
+ beforeUpsert = 'beforeUpsert',
257
+ /** Fired after an upsert operation. */
258
+ afterUpsert = 'afterUpsert',
259
+ /** Fired before an entity is deleted from the database. */
260
+ beforeDelete = 'beforeDelete',
261
+ /** Fired after an entity has been deleted from the database. */
262
+ afterDelete = 'afterDelete',
263
+ /** Fired at the very beginning of `em.flush()`, before change detection. */
264
+ beforeFlush = 'beforeFlush',
265
+ /** Fired during `em.flush()` after change detection but before database writes. */
266
+ onFlush = 'onFlush',
267
+ /** Fired after `em.flush()` has completed all database writes. */
268
+ afterFlush = 'afterFlush',
269
+ /** Fired before a new database transaction is started. */
270
+ beforeTransactionStart = 'beforeTransactionStart',
271
+ /** Fired after a new database transaction has been started. */
272
+ afterTransactionStart = 'afterTransactionStart',
273
+ /** Fired before a database transaction is committed. */
274
+ beforeTransactionCommit = 'beforeTransactionCommit',
275
+ /** Fired after a database transaction has been committed. */
276
+ afterTransactionCommit = 'afterTransactionCommit',
277
+ /** Fired before a database transaction is rolled back. */
278
+ beforeTransactionRollback = 'beforeTransactionRollback',
279
+ /** Fired after a database transaction has been rolled back. */
280
+ afterTransactionRollback = 'afterTransactionRollback',
281
281
  }
282
282
  export declare const EventTypeMap: Record<EventType, number>;
283
- export type TransactionEventType = EventType.beforeTransactionStart | EventType.afterTransactionStart | EventType.beforeTransactionCommit | EventType.afterTransactionCommit | EventType.beforeTransactionRollback | EventType.afterTransactionRollback;
283
+ export type TransactionEventType =
284
+ | EventType.beforeTransactionStart
285
+ | EventType.afterTransactionStart
286
+ | EventType.beforeTransactionCommit
287
+ | EventType.afterTransactionCommit
288
+ | EventType.beforeTransactionRollback
289
+ | EventType.afterTransactionRollback;
284
290
  /** Controls how a transactional operation interacts with an existing transaction. */
285
291
  export declare enum TransactionPropagation {
286
- /** Join the current transaction or create a new one if none exists. */
287
- REQUIRED = "required",
288
- /** Always create a new transaction, suspending the current one if it exists. */
289
- REQUIRES_NEW = "requires_new",
290
- /** Create a nested savepoint within the current transaction, or a new transaction if none exists. */
291
- NESTED = "nested",
292
- /** Execute non-transactionally, suspending the current transaction if one exists. */
293
- NOT_SUPPORTED = "not_supported",
294
- /** Join the current transaction if one exists, otherwise execute non-transactionally. */
295
- SUPPORTS = "supports",
296
- /** Join the current transaction; throw if no transaction is active. */
297
- MANDATORY = "mandatory",
298
- /** Execute non-transactionally; throw if a transaction is active. */
299
- NEVER = "never"
292
+ /** Join the current transaction or create a new one if none exists. */
293
+ REQUIRED = 'required',
294
+ /** Always create a new transaction, suspending the current one if it exists. */
295
+ REQUIRES_NEW = 'requires_new',
296
+ /** Create a nested savepoint within the current transaction, or a new transaction if none exists. */
297
+ NESTED = 'nested',
298
+ /** Execute non-transactionally, suspending the current transaction if one exists. */
299
+ NOT_SUPPORTED = 'not_supported',
300
+ /** Join the current transaction if one exists, otherwise execute non-transactionally. */
301
+ SUPPORTS = 'supports',
302
+ /** Join the current transaction; throw if no transaction is active. */
303
+ MANDATORY = 'mandatory',
304
+ /** Execute non-transactionally; throw if a transaction is active. */
305
+ NEVER = 'never',
300
306
  }
301
307
  export interface TransactionOptions {
302
- ctx?: Transaction;
303
- propagation?: TransactionPropagation | `${TransactionPropagation}`;
304
- isolationLevel?: IsolationLevel | `${IsolationLevel}`;
305
- readOnly?: boolean;
306
- clear?: boolean;
307
- flushMode?: FlushMode | `${FlushMode}`;
308
- ignoreNestedTransactions?: boolean;
309
- loggerContext?: LogContext;
310
- }
311
- export declare abstract class PlainObject {
308
+ ctx?: Transaction;
309
+ propagation?: TransactionPropagation | `${TransactionPropagation}`;
310
+ isolationLevel?: IsolationLevel | `${IsolationLevel}`;
311
+ readOnly?: boolean;
312
+ clear?: boolean;
313
+ flushMode?: FlushMode | `${FlushMode}`;
314
+ ignoreNestedTransactions?: boolean;
315
+ loggerContext?: LogContext;
312
316
  }
317
+ export declare abstract class PlainObject {}
313
318
  /** Constraint deferral mode for database constraints (e.g., foreign keys, unique). */
314
319
  export declare enum DeferMode {
315
- /** The constraint is checked immediately by default, but can be deferred within a transaction. */
316
- INITIALLY_IMMEDIATE = "immediate",
317
- /** The constraint is deferred until the transaction is committed. */
318
- INITIALLY_DEFERRED = "deferred"
320
+ /** The constraint is checked immediately by default, but can be deferred within a transaction. */
321
+ INITIALLY_IMMEDIATE = 'immediate',
322
+ /** The constraint is deferred until the transaction is committed. */
323
+ INITIALLY_DEFERRED = 'deferred',
319
324
  }
320
325
  /** With `absolute` the prefix is set at the root of the entity (regardless of the nesting level) */
321
326
  export type EmbeddedPrefixMode = 'absolute' | 'relative';