@spinajs/orm 2.0.520 → 2.0.521

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 (79) hide show
  1. package/lib/cjs/builders.d.ts.map +1 -1
  2. package/lib/cjs/builders.js +0 -1
  3. package/lib/cjs/builders.js.map +1 -1
  4. package/lib/cjs/converters.d.ts.map +1 -1
  5. package/lib/cjs/converters.js +12 -5
  6. package/lib/cjs/converters.js.map +1 -1
  7. package/lib/cjs/decorators.d.ts.map +1 -1
  8. package/lib/cjs/decorators.js +41 -4
  9. package/lib/cjs/decorators.js.map +1 -1
  10. package/lib/cjs/interfaces.d.ts +7 -9
  11. package/lib/cjs/interfaces.d.ts.map +1 -1
  12. package/lib/cjs/interfaces.js.map +1 -1
  13. package/lib/cjs/metadata.d.ts.map +1 -1
  14. package/lib/cjs/metadata.js +0 -1
  15. package/lib/cjs/metadata.js.map +1 -1
  16. package/lib/cjs/model.d.ts +72 -53
  17. package/lib/cjs/model.d.ts.map +1 -1
  18. package/lib/cjs/model.js +155 -104
  19. package/lib/cjs/model.js.map +1 -1
  20. package/lib/cjs/relation-objects.d.ts +9 -4
  21. package/lib/cjs/relation-objects.d.ts.map +1 -1
  22. package/lib/cjs/relation-objects.js +15 -13
  23. package/lib/cjs/relation-objects.js.map +1 -1
  24. package/lib/cjs/snapshot.d.ts +12 -0
  25. package/lib/cjs/snapshot.d.ts.map +1 -1
  26. package/lib/cjs/snapshot.js +9 -0
  27. package/lib/cjs/snapshot.js.map +1 -1
  28. package/lib/cjs/subject-builder.d.ts +3 -2
  29. package/lib/cjs/subject-builder.d.ts.map +1 -1
  30. package/lib/cjs/subject-builder.js +10 -9
  31. package/lib/cjs/subject-builder.js.map +1 -1
  32. package/lib/cjs/subject-executor.d.ts +2 -2
  33. package/lib/cjs/subject-executor.d.ts.map +1 -1
  34. package/lib/cjs/subject-executor.js +11 -8
  35. package/lib/cjs/subject-executor.js.map +1 -1
  36. package/lib/cjs/subject.d.ts +8 -1
  37. package/lib/cjs/subject.d.ts.map +1 -1
  38. package/lib/cjs/subject.js.map +1 -1
  39. package/lib/mjs/builders.d.ts.map +1 -1
  40. package/lib/mjs/builders.js +0 -1
  41. package/lib/mjs/builders.js.map +1 -1
  42. package/lib/mjs/converters.d.ts.map +1 -1
  43. package/lib/mjs/converters.js +12 -5
  44. package/lib/mjs/converters.js.map +1 -1
  45. package/lib/mjs/decorators.d.ts.map +1 -1
  46. package/lib/mjs/decorators.js +41 -4
  47. package/lib/mjs/decorators.js.map +1 -1
  48. package/lib/mjs/interfaces.d.ts +7 -9
  49. package/lib/mjs/interfaces.d.ts.map +1 -1
  50. package/lib/mjs/interfaces.js.map +1 -1
  51. package/lib/mjs/metadata.d.ts.map +1 -1
  52. package/lib/mjs/metadata.js +0 -1
  53. package/lib/mjs/metadata.js.map +1 -1
  54. package/lib/mjs/model.d.ts +72 -53
  55. package/lib/mjs/model.d.ts.map +1 -1
  56. package/lib/mjs/model.js +156 -105
  57. package/lib/mjs/model.js.map +1 -1
  58. package/lib/mjs/relation-objects.d.ts +9 -4
  59. package/lib/mjs/relation-objects.d.ts.map +1 -1
  60. package/lib/mjs/relation-objects.js +15 -13
  61. package/lib/mjs/relation-objects.js.map +1 -1
  62. package/lib/mjs/snapshot.d.ts +12 -0
  63. package/lib/mjs/snapshot.d.ts.map +1 -1
  64. package/lib/mjs/snapshot.js +8 -0
  65. package/lib/mjs/snapshot.js.map +1 -1
  66. package/lib/mjs/subject-builder.d.ts +3 -2
  67. package/lib/mjs/subject-builder.d.ts.map +1 -1
  68. package/lib/mjs/subject-builder.js +10 -9
  69. package/lib/mjs/subject-builder.js.map +1 -1
  70. package/lib/mjs/subject-executor.d.ts +2 -2
  71. package/lib/mjs/subject-executor.d.ts.map +1 -1
  72. package/lib/mjs/subject-executor.js +11 -8
  73. package/lib/mjs/subject-executor.js.map +1 -1
  74. package/lib/mjs/subject.d.ts +8 -1
  75. package/lib/mjs/subject.d.ts.map +1 -1
  76. package/lib/mjs/subject.js.map +1 -1
  77. package/lib/tsconfig.cjs.tsbuildinfo +1 -1
  78. package/lib/tsconfig.mjs.tsbuildinfo +1 -1
  79. package/package.json +7 -7
package/lib/mjs/model.js CHANGED
@@ -6,7 +6,7 @@ import { ModelHydrator } from './hydrators.js';
6
6
  import { OrmException } from './exceptions.js';
7
7
  import { StandardModelDehydrator, StandardModelWithRelationsDehydrator } from './dehydrators.js';
8
8
  import { SingleRelation } from './relation-objects.js';
9
- import { createSnapshot, snapshotEquals, snapshotValue } from './snapshot.js';
9
+ import { baselineValue, createSnapshot, snapshotEquals, snapshotValue } from './snapshot.js';
10
10
  import { UnitOfWork } from './unit-of-work.js';
11
11
  import { DI, isConstructor, isClass, getInheritedDescriptor } from '@spinajs/di';
12
12
  import { DateTime } from 'luxon';
@@ -14,19 +14,6 @@ import _ from 'lodash';
14
14
  import { v4 as uuidv4 } from 'uuid';
15
15
  import { extractModelDescriptor, createDefaultModelDescriptor } from './descriptor.js';
16
16
  import { assertAssignedKeys, generateClientSideKeys, hasPk, isCompositePk, orderByPk, pkColumns, pkGeneration, pkValueOf, setPkValue, whereAnyPk, wherePk } from './primary-keys.js';
17
- const MODEL_PROXY_HANDLER = {
18
- set: (target, p, value) => {
19
- if (target[p] !== value) {
20
- target[p] = value;
21
- if (p !== 'IsDirty' && target.ModelDescriptor?.Columns.find((x) => x.Name === p)) {
22
- target.IsDirty = true;
23
- // HACK to access private prop ( internal use )
24
- target.__dirty_props__.push(p);
25
- }
26
- }
27
- return true;
28
- },
29
- };
30
17
  /**
31
18
  *
32
19
  * Updates model descriptor
@@ -52,18 +39,6 @@ export function updateModelDescriptor(targetOrForward, callback) {
52
39
  callback(descriptor);
53
40
  }
54
41
  export class ModelBase {
55
- /**
56
- * Marks model as dirty. It means that model have unsaved changes
57
- */
58
- get IsDirty() {
59
- return this.__is_dirty__;
60
- }
61
- set IsDirty(val) {
62
- this.__is_dirty__ = val;
63
- if (!val) {
64
- this.__dirty_props__ = [];
65
- }
66
- }
67
42
  /**
68
43
  * Gets descriptor for this model. It contains information about relations, orm driver, connection properties,
69
44
  * db table attached, column information and others.
@@ -154,10 +129,43 @@ export class ModelBase {
154
129
  snapshotColumns() {
155
130
  return (this.ModelDescriptor?.Columns ?? []).filter((c) => !c.Virtual);
156
131
  }
132
+ /**
133
+ * The value this model writes for every foreign key a @BelongsTo currently manages, keyed by
134
+ * column name. A relation holding a target owns its foreign key: `toSql()` writes the target's
135
+ * join-column value ( `Relation.PrimaryKey` — the target's primary key unless `@BelongsTo`
136
+ * names another column ), so a direct write to the column never reaches the database. A
137
+ * relation holding null or undefined owns nothing and is absent here, leaving the column to
138
+ * speak for itself: NULL after a `detach()`, untouched after a `populate()` that found no row.
139
+ *
140
+ * A @Recursive relation is excluded whatever it holds: `toSql()` writes its foreign key from
141
+ * the raw column, overriding the relation, so the column is what reaches the database.
142
+ *
143
+ * The single place that answers "what does this model persist for this column", so the
144
+ * snapshot baseline and the diff can never read the question differently.
145
+ */
146
+ effectiveForeignKeys() {
147
+ const effective = new Map();
148
+ for (const [, r] of this.ModelDescriptor?.Relations ?? []) {
149
+ if (r.Type !== RelationType.One || !r.ForeignKey || r.Recursive) {
150
+ continue;
151
+ }
152
+ const rel = this[r.Name];
153
+ if (rel?.Value) {
154
+ effective.set(r.ForeignKey, rel.Value[r.PrimaryKey]);
155
+ }
156
+ }
157
+ return effective;
158
+ }
157
159
  /**
158
160
  * Captures the current value of every column as the diff baseline, discarding any
159
161
  * previous baseline and any relation keys recorded against it.
160
162
  *
163
+ * Reads the raw columns, deliberately: a snapshot is taken after an INSERT too, and an INSERT
164
+ * may omit a foreign key on purpose ( a deferred self-reference, whose target had no key yet ).
165
+ * Recording what the relation now holds would claim that key had been written and suppress the
166
+ * follow-up UPDATE that actually writes it. `writeBackRelationKeys()` is what brings a column
167
+ * in line with its relation, and it runs only where the key really was written.
168
+ *
161
169
  * Values are copied, never aliased — see `snapshotValue`. An aliased snapshot makes
162
170
  * every diff empty and `save()` a silent no-op.
163
171
  */
@@ -168,6 +176,20 @@ export class ModelBase {
168
176
  }
169
177
  this.__snapshot__ = snapshot;
170
178
  }
179
+ /**
180
+ * Copies the value each @BelongsTo relation just wrote back onto its foreign-key column, so
181
+ * the model agrees with the row. Call it after a statement that wrote those keys, before
182
+ * `takeSnapshot()`.
183
+ *
184
+ * Without it a foreign key written directly and then overridden by its relation keeps the
185
+ * overridden value in the column, the snapshot records that value as the baseline, and the
186
+ * model reads dirty forever - every `save()` minting an UPDATE that changes nothing.
187
+ */
188
+ writeBackRelationKeys() {
189
+ for (const [name, value] of this.effectiveForeignKeys()) {
190
+ this[name] = value;
191
+ }
192
+ }
171
193
  /**
172
194
  * Records the primary keys of the members currently in relation `name` as that
173
195
  * relation's baseline. A no-op when the model has no snapshot — an unhydrated model
@@ -199,72 +221,82 @@ export class ModelBase {
199
221
  this.__snapshot__ = null;
200
222
  }
201
223
  /**
202
- * Names of the columns whose current value differs from the snapshot.
203
- *
204
- * With no snapshot every column is reported as changed, which is the right answer for a
205
- * model that is about to be inserted.
206
- *
207
- * This is deliberately independent of `__dirty_props__`: the proxy records a property as
208
- * dirty on any write, including one that puts the original value back, so the snapshot
209
- * diff is the more precise answer and the one the UPDATE payload is built from.
224
+ * `true` until the row has been in the database: the diff baseline is `null`. This is what
225
+ * classifies the model as an INSERT - not the presence of a primary key, because
226
+ * `setDefaults()` pre-fills @Uuid keys on construction.
227
+ */
228
+ get IsNew() {
229
+ return this.__snapshot__ === null;
230
+ }
231
+ /**
232
+ * Whether `save()` would write anything: a model that has never been in the database, or one
233
+ * with at least one column ( or re-pointed foreign key ) differing from its baseline.
210
234
  *
211
- * Reads the same column set `takeSnapshot()` wrote, and must keep doing so: comparing a column
212
- * the baseline never covered means comparing its live value against `undefined`, which reports it
213
- * changed on every single save.
235
+ * Derived from the snapshot on every read - there is no write observer - so it costs one
236
+ * comparison per column until the first difference. There is deliberately no setter: the only
237
+ * way to make a model clean is to persist it or to re-baseline it with `takeSnapshot()`.
214
238
  */
215
- changedColumns() {
216
- const columns = this.snapshotColumns();
217
- if (!this.__snapshot__) {
218
- return columns.map((c) => c.Name);
219
- }
220
- const snapshot = this.__snapshot__;
221
- return columns.filter((c) => !snapshotEquals(snapshot.Columns.get(c.Name), this[c.Name], c.Converter)).map((c) => c.Name);
239
+ get IsDirty() {
240
+ return this.IsNew || this.diff(true).length > 0;
222
241
  }
223
242
  /**
224
- * Foreign-key columns a relation object reported as rewritten, via {@link markDirty}.
243
+ * Every persisted column whose current value differs from the baseline, in descriptor column
244
+ * order, followed by any @BelongsTo foreign key the descriptor declares no column for. On a
245
+ * model with no baseline every column is reported with `OldValue: undefined`.
225
246
  *
226
- * These are the only columns the snapshot diff cannot see. `SingleRelation.attach()` stores
227
- * the new target on the relation wrapper and marks the foreign key dirty, but never writes
228
- * the column on the model — the value is materialised from the relation later, by
229
- * `StandardModelToSqlConverter`. So `changedColumns()` compares the column against its
230
- * snapshot, finds it untouched, and reports no change even though the relation was
231
- * re-pointed. Detaching a relation and calling `update()` would then emit nothing at all.
247
+ * Computed on demand - nothing observes writes - so an in-place mutation of a JSON column is
248
+ * seen exactly like an assignment. Call it once and reuse the result rather than polling it
249
+ * in a loop.
232
250
  *
233
- * Restricted to declared relation foreign keys on purpose. `__dirty_props__` also collects
234
- * ordinary property writes, and folding those in wholesale would undo the precision the
235
- * diff exists for: a column written A -> B -> A is in `__dirty_props__` but has no net
236
- * change, and must not be written back.
251
+ * Named `changeSet` - not `changes` - because model members and columns share a namespace and
252
+ * `changes` is a real column name in downstream schemas.
237
253
  */
238
- relationDirtyColumns() {
239
- const descriptor = this.ModelDescriptor;
240
- if (!descriptor) {
241
- return [];
242
- }
243
- const relationKeys = new Set();
244
- for (const [, relation] of descriptor.Relations) {
245
- if (relation.ForeignKey) {
246
- relationKeys.add(relation.ForeignKey);
247
- }
248
- }
249
- return this.__dirty_props__.filter((p) => relationKeys.has(p));
254
+ changeSet() {
255
+ return this.diff(false);
250
256
  }
251
257
  /**
252
- * Records `prop` as changed and marks the model dirty.
258
+ * The single diff. `stopAtFirst` lets a boolean question return as soon as one change is found.
253
259
  *
254
- * This is the supported way for relation objects to report that they rewrote one of the
255
- * owner's foreign keys. It replaces the `(owner as any).__dirty_props__.push(...)` casts
256
- * that reached into a private field from outside the class ( A6 ).
260
+ * Every foreign key is resolved to ONE effective value before anything is compared, so
261
+ * `IsDirty` and `changeSet()` can never disagree and the short-circuit can never skip a
262
+ * decision the full diff would have made.
257
263
  *
258
- * The push comes before `IsDirty = true` so the method stays correct even if the
259
- * `IsDirty` setter ever starts clearing `__dirty_props__` on a truthy assignment too.
260
- *
261
- * @param prop - column name
264
+ * The rule: a @BelongsTo holding a target decides its foreign key, because that is what
265
+ * `toSql()` writes - the target's join-column value, `Relation.PrimaryKey`, which is the
266
+ * target's own primary key unless `@BelongsTo` names another column. A direct write to the
267
+ * column is therefore overridden and never reaches the database, and the diff has to say so.
268
+ * A relation holding null or undefined decides nothing and the column stands: NULL after a
269
+ * `detach()`, untouched after a `populate()` that found no row.
262
270
  */
263
- markDirty(prop) {
264
- if (!this.__dirty_props__.includes(prop)) {
265
- this.__dirty_props__.push(prop);
271
+ diff(stopAtFirst) {
272
+ const columns = this.snapshotColumns();
273
+ const snap = this.__snapshot__?.Columns;
274
+ const out = [];
275
+ const effective = this.effectiveForeignKeys();
276
+ for (const c of columns) {
277
+ const current = effective.has(c.Name) ? effective.get(c.Name) : this[c.Name];
278
+ if (!snap || !snapshotEquals(snap.get(c.Name), current, c.Converter)) {
279
+ out.push({ Column: c.Name, OldValue: baselineValue(snap?.get(c.Name)), NewValue: current });
280
+ if (stopAtFirst) {
281
+ return out;
282
+ }
283
+ }
284
+ }
285
+ // A relation-managed foreign key the descriptor has no column for - the loop above never
286
+ // saw it, and there is no converter to compare it through.
287
+ const declared = new Set(columns.map((c) => c.Name));
288
+ for (const [name, current] of effective) {
289
+ if (declared.has(name)) {
290
+ continue;
291
+ }
292
+ if (!snap || !snapshotEquals(snap.get(name), current)) {
293
+ out.push({ Column: name, OldValue: baselineValue(snap?.get(name)), NewValue: current });
294
+ if (stopAtFirst) {
295
+ return out;
296
+ }
297
+ }
266
298
  }
267
- this.IsDirty = true;
299
+ return out;
268
300
  }
269
301
  valueOf() {
270
302
  return this.PrimaryKeyValue;
@@ -451,23 +483,18 @@ export class ModelBase {
451
483
  throw new Error('Not implemented');
452
484
  }
453
485
  constructor(data) {
454
- this.__is_dirty__ = false;
455
486
  /**
456
- * prop to track model props that changeded since last update
457
- */
458
- this.__dirty_props__ = [];
459
- /**
460
- * Diff baseline, captured when this instance was hydrated from a database row.
461
- * `null` means "this model has never been in the database", which is what `save()`
462
- * uses to classify it as an INSERT — not the presence of a primary key, because
463
- * `setDefaults()` pre-fills @Uuid keys on construction.
487
+ * Diff baseline: a value copy of every persisted column, taken when the row was last read
488
+ * from or written to the database. `null` means the row has never been in the database, which
489
+ * is what classifies it as an INSERT - not the presence of a primary key, because
490
+ * `setDefaults()` pre-fills @Uuid keys on construction. Written only by `takeSnapshot()` and
491
+ * `clearSnapshot()`.
464
492
  */
465
493
  this.__snapshot__ = null;
466
494
  this.setDefaults();
467
495
  if (data) {
468
496
  this.hydrate(data);
469
497
  }
470
- return new Proxy(this, MODEL_PROXY_HANDLER);
471
498
  }
472
499
  /**
473
500
  * Fills model with data. It only fills properties that exists in database
@@ -496,7 +523,6 @@ export class ModelBase {
496
523
  switch (v.Type) {
497
524
  case RelationType.One:
498
525
  this[v.Name].attach(data);
499
- this.markDirty(v.ForeignKey);
500
526
  break;
501
527
  case RelationType.Many: {
502
528
  // Set the child's back-reference to this owner, when the child declares one.
@@ -518,7 +544,6 @@ export class ModelBase {
518
544
  break;
519
545
  }
520
546
  }
521
- this.IsDirty = true;
522
547
  }
523
548
  /**
524
549
  * Extracts all data from model. It takes only properties that exists in DB
@@ -548,7 +573,7 @@ export class ModelBase {
548
573
  toSql(onlyDirty) {
549
574
  const vals = this.Container.resolve(ModelToSqlConverter).toSql(this);
550
575
  if (onlyDirty) {
551
- return _.pick(vals, this.__dirty_props__);
576
+ return _.pick(vals, this.changeSet().map((c) => c.Column));
552
577
  }
553
578
  return vals;
554
579
  }
@@ -564,7 +589,6 @@ export class ModelBase {
564
589
  return;
565
590
  }
566
591
  const result = await this.constructor.destroy(pk);
567
- this.IsDirty = false;
568
592
  return result;
569
593
  }
570
594
  /**
@@ -580,16 +604,18 @@ export class ModelBase {
580
604
  const { query } = this.createUpdateQuery();
581
605
  query.update(this.toSql());
582
606
  wherePk(query, this.ModelDescriptor, this.PrimaryKeyValue);
583
- return await query;
607
+ const result = await query;
608
+ // The whole model is in the database now - that is the baseline for the next update().
609
+ this.writeBackRelationKeys();
610
+ this.takeSnapshot();
611
+ return result;
584
612
  }
585
613
  /**
586
614
  * Writes the columns that differ from the snapshot.
587
615
  *
588
- * The change set comes from `changedColumns()` the snapshot diff and not from the
589
- * proxy's `__dirty_props__`, which records a property as dirty on ANY write including one
590
- * that puts the original value straight back. `save()` has always used the diff, and
591
- * `changedColumns()` documents it as the more precise answer; this path used the imprecise
592
- * one, so the same edit produced a different UPDATE depending on which method you called.
616
+ * The change set is `changeSet()` - the snapshot diff, which also covers a foreign key that was
617
+ * re-pointed through its relation - so re-assigning a column its current value produces no
618
+ * UPDATE, and a column written A -> B -> A is not written back.
593
619
  *
594
620
  * A model with no snapshot ( never hydrated ) reports every column as changed, which is the
595
621
  * right answer: there is no baseline to be more precise than.
@@ -605,11 +631,12 @@ export class ModelBase {
605
631
  this.hydrate(data);
606
632
  }
607
633
  const keyColumns = this.ModelDescriptor.PrimaryKey ?? [];
608
- const changed = _.union(this.changedColumns(), this.relationDirtyColumns()).filter((c) => !keyColumns.includes(c));
634
+ const changed = this.changeSet()
635
+ .map((c) => c.Column)
636
+ .filter((c) => !keyColumns.includes(c));
609
637
  // Nothing to write. Checked against the diff, so re-assigning a column its current value
610
638
  // no longer produces an UPDATE that sets it to what it already was.
611
639
  if (changed.length === 0) {
612
- this.IsDirty = false;
613
640
  return result;
614
641
  }
615
642
  const updatedAt = this.ModelDescriptor.Timestamps.UpdatedAt;
@@ -623,7 +650,7 @@ export class ModelBase {
623
650
  query.update(_.pick(this.toSql(), changed));
624
651
  wherePk(query, this.ModelDescriptor, this.PrimaryKeyValue);
625
652
  const updateResult = await query;
626
- this.IsDirty = false;
653
+ this.writeBackRelationKeys();
627
654
  this.takeSnapshot();
628
655
  return updateResult;
629
656
  }
@@ -676,8 +703,12 @@ export class ModelBase {
676
703
  modelCreation: () => null,
677
704
  afterHydration: () => null,
678
705
  });
679
- const result = query.values(this.toSql());
680
- this.IsDirty = false;
706
+ // Awaited here, not by the caller: the afterQuery middleware above backfills a generated key
707
+ // during execution, and the snapshot must include it. Taken only after the await - a throw
708
+ // leaves the model exactly as dirty as it was.
709
+ const result = await query.values(this.toSql());
710
+ this.writeBackRelationKeys();
711
+ this.takeSnapshot();
681
712
  return result;
682
713
  }
683
714
  /**
@@ -739,7 +770,9 @@ export class ModelBase {
739
770
  for (const c of this.ModelDescriptor.Columns) {
740
771
  this[c.Name] = model[c.Name];
741
772
  }
742
- this.IsDirty = false;
773
+ // Every column now holds what the database holds - that is the new baseline, not the one
774
+ // captured before the refresh.
775
+ this.takeSnapshot();
743
776
  }
744
777
  toJSON() {
745
778
  return this.dehydrate();
@@ -1104,6 +1137,24 @@ export const MODEL_STATIC_MIXINS = {
1104
1137
  // supplied and generated keys, a statement the server did not insert one row per input
1105
1138
  // row for — cannot be mapped positionally, so nothing is assigned. Callers needing the
1106
1139
  // keys there must re-select or insert the models one at a time.
1140
+ // Every persist path re-baselines after its statement, and the baseline is taken after
1141
+ // the backfill above so it carries whatever key the statement produced: the model is
1142
+ // re-baselined to exactly what the statement wrote, no more. The relation keys are
1143
+ // written back first because the payload took them from the relation ( `toSql()` reads
1144
+ // the target's join column ) and not from the model's own foreign-key column - without
1145
+ // the write-back the baseline would record a column value the row does not hold, and the
1146
+ // model would read dirty right after a successful insert.
1147
+ //
1148
+ // A plain-object payload is not a model and has nothing to snapshot; a model whose key
1149
+ // could not be mapped positionally is still in the database, so it is re-baselined too -
1150
+ // it just carries no key, and cannot be updated through this instance until one is set.
1151
+ rows.forEach((v) => {
1152
+ if (v instanceof ModelBase) {
1153
+ // Private instance member - the static side of the class cannot see it.
1154
+ v.writeBackRelationKeys();
1155
+ v.takeSnapshot();
1156
+ }
1157
+ });
1107
1158
  return result;
1108
1159
  },
1109
1160
  modelCreation: () => null,
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/model.ts"],"names":[],"mappings":"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"}
@@ -163,11 +163,16 @@ export declare class SingleRelation<R extends ModelBase, O extends ModelBase = M
163
163
  */
164
164
  set(obj: R): Promise<void>;
165
165
  /**
166
- * Points this relation at `obj` and records the owner's foreign key as changed.
166
+ * Points this relation at `obj` and writes the owner's foreign-key column to match: the
167
+ * target's join-column value — its primary key unless `@BelongsTo` names another column
168
+ * ( `Relation.PrimaryKey` ) — or NULL when detaching. No database access.
167
169
  *
168
- * Uses the model's own `markDirty` rather than an `any` cast into the owner's private
169
- * dirty-column list, which is what this used to do ( A6 ). `markDirty` de-duplicates and
170
- * owns the `IsDirty` flag, so repeated attaches record the column once.
170
+ * The column is what the snapshot records and what the diff compares, so it has to follow
171
+ * the relation - otherwise a detach would leave column and relation disagreeing and the model
172
+ * dirty forever. An unsaved target has no key yet, so the column holds whatever that empty key
173
+ * reads as ( `undefined`, or `null` once `setDefaults()` has filled it from the column default )
174
+ * until the unit of work inserts the parent and backfills it; `toSql()` reads the same join
175
+ * column off `Value` at write time either way.
171
176
  *
172
177
  * @param obj - the related model, or null to clear the relation
173
178
  */