@mikro-orm/core 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 (207) hide show
  1. package/EntityManager.d.ts +883 -579
  2. package/EntityManager.js +1897 -1865
  3. package/MikroORM.d.ts +103 -72
  4. package/MikroORM.js +178 -177
  5. package/README.md +128 -294
  6. package/cache/CacheAdapter.d.ts +38 -36
  7. package/cache/FileCacheAdapter.d.ts +30 -24
  8. package/cache/FileCacheAdapter.js +80 -78
  9. package/cache/GeneratedCacheAdapter.d.ts +19 -20
  10. package/cache/GeneratedCacheAdapter.js +31 -30
  11. package/cache/MemoryCacheAdapter.d.ts +19 -20
  12. package/cache/MemoryCacheAdapter.js +36 -36
  13. package/cache/NullCacheAdapter.d.ts +17 -16
  14. package/cache/NullCacheAdapter.js +25 -24
  15. package/connections/Connection.d.ts +99 -75
  16. package/connections/Connection.js +166 -160
  17. package/drivers/DatabaseDriver.d.ts +187 -69
  18. package/drivers/DatabaseDriver.js +451 -432
  19. package/drivers/IDatabaseDriver.d.ts +464 -281
  20. package/drivers/IDatabaseDriver.js +1 -0
  21. package/entity/BaseEntity.d.ts +121 -73
  22. package/entity/BaseEntity.js +44 -33
  23. package/entity/Collection.d.ts +216 -157
  24. package/entity/Collection.js +728 -707
  25. package/entity/EntityAssigner.d.ts +90 -76
  26. package/entity/EntityAssigner.js +232 -229
  27. package/entity/EntityFactory.d.ts +68 -40
  28. package/entity/EntityFactory.js +427 -366
  29. package/entity/EntityHelper.d.ts +34 -22
  30. package/entity/EntityHelper.js +280 -267
  31. package/entity/EntityIdentifier.d.ts +4 -4
  32. package/entity/EntityIdentifier.js +10 -10
  33. package/entity/EntityLoader.d.ts +105 -56
  34. package/entity/EntityLoader.js +754 -722
  35. package/entity/EntityRepository.d.ts +317 -200
  36. package/entity/EntityRepository.js +214 -212
  37. package/entity/PolymorphicRef.d.ts +5 -5
  38. package/entity/PolymorphicRef.js +10 -10
  39. package/entity/Reference.d.ts +130 -66
  40. package/entity/Reference.js +280 -260
  41. package/entity/WrappedEntity.d.ts +116 -53
  42. package/entity/WrappedEntity.js +169 -147
  43. package/entity/defineEntity.d.ts +1290 -614
  44. package/entity/defineEntity.js +521 -511
  45. package/entity/utils.d.ts +13 -3
  46. package/entity/utils.js +71 -73
  47. package/entity/validators.js +43 -43
  48. package/entity/wrap.js +8 -8
  49. package/enums.d.ts +275 -138
  50. package/enums.js +268 -137
  51. package/errors.d.ts +120 -72
  52. package/errors.js +356 -253
  53. package/events/EventManager.d.ts +27 -10
  54. package/events/EventManager.js +80 -73
  55. package/events/EventSubscriber.d.ts +33 -29
  56. package/events/TransactionEventBroadcaster.d.ts +16 -7
  57. package/events/TransactionEventBroadcaster.js +15 -13
  58. package/exceptions.d.ts +23 -40
  59. package/exceptions.js +35 -52
  60. package/hydration/Hydrator.d.ts +43 -16
  61. package/hydration/Hydrator.js +44 -42
  62. package/hydration/ObjectHydrator.d.ts +51 -17
  63. package/hydration/ObjectHydrator.js +480 -416
  64. package/index.d.ts +116 -2
  65. package/index.js +10 -1
  66. package/logging/DefaultLogger.d.ts +35 -30
  67. package/logging/DefaultLogger.js +87 -84
  68. package/logging/Logger.d.ts +45 -40
  69. package/logging/SimpleLogger.d.ts +13 -11
  70. package/logging/SimpleLogger.js +22 -22
  71. package/logging/colors.d.ts +6 -6
  72. package/logging/colors.js +11 -10
  73. package/logging/inspect.js +7 -7
  74. package/metadata/EntitySchema.d.ts +214 -108
  75. package/metadata/EntitySchema.js +398 -379
  76. package/metadata/MetadataDiscovery.d.ts +115 -111
  77. package/metadata/MetadataDiscovery.js +1948 -1857
  78. package/metadata/MetadataProvider.d.ts +25 -14
  79. package/metadata/MetadataProvider.js +83 -77
  80. package/metadata/MetadataStorage.d.ts +39 -19
  81. package/metadata/MetadataStorage.js +119 -106
  82. package/metadata/MetadataValidator.d.ts +39 -39
  83. package/metadata/MetadataValidator.js +381 -338
  84. package/metadata/discover-entities.d.ts +5 -2
  85. package/metadata/discover-entities.js +27 -27
  86. package/metadata/types.d.ts +615 -531
  87. package/naming-strategy/AbstractNamingStrategy.d.ts +55 -39
  88. package/naming-strategy/AbstractNamingStrategy.js +91 -85
  89. package/naming-strategy/EntityCaseNamingStrategy.d.ts +6 -6
  90. package/naming-strategy/EntityCaseNamingStrategy.js +22 -22
  91. package/naming-strategy/MongoNamingStrategy.d.ts +7 -6
  92. package/naming-strategy/MongoNamingStrategy.js +19 -18
  93. package/naming-strategy/NamingStrategy.d.ts +109 -99
  94. package/naming-strategy/UnderscoreNamingStrategy.d.ts +8 -7
  95. package/naming-strategy/UnderscoreNamingStrategy.js +22 -21
  96. package/not-supported.js +7 -4
  97. package/package.json +1 -1
  98. package/platforms/ExceptionConverter.d.ts +2 -1
  99. package/platforms/ExceptionConverter.js +5 -4
  100. package/platforms/Platform.d.ts +310 -236
  101. package/platforms/Platform.js +661 -573
  102. package/serialization/EntitySerializer.d.ts +49 -25
  103. package/serialization/EntitySerializer.js +224 -216
  104. package/serialization/EntityTransformer.d.ts +11 -5
  105. package/serialization/EntityTransformer.js +220 -216
  106. package/serialization/SerializationContext.d.ts +27 -18
  107. package/serialization/SerializationContext.js +105 -100
  108. package/types/ArrayType.d.ts +9 -8
  109. package/types/ArrayType.js +34 -33
  110. package/types/BigIntType.d.ts +17 -10
  111. package/types/BigIntType.js +37 -37
  112. package/types/BlobType.d.ts +4 -3
  113. package/types/BlobType.js +14 -13
  114. package/types/BooleanType.d.ts +5 -4
  115. package/types/BooleanType.js +13 -12
  116. package/types/CharacterType.d.ts +3 -2
  117. package/types/CharacterType.js +7 -6
  118. package/types/DateTimeType.d.ts +6 -5
  119. package/types/DateTimeType.js +16 -15
  120. package/types/DateType.d.ts +6 -5
  121. package/types/DateType.js +16 -15
  122. package/types/DecimalType.d.ts +7 -7
  123. package/types/DecimalType.js +26 -26
  124. package/types/DoubleType.d.ts +3 -3
  125. package/types/DoubleType.js +12 -12
  126. package/types/EnumArrayType.d.ts +6 -5
  127. package/types/EnumArrayType.js +25 -24
  128. package/types/EnumType.d.ts +4 -3
  129. package/types/EnumType.js +12 -11
  130. package/types/FloatType.d.ts +4 -3
  131. package/types/FloatType.js +10 -9
  132. package/types/IntegerType.d.ts +4 -3
  133. package/types/IntegerType.js +10 -9
  134. package/types/IntervalType.d.ts +5 -4
  135. package/types/IntervalType.js +13 -12
  136. package/types/JsonType.d.ts +9 -8
  137. package/types/JsonType.js +33 -32
  138. package/types/MediumIntType.d.ts +2 -1
  139. package/types/MediumIntType.js +4 -3
  140. package/types/SmallIntType.d.ts +4 -3
  141. package/types/SmallIntType.js +10 -9
  142. package/types/StringType.d.ts +5 -4
  143. package/types/StringType.js +13 -12
  144. package/types/TextType.d.ts +4 -3
  145. package/types/TextType.js +10 -9
  146. package/types/TimeType.d.ts +6 -5
  147. package/types/TimeType.js +18 -17
  148. package/types/TinyIntType.d.ts +4 -3
  149. package/types/TinyIntType.js +11 -10
  150. package/types/Type.d.ts +88 -73
  151. package/types/Type.js +85 -74
  152. package/types/Uint8ArrayType.d.ts +5 -4
  153. package/types/Uint8ArrayType.js +22 -21
  154. package/types/UnknownType.d.ts +5 -4
  155. package/types/UnknownType.js +13 -12
  156. package/types/UuidType.d.ts +6 -5
  157. package/types/UuidType.js +20 -19
  158. package/types/index.d.ts +77 -49
  159. package/types/index.js +64 -26
  160. package/typings.d.ts +1388 -729
  161. package/typings.js +255 -231
  162. package/unit-of-work/ChangeSet.d.ts +28 -24
  163. package/unit-of-work/ChangeSet.js +58 -54
  164. package/unit-of-work/ChangeSetComputer.d.ts +13 -11
  165. package/unit-of-work/ChangeSetComputer.js +180 -159
  166. package/unit-of-work/ChangeSetPersister.d.ts +64 -41
  167. package/unit-of-work/ChangeSetPersister.js +443 -418
  168. package/unit-of-work/CommitOrderCalculator.d.ts +40 -40
  169. package/unit-of-work/CommitOrderCalculator.js +89 -88
  170. package/unit-of-work/IdentityMap.d.ts +32 -25
  171. package/unit-of-work/IdentityMap.js +106 -99
  172. package/unit-of-work/UnitOfWork.d.ts +182 -127
  173. package/unit-of-work/UnitOfWork.js +1201 -1169
  174. package/utils/AbstractMigrator.d.ts +111 -91
  175. package/utils/AbstractMigrator.js +275 -275
  176. package/utils/AbstractSchemaGenerator.d.ts +43 -34
  177. package/utils/AbstractSchemaGenerator.js +121 -122
  178. package/utils/AsyncContext.d.ts +3 -3
  179. package/utils/AsyncContext.js +34 -35
  180. package/utils/Configuration.d.ts +853 -801
  181. package/utils/Configuration.js +360 -337
  182. package/utils/Cursor.d.ts +40 -22
  183. package/utils/Cursor.js +135 -127
  184. package/utils/DataloaderUtils.d.ts +58 -43
  185. package/utils/DataloaderUtils.js +203 -198
  186. package/utils/EntityComparator.d.ts +99 -80
  187. package/utils/EntityComparator.js +825 -727
  188. package/utils/NullHighlighter.d.ts +2 -1
  189. package/utils/NullHighlighter.js +4 -3
  190. package/utils/QueryHelper.d.ts +79 -51
  191. package/utils/QueryHelper.js +372 -361
  192. package/utils/RawQueryFragment.d.ts +54 -28
  193. package/utils/RawQueryFragment.js +110 -99
  194. package/utils/RequestContext.d.ts +33 -32
  195. package/utils/RequestContext.js +52 -53
  196. package/utils/TransactionContext.d.ts +17 -16
  197. package/utils/TransactionContext.js +28 -27
  198. package/utils/TransactionManager.d.ts +58 -58
  199. package/utils/TransactionManager.js +199 -197
  200. package/utils/Utils.d.ts +210 -145
  201. package/utils/Utils.js +820 -813
  202. package/utils/clone.js +104 -113
  203. package/utils/env-vars.js +90 -88
  204. package/utils/fs-utils.d.ts +15 -15
  205. package/utils/fs-utils.js +180 -181
  206. package/utils/upsert-utils.d.ts +20 -5
  207. package/utils/upsert-utils.js +114 -116
package/enums.d.ts CHANGED
@@ -1,189 +1,326 @@
1
1
  import type { EntityKey, ExpandProperty } from './typings.js';
2
2
  import type { Transaction } from './connections/Connection.js';
3
3
  import type { LogContext } from './logging/Logger.js';
4
+ /** Controls when the `EntityManager` flushes pending changes to the database. */
4
5
  export declare enum FlushMode {
5
- /** The `EntityManager` delays the flush until the current Transaction is committed. */
6
- COMMIT = "commit",
7
- /** This is the default mode, and it flushes the `EntityManager` only if necessary. */
8
- AUTO = "auto",
9
- /** Flushes the `EntityManager` before every query. */
10
- 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',
11
12
  }
13
+ /** Controls how populate hints are resolved when using `FindOptions.populateWhere`. */
12
14
  export declare enum PopulateHint {
13
- INFER = "infer",
14
- ALL = "all"
15
+ /** Infer population hints from the `where` condition. */
16
+ INFER = 'infer',
17
+ /** Apply population hints to all relations. */
18
+ ALL = 'all',
15
19
  }
20
+ /** Special tokens used as populate path values in `FindOptions.populate`. */
16
21
  export declare enum PopulatePath {
17
- INFER = "$infer",
18
- 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 = '*',
19
26
  }
27
+ /** Logical grouping operators for combining query conditions. */
20
28
  export declare enum GroupOperator {
21
- $and = "and",
22
- $or = "or"
29
+ /** Logical AND — all conditions must match. */
30
+ $and = 'and',
31
+ /** Logical OR — at least one condition must match. */
32
+ $or = 'or',
23
33
  }
34
+ /** Comparison and filtering operators used in query conditions. */
24
35
  export declare enum QueryOperator {
25
- $eq = "=",
26
- $in = "in",
27
- $nin = "not in",
28
- $gt = ">",
29
- $gte = ">=",
30
- $lt = "<",
31
- $lte = "<=",
32
- $ne = "!=",
33
- $not = "not",
34
- $like = "like",
35
- $re = "regexp",
36
- $fulltext = "fulltext",
37
- $exists = "not null",
38
- $ilike = "ilike",// postgres only
39
- $overlap = "&&",// postgres only
40
- $contains = "@>",// postgres only
41
- $contained = "<@",// postgres only
42
- $none = "none",// collection operators, sql only
43
- $some = "some",// collection operators, sql only
44
- $every = "every",// collection operators, sql only
45
- $size = "size",// collection operators, sql only
46
- $hasKey = "?",// postgres only, json
47
- $hasKeys = "?&",// postgres only, json
48
- $hasSomeKeys = "?|",// postgres only, json
49
- $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',
50
86
  }
51
87
  export declare const ARRAY_OPERATORS: string[];
52
88
  export declare const JSON_KEY_OPERATORS: string[];
89
+ /** Sort direction for query results. Both upper- and lower-case variants are accepted. */
53
90
  export declare enum QueryOrder {
54
- ASC = "ASC",
55
- ASC_NULLS_LAST = "ASC NULLS LAST",
56
- ASC_NULLS_FIRST = "ASC NULLS FIRST",
57
- DESC = "DESC",
58
- DESC_NULLS_LAST = "DESC NULLS LAST",
59
- DESC_NULLS_FIRST = "DESC NULLS FIRST",
60
- asc = "asc",
61
- asc_nulls_last = "asc nulls last",
62
- asc_nulls_first = "asc nulls first",
63
- desc = "desc",
64
- desc_nulls_last = "desc nulls last",
65
- 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',
66
115
  }
116
+ /** Numeric sort direction, compatible with MongoDB-style ordering. */
67
117
  export declare enum QueryOrderNumeric {
68
- ASC = 1,
69
- DESC = -1
118
+ /** Ascending order. */
119
+ ASC = 1,
120
+ /** Descending order. */
121
+ DESC = -1,
70
122
  }
71
123
  export type QueryOrderKeysFlat = QueryOrder | QueryOrderNumeric | `${QueryOrder}`;
72
124
  export type QueryOrderKeys<T> = QueryOrderKeysFlat | QueryOrderMap<T>;
73
125
  export type QueryOrderMap<T> = {
74
- [K in EntityKey<T>]?: QueryOrderKeys<ExpandProperty<T[K]>>;
126
+ [K in EntityKey<T>]?: QueryOrderKeys<ExpandProperty<T[K]>>;
75
127
  };
76
128
  export interface FlatQueryOrderMap {
77
- [x: string]: QueryOrderKeysFlat;
129
+ [x: string]: QueryOrderKeysFlat;
78
130
  }
131
+ /** Flags that modify query builder behavior. */
79
132
  export declare enum QueryFlag {
80
- DISTINCT = "DISTINCT",
81
- PAGINATE = "PAGINATE",
82
- DISABLE_PAGINATE = "DISABLE_PAGINATE",
83
- UPDATE_SUB_QUERY = "UPDATE_SUB_QUERY",
84
- DELETE_SUB_QUERY = "DELETE_SUB_QUERY",
85
- CONVERT_CUSTOM_TYPES = "CONVERT_CUSTOM_TYPES",
86
- INCLUDE_LAZY_FORMULAS = "INCLUDE_LAZY_FORMULAS",
87
- AUTO_JOIN_ONE_TO_ONE_OWNER = "AUTO_JOIN_ONE_TO_ONE_OWNER",
88
- INFER_POPULATE = "INFER_POPULATE",
89
- DISABLE_NESTED_INNER_JOIN = "DISABLE_NESTED_INNER_JOIN",
90
- IDENTITY_INSERT = "IDENTITY_INSERT",// mssql only
91
- 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',
92
157
  }
93
158
  export declare const SCALAR_TYPES: Set<string>;
159
+ /** Describes the kind of relationship a property represents. */
94
160
  export declare enum ReferenceKind {
95
- SCALAR = "scalar",
96
- ONE_TO_ONE = "1:1",
97
- ONE_TO_MANY = "1:m",
98
- MANY_TO_ONE = "m:1",
99
- MANY_TO_MANY = "m:n",
100
- 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',
101
173
  }
174
+ /** Cascade operations that propagate from a parent entity to its relations. */
102
175
  export declare enum Cascade {
103
- PERSIST = "persist",
104
- MERGE = "merge",
105
- REMOVE = "remove",
106
- ALL = "all",
107
- /** @internal */
108
- SCHEDULE_ORPHAN_REMOVAL = "schedule_orphan_removal",
109
- /** @internal */
110
- 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',
111
188
  }
189
+ /** Strategy used to load related entities when populating. */
112
190
  export declare enum LoadStrategy {
113
- SELECT_IN = "select-in",
114
- JOINED = "joined",
115
- 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',
116
197
  }
198
+ /** Controls which relation types use the dataloader for batched loading. */
117
199
  export declare enum DataloaderType {
118
- NONE = 0,
119
- REFERENCE = 1,
120
- COLLECTION = 2,
121
- 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,
122
208
  }
209
+ /** Locking strategy for concurrency control. */
123
210
  export declare enum LockMode {
124
- NONE = 0,
125
- OPTIMISTIC = 1,
126
- PESSIMISTIC_READ = 2,
127
- PESSIMISTIC_WRITE = 3,
128
- PESSIMISTIC_PARTIAL_WRITE = 4,
129
- PESSIMISTIC_WRITE_OR_FAIL = 5,
130
- PESSIMISTIC_PARTIAL_READ = 6,
131
- 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,
132
227
  }
228
+ /** Transaction isolation levels as defined by the SQL standard (plus vendor extensions). */
133
229
  export declare enum IsolationLevel {
134
- READ_UNCOMMITTED = "read uncommitted",
135
- READ_COMMITTED = "read committed",
136
- SNAPSHOT = "snapshot",
137
- REPEATABLE_READ = "repeatable read",
138
- 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',
139
240
  }
241
+ /** Lifecycle and transaction events emitted by the ORM. */
140
242
  export declare enum EventType {
141
- onInit = "onInit",
142
- onLoad = "onLoad",
143
- beforeCreate = "beforeCreate",
144
- afterCreate = "afterCreate",
145
- beforeUpdate = "beforeUpdate",
146
- afterUpdate = "afterUpdate",
147
- beforeUpsert = "beforeUpsert",
148
- afterUpsert = "afterUpsert",
149
- beforeDelete = "beforeDelete",
150
- afterDelete = "afterDelete",
151
- beforeFlush = "beforeFlush",
152
- onFlush = "onFlush",
153
- afterFlush = "afterFlush",
154
- beforeTransactionStart = "beforeTransactionStart",
155
- afterTransactionStart = "afterTransactionStart",
156
- beforeTransactionCommit = "beforeTransactionCommit",
157
- afterTransactionCommit = "afterTransactionCommit",
158
- beforeTransactionRollback = "beforeTransactionRollback",
159
- 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',
160
281
  }
161
282
  export declare const EventTypeMap: Record<EventType, number>;
162
- 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;
290
+ /** Controls how a transactional operation interacts with an existing transaction. */
163
291
  export declare enum TransactionPropagation {
164
- REQUIRED = "required",
165
- REQUIRES_NEW = "requires_new",
166
- NESTED = "nested",
167
- NOT_SUPPORTED = "not_supported",
168
- SUPPORTS = "supports",
169
- MANDATORY = "mandatory",
170
- 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',
171
306
  }
172
307
  export interface TransactionOptions {
173
- ctx?: Transaction;
174
- propagation?: TransactionPropagation | `${TransactionPropagation}`;
175
- isolationLevel?: IsolationLevel | `${IsolationLevel}`;
176
- readOnly?: boolean;
177
- clear?: boolean;
178
- flushMode?: FlushMode | `${FlushMode}`;
179
- ignoreNestedTransactions?: boolean;
180
- loggerContext?: LogContext;
181
- }
182
- 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;
183
316
  }
317
+ export declare abstract class PlainObject {}
318
+ /** Constraint deferral mode for database constraints (e.g., foreign keys, unique). */
184
319
  export declare enum DeferMode {
185
- INITIALLY_IMMEDIATE = "immediate",
186
- 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',
187
324
  }
188
325
  /** With `absolute` the prefix is set at the root of the entity (regardless of the nesting level) */
189
326
  export type EmbeddedPrefixMode = 'absolute' | 'relative';