@memberjunction/core 6.1.0-edge.0 → 6.1.0-edge.1

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 (65) hide show
  1. package/dist/generic/baseEngineRegistry.d.ts +14 -0
  2. package/dist/generic/baseEngineRegistry.d.ts.map +1 -1
  3. package/dist/generic/baseEngineRegistry.js +32 -0
  4. package/dist/generic/baseEngineRegistry.js.map +1 -1
  5. package/dist/generic/baseEntity.d.ts +329 -26
  6. package/dist/generic/baseEntity.d.ts.map +1 -1
  7. package/dist/generic/baseEntity.js +788 -79
  8. package/dist/generic/baseEntity.js.map +1 -1
  9. package/dist/generic/databaseProviderBase.d.ts +44 -17
  10. package/dist/generic/databaseProviderBase.d.ts.map +1 -1
  11. package/dist/generic/databaseProviderBase.js +96 -52
  12. package/dist/generic/databaseProviderBase.js.map +1 -1
  13. package/dist/generic/entityCompanion.d.ts +218 -0
  14. package/dist/generic/entityCompanion.d.ts.map +1 -0
  15. package/dist/generic/entityCompanion.js +170 -0
  16. package/dist/generic/entityCompanion.js.map +1 -0
  17. package/dist/generic/entityInfo.d.ts +21 -0
  18. package/dist/generic/entityInfo.d.ts.map +1 -1
  19. package/dist/generic/entityInfo.js +21 -0
  20. package/dist/generic/entityInfo.js.map +1 -1
  21. package/dist/generic/entitySavePlan.d.ts +199 -0
  22. package/dist/generic/entitySavePlan.d.ts.map +1 -0
  23. package/dist/generic/entitySavePlan.js +213 -0
  24. package/dist/generic/entitySavePlan.js.map +1 -0
  25. package/dist/generic/entityTransactionScope.d.ts +125 -0
  26. package/dist/generic/entityTransactionScope.d.ts.map +1 -0
  27. package/dist/generic/entityTransactionScope.js +115 -0
  28. package/dist/generic/entityTransactionScope.js.map +1 -0
  29. package/dist/generic/interfaces.d.ts +93 -35
  30. package/dist/generic/interfaces.d.ts.map +1 -1
  31. package/dist/generic/interfaces.js +27 -0
  32. package/dist/generic/interfaces.js.map +1 -1
  33. package/dist/generic/providerBase.d.ts +13 -0
  34. package/dist/generic/providerBase.d.ts.map +1 -1
  35. package/dist/generic/providerBase.js +63 -4
  36. package/dist/generic/providerBase.js.map +1 -1
  37. package/dist/generic/relatedRecordBatchLoader.d.ts +39 -0
  38. package/dist/generic/relatedRecordBatchLoader.d.ts.map +1 -0
  39. package/dist/generic/relatedRecordBatchLoader.js +154 -0
  40. package/dist/generic/relatedRecordBatchLoader.js.map +1 -0
  41. package/dist/generic/relatedRecordCollection.d.ts +578 -0
  42. package/dist/generic/relatedRecordCollection.d.ts.map +1 -0
  43. package/dist/generic/relatedRecordCollection.js +1004 -0
  44. package/dist/generic/relatedRecordCollection.js.map +1 -0
  45. package/dist/generic/saveEntityGraphOperation.d.ts +148 -0
  46. package/dist/generic/saveEntityGraphOperation.d.ts.map +1 -0
  47. package/dist/generic/saveEntityGraphOperation.js +157 -0
  48. package/dist/generic/saveEntityGraphOperation.js.map +1 -0
  49. package/dist/generic/telemetryManager.d.ts +21 -1
  50. package/dist/generic/telemetryManager.d.ts.map +1 -1
  51. package/dist/generic/telemetryManager.js +21 -6
  52. package/dist/generic/telemetryManager.js.map +1 -1
  53. package/dist/index.d.ts +6 -1
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.js +6 -3
  56. package/dist/index.js.map +1 -1
  57. package/dist/views/runView.d.ts +31 -0
  58. package/dist/views/runView.d.ts.map +1 -1
  59. package/dist/views/runView.js.map +1 -1
  60. package/package.json +3 -3
  61. package/readme.md +151 -1
  62. package/dist/generic/runReport.d.ts +0 -25
  63. package/dist/generic/runReport.d.ts.map +0 -1
  64. package/dist/generic/runReport.js +0 -38
  65. package/dist/generic/runReport.js.map +0 -1
@@ -25,7 +25,7 @@ export class DatabaseProviderBase extends ProviderBase {
25
25
  super(...arguments);
26
26
  this._dialect = null;
27
27
  /**************************************************************************/
28
- // END ---- RunReport
28
+ // END ---- Record Duplicates & Merge
29
29
  /**************************************************************************/
30
30
  }
31
31
  /**
@@ -69,6 +69,91 @@ export class DatabaseProviderBase extends ProviderBase {
69
69
  get IsInTransaction() {
70
70
  return false;
71
71
  }
72
+ /**
73
+ * The provider's current transaction nesting depth, for subclasses that track one.
74
+ *
75
+ * Distinct from {@link IsInTransaction}, which some providers deliberately leave `false` so
76
+ * that `RunMaybeSerial` keeps fanning out — SQL Server most notably. This accessor exists so
77
+ * the entity-transaction machinery can still see real nesting on those providers: it feeds
78
+ * {@link EntityTransactionScope.IsNested} and the out-of-order settle detection in
79
+ * {@link BeginEntityTransaction}. Defaults to 0 for providers that do not track depth.
80
+ */
81
+ get CurrentTransactionDepth() {
82
+ return 0;
83
+ }
84
+ /**
85
+ * Database providers execute multi-record units of work atomically, in-process.
86
+ *
87
+ * @see ProviderBase.SupportsEntityTransactions for why the base default is `false`.
88
+ */
89
+ get SupportsEntityTransactions() {
90
+ return true;
91
+ }
92
+ /**
93
+ * Begins a transaction scope, or joins one already in flight on this provider.
94
+ *
95
+ * This is the single transaction primitive for all multi-record entity work — IS-A parent
96
+ * chains, composite save graphs and hand-written application cascades. It delegates to the
97
+ * provider's existing depth-counted {@link BeginTransaction} / {@link CommitTransaction} /
98
+ * {@link RollbackTransaction}, which already implement the join semantics: the outermost call
99
+ * issues a physical `BEGIN`, nested calls create savepoints, and only the outermost commit
100
+ * commits for real.
101
+ *
102
+ * Routing IS-A through here is what closed the torn-write bug described in
103
+ * {@link EntityTransactionScope} — the previous `BeginISATransaction()` opened a *second*
104
+ * physical transaction on the same pool, blind to any transaction the caller had already
105
+ * started.
106
+ *
107
+ * The returned scope is **settle-once**: the first `Commit()` or `Rollback()` wins and later
108
+ * calls are no-ops, so `try { ...; Commit() } catch { Rollback() }` is safe even when the work
109
+ * already unwound its own scope.
110
+ *
111
+ * @returns A scope bound to this provider's ambient transaction.
112
+ */
113
+ async BeginEntityTransaction() {
114
+ // Capture nesting BEFORE beginning: once BeginTransaction() returns we are, by definition,
115
+ // in a transaction, so asking afterwards would always answer "nested". IsInTransaction is
116
+ // not enough on its own — SQL Server deliberately leaves it false (so RunMaybeSerial keeps
117
+ // fanning out), which made every scope on the flagship provider report IsNested === false
118
+ // even when joining. The depth accessor sees the truth on providers that track it.
119
+ const isNested = this.IsInTransaction || this.CurrentTransactionDepth > 0;
120
+ await this.BeginTransaction();
121
+ const depthAtBegin = this.CurrentTransactionDepth;
122
+ let settled = false;
123
+ const settle = async (commit) => {
124
+ if (settled) {
125
+ return; // settle-once: the first outcome wins
126
+ }
127
+ settled = true;
128
+ // Out-of-order settle detection. Depth pairing is strictly LIFO: a scope must settle
129
+ // while the provider sits at the depth its own begin produced. A mismatch means two
130
+ // units of work interleaved their scopes on ONE provider instance — concurrent
131
+ // transactional saves on a shared provider — so this commit/rollback is about to
132
+ // settle the WRONG savepoint, silently entangling both units' writes in one physical
133
+ // transaction. That corruption otherwise has no witness at all, so be loud about it.
134
+ // (Providers that do not track depth report 0/0 and never trip this.)
135
+ const depthNow = this.CurrentTransactionDepth;
136
+ if (depthAtBegin > 0 && depthNow !== depthAtBegin) {
137
+ LogError(`EntityTransactionScope settled out of order on ${this.constructor.name}: the scope began at ` +
138
+ `transaction depth ${depthAtBegin} but the provider is now at depth ${depthNow}. Two ` +
139
+ `transactional units of work are interleaving on one provider instance, so their writes share ` +
140
+ `one physical transaction and a rollback by either can silently undo the other's committed ` +
141
+ `work. Do not run concurrent transactional saves on a shared provider instance — use ` +
142
+ `per-request providers (as MJServer does) or serialize the units of work.`);
143
+ }
144
+ if (commit) {
145
+ await this.CommitTransaction();
146
+ }
147
+ else {
148
+ await this.RollbackTransaction();
149
+ }
150
+ };
151
+ return {
152
+ IsNested: isNested,
153
+ Commit: () => settle(true),
154
+ Rollback: () => settle(false),
155
+ };
156
+ }
72
157
  /**
73
158
  * Returns the database platform key for this provider.
74
159
  * Override in subclasses. Defaults to 'sqlserver' for backward compatibility.
@@ -632,14 +717,16 @@ export class DatabaseProviderBase extends ProviderBase {
632
717
  // ISA overlapping-subtype record-change propagation is DB-agnostic: if the save SQL
633
718
  // generation populated `overlappingChangeData` in extraData and the entity tracks
634
719
  // record changes across multiple subtypes, fan the change record out to siblings.
635
- // The provider-specific transaction handle (if any) is passed through opaquely
636
- // via `connectionSource`; each provider treats it as its native type downstream.
720
+ //
721
+ // No explicit `connectionSource` is supplied: the sibling writes must land in the same
722
+ // transaction as the save that triggered them, and that is exactly what happens by default
723
+ // — every ExecuteSQL call without an explicit source runs on the provider's ambient
724
+ // transaction, which BeginEntityTransaction() opened (or joined) for this unit of work.
637
725
  const overlappingChangeData = saveSQLResult.extraData?.overlappingChangeData;
638
726
  if (overlappingChangeData &&
639
727
  entity.EntityInfo.AllowMultipleSubtypes &&
640
728
  entity.EntityInfo.TrackRecordChanges) {
641
- const transaction = entity.ProviderTransaction;
642
- await this.PropagateRecordChangesToSiblings(entity.EntityInfo, overlappingChangeData, entity.PrimaryKey.Values(), user?.ID ?? '', options.ISAActiveChildEntityName, transaction ? { connectionSource: transaction } : undefined);
729
+ await this.PropagateRecordChangesToSiblings(entity.EntityInfo, overlappingChangeData, entity.PrimaryKey.Values(), user?.ID ?? '', options.ISAActiveChildEntityName);
643
730
  }
644
731
  return null;
645
732
  }
@@ -1344,9 +1431,12 @@ export class DatabaseProviderBase extends ProviderBase {
1344
1431
  * @param baseType The operation type
1345
1432
  * @param before True for before-hooks, false for after-hooks
1346
1433
  * @param user The acting user
1434
+ * @param originatingEntityActionIDs Entity Actions that caused this save/delete, from
1435
+ * `EntitySaveOptions.OriginatingEntityActionIDs`. After-hooks skip them, so an action
1436
+ * writing back on the record that triggered it does not re-fire itself.
1347
1437
  * @returns Array of action results (empty by default)
1348
1438
  */
1349
- async HandleEntityActions(_entity, _baseType, _before, _user) {
1439
+ async HandleEntityActions(_entity, _baseType, _before, _user, _originatingEntityActionIDs) {
1350
1440
  return [];
1351
1441
  }
1352
1442
  /**
@@ -1715,51 +1805,5 @@ export class DatabaseProviderBase extends ProviderBase {
1715
1805
  LogError(err);
1716
1806
  }
1717
1807
  }
1718
- /**************************************************************************/
1719
- // END ---- Record Duplicates & Merge
1720
- /**************************************************************************/
1721
- /**************************************************************************/
1722
- // START ---- RunReport
1723
- /**************************************************************************/
1724
- /**
1725
- * Runs a report by looking up its SQL definition from vwReports and executing it.
1726
- * Both SQL Server and PostgreSQL share this logic — the only dialect difference
1727
- * is identifier quoting, handled by QuoteIdentifier/QuoteSchemaAndView.
1728
- *
1729
- * @param params Report parameters including ReportID
1730
- * @param contextUser Optional context user for permission/audit purposes
1731
- * @deprecated Reports are no longer supported and will eventually be removed. Interactive Components and Artifacts are replacements
1732
- */
1733
- async RunReport(params, contextUser) {
1734
- const reportID = params.ReportID;
1735
- const safeReportID = reportID.replace(/'/g, "''");
1736
- const sqlReport = `SELECT ${this.QuoteIdentifier('ReportSQL')} FROM ${this.QuoteSchemaAndView(this.MJCoreSchemaName, 'vwReports')} WHERE ${this.QuoteIdentifier('ID')} = '${safeReportID}'`;
1737
- const reportInfo = await this.ExecuteSQL(sqlReport, undefined, undefined, contextUser);
1738
- if (reportInfo && reportInfo.length > 0) {
1739
- const start = Date.now();
1740
- const sql = String(reportInfo[0].ReportSQL);
1741
- const result = await this.ExecuteSQL(sql, undefined, undefined, contextUser);
1742
- const end = Date.now();
1743
- if (result)
1744
- return {
1745
- Success: true,
1746
- ReportID: reportID,
1747
- Results: result,
1748
- RowCount: result.length,
1749
- ExecutionTime: end - start,
1750
- ErrorMessage: '',
1751
- };
1752
- else
1753
- return {
1754
- Success: false,
1755
- ReportID: reportID,
1756
- Results: [],
1757
- RowCount: 0,
1758
- ExecutionTime: end - start,
1759
- ErrorMessage: 'Error running report SQL',
1760
- };
1761
- }
1762
- return { Success: false, ReportID: reportID, Results: [], RowCount: 0, ExecutionTime: 0, ErrorMessage: 'Report not found' };
1763
- }
1764
1808
  }
1765
1809
  //# sourceMappingURL=databaseProviderBase.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"databaseProviderBase.js","sourceRoot":"","sources":["../../src/generic/databaseProviderBase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"databaseProviderBase.js","sourceRoot":"","sources":["../../src/generic/databaseProviderBase.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,218 @@
1
+ /**
2
+ * @fileoverview Entity Companions — named, serialisable side-channels attached to a `BaseEntity`.
3
+ *
4
+ * ## What a companion is
5
+ *
6
+ * A companion is a piece of state that belongs to a record but is **not one of its fields**, and
7
+ * that needs to travel with the record across the client/server boundary, participate in its
8
+ * validation, and contribute work to its save.
9
+ *
10
+ * The canonical example is a child collection — an order's lines, a journal entry's lines, a
11
+ * payment's allocations — but the abstraction is deliberately not about children. It is about
12
+ * "extra state that rides with the record", because MemberJunction has grown that concept ad hoc
13
+ * three times already:
14
+ *
15
+ * - `OldValues___` on the generated GraphQL save input (concurrency check payload)
16
+ * - `RestoreContext___` on the same input (restore lineage for the RecordChange row)
17
+ * - `EntityObjectJSON` in the TransactionGroup wire format (a whole record as opaque JSON)
18
+ *
19
+ * Each solved its own problem with its own bespoke slot, resolver branch and hand-written
20
+ * serialisation. Companions give the next such need — and the ones already in flight — one
21
+ * mechanism instead of a fourth bespoke field.
22
+ *
23
+ * ## What a companion is not
24
+ *
25
+ * A companion is **not** a way to smuggle arbitrary untyped data through the platform. Every
26
+ * companion has a stable {@link EntityCompanion.Name}, a typed wire shape, and explicit control
27
+ * over what it contributes to validation and save. Data with no owner and no contract belongs in a
28
+ * field, not here.
29
+ *
30
+ * ## Lifecycle
31
+ *
32
+ * ```text
33
+ * declare → subclass constructor calls RegisterCompanion() (usually via DeclareRelatedRecords())
34
+ * load → BaseEntity.Load()/LoadFromData() gives eager companions a chance to populate
35
+ * mutate → application code works with the typed companion API
36
+ * validate → BaseEntity.Validate()/ValidateAsync() fans out to every companion
37
+ * save → companions contribute nodes to the EntitySavePlan; the graph executes atomically
38
+ * transport→ Serialize() on the way out, Deserialize() on the way in
39
+ * ```
40
+ *
41
+ * @module @memberjunction/core
42
+ */
43
+ import { BaseEntity } from './baseEntity.js';
44
+ import { ValidationResult } from './entityInfo.js';
45
+ import type { EntitySavePlan } from './entitySavePlan.js';
46
+ import type { EntitySaveOptions } from './interfaces.js';
47
+ /**
48
+ * The serialized form of a single companion as it crosses the wire.
49
+ *
50
+ * Deliberately minimal: a stable name plus an opaque JSON payload. Keeping the payload opaque is
51
+ * what lets a new companion type ship without touching the transport, the resolvers, or CodeGen.
52
+ */
53
+ export type EntityCompanionPayload = {
54
+ /** The companion's stable {@link EntityCompanion.Name}. */
55
+ Name: string;
56
+ /** The companion's own serialized state, JSON-safe. */
57
+ Data: unknown;
58
+ };
59
+ /**
60
+ * The property name under which companion payloads are carried inside the plain object produced by
61
+ * `BaseEntity.GetDataObject()` and consumed by `BaseEntity.LoadFromData()`.
62
+ *
63
+ * The trailing triple underscore follows the convention already set by `OldValues___` and
64
+ * `RestoreContext___`: it marks a reserved, non-field slot and makes accidental collision with a
65
+ * real column name effectively impossible.
66
+ */
67
+ export declare const COMPANION_PAYLOAD_KEY = "Companions___";
68
+ /**
69
+ * Which direction a companion payload is travelling, which changes what the receiver must do with
70
+ * it.
71
+ *
72
+ * - `'request'` — the payload is a **caller's intent**, arriving at the tier that will persist it.
73
+ * Records that already exist must be loaded from the database first, so dirty tracking and
74
+ * old-value comparisons are computed against real stored values. Skipping that load makes an
75
+ * edited record look clean (old == new), its save is skipped, and the edit is silently lost.
76
+ * - `'result'` — the payload is **authoritative post-save state** coming back from the tier that
77
+ * just persisted it. It is adopted as-is: no queries, and the records land clean. Re-loading here
78
+ * would be one wasted round trip per record for data the sender already has.
79
+ */
80
+ export type EntityCompanionDeserializeMode = 'request' | 'result';
81
+ /**
82
+ * Base class for all entity companions.
83
+ *
84
+ * Subclass this only when you need a genuinely new *kind* of companion. For the common case of a
85
+ * parent/child collection, use `RelatedRecordCollection<T>` via `BaseEntity.DeclareRelatedRecords()` rather than
86
+ * writing a companion by hand.
87
+ *
88
+ * @typeParam TWire - The JSON-safe shape this companion serializes to and from.
89
+ *
90
+ * @example Declaring a custom companion on a shared (client + server) entity subclass
91
+ * ```typescript
92
+ * class ApprovalTrailCompanion extends EntityCompanion<ApprovalWire> {
93
+ * public readonly Name = 'ApprovalTrail';
94
+ *
95
+ * public async Serialize(): Promise<ApprovalWire | null> {
96
+ * return this.entries.length ? { Entries: this.entries } : null;
97
+ * }
98
+ *
99
+ * public async Deserialize(data: ApprovalWire): Promise<void> {
100
+ * this.entries = data.Entries ?? [];
101
+ * }
102
+ * }
103
+ * ```
104
+ */
105
+ export declare abstract class EntityCompanion<TWire = unknown> {
106
+ /**
107
+ * The entity this companion is attached to. Set by {@link BaseEntity.RegisterCompanion}.
108
+ */
109
+ readonly Owner: BaseEntity;
110
+ /**
111
+ * @param owner - The entity this companion belongs to.
112
+ */
113
+ constructor(owner: BaseEntity);
114
+ /**
115
+ * Stable identifier for this companion, unique within its owning entity.
116
+ *
117
+ * This is the wire key: it appears in serialized payloads and is how the receiving tier finds
118
+ * the companion to deserialize into. **Treat it as a published contract** — renaming it breaks
119
+ * in-flight payloads and any persisted snapshot that captured them.
120
+ */
121
+ abstract readonly Name: string;
122
+ /**
123
+ * Produces this companion's JSON-safe state for transport, or `null` when it has nothing to
124
+ * send.
125
+ *
126
+ * Returning `null` keeps the companion out of the payload entirely, which matters: a save that
127
+ * touches only header fields should not ship an empty children array and pay for it on every
128
+ * request.
129
+ *
130
+ * @returns The wire payload, or `null` to omit this companion.
131
+ */
132
+ abstract Serialize(): Promise<TWire | null>;
133
+ /**
134
+ * Restores this companion's state from a wire payload produced by {@link Serialize} on the
135
+ * other tier.
136
+ *
137
+ * Implementations must be tolerant of payloads written by an older version of themselves —
138
+ * a companion is a wire contract, and rolling deploys mean both versions run at once.
139
+ *
140
+ * @param data - The payload previously produced by {@link Serialize}.
141
+ * @param mode - Whether this payload is an inbound request or an authoritative result. See
142
+ * {@link EntityCompanionDeserializeMode}; the distinction is load-bearing.
143
+ */
144
+ abstract Deserialize(data: TWire, mode: EntityCompanionDeserializeMode): Promise<void>;
145
+ /**
146
+ * Whether this companion holds unsaved changes.
147
+ *
148
+ * Rolled up into `BaseEntity.Dirty`, which is what makes a save actually happen when only the
149
+ * companion changed. Before companions existed, a clean parent with three new children returned
150
+ * early from `Save()` and silently persisted nothing.
151
+ *
152
+ * @returns True when saving would produce work.
153
+ */
154
+ get Dirty(): boolean;
155
+ /**
156
+ * Synchronous, in-memory validation contributed by this companion.
157
+ *
158
+ * Runs as part of the owner's `Validate()`, **before any write**, over the companion's complete
159
+ * state — including pending removals. That ordering is what lets cross-child invariants such as
160
+ * "debits must equal credits" be enforced correctly rather than after half the graph has landed.
161
+ *
162
+ * Push errors onto `result.Errors` and set `result.Success = false` to fail the save.
163
+ *
164
+ * @param _result - The accumulating validation result to contribute to.
165
+ */
166
+ Validate(_result: ValidationResult): void;
167
+ /**
168
+ * Asynchronous validation contributed by this companion — anything that needs a round trip.
169
+ *
170
+ * @remarks
171
+ * Unlike an entity's own `ValidateAsync()`, this is **not** governed by
172
+ * `BaseEntity.DefaultSkipAsyncValidation`. That flag exists so an entity can opt out of its own
173
+ * expensive async rules; applying it to companions silently skipped cross-child invariants,
174
+ * which is how `OrderEntityServer.ValidateAsync` came to be dead code on every save. Companion
175
+ * validation runs whenever the companion is dirty.
176
+ *
177
+ * @param _result - The accumulating validation result to contribute to.
178
+ */
179
+ ValidateAsync(_result: ValidationResult): Promise<void>;
180
+ /**
181
+ * Contributes this companion's work to the owner's save plan.
182
+ *
183
+ * Called after the owner's own node has been added, so implementations may assume the parent
184
+ * node exists and order their nodes relative to it. Add nothing when there is no work — an
185
+ * empty contribution keeps the save on the fast single-row path.
186
+ *
187
+ * @param _plan - The plan being assembled for this unit of work.
188
+ * @param _options - The caller's save options. Implementations that decide what counts as work
189
+ * (skipping clean children, most importantly) must honor flags such as
190
+ * `IgnoreDirtyState` that demand a full write-out.
191
+ */
192
+ ContributeSaveWork(_plan: EntitySavePlan, _options?: EntitySaveOptions): void;
193
+ /**
194
+ * Contributes this companion's work to the owner's delete plan.
195
+ *
196
+ * Called before the owner's own node, because children must generally be removed before the
197
+ * parent row they point at. Implementations that rely on database-level cascade delete should
198
+ * contribute nothing.
199
+ *
200
+ * @param _plan - The plan being assembled for this unit of work.
201
+ */
202
+ ContributeDeleteWork(_plan: EntitySavePlan): void;
203
+ /**
204
+ * Populates this companion from the database, when it is configured to load eagerly.
205
+ *
206
+ * Called by `BaseEntity.Load()` after the record's own fields are populated. **Never** called
207
+ * from `LoadFromData()` — that is the row-materialization path for
208
+ * `RunView(ResultType:'entity_object')`, so loading children there turns one view into an N+1
209
+ * storm. Set-oriented eager loading is handled by `RunView`'s batched child loading instead.
210
+ */
211
+ LoadEager(): Promise<void>;
212
+ /**
213
+ * Resets the companion to its post-save state — clearing pending removals, rebasing dirty
214
+ * tracking, and so on. Called after the graph commits successfully.
215
+ */
216
+ AcceptChanges(): void;
217
+ }
218
+ //# sourceMappingURL=entityCompanion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entityCompanion.d.ts","sourceRoot":"","sources":["../../src/generic/entityCompanion.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEtD;;;;;GAKG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACjC,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,IAAI,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,kBAAkB,CAAC;AAErD;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,8BAA8B,GAAG,SAAS,GAAG,QAAQ,CAAC;AAElE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,8BAAsB,eAAe,CAAC,KAAK,GAAG,OAAO;IACjD;;OAEG;IACH,SAAgB,KAAK,EAAE,UAAU,CAAC;IAElC;;OAEG;gBACS,KAAK,EAAE,UAAU;IAI7B;;;;;;OAMG;IACH,kBAAyB,IAAI,EAAE,MAAM,CAAC;IAEtC;;;;;;;;;OASG;aACa,SAAS,IAAI,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IAElD;;;;;;;;;;OAUG;aACa,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,8BAA8B,GAAG,OAAO,CAAC,IAAI,CAAC;IAE7F;;;;;;;;OAQG;IACH,IAAW,KAAK,IAAI,OAAO,CAE1B;IAED;;;;;;;;;;OAUG;IACI,QAAQ,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAIhD;;;;;;;;;;;OAWG;IACU,aAAa,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpE;;;;;;;;;;;OAWG;IACI,kBAAkB,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,CAAC,EAAE,iBAAiB,GAAG,IAAI;IAIpF;;;;;;;;OAQG;IACI,oBAAoB,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAIxD;;;;;;;OAOG;IACU,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvC;;;OAGG;IACI,aAAa,IAAI,IAAI;CAG/B"}