@spinajs/orm 2.0.520 → 2.0.522

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 (111) 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/exceptions.d.ts +7 -0
  11. package/lib/cjs/exceptions.d.ts.map +1 -1
  12. package/lib/cjs/exceptions.js +11 -1
  13. package/lib/cjs/exceptions.js.map +1 -1
  14. package/lib/cjs/fp.d.ts +6 -5
  15. package/lib/cjs/fp.d.ts.map +1 -1
  16. package/lib/cjs/fp.js +12 -59
  17. package/lib/cjs/fp.js.map +1 -1
  18. package/lib/cjs/helpers.d.ts +40 -0
  19. package/lib/cjs/helpers.d.ts.map +1 -0
  20. package/lib/cjs/helpers.js +90 -0
  21. package/lib/cjs/helpers.js.map +1 -0
  22. package/lib/cjs/index.d.ts +1 -0
  23. package/lib/cjs/index.d.ts.map +1 -1
  24. package/lib/cjs/index.js +1 -0
  25. package/lib/cjs/index.js.map +1 -1
  26. package/lib/cjs/interfaces.d.ts +7 -9
  27. package/lib/cjs/interfaces.d.ts.map +1 -1
  28. package/lib/cjs/interfaces.js.map +1 -1
  29. package/lib/cjs/metadata.d.ts.map +1 -1
  30. package/lib/cjs/metadata.js +0 -1
  31. package/lib/cjs/metadata.js.map +1 -1
  32. package/lib/cjs/model.d.ts +72 -53
  33. package/lib/cjs/model.d.ts.map +1 -1
  34. package/lib/cjs/model.js +155 -104
  35. package/lib/cjs/model.js.map +1 -1
  36. package/lib/cjs/relation-objects.d.ts +9 -4
  37. package/lib/cjs/relation-objects.d.ts.map +1 -1
  38. package/lib/cjs/relation-objects.js +15 -13
  39. package/lib/cjs/relation-objects.js.map +1 -1
  40. package/lib/cjs/snapshot.d.ts +12 -0
  41. package/lib/cjs/snapshot.d.ts.map +1 -1
  42. package/lib/cjs/snapshot.js +9 -0
  43. package/lib/cjs/snapshot.js.map +1 -1
  44. package/lib/cjs/subject-builder.d.ts +3 -2
  45. package/lib/cjs/subject-builder.d.ts.map +1 -1
  46. package/lib/cjs/subject-builder.js +10 -9
  47. package/lib/cjs/subject-builder.js.map +1 -1
  48. package/lib/cjs/subject-executor.d.ts +2 -2
  49. package/lib/cjs/subject-executor.d.ts.map +1 -1
  50. package/lib/cjs/subject-executor.js +11 -8
  51. package/lib/cjs/subject-executor.js.map +1 -1
  52. package/lib/cjs/subject.d.ts +8 -1
  53. package/lib/cjs/subject.d.ts.map +1 -1
  54. package/lib/cjs/subject.js.map +1 -1
  55. package/lib/mjs/builders.d.ts.map +1 -1
  56. package/lib/mjs/builders.js +0 -1
  57. package/lib/mjs/builders.js.map +1 -1
  58. package/lib/mjs/converters.d.ts.map +1 -1
  59. package/lib/mjs/converters.js +12 -5
  60. package/lib/mjs/converters.js.map +1 -1
  61. package/lib/mjs/decorators.d.ts.map +1 -1
  62. package/lib/mjs/decorators.js +41 -4
  63. package/lib/mjs/decorators.js.map +1 -1
  64. package/lib/mjs/exceptions.d.ts +7 -0
  65. package/lib/mjs/exceptions.d.ts.map +1 -1
  66. package/lib/mjs/exceptions.js +9 -0
  67. package/lib/mjs/exceptions.js.map +1 -1
  68. package/lib/mjs/fp.d.ts +6 -5
  69. package/lib/mjs/fp.d.ts.map +1 -1
  70. package/lib/mjs/fp.js +11 -54
  71. package/lib/mjs/fp.js.map +1 -1
  72. package/lib/mjs/helpers.d.ts +40 -0
  73. package/lib/mjs/helpers.d.ts.map +1 -0
  74. package/lib/mjs/helpers.js +80 -0
  75. package/lib/mjs/helpers.js.map +1 -0
  76. package/lib/mjs/index.d.ts +1 -0
  77. package/lib/mjs/index.d.ts.map +1 -1
  78. package/lib/mjs/index.js +1 -0
  79. package/lib/mjs/index.js.map +1 -1
  80. package/lib/mjs/interfaces.d.ts +7 -9
  81. package/lib/mjs/interfaces.d.ts.map +1 -1
  82. package/lib/mjs/interfaces.js.map +1 -1
  83. package/lib/mjs/metadata.d.ts.map +1 -1
  84. package/lib/mjs/metadata.js +0 -1
  85. package/lib/mjs/metadata.js.map +1 -1
  86. package/lib/mjs/model.d.ts +72 -53
  87. package/lib/mjs/model.d.ts.map +1 -1
  88. package/lib/mjs/model.js +156 -105
  89. package/lib/mjs/model.js.map +1 -1
  90. package/lib/mjs/relation-objects.d.ts +9 -4
  91. package/lib/mjs/relation-objects.d.ts.map +1 -1
  92. package/lib/mjs/relation-objects.js +15 -13
  93. package/lib/mjs/relation-objects.js.map +1 -1
  94. package/lib/mjs/snapshot.d.ts +12 -0
  95. package/lib/mjs/snapshot.d.ts.map +1 -1
  96. package/lib/mjs/snapshot.js +8 -0
  97. package/lib/mjs/snapshot.js.map +1 -1
  98. package/lib/mjs/subject-builder.d.ts +3 -2
  99. package/lib/mjs/subject-builder.d.ts.map +1 -1
  100. package/lib/mjs/subject-builder.js +10 -9
  101. package/lib/mjs/subject-builder.js.map +1 -1
  102. package/lib/mjs/subject-executor.d.ts +2 -2
  103. package/lib/mjs/subject-executor.d.ts.map +1 -1
  104. package/lib/mjs/subject-executor.js +11 -8
  105. package/lib/mjs/subject-executor.js.map +1 -1
  106. package/lib/mjs/subject.d.ts +8 -1
  107. package/lib/mjs/subject.d.ts.map +1 -1
  108. package/lib/mjs/subject.js.map +1 -1
  109. package/lib/tsconfig.cjs.tsbuildinfo +1 -1
  110. package/lib/tsconfig.mjs.tsbuildinfo +1 -1
  111. package/package.json +7 -7
package/lib/cjs/model.js CHANGED
@@ -21,19 +21,6 @@ const lodash_1 = __importDefault(require("lodash"));
21
21
  const uuid_1 = require("uuid");
22
22
  const descriptor_js_1 = require("./descriptor.js");
23
23
  const primary_keys_js_1 = require("./primary-keys.js");
24
- const MODEL_PROXY_HANDLER = {
25
- set: (target, p, value) => {
26
- if (target[p] !== value) {
27
- target[p] = value;
28
- if (p !== 'IsDirty' && target.ModelDescriptor?.Columns.find((x) => x.Name === p)) {
29
- target.IsDirty = true;
30
- // HACK to access private prop ( internal use )
31
- target.__dirty_props__.push(p);
32
- }
33
- }
34
- return true;
35
- },
36
- };
37
24
  /**
38
25
  *
39
26
  * Updates model descriptor
@@ -59,18 +46,6 @@ function updateModelDescriptor(targetOrForward, callback) {
59
46
  callback(descriptor);
60
47
  }
61
48
  class ModelBase {
62
- /**
63
- * Marks model as dirty. It means that model have unsaved changes
64
- */
65
- get IsDirty() {
66
- return this.__is_dirty__;
67
- }
68
- set IsDirty(val) {
69
- this.__is_dirty__ = val;
70
- if (!val) {
71
- this.__dirty_props__ = [];
72
- }
73
- }
74
49
  /**
75
50
  * Gets descriptor for this model. It contains information about relations, orm driver, connection properties,
76
51
  * db table attached, column information and others.
@@ -161,10 +136,43 @@ class ModelBase {
161
136
  snapshotColumns() {
162
137
  return (this.ModelDescriptor?.Columns ?? []).filter((c) => !c.Virtual);
163
138
  }
139
+ /**
140
+ * The value this model writes for every foreign key a @BelongsTo currently manages, keyed by
141
+ * column name. A relation holding a target owns its foreign key: `toSql()` writes the target's
142
+ * join-column value ( `Relation.PrimaryKey` — the target's primary key unless `@BelongsTo`
143
+ * names another column ), so a direct write to the column never reaches the database. A
144
+ * relation holding null or undefined owns nothing and is absent here, leaving the column to
145
+ * speak for itself: NULL after a `detach()`, untouched after a `populate()` that found no row.
146
+ *
147
+ * A @Recursive relation is excluded whatever it holds: `toSql()` writes its foreign key from
148
+ * the raw column, overriding the relation, so the column is what reaches the database.
149
+ *
150
+ * The single place that answers "what does this model persist for this column", so the
151
+ * snapshot baseline and the diff can never read the question differently.
152
+ */
153
+ effectiveForeignKeys() {
154
+ const effective = new Map();
155
+ for (const [, r] of this.ModelDescriptor?.Relations ?? []) {
156
+ if (r.Type !== interfaces_js_1.RelationType.One || !r.ForeignKey || r.Recursive) {
157
+ continue;
158
+ }
159
+ const rel = this[r.Name];
160
+ if (rel?.Value) {
161
+ effective.set(r.ForeignKey, rel.Value[r.PrimaryKey]);
162
+ }
163
+ }
164
+ return effective;
165
+ }
164
166
  /**
165
167
  * Captures the current value of every column as the diff baseline, discarding any
166
168
  * previous baseline and any relation keys recorded against it.
167
169
  *
170
+ * Reads the raw columns, deliberately: a snapshot is taken after an INSERT too, and an INSERT
171
+ * may omit a foreign key on purpose ( a deferred self-reference, whose target had no key yet ).
172
+ * Recording what the relation now holds would claim that key had been written and suppress the
173
+ * follow-up UPDATE that actually writes it. `writeBackRelationKeys()` is what brings a column
174
+ * in line with its relation, and it runs only where the key really was written.
175
+ *
168
176
  * Values are copied, never aliased — see `snapshotValue`. An aliased snapshot makes
169
177
  * every diff empty and `save()` a silent no-op.
170
178
  */
@@ -175,6 +183,20 @@ class ModelBase {
175
183
  }
176
184
  this.__snapshot__ = snapshot;
177
185
  }
186
+ /**
187
+ * Copies the value each @BelongsTo relation just wrote back onto its foreign-key column, so
188
+ * the model agrees with the row. Call it after a statement that wrote those keys, before
189
+ * `takeSnapshot()`.
190
+ *
191
+ * Without it a foreign key written directly and then overridden by its relation keeps the
192
+ * overridden value in the column, the snapshot records that value as the baseline, and the
193
+ * model reads dirty forever - every `save()` minting an UPDATE that changes nothing.
194
+ */
195
+ writeBackRelationKeys() {
196
+ for (const [name, value] of this.effectiveForeignKeys()) {
197
+ this[name] = value;
198
+ }
199
+ }
178
200
  /**
179
201
  * Records the primary keys of the members currently in relation `name` as that
180
202
  * relation's baseline. A no-op when the model has no snapshot — an unhydrated model
@@ -206,72 +228,82 @@ class ModelBase {
206
228
  this.__snapshot__ = null;
207
229
  }
208
230
  /**
209
- * Names of the columns whose current value differs from the snapshot.
210
- *
211
- * With no snapshot every column is reported as changed, which is the right answer for a
212
- * model that is about to be inserted.
213
- *
214
- * This is deliberately independent of `__dirty_props__`: the proxy records a property as
215
- * dirty on any write, including one that puts the original value back, so the snapshot
216
- * diff is the more precise answer and the one the UPDATE payload is built from.
231
+ * `true` until the row has been in the database: the diff baseline is `null`. This is what
232
+ * classifies the model as an INSERT - not the presence of a primary key, because
233
+ * `setDefaults()` pre-fills @Uuid keys on construction.
234
+ */
235
+ get IsNew() {
236
+ return this.__snapshot__ === null;
237
+ }
238
+ /**
239
+ * Whether `save()` would write anything: a model that has never been in the database, or one
240
+ * with at least one column ( or re-pointed foreign key ) differing from its baseline.
217
241
  *
218
- * Reads the same column set `takeSnapshot()` wrote, and must keep doing so: comparing a column
219
- * the baseline never covered means comparing its live value against `undefined`, which reports it
220
- * changed on every single save.
242
+ * Derived from the snapshot on every read - there is no write observer - so it costs one
243
+ * comparison per column until the first difference. There is deliberately no setter: the only
244
+ * way to make a model clean is to persist it or to re-baseline it with `takeSnapshot()`.
221
245
  */
222
- changedColumns() {
223
- const columns = this.snapshotColumns();
224
- if (!this.__snapshot__) {
225
- return columns.map((c) => c.Name);
226
- }
227
- const snapshot = this.__snapshot__;
228
- return columns.filter((c) => !(0, snapshot_js_1.snapshotEquals)(snapshot.Columns.get(c.Name), this[c.Name], c.Converter)).map((c) => c.Name);
246
+ get IsDirty() {
247
+ return this.IsNew || this.diff(true).length > 0;
229
248
  }
230
249
  /**
231
- * Foreign-key columns a relation object reported as rewritten, via {@link markDirty}.
250
+ * Every persisted column whose current value differs from the baseline, in descriptor column
251
+ * order, followed by any @BelongsTo foreign key the descriptor declares no column for. On a
252
+ * model with no baseline every column is reported with `OldValue: undefined`.
232
253
  *
233
- * These are the only columns the snapshot diff cannot see. `SingleRelation.attach()` stores
234
- * the new target on the relation wrapper and marks the foreign key dirty, but never writes
235
- * the column on the model — the value is materialised from the relation later, by
236
- * `StandardModelToSqlConverter`. So `changedColumns()` compares the column against its
237
- * snapshot, finds it untouched, and reports no change even though the relation was
238
- * re-pointed. Detaching a relation and calling `update()` would then emit nothing at all.
254
+ * Computed on demand - nothing observes writes - so an in-place mutation of a JSON column is
255
+ * seen exactly like an assignment. Call it once and reuse the result rather than polling it
256
+ * in a loop.
239
257
  *
240
- * Restricted to declared relation foreign keys on purpose. `__dirty_props__` also collects
241
- * ordinary property writes, and folding those in wholesale would undo the precision the
242
- * diff exists for: a column written A -> B -> A is in `__dirty_props__` but has no net
243
- * change, and must not be written back.
258
+ * Named `changeSet` - not `changes` - because model members and columns share a namespace and
259
+ * `changes` is a real column name in downstream schemas.
244
260
  */
245
- relationDirtyColumns() {
246
- const descriptor = this.ModelDescriptor;
247
- if (!descriptor) {
248
- return [];
249
- }
250
- const relationKeys = new Set();
251
- for (const [, relation] of descriptor.Relations) {
252
- if (relation.ForeignKey) {
253
- relationKeys.add(relation.ForeignKey);
254
- }
255
- }
256
- return this.__dirty_props__.filter((p) => relationKeys.has(p));
261
+ changeSet() {
262
+ return this.diff(false);
257
263
  }
258
264
  /**
259
- * Records `prop` as changed and marks the model dirty.
265
+ * The single diff. `stopAtFirst` lets a boolean question return as soon as one change is found.
260
266
  *
261
- * This is the supported way for relation objects to report that they rewrote one of the
262
- * owner's foreign keys. It replaces the `(owner as any).__dirty_props__.push(...)` casts
263
- * that reached into a private field from outside the class ( A6 ).
267
+ * Every foreign key is resolved to ONE effective value before anything is compared, so
268
+ * `IsDirty` and `changeSet()` can never disagree and the short-circuit can never skip a
269
+ * decision the full diff would have made.
264
270
  *
265
- * The push comes before `IsDirty = true` so the method stays correct even if the
266
- * `IsDirty` setter ever starts clearing `__dirty_props__` on a truthy assignment too.
267
- *
268
- * @param prop - column name
271
+ * The rule: a @BelongsTo holding a target decides its foreign key, because that is what
272
+ * `toSql()` writes - the target's join-column value, `Relation.PrimaryKey`, which is the
273
+ * target's own primary key unless `@BelongsTo` names another column. A direct write to the
274
+ * column is therefore overridden and never reaches the database, and the diff has to say so.
275
+ * A relation holding null or undefined decides nothing and the column stands: NULL after a
276
+ * `detach()`, untouched after a `populate()` that found no row.
269
277
  */
270
- markDirty(prop) {
271
- if (!this.__dirty_props__.includes(prop)) {
272
- this.__dirty_props__.push(prop);
278
+ diff(stopAtFirst) {
279
+ const columns = this.snapshotColumns();
280
+ const snap = this.__snapshot__?.Columns;
281
+ const out = [];
282
+ const effective = this.effectiveForeignKeys();
283
+ for (const c of columns) {
284
+ const current = effective.has(c.Name) ? effective.get(c.Name) : this[c.Name];
285
+ if (!snap || !(0, snapshot_js_1.snapshotEquals)(snap.get(c.Name), current, c.Converter)) {
286
+ out.push({ Column: c.Name, OldValue: (0, snapshot_js_1.baselineValue)(snap?.get(c.Name)), NewValue: current });
287
+ if (stopAtFirst) {
288
+ return out;
289
+ }
290
+ }
291
+ }
292
+ // A relation-managed foreign key the descriptor has no column for - the loop above never
293
+ // saw it, and there is no converter to compare it through.
294
+ const declared = new Set(columns.map((c) => c.Name));
295
+ for (const [name, current] of effective) {
296
+ if (declared.has(name)) {
297
+ continue;
298
+ }
299
+ if (!snap || !(0, snapshot_js_1.snapshotEquals)(snap.get(name), current)) {
300
+ out.push({ Column: name, OldValue: (0, snapshot_js_1.baselineValue)(snap?.get(name)), NewValue: current });
301
+ if (stopAtFirst) {
302
+ return out;
303
+ }
304
+ }
273
305
  }
274
- this.IsDirty = true;
306
+ return out;
275
307
  }
276
308
  valueOf() {
277
309
  return this.PrimaryKeyValue;
@@ -458,23 +490,18 @@ class ModelBase {
458
490
  throw new Error('Not implemented');
459
491
  }
460
492
  constructor(data) {
461
- this.__is_dirty__ = false;
462
493
  /**
463
- * prop to track model props that changeded since last update
464
- */
465
- this.__dirty_props__ = [];
466
- /**
467
- * Diff baseline, captured when this instance was hydrated from a database row.
468
- * `null` means "this model has never been in the database", which is what `save()`
469
- * uses to classify it as an INSERT — not the presence of a primary key, because
470
- * `setDefaults()` pre-fills @Uuid keys on construction.
494
+ * Diff baseline: a value copy of every persisted column, taken when the row was last read
495
+ * from or written to the database. `null` means the row has never been in the database, which
496
+ * is what classifies it as an INSERT - not the presence of a primary key, because
497
+ * `setDefaults()` pre-fills @Uuid keys on construction. Written only by `takeSnapshot()` and
498
+ * `clearSnapshot()`.
471
499
  */
472
500
  this.__snapshot__ = null;
473
501
  this.setDefaults();
474
502
  if (data) {
475
503
  this.hydrate(data);
476
504
  }
477
- return new Proxy(this, MODEL_PROXY_HANDLER);
478
505
  }
479
506
  /**
480
507
  * Fills model with data. It only fills properties that exists in database
@@ -503,7 +530,6 @@ class ModelBase {
503
530
  switch (v.Type) {
504
531
  case interfaces_js_1.RelationType.One:
505
532
  this[v.Name].attach(data);
506
- this.markDirty(v.ForeignKey);
507
533
  break;
508
534
  case interfaces_js_1.RelationType.Many: {
509
535
  // Set the child's back-reference to this owner, when the child declares one.
@@ -525,7 +551,6 @@ class ModelBase {
525
551
  break;
526
552
  }
527
553
  }
528
- this.IsDirty = true;
529
554
  }
530
555
  /**
531
556
  * Extracts all data from model. It takes only properties that exists in DB
@@ -555,7 +580,7 @@ class ModelBase {
555
580
  toSql(onlyDirty) {
556
581
  const vals = this.Container.resolve(interfaces_js_1.ModelToSqlConverter).toSql(this);
557
582
  if (onlyDirty) {
558
- return lodash_1.default.pick(vals, this.__dirty_props__);
583
+ return lodash_1.default.pick(vals, this.changeSet().map((c) => c.Column));
559
584
  }
560
585
  return vals;
561
586
  }
@@ -571,7 +596,6 @@ class ModelBase {
571
596
  return;
572
597
  }
573
598
  const result = await this.constructor.destroy(pk);
574
- this.IsDirty = false;
575
599
  return result;
576
600
  }
577
601
  /**
@@ -587,16 +611,18 @@ class ModelBase {
587
611
  const { query } = this.createUpdateQuery();
588
612
  query.update(this.toSql());
589
613
  (0, primary_keys_js_1.wherePk)(query, this.ModelDescriptor, this.PrimaryKeyValue);
590
- return await query;
614
+ const result = await query;
615
+ // The whole model is in the database now - that is the baseline for the next update().
616
+ this.writeBackRelationKeys();
617
+ this.takeSnapshot();
618
+ return result;
591
619
  }
592
620
  /**
593
621
  * Writes the columns that differ from the snapshot.
594
622
  *
595
- * The change set comes from `changedColumns()` the snapshot diff and not from the
596
- * proxy's `__dirty_props__`, which records a property as dirty on ANY write including one
597
- * that puts the original value straight back. `save()` has always used the diff, and
598
- * `changedColumns()` documents it as the more precise answer; this path used the imprecise
599
- * one, so the same edit produced a different UPDATE depending on which method you called.
623
+ * The change set is `changeSet()` - the snapshot diff, which also covers a foreign key that was
624
+ * re-pointed through its relation - so re-assigning a column its current value produces no
625
+ * UPDATE, and a column written A -> B -> A is not written back.
600
626
  *
601
627
  * A model with no snapshot ( never hydrated ) reports every column as changed, which is the
602
628
  * right answer: there is no baseline to be more precise than.
@@ -612,11 +638,12 @@ class ModelBase {
612
638
  this.hydrate(data);
613
639
  }
614
640
  const keyColumns = this.ModelDescriptor.PrimaryKey ?? [];
615
- const changed = lodash_1.default.union(this.changedColumns(), this.relationDirtyColumns()).filter((c) => !keyColumns.includes(c));
641
+ const changed = this.changeSet()
642
+ .map((c) => c.Column)
643
+ .filter((c) => !keyColumns.includes(c));
616
644
  // Nothing to write. Checked against the diff, so re-assigning a column its current value
617
645
  // no longer produces an UPDATE that sets it to what it already was.
618
646
  if (changed.length === 0) {
619
- this.IsDirty = false;
620
647
  return result;
621
648
  }
622
649
  const updatedAt = this.ModelDescriptor.Timestamps.UpdatedAt;
@@ -630,7 +657,7 @@ class ModelBase {
630
657
  query.update(lodash_1.default.pick(this.toSql(), changed));
631
658
  (0, primary_keys_js_1.wherePk)(query, this.ModelDescriptor, this.PrimaryKeyValue);
632
659
  const updateResult = await query;
633
- this.IsDirty = false;
660
+ this.writeBackRelationKeys();
634
661
  this.takeSnapshot();
635
662
  return updateResult;
636
663
  }
@@ -683,8 +710,12 @@ class ModelBase {
683
710
  modelCreation: () => null,
684
711
  afterHydration: () => null,
685
712
  });
686
- const result = query.values(this.toSql());
687
- this.IsDirty = false;
713
+ // Awaited here, not by the caller: the afterQuery middleware above backfills a generated key
714
+ // during execution, and the snapshot must include it. Taken only after the await - a throw
715
+ // leaves the model exactly as dirty as it was.
716
+ const result = await query.values(this.toSql());
717
+ this.writeBackRelationKeys();
718
+ this.takeSnapshot();
688
719
  return result;
689
720
  }
690
721
  /**
@@ -746,7 +777,9 @@ class ModelBase {
746
777
  for (const c of this.ModelDescriptor.Columns) {
747
778
  this[c.Name] = model[c.Name];
748
779
  }
749
- this.IsDirty = false;
780
+ // Every column now holds what the database holds - that is the new baseline, not the one
781
+ // captured before the refresh.
782
+ this.takeSnapshot();
750
783
  }
751
784
  toJSON() {
752
785
  return this.dehydrate();
@@ -1113,6 +1146,24 @@ exports.MODEL_STATIC_MIXINS = {
1113
1146
  // supplied and generated keys, a statement the server did not insert one row per input
1114
1147
  // row for — cannot be mapped positionally, so nothing is assigned. Callers needing the
1115
1148
  // keys there must re-select or insert the models one at a time.
1149
+ // Every persist path re-baselines after its statement, and the baseline is taken after
1150
+ // the backfill above so it carries whatever key the statement produced: the model is
1151
+ // re-baselined to exactly what the statement wrote, no more. The relation keys are
1152
+ // written back first because the payload took them from the relation ( `toSql()` reads
1153
+ // the target's join column ) and not from the model's own foreign-key column - without
1154
+ // the write-back the baseline would record a column value the row does not hold, and the
1155
+ // model would read dirty right after a successful insert.
1156
+ //
1157
+ // A plain-object payload is not a model and has nothing to snapshot; a model whose key
1158
+ // could not be mapped positionally is still in the database, so it is re-baselined too -
1159
+ // it just carries no key, and cannot be updated through this instance until one is set.
1160
+ rows.forEach((v) => {
1161
+ if (v instanceof ModelBase) {
1162
+ // Private instance member - the static side of the class cannot see it.
1163
+ v.writeBackRelationKeys();
1164
+ v.takeSnapshot();
1165
+ }
1166
+ });
1116
1167
  return result;
1117
1168
  },
1118
1169
  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
  */
@@ -1 +1 @@
1
- {"version":3,"file":"relation-objects.d.ts","sourceRoot":"","sources":["../../src/relation-objects.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relation-objects.d.ts","sourceRoot":"","sources":["../../src/relation-objects.ts"],"names":[],"mappings":"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"}