@mikro-orm/core 7.0.4-dev.8 → 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.
- package/EntityManager.d.ts +884 -583
- package/EntityManager.js +1922 -1895
- package/MikroORM.d.ts +103 -74
- package/MikroORM.js +178 -179
- package/README.md +1 -1
- package/cache/CacheAdapter.d.ts +36 -36
- package/cache/FileCacheAdapter.d.ts +30 -24
- package/cache/FileCacheAdapter.js +80 -78
- package/cache/GeneratedCacheAdapter.d.ts +18 -20
- package/cache/GeneratedCacheAdapter.js +30 -30
- package/cache/MemoryCacheAdapter.d.ts +18 -20
- package/cache/MemoryCacheAdapter.js +35 -36
- package/cache/NullCacheAdapter.d.ts +16 -16
- package/cache/NullCacheAdapter.js +24 -24
- package/connections/Connection.d.ts +95 -84
- package/connections/Connection.js +165 -168
- package/drivers/DatabaseDriver.d.ts +186 -80
- package/drivers/DatabaseDriver.js +450 -443
- package/drivers/IDatabaseDriver.d.ts +440 -301
- package/entity/BaseEntity.d.ts +120 -83
- package/entity/BaseEntity.js +43 -43
- package/entity/Collection.d.ts +212 -179
- package/entity/Collection.js +727 -721
- package/entity/EntityAssigner.d.ts +88 -77
- package/entity/EntityAssigner.js +231 -230
- package/entity/EntityFactory.d.ts +66 -54
- package/entity/EntityFactory.js +425 -383
- package/entity/EntityHelper.d.ts +34 -22
- package/entity/EntityHelper.js +280 -267
- package/entity/EntityIdentifier.d.ts +4 -4
- package/entity/EntityIdentifier.js +10 -10
- package/entity/EntityLoader.d.ts +98 -72
- package/entity/EntityLoader.js +753 -723
- package/entity/EntityRepository.d.ts +316 -201
- package/entity/EntityRepository.js +213 -213
- package/entity/PolymorphicRef.d.ts +5 -5
- package/entity/PolymorphicRef.js +10 -10
- package/entity/Reference.d.ts +126 -82
- package/entity/Reference.js +278 -274
- package/entity/WrappedEntity.d.ts +115 -72
- package/entity/WrappedEntity.js +168 -166
- package/entity/defineEntity.d.ts +1315 -636
- package/entity/defineEntity.js +527 -518
- package/entity/utils.d.ts +13 -3
- package/entity/utils.js +71 -73
- package/entity/validators.js +43 -43
- package/entity/wrap.js +8 -8
- package/enums.d.ts +258 -253
- package/enums.js +251 -252
- package/errors.d.ts +114 -72
- package/errors.js +350 -253
- package/events/EventManager.d.ts +26 -14
- package/events/EventManager.js +79 -77
- package/events/EventSubscriber.d.ts +29 -29
- package/events/TransactionEventBroadcaster.d.ts +15 -8
- package/events/TransactionEventBroadcaster.js +14 -14
- package/exceptions.d.ts +23 -40
- package/exceptions.js +35 -52
- package/hydration/Hydrator.d.ts +42 -17
- package/hydration/Hydrator.js +43 -43
- package/hydration/ObjectHydrator.d.ts +50 -17
- package/hydration/ObjectHydrator.js +481 -416
- package/index.d.ts +116 -2
- package/index.js +10 -1
- package/logging/DefaultLogger.d.ts +34 -32
- package/logging/DefaultLogger.js +86 -86
- package/logging/Logger.d.ts +41 -41
- package/logging/SimpleLogger.d.ts +13 -11
- package/logging/SimpleLogger.js +22 -22
- package/logging/colors.d.ts +6 -6
- package/logging/colors.js +11 -10
- package/logging/inspect.js +7 -7
- package/metadata/EntitySchema.d.ts +211 -127
- package/metadata/EntitySchema.js +397 -398
- package/metadata/MetadataDiscovery.d.ts +114 -114
- package/metadata/MetadataDiscovery.js +1951 -1863
- package/metadata/MetadataProvider.d.ts +24 -21
- package/metadata/MetadataProvider.js +82 -84
- package/metadata/MetadataStorage.d.ts +38 -32
- package/metadata/MetadataStorage.js +118 -118
- package/metadata/MetadataValidator.d.ts +39 -39
- package/metadata/MetadataValidator.js +381 -338
- package/metadata/discover-entities.d.ts +5 -2
- package/metadata/discover-entities.js +35 -27
- package/metadata/types.d.ts +615 -531
- package/naming-strategy/AbstractNamingStrategy.d.ts +54 -39
- package/naming-strategy/AbstractNamingStrategy.js +90 -85
- package/naming-strategy/EntityCaseNamingStrategy.d.ts +6 -6
- package/naming-strategy/EntityCaseNamingStrategy.js +22 -22
- package/naming-strategy/MongoNamingStrategy.d.ts +6 -6
- package/naming-strategy/MongoNamingStrategy.js +18 -18
- package/naming-strategy/NamingStrategy.d.ts +109 -99
- package/naming-strategy/UnderscoreNamingStrategy.d.ts +7 -7
- package/naming-strategy/UnderscoreNamingStrategy.js +21 -21
- package/not-supported.js +7 -4
- package/package.json +1 -1
- package/platforms/ExceptionConverter.d.ts +1 -1
- package/platforms/ExceptionConverter.js +4 -4
- package/platforms/Platform.d.ts +310 -299
- package/platforms/Platform.js +663 -636
- package/serialization/EntitySerializer.d.ts +49 -26
- package/serialization/EntitySerializer.js +224 -218
- package/serialization/EntityTransformer.d.ts +10 -6
- package/serialization/EntityTransformer.js +219 -217
- package/serialization/SerializationContext.d.ts +27 -23
- package/serialization/SerializationContext.js +105 -105
- package/types/ArrayType.d.ts +8 -8
- package/types/ArrayType.js +33 -33
- package/types/BigIntType.d.ts +17 -10
- package/types/BigIntType.js +37 -37
- package/types/BlobType.d.ts +3 -3
- package/types/BlobType.js +13 -13
- package/types/BooleanType.d.ts +4 -4
- package/types/BooleanType.js +12 -12
- package/types/CharacterType.d.ts +2 -2
- package/types/CharacterType.js +6 -6
- package/types/DateTimeType.d.ts +5 -5
- package/types/DateTimeType.js +15 -15
- package/types/DateType.d.ts +5 -5
- package/types/DateType.js +15 -15
- package/types/DecimalType.d.ts +7 -7
- package/types/DecimalType.js +26 -26
- package/types/DoubleType.d.ts +3 -3
- package/types/DoubleType.js +12 -12
- package/types/EnumArrayType.d.ts +5 -5
- package/types/EnumArrayType.js +24 -24
- package/types/EnumType.d.ts +3 -3
- package/types/EnumType.js +11 -11
- package/types/FloatType.d.ts +3 -3
- package/types/FloatType.js +9 -9
- package/types/IntegerType.d.ts +3 -3
- package/types/IntegerType.js +9 -9
- package/types/IntervalType.d.ts +4 -4
- package/types/IntervalType.js +12 -12
- package/types/JsonType.d.ts +8 -8
- package/types/JsonType.js +32 -32
- package/types/MediumIntType.d.ts +1 -1
- package/types/MediumIntType.js +3 -3
- package/types/SmallIntType.d.ts +3 -3
- package/types/SmallIntType.js +9 -9
- package/types/StringType.d.ts +4 -4
- package/types/StringType.js +12 -12
- package/types/TextType.d.ts +3 -3
- package/types/TextType.js +9 -9
- package/types/TimeType.d.ts +5 -5
- package/types/TimeType.js +17 -17
- package/types/TinyIntType.d.ts +3 -3
- package/types/TinyIntType.js +10 -10
- package/types/Type.d.ts +83 -79
- package/types/Type.js +82 -82
- package/types/Uint8ArrayType.d.ts +4 -4
- package/types/Uint8ArrayType.js +21 -21
- package/types/UnknownType.d.ts +4 -4
- package/types/UnknownType.js +12 -12
- package/types/UuidType.d.ts +5 -5
- package/types/UuidType.js +19 -19
- package/types/index.d.ts +75 -49
- package/types/index.js +52 -26
- package/typings.d.ts +1250 -737
- package/typings.js +244 -231
- package/unit-of-work/ChangeSet.d.ts +26 -26
- package/unit-of-work/ChangeSet.js +56 -56
- package/unit-of-work/ChangeSetComputer.d.ts +12 -12
- package/unit-of-work/ChangeSetComputer.js +178 -170
- package/unit-of-work/ChangeSetPersister.d.ts +63 -44
- package/unit-of-work/ChangeSetPersister.js +442 -421
- package/unit-of-work/CommitOrderCalculator.d.ts +40 -40
- package/unit-of-work/CommitOrderCalculator.js +89 -88
- package/unit-of-work/IdentityMap.d.ts +31 -31
- package/unit-of-work/IdentityMap.js +105 -105
- package/unit-of-work/UnitOfWork.d.ts +181 -141
- package/unit-of-work/UnitOfWork.js +1200 -1183
- package/utils/AbstractMigrator.d.ts +111 -91
- package/utils/AbstractMigrator.js +275 -275
- package/utils/AbstractSchemaGenerator.d.ts +43 -34
- package/utils/AbstractSchemaGenerator.js +121 -122
- package/utils/AsyncContext.d.ts +3 -3
- package/utils/AsyncContext.js +34 -35
- package/utils/Configuration.d.ts +852 -808
- package/utils/Configuration.js +359 -344
- package/utils/Cursor.d.ts +40 -22
- package/utils/Cursor.js +135 -127
- package/utils/DataloaderUtils.d.ts +58 -43
- package/utils/DataloaderUtils.js +203 -198
- package/utils/EntityComparator.d.ts +98 -81
- package/utils/EntityComparator.js +828 -728
- package/utils/NullHighlighter.d.ts +1 -1
- package/utils/NullHighlighter.js +3 -3
- package/utils/QueryHelper.d.ts +79 -51
- package/utils/QueryHelper.js +372 -361
- package/utils/RawQueryFragment.d.ts +50 -34
- package/utils/RawQueryFragment.js +107 -105
- package/utils/RequestContext.d.ts +32 -32
- package/utils/RequestContext.js +52 -53
- package/utils/TransactionContext.d.ts +16 -16
- package/utils/TransactionContext.js +27 -27
- package/utils/TransactionManager.d.ts +58 -58
- package/utils/TransactionManager.js +199 -197
- package/utils/Utils.d.ts +204 -145
- package/utils/Utils.js +812 -810
- package/utils/clone.js +104 -113
- package/utils/env-vars.js +90 -88
- package/utils/fs-utils.d.ts +15 -15
- package/utils/fs-utils.js +180 -181
- package/utils/upsert-utils.d.ts +20 -5
- 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
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
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
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
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
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
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
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
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
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
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
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
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
|
-
|
|
126
|
+
[K in EntityKey<T>]?: QueryOrderKeys<ExpandProperty<T[K]>>;
|
|
127
127
|
};
|
|
128
128
|
export interface FlatQueryOrderMap {
|
|
129
|
-
|
|
129
|
+
[x: string]: QueryOrderKeysFlat;
|
|
130
130
|
}
|
|
131
131
|
/** Flags that modify query builder behavior. */
|
|
132
132
|
export declare enum QueryFlag {
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
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
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
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
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
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
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
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
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
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
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
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
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
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
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
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 =
|
|
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
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
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
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
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
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
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';
|