@spinajs/orm 2.0.480 → 2.0.482

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 (228) hide show
  1. package/README.md +72 -3
  2. package/lib/cjs/bootstrap.js +10 -0
  3. package/lib/cjs/bootstrap.js.map +1 -1
  4. package/lib/cjs/builders.d.ts +115 -11
  5. package/lib/cjs/builders.d.ts.map +1 -1
  6. package/lib/cjs/builders.js +342 -283
  7. package/lib/cjs/builders.js.map +1 -1
  8. package/lib/cjs/converters.d.ts +9 -2
  9. package/lib/cjs/converters.d.ts.map +1 -1
  10. package/lib/cjs/converters.js +48 -8
  11. package/lib/cjs/converters.js.map +1 -1
  12. package/lib/cjs/decorators.d.ts +26 -3
  13. package/lib/cjs/decorators.d.ts.map +1 -1
  14. package/lib/cjs/decorators.js +95 -42
  15. package/lib/cjs/decorators.js.map +1 -1
  16. package/lib/cjs/dehydrators.js +1 -1
  17. package/lib/cjs/dehydrators.js.map +1 -1
  18. package/lib/cjs/descriptor.d.ts +1 -0
  19. package/lib/cjs/descriptor.d.ts.map +1 -1
  20. package/lib/cjs/descriptor.js +16 -40
  21. package/lib/cjs/descriptor.js.map +1 -1
  22. package/lib/cjs/driver.d.ts +136 -7
  23. package/lib/cjs/driver.d.ts.map +1 -1
  24. package/lib/cjs/driver.js +279 -0
  25. package/lib/cjs/driver.js.map +1 -1
  26. package/lib/cjs/existsRelationHandlers.d.ts +29 -0
  27. package/lib/cjs/existsRelationHandlers.d.ts.map +1 -0
  28. package/lib/cjs/existsRelationHandlers.js +104 -0
  29. package/lib/cjs/existsRelationHandlers.js.map +1 -0
  30. package/lib/cjs/fp.d.ts.map +1 -1
  31. package/lib/cjs/fp.js +10 -15
  32. package/lib/cjs/fp.js.map +1 -1
  33. package/lib/cjs/hydrators.d.ts.map +1 -1
  34. package/lib/cjs/hydrators.js +29 -2
  35. package/lib/cjs/hydrators.js.map +1 -1
  36. package/lib/cjs/identity-map.d.ts +60 -0
  37. package/lib/cjs/identity-map.d.ts.map +1 -0
  38. package/lib/cjs/identity-map.js +135 -0
  39. package/lib/cjs/identity-map.js.map +1 -0
  40. package/lib/cjs/index.d.ts +12 -0
  41. package/lib/cjs/index.d.ts.map +1 -1
  42. package/lib/cjs/index.js +12 -0
  43. package/lib/cjs/index.js.map +1 -1
  44. package/lib/cjs/interfaces.d.ts +295 -9
  45. package/lib/cjs/interfaces.d.ts.map +1 -1
  46. package/lib/cjs/interfaces.js +54 -1
  47. package/lib/cjs/interfaces.js.map +1 -1
  48. package/lib/cjs/metadata.d.ts.map +1 -1
  49. package/lib/cjs/metadata.js +4 -1
  50. package/lib/cjs/metadata.js.map +1 -1
  51. package/lib/cjs/metrics.d.ts +53 -0
  52. package/lib/cjs/metrics.d.ts.map +1 -0
  53. package/lib/cjs/metrics.js +82 -0
  54. package/lib/cjs/metrics.js.map +1 -0
  55. package/lib/cjs/middlewares.d.ts +13 -1
  56. package/lib/cjs/middlewares.d.ts.map +1 -1
  57. package/lib/cjs/middlewares.js +55 -15
  58. package/lib/cjs/middlewares.js.map +1 -1
  59. package/lib/cjs/model.d.ts +129 -13
  60. package/lib/cjs/model.d.ts.map +1 -1
  61. package/lib/cjs/model.js +449 -93
  62. package/lib/cjs/model.js.map +1 -1
  63. package/lib/cjs/orm.d.ts.map +1 -1
  64. package/lib/cjs/orm.js +12 -3
  65. package/lib/cjs/orm.js.map +1 -1
  66. package/lib/cjs/orphan.d.ts +27 -0
  67. package/lib/cjs/orphan.d.ts.map +1 -0
  68. package/lib/cjs/orphan.js +55 -0
  69. package/lib/cjs/orphan.js.map +1 -0
  70. package/lib/cjs/primary-keys.d.ts +60 -0
  71. package/lib/cjs/primary-keys.d.ts.map +1 -0
  72. package/lib/cjs/primary-keys.js +243 -0
  73. package/lib/cjs/primary-keys.js.map +1 -0
  74. package/lib/cjs/relation-objects.d.ts +101 -9
  75. package/lib/cjs/relation-objects.d.ts.map +1 -1
  76. package/lib/cjs/relation-objects.js +194 -43
  77. package/lib/cjs/relation-objects.js.map +1 -1
  78. package/lib/cjs/relations.d.ts +7 -1
  79. package/lib/cjs/relations.d.ts.map +1 -1
  80. package/lib/cjs/relations.js +16 -1
  81. package/lib/cjs/relations.js.map +1 -1
  82. package/lib/cjs/resilience.d.ts +50 -0
  83. package/lib/cjs/resilience.d.ts.map +1 -0
  84. package/lib/cjs/resilience.js +70 -0
  85. package/lib/cjs/resilience.js.map +1 -0
  86. package/lib/cjs/snapshot.d.ts +58 -0
  87. package/lib/cjs/snapshot.d.ts.map +1 -0
  88. package/lib/cjs/snapshot.js +125 -0
  89. package/lib/cjs/snapshot.js.map +1 -0
  90. package/lib/cjs/statements.d.ts +11 -1
  91. package/lib/cjs/statements.d.ts.map +1 -1
  92. package/lib/cjs/statements.js +13 -2
  93. package/lib/cjs/statements.js.map +1 -1
  94. package/lib/cjs/subject-builder.d.ts +79 -0
  95. package/lib/cjs/subject-builder.d.ts.map +1 -0
  96. package/lib/cjs/subject-builder.js +296 -0
  97. package/lib/cjs/subject-builder.js.map +1 -0
  98. package/lib/cjs/subject-executor.d.ts +122 -0
  99. package/lib/cjs/subject-executor.d.ts.map +1 -0
  100. package/lib/cjs/subject-executor.js +319 -0
  101. package/lib/cjs/subject-executor.js.map +1 -0
  102. package/lib/cjs/subject-sorter.d.ts +70 -0
  103. package/lib/cjs/subject-sorter.d.ts.map +1 -0
  104. package/lib/cjs/subject-sorter.js +173 -0
  105. package/lib/cjs/subject-sorter.js.map +1 -0
  106. package/lib/cjs/subject.d.ts +100 -0
  107. package/lib/cjs/subject.d.ts.map +1 -0
  108. package/lib/cjs/subject.js +89 -0
  109. package/lib/cjs/subject.js.map +1 -0
  110. package/lib/cjs/unit-of-work.d.ts +52 -0
  111. package/lib/cjs/unit-of-work.d.ts.map +1 -0
  112. package/lib/cjs/unit-of-work.js +170 -0
  113. package/lib/cjs/unit-of-work.js.map +1 -0
  114. package/lib/mjs/bootstrap.js +10 -0
  115. package/lib/mjs/bootstrap.js.map +1 -1
  116. package/lib/mjs/builders.d.ts +115 -11
  117. package/lib/mjs/builders.d.ts.map +1 -1
  118. package/lib/mjs/builders.js +344 -285
  119. package/lib/mjs/builders.js.map +1 -1
  120. package/lib/mjs/converters.d.ts +9 -2
  121. package/lib/mjs/converters.d.ts.map +1 -1
  122. package/lib/mjs/converters.js +48 -8
  123. package/lib/mjs/converters.js.map +1 -1
  124. package/lib/mjs/decorators.d.ts +26 -3
  125. package/lib/mjs/decorators.d.ts.map +1 -1
  126. package/lib/mjs/decorators.js +96 -44
  127. package/lib/mjs/decorators.js.map +1 -1
  128. package/lib/mjs/dehydrators.js +1 -1
  129. package/lib/mjs/dehydrators.js.map +1 -1
  130. package/lib/mjs/descriptor.d.ts +1 -0
  131. package/lib/mjs/descriptor.d.ts.map +1 -1
  132. package/lib/mjs/descriptor.js +17 -39
  133. package/lib/mjs/descriptor.js.map +1 -1
  134. package/lib/mjs/driver.d.ts +136 -7
  135. package/lib/mjs/driver.d.ts.map +1 -1
  136. package/lib/mjs/driver.js +279 -0
  137. package/lib/mjs/driver.js.map +1 -1
  138. package/lib/mjs/existsRelationHandlers.d.ts +29 -0
  139. package/lib/mjs/existsRelationHandlers.d.ts.map +1 -0
  140. package/lib/mjs/existsRelationHandlers.js +100 -0
  141. package/lib/mjs/existsRelationHandlers.js.map +1 -0
  142. package/lib/mjs/fp.d.ts.map +1 -1
  143. package/lib/mjs/fp.js +10 -15
  144. package/lib/mjs/fp.js.map +1 -1
  145. package/lib/mjs/hydrators.d.ts.map +1 -1
  146. package/lib/mjs/hydrators.js +29 -2
  147. package/lib/mjs/hydrators.js.map +1 -1
  148. package/lib/mjs/identity-map.d.ts +60 -0
  149. package/lib/mjs/identity-map.d.ts.map +1 -0
  150. package/lib/mjs/identity-map.js +130 -0
  151. package/lib/mjs/identity-map.js.map +1 -0
  152. package/lib/mjs/index.d.ts +12 -0
  153. package/lib/mjs/index.d.ts.map +1 -1
  154. package/lib/mjs/index.js +12 -0
  155. package/lib/mjs/index.js.map +1 -1
  156. package/lib/mjs/interfaces.d.ts +295 -9
  157. package/lib/mjs/interfaces.d.ts.map +1 -1
  158. package/lib/mjs/interfaces.js +53 -0
  159. package/lib/mjs/interfaces.js.map +1 -1
  160. package/lib/mjs/metadata.d.ts.map +1 -1
  161. package/lib/mjs/metadata.js +4 -1
  162. package/lib/mjs/metadata.js.map +1 -1
  163. package/lib/mjs/metrics.d.ts +53 -0
  164. package/lib/mjs/metrics.d.ts.map +1 -0
  165. package/lib/mjs/metrics.js +76 -0
  166. package/lib/mjs/metrics.js.map +1 -0
  167. package/lib/mjs/middlewares.d.ts +13 -1
  168. package/lib/mjs/middlewares.d.ts.map +1 -1
  169. package/lib/mjs/middlewares.js +55 -15
  170. package/lib/mjs/middlewares.js.map +1 -1
  171. package/lib/mjs/model.d.ts +129 -13
  172. package/lib/mjs/model.d.ts.map +1 -1
  173. package/lib/mjs/model.js +451 -95
  174. package/lib/mjs/model.js.map +1 -1
  175. package/lib/mjs/orm.d.ts.map +1 -1
  176. package/lib/mjs/orm.js +12 -3
  177. package/lib/mjs/orm.js.map +1 -1
  178. package/lib/mjs/orphan.d.ts +27 -0
  179. package/lib/mjs/orphan.d.ts.map +1 -0
  180. package/lib/mjs/orphan.js +52 -0
  181. package/lib/mjs/orphan.js.map +1 -0
  182. package/lib/mjs/primary-keys.d.ts +60 -0
  183. package/lib/mjs/primary-keys.d.ts.map +1 -0
  184. package/lib/mjs/primary-keys.js +223 -0
  185. package/lib/mjs/primary-keys.js.map +1 -0
  186. package/lib/mjs/relation-objects.d.ts +101 -9
  187. package/lib/mjs/relation-objects.d.ts.map +1 -1
  188. package/lib/mjs/relation-objects.js +194 -43
  189. package/lib/mjs/relation-objects.js.map +1 -1
  190. package/lib/mjs/relations.d.ts +7 -1
  191. package/lib/mjs/relations.d.ts.map +1 -1
  192. package/lib/mjs/relations.js +16 -1
  193. package/lib/mjs/relations.js.map +1 -1
  194. package/lib/mjs/resilience.d.ts +50 -0
  195. package/lib/mjs/resilience.d.ts.map +1 -0
  196. package/lib/mjs/resilience.js +64 -0
  197. package/lib/mjs/resilience.js.map +1 -0
  198. package/lib/mjs/snapshot.d.ts +58 -0
  199. package/lib/mjs/snapshot.d.ts.map +1 -0
  200. package/lib/mjs/snapshot.js +115 -0
  201. package/lib/mjs/snapshot.js.map +1 -0
  202. package/lib/mjs/statements.d.ts +11 -1
  203. package/lib/mjs/statements.d.ts.map +1 -1
  204. package/lib/mjs/statements.js +14 -3
  205. package/lib/mjs/statements.js.map +1 -1
  206. package/lib/mjs/subject-builder.d.ts +79 -0
  207. package/lib/mjs/subject-builder.d.ts.map +1 -0
  208. package/lib/mjs/subject-builder.js +292 -0
  209. package/lib/mjs/subject-builder.js.map +1 -0
  210. package/lib/mjs/subject-executor.d.ts +122 -0
  211. package/lib/mjs/subject-executor.d.ts.map +1 -0
  212. package/lib/mjs/subject-executor.js +312 -0
  213. package/lib/mjs/subject-executor.js.map +1 -0
  214. package/lib/mjs/subject-sorter.d.ts +70 -0
  215. package/lib/mjs/subject-sorter.d.ts.map +1 -0
  216. package/lib/mjs/subject-sorter.js +168 -0
  217. package/lib/mjs/subject-sorter.js.map +1 -0
  218. package/lib/mjs/subject.d.ts +100 -0
  219. package/lib/mjs/subject.d.ts.map +1 -0
  220. package/lib/mjs/subject.js +84 -0
  221. package/lib/mjs/subject.js.map +1 -0
  222. package/lib/mjs/unit-of-work.d.ts +52 -0
  223. package/lib/mjs/unit-of-work.d.ts.map +1 -0
  224. package/lib/mjs/unit-of-work.js +166 -0
  225. package/lib/mjs/unit-of-work.js.map +1 -0
  226. package/lib/tsconfig.cjs.tsbuildinfo +1 -1
  227. package/lib/tsconfig.mjs.tsbuildinfo +1 -1
  228. package/package.json +9 -7
@@ -20,6 +20,21 @@ const builders_js_1 = require("./builders.js");
20
20
  const orm_js_1 = require("./orm.js");
21
21
  const lodash_1 = __importDefault(require("lodash"));
22
22
  const descriptor_js_1 = require("./descriptor.js");
23
+ const primary_keys_js_1 = require("./primary-keys.js");
24
+ const exceptions_js_1 = require("./exceptions.js");
25
+ /**
26
+ * Builds a lodash iteratee for the given primary key columns. A single column stays a plain
27
+ * property name ( lodash's fast path ); a composite key becomes a function that flattens the
28
+ * tuple, because an array iteratee would be read as a property PATH — `_.differenceBy(a, b,
29
+ * ['TenantId','Code'])` resolves `obj['TenantId']['Code']`, undefined for every row, so every
30
+ * row would compare equal.
31
+ */
32
+ function pkIteratee(pKey) {
33
+ if (pKey.length === 1) {
34
+ return pKey[0];
35
+ }
36
+ return (x) => (0, primary_keys_js_1.pkKeyStringFor)(x, pKey);
37
+ }
23
38
  class Dataset {
24
39
  /**
25
40
  *
@@ -32,10 +47,11 @@ class Dataset {
32
47
  return (datasetB, pKey) => {
33
48
  // TODO: maybe refactor for speedup, this is not optimal
34
49
  // two calls to _.difference is not optimal, but it is easy to implement
50
+ const iteratee = pkIteratee(pKey);
35
51
  // calculate difference between this data in relation and dataset ( objects from this relation)
36
- const result = callback ? lodash_1.default.differenceWith(dataset, [...datasetB], callback) : lodash_1.default.differenceBy(dataset, [...datasetB], pKey);
52
+ const result = callback ? lodash_1.default.differenceWith(dataset, [...datasetB], callback) : lodash_1.default.differenceBy(dataset, [...datasetB], iteratee);
37
53
  // calculate difference between dataset and data in this relation ( objects from dataset )
38
- const result2 = callback ? lodash_1.default.differenceWith([...datasetB], dataset, callback) : lodash_1.default.differenceBy([...datasetB], dataset, pKey);
54
+ const result2 = callback ? lodash_1.default.differenceWith([...datasetB], dataset, callback) : lodash_1.default.differenceBy([...datasetB], dataset, iteratee);
39
55
  // combine difference from two sets
40
56
  const finalDiff = [...result, ...result2];
41
57
  return finalDiff;
@@ -51,7 +67,8 @@ class Dataset {
51
67
  */
52
68
  static intersection(dataset, callback) {
53
69
  return (datasetB, pKey) => {
54
- return callback ? lodash_1.default.intersectionWith(dataset, [...datasetB], callback) : lodash_1.default.intersectionBy(dataset, [...datasetB], pKey);
70
+ const iteratee = pkIteratee(pKey);
71
+ return callback ? lodash_1.default.intersectionWith(dataset, [...datasetB], callback) : lodash_1.default.intersectionBy(dataset, [...datasetB], iteratee);
55
72
  };
56
73
  }
57
74
  }
@@ -62,6 +79,20 @@ exports.Dataset = Dataset;
62
79
  * It allows to add / remove objects to relation
63
80
  */
64
81
  let Relation = class Relation extends Array {
82
+ /**
83
+ * Array methods that derive a new collection ( `splice`, `filter`, `slice`, `concat`, … )
84
+ * construct `new this.constructor[Symbol.species](len)` by default. That would call this
85
+ * class's constructor with no relation descriptor, and the very next line dereferences
86
+ * `this.Relation.TargetModel` — so `order.Items.splice(0, 1)` threw
87
+ * `Cannot read properties of undefined (reading 'TargetModel')`.
88
+ *
89
+ * Deriving plain arrays is also the right semantics: a slice of a relation is a list of
90
+ * models, not a relation with an owner. ( The hand-written `map()` below predates this and
91
+ * worked around the same thing for one method. )
92
+ */
93
+ static get [Symbol.species]() {
94
+ return Array;
95
+ }
65
96
  constructor(Owner, Relation, objects) {
66
97
  super();
67
98
  this.Owner = Owner;
@@ -77,6 +108,21 @@ let Relation = class Relation extends Array {
77
108
  }
78
109
  this.IsModelAForwardRef = !(0, di_1.isConstructor)(this.Model);
79
110
  }
111
+ /**
112
+ * The owner-side value this relation joins on.
113
+ *
114
+ * A relation names exactly ONE source column (`IRelationDescriptor.PrimaryKey`), so a
115
+ * composite-key owner must contribute only that column's value. `Owner.PrimaryKeyValue`
116
+ * would be a tuple, which binds an array into a single `?` and fails with
117
+ * `SQLITE_RANGE: column index out of range`.
118
+ *
119
+ * For a single-column key `Relation.PrimaryKey` IS the model's key column, so this returns
120
+ * exactly what `Owner.PrimaryKeyValue` did.
121
+ */
122
+ get OwnerJoinValue() {
123
+ const key = this.Relation?.PrimaryKey;
124
+ return key ? this.Owner[key] : this.Owner.PrimaryKeyValue;
125
+ }
80
126
  map(callbackfn, thisArg) {
81
127
  const result = [];
82
128
  for (let index = 0; index < this.length; index++) {
@@ -113,34 +159,70 @@ let SingleRelation = class SingleRelation {
113
159
  this.Orm = di_1.DI.get(orm_js_1.Orm);
114
160
  this.Value = object;
115
161
  }
162
+ /**
163
+ * Attaches `obj` and persists the owner. One transaction, so the attach and the owner
164
+ * update cannot half-apply. Nested inside a caller's transaction this takes a savepoint.
165
+ */
116
166
  async set(obj) {
117
- this.attach(obj);
118
- await this._owner.update();
167
+ await this._owner.driver().transaction(async () => {
168
+ this.attach(obj);
169
+ await this._owner.update();
170
+ });
119
171
  }
172
+ /**
173
+ * Points this relation at `obj` and records the owner's foreign key as changed.
174
+ *
175
+ * Uses the model's own `markDirty` rather than an `any` cast into the owner's private
176
+ * dirty-column list, which is what this used to do ( A6 ). `markDirty` de-duplicates and
177
+ * owns the `IsDirty` flag, so repeated attaches record the column once.
178
+ *
179
+ * @param obj - the related model, or null to clear the relation
180
+ */
120
181
  attach(obj) {
121
182
  this.Value = obj;
122
- this._owner.IsDirty = true;
123
- // TODO hack for dirty props
124
- this._owner.__dirty_props__.push(this.Relation?.ForeignKey);
183
+ const foreignKey = this.Relation?.ForeignKey;
184
+ if (foreignKey) {
185
+ this._owner.markDirty(foreignKey);
186
+ }
187
+ else {
188
+ // A query relation has no descriptor and therefore no foreign-key column, but the
189
+ // owner still changed.
190
+ this._owner.IsDirty = true;
191
+ }
125
192
  }
126
193
  detach() {
127
194
  this.attach(null);
128
195
  }
196
+ /**
197
+ * Deletes the related row and clears the owner's foreign key. One transaction: these used
198
+ * to be two independent statements, so a throw between them left the owner pointing at a
199
+ * row that no longer exists.
200
+ */
129
201
  async remove() {
130
- this.detach();
131
- await this.Value.destroy();
132
- await this._owner.update();
202
+ await this._owner.driver().transaction(async () => {
203
+ const val = this.Value;
204
+ this.detach();
205
+ await val?.destroy();
206
+ await this._owner.update();
207
+ });
133
208
  }
209
+ /**
210
+ * Loads the model this relation points at.
211
+ *
212
+ * Queries the target table directly, filtered on the column the relation declares as its
213
+ * join key ( `Relation.PrimaryKey` ) — the same column `BelongsToRelation.compile()` joins
214
+ * on for the eager path. It is *not* the target model's own primary key: `@BelongsTo`
215
+ * accepts an explicit third argument for exactly this case, and the two only coincide
216
+ * because the decorator defaults one from the other, which is why filtering on the target
217
+ * PK went unnoticed.
218
+ *
219
+ * @param callback - optional callback applied to the target query
220
+ */
134
221
  async populate(callback) {
135
- /**
136
- * Do little cheat - we construct query that loads initial model with given relation.
137
- * Then we only assign relation property.
138
- *
139
- * TODO: create only relation query without loading its owner.
140
- */
141
222
  const query = (0, builders_js_1.createQuery)(this.Relation.TargetModel, (builders_js_1.SelectQueryBuilder)).query;
142
- const desc = (0, descriptor_js_1.extractModelDescriptor)(this.Relation.TargetModel);
143
- query.where({ [desc.PrimaryKey]: this._owner[this.Relation.ForeignKey] });
223
+ const targetDescriptor = (0, descriptor_js_1.extractModelDescriptor)(this.Relation.TargetModel);
224
+ const joinColumn = this.Relation.PrimaryKey || targetDescriptor.PrimaryKey[0];
225
+ query.where({ [joinColumn]: this._owner[this.Relation.ForeignKey] });
144
226
  if (callback) {
145
227
  callback.apply(query);
146
228
  }
@@ -152,6 +234,7 @@ let SingleRelation = class SingleRelation {
152
234
  this.Value = await query.firstOrFail();
153
235
  }
154
236
  this.Populated = true;
237
+ this._owner.snapshotRelation(this.Relation.Name);
155
238
  }
156
239
  };
157
240
  exports.SingleRelation = SingleRelation;
@@ -205,14 +288,40 @@ let ManyToManyRelationList = class ManyToManyRelationList extends Relation {
205
288
  this.junctionModelDescriptor = (0, descriptor_js_1.extractModelDescriptor)(this.Relation.JunctionModel);
206
289
  }
207
290
  }
208
- intersection(_obj, _callback) {
209
- throw new Error('Method not implemented.');
291
+ /**
292
+ * Calculates intersection between data in this relation and provided dataset
293
+ *
294
+ * `[...this]` rather than `this`: these delegate into lodash, and `Relation extends Array`
295
+ * with a three-argument constructor, so anything that derives a new collection has to work
296
+ * on a plain array. ( `OneToManyRelationList` sidesteps the same problem by overriding
297
+ * `filter`/`map`; this class has no such overrides. )
298
+ *
299
+ * @param obj - dataset to compare with
300
+ * @param callback - compare function, if not set the target model's primary key is used
301
+ * @returns members present in both sets
302
+ */
303
+ intersection(obj, callback) {
304
+ return Dataset.intersection(obj, callback)([...this], this.TargetModelDescriptor.PrimaryKey);
210
305
  }
211
- union(_obj, _mode) {
212
- throw new Error('Method not implemented.');
306
+ /**
307
+ * Appends `obj` to this relation. Shorthand for push — nothing is removed and nothing is
308
+ * written to the database until `sync()`, `update()` or `save()` runs.
309
+ *
310
+ * @param obj - members to add
311
+ */
312
+ union(obj, _mode) {
313
+ this.push(...obj);
213
314
  }
214
- diff(_obj, _callback) {
215
- throw new Error('Method not implemented.');
315
+ /**
316
+ * Calculates the symmetric difference between this relation and `dataset` — members of this
317
+ * relation that are not in the dataset, plus members of the dataset that are not in this
318
+ * relation.
319
+ *
320
+ * @param obj - dataset to compare with
321
+ * @param callback - compare function, if not set the target model's primary key is used
322
+ */
323
+ diff(obj, callback) {
324
+ return Dataset.diff(obj, callback)([...this], this.TargetModelDescriptor.PrimaryKey);
216
325
  }
217
326
  /**
218
327
  * Sets data in relation ( clear data and replace with new dataset )
@@ -220,7 +329,7 @@ let ManyToManyRelationList = class ManyToManyRelationList extends Relation {
220
329
  * @param obj
221
330
  */
222
331
  set(obj) {
223
- const toPush = lodash_1.default.isFunction(obj) ? obj([...this], this.TargetModelDescriptor.PrimaryKey) : obj;
332
+ const toPush = lodash_1.default.isFunction(obj) ? obj([...this], (0, primary_keys_js_1.pkColumns)(this.TargetModelDescriptor)) : obj;
224
333
  this.empty();
225
334
  this.push(...toPush);
226
335
  }
@@ -238,7 +347,12 @@ let ManyToManyRelationList = class ManyToManyRelationList extends Relation {
238
347
  * @returns
239
348
  */
240
349
  async _dbDiff(data) {
241
- const query = this.Driver.del().from(this.junctionModelDescriptor.TableName).where(this.Relation.JunctionModelSourceModelFKey_Name, this.Owner.PrimaryKeyValue);
350
+ // A junction table carries exactly ONE foreign key column per side, so it cannot address
351
+ // a composite target key. Fail loudly rather than delete the wrong rows.
352
+ if ((0, primary_keys_js_1.isCompositePk)(this.TargetModelDescriptor)) {
353
+ throw new exceptions_js_1.OrmException(`many-to-many relation ${this.Relation.Name} targets ${this.TargetModelDescriptor.Name}, which has a composite primary key; a junction table carries one foreign key column per side and cannot address it`);
354
+ }
355
+ const query = this.Driver.del().from(this.junctionModelDescriptor.TableName).where(this.Relation.JunctionModelSourceModelFKey_Name, this.OwnerJoinValue);
242
356
  if (this.Driver.Options.Database) {
243
357
  query.database(this.Driver.Options.Database);
244
358
  }
@@ -255,10 +369,15 @@ let ManyToManyRelationList = class ManyToManyRelationList extends Relation {
255
369
  * Sets foreign key to relational data
256
370
  *
257
371
  * Inserts or updates models that are dirty only.
372
+ *
373
+ * One transaction: the junction upserts and the orphan delete used to be independent
374
+ * statements. Nested inside a caller's transaction this takes a savepoint.
258
375
  */
259
376
  async sync() {
260
- await this.update();
261
- await this._dbDiff(this);
377
+ await this.Driver.transaction(async () => {
378
+ await this._update();
379
+ await this._dbDiff(this);
380
+ });
262
381
  }
263
382
  /**
264
383
  * Updates or ads data to relation
@@ -266,6 +385,12 @@ let ManyToManyRelationList = class ManyToManyRelationList extends Relation {
266
385
  * Only dirty models are updated.
267
386
  */
268
387
  async update() {
388
+ await this.Driver.transaction(async () => {
389
+ await this._update();
390
+ });
391
+ }
392
+ /** The write itself, without a transaction of its own, so `sync()` can share one. */
393
+ async _update() {
269
394
  for (const f of this) {
270
395
  const junctionEntry = new this.Relation.JunctionModel();
271
396
  const desc = junctionEntry.ModelDescriptor;
@@ -284,7 +409,7 @@ let ManyToManyRelationList = class ManyToManyRelationList extends Relation {
284
409
  }
285
410
  }
286
411
  async populate(callback) {
287
- const query = this.Relation.JunctionModel.where(this.Relation.JunctionModelSourceModelFKey_Name, this.Owner.PrimaryKeyValue).populate(this.Relation.TargetModel, callback);
412
+ const query = this.Relation.JunctionModel.where(this.Relation.JunctionModelSourceModelFKey_Name, this.OwnerJoinValue).populate(this.Relation.TargetModel, callback);
288
413
  const result = await query;
289
414
  if (result) {
290
415
  this.length = 0;
@@ -293,6 +418,7 @@ let ManyToManyRelationList = class ManyToManyRelationList extends Relation {
293
418
  }));
294
419
  }
295
420
  this.Populated = true;
421
+ this.Owner.snapshotRelation(this.Relation.Name);
296
422
  }
297
423
  };
298
424
  exports.ManyToManyRelationList = ManyToManyRelationList;
@@ -308,14 +434,19 @@ let OneToManyRelationList = class OneToManyRelationList extends Relation {
308
434
  * @returns
309
435
  */
310
436
  async _dbDiff(data) {
311
- const query = this.Driver.del().from(this.TargetModelDescriptor.TableName).where(this.Relation.ForeignKey, this.Owner.PrimaryKeyValue);
437
+ const query = this.Driver.del().from(this.TargetModelDescriptor.TableName).where(this.Relation.ForeignKey, this.OwnerJoinValue);
312
438
  if (this.Driver.Options.Database) {
313
439
  query.database(this.Driver.Options.Database);
314
440
  }
315
- // if we have data in relation, we need to exclude them from delete query
316
- const toDelete = data.filter((x) => x.PrimaryKeyValue).map((x) => x.PrimaryKeyValue);
317
- if (toDelete.length !== 0) {
318
- query.whereNotIn(this.TargetModelDescriptor.PrimaryKey, toDelete);
441
+ // if we have data in relation, we need to exclude them from delete query.
442
+ // A composite key is a tuple and always truthy, so filter on the key COLUMNS being set
443
+ // rather than on the tuple itself.
444
+ const keys = (0, primary_keys_js_1.pkColumns)(this.TargetModelDescriptor);
445
+ const toDelete = data
446
+ .map((x) => (0, primary_keys_js_1.pkValueOf)(x, this.TargetModelDescriptor))
447
+ .filter((v) => (Array.isArray(v) ? v.every((p) => p !== null && p !== undefined) : v !== null && v !== undefined));
448
+ if (toDelete.length !== 0 && keys.length !== 0) {
449
+ (0, primary_keys_js_1.whereNotAnyPk)(query, this.TargetModelDescriptor, toDelete);
319
450
  }
320
451
  await query;
321
452
  }
@@ -323,7 +454,7 @@ let OneToManyRelationList = class OneToManyRelationList extends Relation {
323
454
  * Populates this relation ( loads all data related to owner of this relation)
324
455
  */
325
456
  async populate(callback) {
326
- const query = this.Relation.TargetModel.where(this.Relation.ForeignKey, this.Owner.PrimaryKeyValue);
457
+ const query = this.Relation.TargetModel.where(this.Relation.ForeignKey, this.OwnerJoinValue);
327
458
  if (callback) {
328
459
  callback.apply(query);
329
460
  }
@@ -335,6 +466,7 @@ let OneToManyRelationList = class OneToManyRelationList extends Relation {
335
466
  });
336
467
  }
337
468
  this.Populated = true;
469
+ this.Owner.snapshotRelation(this.Relation.Name);
338
470
  }
339
471
  /**
340
472
  * Synchronizes relation data to db
@@ -342,10 +474,17 @@ let OneToManyRelationList = class OneToManyRelationList extends Relation {
342
474
  * Sets foreign key to relational data
343
475
  *
344
476
  * Inserts or updates models that are dirty only.
477
+ *
478
+ * The whole synchronization is one transaction: the orphan delete used to run as an
479
+ * independent statement, so a throw between it and the writes left the database
480
+ * inconsistent with the in-memory graph. Nested inside a caller's transaction this takes
481
+ * a savepoint rather than opening a second one.
345
482
  */
346
483
  async sync() {
347
- await this.update();
348
- await this._dbDiff(this);
484
+ await this.Driver.transaction(async () => {
485
+ await this._update();
486
+ await this._dbDiff(this);
487
+ });
349
488
  }
350
489
  /**
351
490
  * Updates or ads data to relation
@@ -353,10 +492,22 @@ let OneToManyRelationList = class OneToManyRelationList extends Relation {
353
492
  * Only dirty models are updated.
354
493
  */
355
494
  async update() {
356
- const dirty = this.filter((x) => x.IsDirty || x.PrimaryKeyValue === null);
495
+ await this.Driver.transaction(async () => {
496
+ await this._update();
497
+ });
498
+ }
499
+ /** The write itself, without a transaction of its own, so `sync()` can share one. */
500
+ async _update() {
501
+ // Assign foreign keys BEFORE computing the dirty set. A child re-parented to
502
+ // this owner needs its FK rewritten and persisted; if we snapshot `dirty`
503
+ // first, a previously-clean child keeps its old FK in the DB and a following
504
+ // sync() can delete it as "not belonging" to the new owner.
357
505
  this.forEach((d) => {
358
- d[this.Relation.ForeignKey] = this.Owner.PrimaryKeyValue;
506
+ d[this.Relation.ForeignKey] = this.OwnerJoinValue;
359
507
  });
508
+ // Fresh models have an undefined PK ( setDefaults uses the column default ),
509
+ // so treat undefined as "needs insert" alongside null and the dirty flag.
510
+ const dirty = this.filter((x) => x.IsDirty || x.PrimaryKeyValue === null || x.PrimaryKeyValue === undefined);
360
511
  for (const f of dirty) {
361
512
  await f.insert(interfaces_js_1.InsertBehaviour.InsertOrUpdate);
362
513
  }
@@ -369,7 +520,7 @@ let OneToManyRelationList = class OneToManyRelationList extends Relation {
369
520
  * @returns Difference between this relation and dataset
370
521
  */
371
522
  diff(dataset, callback) {
372
- return Dataset.diff(dataset, callback)([...this], this.TargetModelDescriptor.PrimaryKey);
523
+ return Dataset.diff(dataset, callback)([...this], (0, primary_keys_js_1.pkColumns)(this.TargetModelDescriptor));
373
524
  }
374
525
  /**
375
526
  * Sets data in relation ( clear data and replace with new dataset )
@@ -377,7 +528,7 @@ let OneToManyRelationList = class OneToManyRelationList extends Relation {
377
528
  * @param obj
378
529
  */
379
530
  set(obj) {
380
- const toPush = lodash_1.default.isFunction(obj) ? obj([...this], this.TargetModelDescriptor.PrimaryKey) : obj;
531
+ const toPush = lodash_1.default.isFunction(obj) ? obj([...this], (0, primary_keys_js_1.pkColumns)(this.TargetModelDescriptor)) : obj;
381
532
  this.empty();
382
533
  this.push(...toPush);
383
534
  }
@@ -389,7 +540,7 @@ let OneToManyRelationList = class OneToManyRelationList extends Relation {
389
540
  * @returns Data that are in both sets
390
541
  */
391
542
  intersection(obj, callback) {
392
- return Dataset.intersection(obj, callback)([...this], this.TargetModelDescriptor.PrimaryKey);
543
+ return Dataset.intersection(obj, callback)([...this], (0, primary_keys_js_1.pkColumns)(this.TargetModelDescriptor));
393
544
  }
394
545
  /**
395
546
  * Combines data with this relation and saves to db
@@ -1 +1 @@
1
- {"version":3,"file":"relation-objects.js","sourceRoot":"","sources":["../../src/relation-objects.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relation-objects.js","sourceRoot":"","sources":["../../src/relation-objects.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,13 @@ export declare abstract class OrmRelation implements IOrmRelation {
28
28
  protected _query: ISelectQueryBuilder;
29
29
  protected _description: IRelationDescriptor;
30
30
  parentRelation?: NativeOrmRelation | undefined;
31
+ /**
32
+ * Guards `compile()` against running twice. Relation compilation mutates the owning
33
+ * builder — it adds joins, merges columns and registers result middlewares — and
34
+ * `toDB()` calls it, so without this guard compiling the same query twice produced a
35
+ * different builder each time ( B19 ).
36
+ */
37
+ protected _compiled: boolean;
31
38
  get Name(): string;
32
39
  get Descriptor(): IRelationDescriptor;
33
40
  get Alias(): string;
@@ -46,7 +53,6 @@ export declare abstract class NativeOrmRelation extends OrmRelation {
46
53
  protected _relationQuery: ISelectQueryBuilder;
47
54
  protected _separator: string;
48
55
  protected _driver: OrmDriver;
49
- protected _compiled: boolean;
50
56
  get Name(): string;
51
57
  get Descriptor(): IRelationDescriptor;
52
58
  get Alias(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"relations.d.ts","sourceRoot":"","sources":["../../src/relations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relations.d.ts","sourceRoot":"","sources":["../../src/relations.ts"],"names":[],"mappings":"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"}
@@ -41,6 +41,13 @@ class OrmRelation {
41
41
  this._query = _query;
42
42
  this._description = _description;
43
43
  this.parentRelation = parentRelation;
44
+ /**
45
+ * Guards `compile()` against running twice. Relation compilation mutates the owning
46
+ * builder — it adds joins, merges columns and registers result middlewares — and
47
+ * `toDB()` calls it, so without this guard compiling the same query twice produced a
48
+ * different builder each time ( B19 ).
49
+ */
50
+ this._compiled = false;
44
51
  }
45
52
  }
46
53
  exports.OrmRelation = OrmRelation;
@@ -165,7 +172,11 @@ let QueryRelation = class QueryRelation extends OrmRelation {
165
172
  }
166
173
  }
167
174
  compile() {
175
+ if (this._compiled) {
176
+ return;
177
+ }
168
178
  this._query.middleware(new middlewares_js_1.QueryRelationMiddleware(this._description.Callback, this._description.Mapper, this._description));
179
+ this._compiled = true;
169
180
  }
170
181
  };
171
182
  exports.QueryRelation = QueryRelation;
@@ -180,7 +191,11 @@ let VirtualRelation = class VirtualRelation extends OrmRelation {
180
191
  executeOnQuery(_callback) {
181
192
  }
182
193
  compile() {
194
+ if (this._compiled) {
195
+ return;
196
+ }
183
197
  this._query.middleware(new middlewares_js_1.VirtualRelationMiddleware(this._relationCallback, this._description.Callback, this._description.Mapper, this._description));
198
+ this._compiled = true;
184
199
  }
185
200
  };
186
201
  exports.VirtualRelation = VirtualRelation;
@@ -272,7 +287,7 @@ let ManyToManyRelation = class ManyToManyRelation extends NativeOrmRelation {
272
287
  // todo fix this cast
273
288
  this._joinQuery.mergeBuilder(this._relationQuery);
274
289
  this._joinQuery.mergeRelations(this._relationQuery);
275
- this._query.middleware(new middlewares_js_1.HasManyToManyRelationMiddleware(this._joinQuery, joinRelationDescriptor, this._targetModelDescriptor));
290
+ this._query.middleware(new middlewares_js_1.HasManyToManyRelationMiddleware(this._joinQuery, joinRelationDescriptor, this._targetModelDescriptor, this._description));
276
291
  this._compiled = true;
277
292
  }
278
293
  };
@@ -1 +1 @@
1
- {"version":3,"file":"relations.js","sourceRoot":"","sources":["../../src/relations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relations.js","sourceRoot":"","sources":["../../src/relations.ts"],"names":[],"mappings":"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"}