@memberjunction/core 6.1.4 → 6.2.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 (125) hide show
  1. package/dist/generic/JSONType-interfaces/IEntitySubtypeSelectorConfig.d.ts +14 -0
  2. package/dist/generic/JSONType-interfaces/IEntitySubtypeSelectorConfig.d.ts.map +1 -1
  3. package/dist/generic/JSONType-interfaces/IQueryConfiguration.d.ts +60 -0
  4. package/dist/generic/JSONType-interfaces/IQueryConfiguration.d.ts.map +1 -0
  5. package/dist/generic/JSONType-interfaces/IQueryConfiguration.js +6 -0
  6. package/dist/generic/JSONType-interfaces/IQueryConfiguration.js.map +1 -0
  7. package/dist/generic/QueryCache.d.ts +17 -0
  8. package/dist/generic/QueryCache.d.ts.map +1 -1
  9. package/dist/generic/QueryCache.js +25 -5
  10. package/dist/generic/QueryCache.js.map +1 -1
  11. package/dist/generic/RegisterForStartup.d.ts +5 -5
  12. package/dist/generic/RegisterForStartup.js +12 -12
  13. package/dist/generic/applicationInfo.d.ts +4 -2
  14. package/dist/generic/applicationInfo.d.ts.map +1 -1
  15. package/dist/generic/applicationInfo.js +13 -9
  16. package/dist/generic/applicationInfo.js.map +1 -1
  17. package/dist/generic/baseEngine.d.ts +16 -1
  18. package/dist/generic/baseEngine.d.ts.map +1 -1
  19. package/dist/generic/baseEngine.js +61 -20
  20. package/dist/generic/baseEngine.js.map +1 -1
  21. package/dist/generic/baseEngineRegistry.d.ts +22 -9
  22. package/dist/generic/baseEngineRegistry.d.ts.map +1 -1
  23. package/dist/generic/baseEngineRegistry.js +43 -25
  24. package/dist/generic/baseEngineRegistry.js.map +1 -1
  25. package/dist/generic/baseEntity.d.ts +232 -18
  26. package/dist/generic/baseEntity.d.ts.map +1 -1
  27. package/dist/generic/baseEntity.js +581 -113
  28. package/dist/generic/baseEntity.js.map +1 -1
  29. package/dist/generic/baseInfo.d.ts +12 -0
  30. package/dist/generic/baseInfo.d.ts.map +1 -1
  31. package/dist/generic/baseInfo.js +22 -1
  32. package/dist/generic/baseInfo.js.map +1 -1
  33. package/dist/generic/column-descriptors.d.ts +25 -5
  34. package/dist/generic/column-descriptors.d.ts.map +1 -1
  35. package/dist/generic/column-descriptors.js +45 -5
  36. package/dist/generic/column-descriptors.js.map +1 -1
  37. package/dist/generic/compositeKey.d.ts +1 -1
  38. package/dist/generic/compositeKey.js +2 -2
  39. package/dist/generic/data-table.js +2 -2
  40. package/dist/generic/data-table.js.map +1 -1
  41. package/dist/generic/databaseProviderBase.d.ts +7 -0
  42. package/dist/generic/databaseProviderBase.d.ts.map +1 -1
  43. package/dist/generic/databaseProviderBase.js +19 -4
  44. package/dist/generic/databaseProviderBase.js.map +1 -1
  45. package/dist/generic/entityInfo.d.ts +209 -38
  46. package/dist/generic/entityInfo.d.ts.map +1 -1
  47. package/dist/generic/entityInfo.js +362 -77
  48. package/dist/generic/entityInfo.js.map +1 -1
  49. package/dist/generic/entitySubtypeResolver.d.ts +51 -5
  50. package/dist/generic/entitySubtypeResolver.d.ts.map +1 -1
  51. package/dist/generic/entitySubtypeResolver.js +50 -3
  52. package/dist/generic/entitySubtypeResolver.js.map +1 -1
  53. package/dist/generic/filters/compositeFilter.d.ts +19 -19
  54. package/dist/generic/filters/compositeFilter.js +60 -60
  55. package/dist/generic/graphqlTypeNames.d.ts +6 -0
  56. package/dist/generic/graphqlTypeNames.d.ts.map +1 -1
  57. package/dist/generic/graphqlTypeNames.js +18 -6
  58. package/dist/generic/graphqlTypeNames.js.map +1 -1
  59. package/dist/generic/interfaces.d.ts +35 -1
  60. package/dist/generic/interfaces.d.ts.map +1 -1
  61. package/dist/generic/interfaces.js +3 -3
  62. package/dist/generic/interfaces.js.map +1 -1
  63. package/dist/generic/logging.d.ts +2 -0
  64. package/dist/generic/logging.d.ts.map +1 -1
  65. package/dist/generic/logging.js +7 -3
  66. package/dist/generic/logging.js.map +1 -1
  67. package/dist/generic/metadata.d.ts +1 -1
  68. package/dist/generic/metadata.js +3 -3
  69. package/dist/generic/providerBase.d.ts +35 -7
  70. package/dist/generic/providerBase.d.ts.map +1 -1
  71. package/dist/generic/providerBase.js +87 -27
  72. package/dist/generic/providerBase.js.map +1 -1
  73. package/dist/generic/queryInfo.d.ts +47 -0
  74. package/dist/generic/queryInfo.d.ts.map +1 -1
  75. package/dist/generic/queryInfo.js +76 -0
  76. package/dist/generic/queryInfo.js.map +1 -1
  77. package/dist/generic/queryInfoInterfaces.d.ts +6 -0
  78. package/dist/generic/queryInfoInterfaces.d.ts.map +1 -1
  79. package/dist/generic/queryResultEnricher.d.ts +2 -0
  80. package/dist/generic/queryResultEnricher.d.ts.map +1 -1
  81. package/dist/generic/queryResultEnricher.js +5 -1
  82. package/dist/generic/queryResultEnricher.js.map +1 -1
  83. package/dist/generic/querySQLFilters.d.ts +4 -0
  84. package/dist/generic/querySQLFilters.d.ts.map +1 -1
  85. package/dist/generic/querySQLFilters.js +10 -2
  86. package/dist/generic/querySQLFilters.js.map +1 -1
  87. package/dist/generic/relatedRecordCollection.d.ts +2 -0
  88. package/dist/generic/relatedRecordCollection.d.ts.map +1 -1
  89. package/dist/generic/relatedRecordCollection.js +5 -1
  90. package/dist/generic/relatedRecordCollection.js.map +1 -1
  91. package/dist/generic/remoteOperationDispatch.d.ts +2 -0
  92. package/dist/generic/remoteOperationDispatch.d.ts.map +1 -1
  93. package/dist/generic/remoteOperationDispatch.js +5 -1
  94. package/dist/generic/remoteOperationDispatch.js.map +1 -1
  95. package/dist/generic/runQuerySQLFilterImplementations.d.ts +8 -0
  96. package/dist/generic/runQuerySQLFilterImplementations.d.ts.map +1 -1
  97. package/dist/generic/runQuerySQLFilterImplementations.js +20 -4
  98. package/dist/generic/runQuerySQLFilterImplementations.js.map +1 -1
  99. package/dist/generic/schemaHydration.d.ts +8 -0
  100. package/dist/generic/schemaHydration.d.ts.map +1 -1
  101. package/dist/generic/schemaHydration.js +21 -5
  102. package/dist/generic/schemaHydration.js.map +1 -1
  103. package/dist/generic/securityInfo.d.ts +11 -9
  104. package/dist/generic/securityInfo.d.ts.map +1 -1
  105. package/dist/generic/securityInfo.js +31 -27
  106. package/dist/generic/securityInfo.js.map +1 -1
  107. package/dist/generic/telemetryManager.d.ts +16 -0
  108. package/dist/generic/telemetryManager.d.ts.map +1 -1
  109. package/dist/generic/telemetryManager.js +52 -20
  110. package/dist/generic/telemetryManager.js.map +1 -1
  111. package/dist/generic/transactionGroup.d.ts +1 -1
  112. package/dist/generic/transactionGroup.js +4 -4
  113. package/dist/generic/transactionGroup.js.map +1 -1
  114. package/dist/generic/util.d.ts +22 -0
  115. package/dist/generic/util.d.ts.map +1 -1
  116. package/dist/generic/util.js +33 -0
  117. package/dist/generic/util.js.map +1 -1
  118. package/dist/index.d.ts +1 -0
  119. package/dist/index.d.ts.map +1 -1
  120. package/dist/index.js +1 -0
  121. package/dist/index.js.map +1 -1
  122. package/dist/views/viewInfo.d.ts +2 -2
  123. package/dist/views/viewInfo.js +13 -13
  124. package/dist/views/viewInfo.js.map +1 -1
  125. package/package.json +3 -3
@@ -81,7 +81,7 @@ export class BaseEngineRegistry extends BaseSingleton {
81
81
  // Update existing registration
82
82
  existingInfo.instance = engine;
83
83
  existingInfo.lastLoadedAt = new Date();
84
- existingInfo.isLoaded = this.CheckEngineLoaded(engine);
84
+ existingInfo.isLoaded = this.checkEngineLoaded(engine);
85
85
  // NOTE: Memory/item counts are computed lazily in GetMemoryStats() to avoid
86
86
  // blocking during registration. Don't compute them here.
87
87
  }
@@ -91,8 +91,8 @@ export class BaseEngineRegistry extends BaseSingleton {
91
91
  className: name,
92
92
  instance: engine,
93
93
  registeredAt: new Date(),
94
- lastLoadedAt: this.CheckEngineLoaded(engine) ? new Date() : null,
95
- isLoaded: this.CheckEngineLoaded(engine),
94
+ lastLoadedAt: this.checkEngineLoaded(engine) ? new Date() : null,
95
+ isLoaded: this.checkEngineLoaded(engine),
96
96
  estimatedMemoryBytes: 0, // Computed lazily
97
97
  itemCount: 0 // Computed lazily
98
98
  });
@@ -142,9 +142,9 @@ export class BaseEngineRegistry extends BaseSingleton {
142
142
  GetMemoryStats() {
143
143
  // Update all engine stats first
144
144
  for (const [name, info] of this._engines) {
145
- info.isLoaded = this.CheckEngineLoaded(info.instance);
146
- info.estimatedMemoryBytes = this.EstimateEngineMemory(info.instance);
147
- info.itemCount = this.CountEngineItems(info.instance);
145
+ info.isLoaded = this.checkEngineLoaded(info.instance);
146
+ info.estimatedMemoryBytes = this.estimateEngineMemory(info.instance);
147
+ info.itemCount = this.countEngineItems(info.instance);
148
148
  }
149
149
  const engineStats = Array.from(this._engines.values());
150
150
  return {
@@ -162,12 +162,12 @@ export class BaseEngineRegistry extends BaseSingleton {
162
162
  async RefreshAllEngines() {
163
163
  let refreshed = 0;
164
164
  for (const [name, info] of this._engines) {
165
- if (info.isLoaded && this.HasRefreshMethod(info.instance)) {
165
+ if (info.isLoaded && this.hasRefreshMethod(info.instance)) {
166
166
  try {
167
167
  await info.instance.RefreshAllItems();
168
168
  info.lastLoadedAt = new Date();
169
- info.estimatedMemoryBytes = this.EstimateEngineMemory(info.instance);
170
- info.itemCount = this.CountEngineItems(info.instance);
169
+ info.estimatedMemoryBytes = this.estimateEngineMemory(info.instance);
170
+ info.itemCount = this.countEngineItems(info.instance);
171
171
  refreshed++;
172
172
  }
173
173
  catch (error) {
@@ -217,16 +217,31 @@ export class BaseEngineRegistry extends BaseSingleton {
217
217
  /**
218
218
  * Check if an engine is loaded by looking for a 'Loaded' property
219
219
  */
220
- CheckEngineLoaded(engine) {
220
+ checkEngineLoaded(engine) {
221
221
  if (engine && typeof engine === 'object' && 'Loaded' in engine) {
222
222
  return Boolean(engine.Loaded);
223
223
  }
224
224
  return false;
225
225
  }
226
+ /**
227
+ * An engine's property configs, without copying them where the engine allows it. A
228
+ * `BaseEngine` exposes its own array as `ReadonlyConfigs`; its `Configs` getter deep-copies on
229
+ * every read. An engine that doesn't extend `BaseEngine` is read through `Configs`.
230
+ *
231
+ * @returns The configs, or null when the engine declares none.
232
+ */
233
+ readEngineConfigs(engineObj) {
234
+ const own = engineObj['ReadonlyConfigs'];
235
+ if (Array.isArray(own)) {
236
+ return own;
237
+ }
238
+ const copy = engineObj['Configs'];
239
+ return Array.isArray(copy) ? copy : null;
240
+ }
226
241
  /**
227
242
  * Check if an engine has a RefreshAllItems method
228
243
  */
229
- HasRefreshMethod(engine) {
244
+ hasRefreshMethod(engine) {
230
245
  return engine &&
231
246
  typeof engine === 'object' &&
232
247
  'RefreshAllItems' in engine &&
@@ -235,7 +250,7 @@ export class BaseEngineRegistry extends BaseSingleton {
235
250
  /**
236
251
  * Estimate memory usage of an engine by examining its data properties
237
252
  */
238
- EstimateEngineMemory(engine) {
253
+ estimateEngineMemory(engine) {
239
254
  if (!engine || typeof engine !== 'object')
240
255
  return 0;
241
256
  let totalBytes = 0;
@@ -246,7 +261,7 @@ export class BaseEngineRegistry extends BaseSingleton {
246
261
  if (dataMap && dataMap instanceof Map) {
247
262
  for (const [key, value] of dataMap) {
248
263
  if (value && Array.isArray(value.data)) {
249
- totalBytes += this.EstimateArraySize(value.data);
264
+ totalBytes += this.estimateArraySize(value.data);
250
265
  }
251
266
  }
252
267
  }
@@ -259,7 +274,7 @@ export class BaseEngineRegistry extends BaseSingleton {
259
274
  if (propName && propName in engineObj) {
260
275
  const propValue = engineObj[propName];
261
276
  if (Array.isArray(propValue)) {
262
- totalBytes += this.EstimateArraySize(propValue);
277
+ totalBytes += this.estimateArraySize(propValue);
263
278
  }
264
279
  }
265
280
  }
@@ -269,7 +284,7 @@ export class BaseEngineRegistry extends BaseSingleton {
269
284
  /**
270
285
  * Count the number of data items in an engine
271
286
  */
272
- CountEngineItems(engine) {
287
+ countEngineItems(engine) {
273
288
  if (!engine || typeof engine !== 'object')
274
289
  return 0;
275
290
  let totalItems = 0;
@@ -295,17 +310,17 @@ export class BaseEngineRegistry extends BaseSingleton {
295
310
  * Estimate the size of an array in bytes by sampling the first row.
296
311
  * Uses a cache to avoid re-sampling the same entity type multiple times.
297
312
  */
298
- EstimateArraySize(arr) {
313
+ estimateArraySize(arr) {
299
314
  if (arr.length === 0)
300
315
  return 0;
301
316
  const firstItem = arr[0];
302
- const bytesPerRow = this.GetBytesPerRow(firstItem);
317
+ const bytesPerRow = this.getBytesPerRow(firstItem);
303
318
  return arr.length * bytesPerRow;
304
319
  }
305
320
  /**
306
321
  * Get the estimated bytes per row for an item, using cache when possible.
307
322
  */
308
- GetBytesPerRow(item) {
323
+ getBytesPerRow(item) {
309
324
  if (!item || typeof item !== 'object') {
310
325
  return BaseEngineRegistry.DEFAULT_BYTES_PER_ROW;
311
326
  }
@@ -319,7 +334,7 @@ export class BaseEngineRegistry extends BaseSingleton {
319
334
  return this._entitySizeCache.get(entityName);
320
335
  }
321
336
  // Sample this item to estimate size
322
- const estimatedSize = this.SampleItemSize(item);
337
+ const estimatedSize = this.sampleItemSize(item);
323
338
  // Cache the result if we have an entity name
324
339
  if (entityName) {
325
340
  this._entitySizeCache.set(entityName, estimatedSize);
@@ -330,7 +345,7 @@ export class BaseEngineRegistry extends BaseSingleton {
330
345
  * Sample a single item to estimate its size in bytes.
331
346
  * For BaseEntity objects, uses GetAll() to get plain field values.
332
347
  */
333
- SampleItemSize(item) {
348
+ sampleItemSize(item) {
334
349
  if (!item || typeof item !== 'object') {
335
350
  return BaseEngineRegistry.DEFAULT_BYTES_PER_ROW;
336
351
  }
@@ -349,7 +364,7 @@ export class BaseEngineRegistry extends BaseSingleton {
349
364
  // Key name size (UTF-16)
350
365
  totalBytes += key.length * 2;
351
366
  // Value size
352
- totalBytes += this.EstimateValueSize(obj[key]);
367
+ totalBytes += this.estimateValueSize(obj[key]);
353
368
  }
354
369
  // Minimum of 100 bytes per object for overhead
355
370
  return Math.max(totalBytes, 100);
@@ -361,7 +376,7 @@ export class BaseEngineRegistry extends BaseSingleton {
361
376
  /**
362
377
  * Estimate the size of a single value in bytes.
363
378
  */
364
- EstimateValueSize(value) {
379
+ estimateValueSize(value) {
365
380
  if (value === null || value === undefined) {
366
381
  return 8;
367
382
  }
@@ -496,6 +511,9 @@ export class BaseEngineRegistry extends BaseSingleton {
496
511
  * - The returned `records` is the engine's *live* array — read it, don't
497
512
  * mutate it. For `'simple'` configs the rows are plain objects, not
498
513
  * `BaseEntity` instances (check `config.ResultType` if you need ORM rows).
514
+ * - A `BaseEngine`'s configs are read through `ReadonlyConfigs`, without the
515
+ * copy `Configs` makes, so `config` is the engine's own object. This runs for
516
+ * every record an IsA parent with an opted-in `SubtypeSelector` loads.
499
517
  *
500
518
  * @param entityName Entity to look up (case-insensitive, whitespace-trimmed).
501
519
  * @param options.unfilteredOnly When true, omit any cache that has a `Filter`
@@ -512,11 +530,11 @@ export class BaseEngineRegistry extends BaseSingleton {
512
530
  if (!engine || typeof engine !== 'object')
513
531
  continue;
514
532
  // Only loaded engines have data to offer.
515
- if (!this.CheckEngineLoaded(engine))
533
+ if (!this.checkEngineLoaded(engine))
516
534
  continue;
517
535
  const engineObj = engine;
518
- const configs = engineObj['Configs'];
519
- if (!Array.isArray(configs))
536
+ const configs = this.readEngineConfigs(engineObj);
537
+ if (!configs)
520
538
  continue;
521
539
  for (const cfg of configs) {
522
540
  // Only entity configs (Type defaults to 'entity') with a matching EntityName.
@@ -1 +1 @@
1
- {"version":3,"file":"baseEngineRegistry.js","sourceRoot":"","sources":["../../src/generic/baseEngineRegistry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"baseEngineRegistry.js","sourceRoot":"","sources":["../../src/generic/baseEngineRegistry.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { EntityFieldInfo, EntityInfo, EntityFieldTSType, EntityPermissionType, RecordChange, ValidationResult, EntityRelationshipInfo } from './entityInfo.js';
2
- import { EntityDeleteOptions, EntitySaveOptions, IEntityDataProvider, IMetadataProvider, IRunQueryProvider, IRunViewProvider, SimpleEmbeddingResult } from './interfaces.js';
2
+ import { ComputeContentHashOptions, EntityDeleteOptions, EntitySaveOptions, IEntityDataProvider, IMetadataProvider, IRunQueryProvider, IRunViewProvider, SimpleEmbeddingResult } from './interfaces.js';
3
3
  import { UserInfo } from './securityInfo.js';
4
4
  import { TransactionGroupBase } from './transactionGroup.js';
5
5
  import { CompositeKey, FieldValueCollection } from './compositeKey.js';
@@ -62,10 +62,10 @@ export declare class EntityField {
62
62
  };
63
63
  };
64
64
  private _entityFieldInfo;
65
- private _OldValue;
66
- private _Value;
67
- private _NeverSet;
68
- private _NotLoaded;
65
+ private _oldValue;
66
+ private _value;
67
+ private _neverSet;
68
+ private _notLoaded;
69
69
  /**
70
70
  * True when the source this entity was hydrated from OMITTED this field's key — most
71
71
  * commonly because field-level security stripped it before the payload reached us, but
@@ -90,7 +90,7 @@ export declare class EntityField {
90
90
  * clears the flag.
91
91
  */
92
92
  MarkNotLoaded(): void;
93
- private _CreateSuppressed;
93
+ private _createSuppressed;
94
94
  /**
95
95
  * True when field-level security bars this user from supplying the field's value on INSERT,
96
96
  * so the save path must omit it and let the column take its database default.
@@ -474,7 +474,7 @@ export declare abstract class BaseEntity<T = unknown> {
474
474
  * `SetEntityName()` from `Metadata.EntityByName` and used as the source of truth for
475
475
  * field definitions and schema details throughout this class.
476
476
  */
477
- private _EntityInfo;
477
+ private _entityInfo;
478
478
  /**
479
479
  * Runtime field instances for this record — one `EntityField` per column in `_EntityInfo.Fields`.
480
480
  * Each holds the current value, old value, dirty state, and per-field validation.
@@ -490,7 +490,7 @@ export declare abstract class BaseEntity<T = unknown> {
490
490
  * `BaseEntity` are reserved for paths that have already triggered hydration or paths that
491
491
  * deliberately want to inspect hydration state (e.g., `Dirty` getter).
492
492
  */
493
- private _Fields;
493
+ private _fields;
494
494
  /**
495
495
  * Tracks whether `_Fields` has been populated. `false` while in "raw mode" (data accessible
496
496
  * via `_raw` but no EntityField instances built yet); flips to `true` after the first call to
@@ -674,6 +674,17 @@ export declare abstract class BaseEntity<T = unknown> {
674
674
  * loaded record. Reset to false on NewRecord() and init().
675
675
  */
676
676
  private _childEntityDiscoveryDone;
677
+ /**
678
+ * Set only while this record's parent loads it because the parent's subtype rule named it
679
+ * (see {@link tryLinkHintedChildEntity}); read by {@link InnerLoad}.
680
+ */
681
+ private _subtypeHintProbe;
682
+ /**
683
+ * Set only while {@link AttachToParent} loads this record as the parent it promotes. Child
684
+ * discovery then doesn't ask the subtype rule: the child row being added doesn't exist yet, so
685
+ * a hint would name it and miss.
686
+ */
687
+ private _skipSubtypeLoadHint;
677
688
  /**
678
689
  * For **overlapping** subtype parents (AllowMultipleSubtypes = true), stores
679
690
  * the list of child entity type names that have records for this PK.
@@ -837,10 +848,32 @@ export declare abstract class BaseEntity<T = unknown> {
837
848
  * This ensures that Save/Delete operations always delegate to the leaf entity,
838
849
  * running the full validation and event chain at every level.
839
850
  *
851
+ * For a disjoint parent, the entity's subtype rule is asked first (see
852
+ * {@link resolveSubtypeLoadHint}); when it names a child, that child's load, which
853
+ * happens anyway, checks the answer, and the discovery query runs only on a miss.
854
+ *
840
855
  * Must be called AFTER a record is loaded (PK must be available).
841
856
  * Skipped for entities that are not parent types or have already been discovered.
842
857
  */
843
858
  protected InitializeChildEntity(): Promise<void>;
859
+ /**
860
+ * Finds and links the one child of a loaded disjoint parent.
861
+ *
862
+ * Without a hint this is one discovery query plus the child's load. With a hint from the
863
+ * entity's subtype rule, the child's load checks the hint, and the discovery query runs
864
+ * only when that load comes back empty or wasn't tried.
865
+ *
866
+ * For well-formed data the outcome is the one the discovery query alone would give: a hint
867
+ * changes the number of round trips, not which child is linked or whether the load succeeds.
868
+ * Three benign exceptions:
869
+ * - a failure reading the hinted child's row falls back to the discovery query, so a transient
870
+ * failure now recovers (a lasting one reads the row twice, then fails as before);
871
+ * - when the data breaks the disjoint rule with two child rows, the discovery query's
872
+ * unordered `UNION ALL` links either one, where a hint links the one the rule names;
873
+ * - a provider without `FindISAChildEntity` links nothing without a hint, and the hinted child
874
+ * with one.
875
+ */
876
+ private initializeDisjointChildEntity;
844
877
  /**
845
878
  * Uses the provider's FindISAChildEntity method (single UNION ALL query) to
846
879
  * determine which child entity type, if any, has a record with our PK value.
@@ -860,13 +893,127 @@ export declare abstract class BaseEntity<T = unknown> {
860
893
  * Creates the child entity instance, wires up the shared instance chain
861
894
  * (child._parentEntity = this, this._childEntity = child), loads the
862
895
  * child's data, and recursively discovers further children.
896
+ *
897
+ * @returns true when the child's row loaded and the child is linked; false when the load
898
+ * came back empty, in which case the link is undone.
863
899
  */
864
900
  private createAndLinkChildEntity;
901
+ /**
902
+ * Creates an unlinked child entity instance through this entity's provider, so the child
903
+ * shares the same connection (correct in multi-provider scenarios — never the global default).
904
+ */
905
+ private createChildEntityObject;
906
+ /**
907
+ * Links `childEntity` into this entity's chain and loads its row under the shared key.
908
+ *
909
+ * @returns true when the row loaded and the child is linked; false when the load came back
910
+ * empty, in which case the link is undone.
911
+ */
912
+ private linkAndLoadChildEntity;
913
+ /**
914
+ * Tries to link the child that the subtype rule named, by loading its row directly. That
915
+ * load is the check on the hint.
916
+ *
917
+ * The hint isn't tried when the child object can't be created or the user can't read that
918
+ * entity: the discovery-only path decides those cases, so a hint can neither expose a child
919
+ * nor fail a load that works without it. A failure READING the hinted row is logged and
920
+ * treated the same way: the discovery path runs, and reads the row again only if the discovery
921
+ * query finds it. A failure after the row was read (the child's hydration, its eager
922
+ * companions, its own child discovery) propagates, as it does on the discovery-only path.
923
+ *
924
+ * @returns `'Linked'` when the hinted child loaded and is linked, `'NotFound'` when its load
925
+ * came back empty, and `'NotTried'` when it wasn't loaded or reading its row failed.
926
+ */
927
+ private tryLinkHintedChildEntity;
928
+ /**
929
+ * Creates the child object the subtype rule named, or returns null when the user can't read
930
+ * that entity. A failure to create it is logged and returns null too, so the discovery-only
931
+ * path decides.
932
+ */
933
+ private createReadableHintedChild;
934
+ /**
935
+ * Asks the entity's subtype rule which child a LOADED record has, without running a query.
936
+ *
937
+ * - A registered {@link EntitySubtypeResolver} owns the rule. It gives a hint only when its
938
+ * class overrides {@link EntitySubtypeResolver.ResolveLoadHint}. A resolver that doesn't
939
+ * gives none, and the `SubtypeSelector` isn't consulted in its place: at create time the
940
+ * resolver overrides the selector, so the selector may not describe the same rule.
941
+ * - Otherwise a `SubtypeSelector` that sets `UseForLoadedRecords` is walked through rows that
942
+ * loaded `BaseEngine` caches already hold. A hop that isn't cached gives no hint, not a query.
943
+ * - An entity with no rule gets no hint. The single-child fallback of
944
+ * {@link ResolveSubtypeEntityName} is a default for new records, not a rule about existing ones.
945
+ * - While {@link AttachToParent} loads this record, no rule is asked: the child row being added
946
+ * doesn't exist yet.
947
+ *
948
+ * An answer of "no subtype" also gives no hint: only the discovery query can tell whether an
949
+ * older record still has a child row.
950
+ *
951
+ * @returns A declared IsA child's entity name, or null when there is no usable hint. Never throws.
952
+ */
953
+ private resolveSubtypeLoadHint;
954
+ /**
955
+ * The resolver to ask for load hints for an entity, decided once per registration and cached:
956
+ * null when the registered class doesn't override {@link EntitySubtypeResolver.ResolveLoadHint},
957
+ * which is read from the class without constructing it, or when constructing it failed.
958
+ */
959
+ private static loadHintResolverFor;
960
+ /** Whether a registered resolver class overrides `ResolveLoadHint`, read from its prototype. */
961
+ private static overridesResolveLoadHint;
962
+ /**
963
+ * Constructs the registered resolver once, to ask it for load hints. A failure is logged and
964
+ * gives null; since the answer is cached, that is once per entity.
965
+ */
966
+ private static constructLoadHintResolver;
967
+ /**
968
+ * Asks the resolver for a load hint. A resolver that throws or rejects gives no hint for that
969
+ * record, and is logged once per entity rather than per record.
970
+ */
971
+ private askResolverForLoadHint;
972
+ /**
973
+ * Walks the `SubtypeSelector` path through engine caches only. A path that isn't valid for
974
+ * this entity's metadata is logged once and gives no hint; the create path throws on it instead.
975
+ */
976
+ private evaluateSelectorForLoadHint;
977
+ /**
978
+ * Turns a rule's answer into a declared child's canonical entity name. Empty means no subtype,
979
+ * which gives no hint. A name that isn't a declared IsA child is logged once and gives no hint.
980
+ */
981
+ private declaredChildForLoadHint;
982
+ /**
983
+ * Reports a hint the data didn't bear out: the hinted child's row wasn't there.
984
+ *
985
+ * When the discovery query finds no child either, that is a normal state, not an error: core
986
+ * never creates a subtype row on save, so a typed record can exist without one (saved through
987
+ * a generic form or an import, or older than its type's subtype). It logs one verbose line per
988
+ * entity and hinted child. When the discovery query finds a DIFFERENT child, the rule and the
989
+ * data disagree, and each such load costs an extra round trip until one of them is fixed; that
990
+ * is logged as an error, once per entity, hinted child and child found.
991
+ */
992
+ private reportSubtypeLoadHintMiss;
993
+ /** Keys of load-hint messages already logged, so each is reported once rather than per record. */
994
+ private static _loggedSubtypeLoadHintMessages;
995
+ /** Runs `log` the first time `key` is seen (case-insensitively), and not again until the caches are cleared. */
996
+ private static logSubtypeLoadHintOnce;
997
+ private static errorText;
865
998
  private static _subtypeLookupCache;
999
+ /** Per entity (lowercased name): the resolver asked for load hints, decided once per registration. */
1000
+ private static _subtypeLoadHintResolvers;
1001
+ /** Indexes over engine-cached arrays, keyed by the live array itself; see {@link findEngineCachedRow}. */
1002
+ private static _engineCachedRowIndexes;
866
1003
  /**
867
- * Clears the static memoization cache used by SubtypeSelector path evaluation.
1004
+ * Clears the static caches IsA subtype resolution keeps: the create path's SubtypeSelector
1005
+ * lookup memo, the per-entity decision about which resolver gives load hints, the indexes over
1006
+ * engine-cached rows, and the record of load-hint messages already logged, so each can be
1007
+ * reported again.
868
1008
  */
869
1009
  static ClearSubtypeLookupCache(): void;
1010
+ /**
1011
+ * The declared IsA child entity named `name`, matched the way metadata lookups match names
1012
+ * (trimmed, case-insensitive), or undefined when this entity declares no such child. The one
1013
+ * lookup behind {@link ResolveSubtypeEntityName}, {@link EnsureISAChild} and load hints: the
1014
+ * create path throws on a miss, the load path logs it.
1015
+ */
1016
+ private findDeclaredChild;
870
1017
  /**
871
1018
  * Prospective counterpart to FindISAChildEntity.
872
1019
  * Evaluates which IsA child subtype entity this record should have based on:
@@ -875,6 +1022,12 @@ export declare abstract class BaseEntity<T = unknown> {
875
1022
  * 3. Unconditional single-child IsA fallback (ChildEntities.length === 1)
876
1023
  * 4. Otherwise null (no subtype)
877
1024
  *
1025
+ * This is the create-time ladder, and steps 1 and 2 may query. When a record is loaded,
1026
+ * BaseEntity asks a narrower, query-free version of it for a hint instead: the resolver's
1027
+ * `ResolveLoadHint` (not `Resolve`) when its class overrides it, the selector only when it sets
1028
+ * `UseForLoadedRecords` and only through rows that loaded `BaseEngine` caches hold, and never
1029
+ * step 3.
1030
+ *
878
1031
  * @see plans/sync-composition-axes.md
879
1032
  */
880
1033
  ResolveSubtypeEntityName(): Promise<string | null>;
@@ -889,8 +1042,51 @@ export declare abstract class BaseEntity<T = unknown> {
889
1042
  */
890
1043
  EnsureISAChild(entityName?: string): Promise<BaseEntity | null>;
891
1044
  private mirrorSharedKeysToChild;
1045
+ /**
1046
+ * Walks a `SubtypeSelector` path from this record to the column holding the subtype's entity
1047
+ * name, and returns that column's value, or null when a hop's foreign key is empty, a target
1048
+ * isn't found, or the terminal value is empty.
1049
+ *
1050
+ * @param path The dotted path, e.g. `ProductTypeID.ProductExtensionEntity`.
1051
+ * @param findTarget Finds the record a foreign key points at. Create time passes a finder that
1052
+ * may query; load time passes one that reads engine caches only, so a hop missing from them
1053
+ * ends the walk with null instead of a query.
1054
+ * @throws When the path doesn't fit this entity's metadata (a field isn't found, or a hop isn't
1055
+ * a foreign key).
1056
+ */
892
1057
  private evaluateSubtypeSelectorPath;
893
1058
  private getSubtypePathTargetEntity;
1059
+ /**
1060
+ * Finds the record a `SubtypeSelector` hop points at among the entity objects that loaded
1061
+ * `BaseEngine` caches already hold. Never queries, and never reads the create path's memo, whose
1062
+ * entries can outlive a change to the row: engine caches are kept current by entity events.
1063
+ *
1064
+ * `pkValue` is one foreign-key column's value, matched against the first primary key of the
1065
+ * cached rows' entity the way UUIDs compare (trimmed, case-insensitive).
1066
+ *
1067
+ * @returns The cached record, or null when no loaded engine holds it as an entity object.
1068
+ */
1069
+ private static findSubtypePathTargetInEngineCache;
1070
+ /**
1071
+ * Finds the row whose key is `key` in an engine's live cached array through an index over the
1072
+ * array, not a scan per lookup. Keys are read with `Get()`, which leaves the rows an engine holds
1073
+ * in raw mode unhydrated.
1074
+ *
1075
+ * The array is the engine's own and changes under the index: a refresh replaces it, and a save,
1076
+ * delete or remote invalidation pushes a row, splices one out, or swaps one for a copy with the
1077
+ * same key. So the index is keyed by the array itself, and rebuilt when the array's length or
1078
+ * last element differs from when it was built, which every added or removed row changes. A hit
1079
+ * is checked against the row now at that position, and a row that moved makes the index rebuild
1080
+ * before the answer is trusted. A key that isn't indexed is a miss, which gives no hint on load
1081
+ * and falls back to a query at create time, as for a row no engine caches.
1082
+ */
1083
+ private static findEngineCachedRow;
1084
+ /** The index over `records`, rebuilt when the array's length or last element changed since it was built. */
1085
+ private static currentEngineCachedRowIndex;
1086
+ /** Indexes `records` by key. Anything that isn't an entity object (a `'simple'` cache holds plain rows) is skipped. */
1087
+ private static buildEngineCachedRowIndex;
1088
+ /** A cached row's key, normalized with `NormalizeUUID`; null for a row that isn't an entity object or has no key value. */
1089
+ private static engineCachedRowKey;
894
1090
  private captureChainDirtyState;
895
1091
  private restoreChainDirtyState;
896
1092
  /**
@@ -1505,7 +1701,7 @@ export declare abstract class BaseEntity<T = unknown> {
1505
1701
  * Callers should gate this behind `EntityInfo.HasInactiveFields` so the common all-Active entity
1506
1702
  * skips the field lookup entirely.
1507
1703
  */
1508
- private AssertFieldActiveStatus;
1704
+ private assertFieldActiveStatus;
1509
1705
  /**
1510
1706
  * Field-level security choke point for the strongly-typed accessor path. Throws when the
1511
1707
  * acting user may not READ the field.
@@ -1527,12 +1723,12 @@ export declare abstract class BaseEntity<T = unknown> {
1527
1723
  * build) reads `EntityField.Value` directly and never routes through here — that exemption
1528
1724
  * is load-bearing, not an oversight. Do not "fix" it.
1529
1725
  */
1530
- private AssertFieldReadable;
1726
+ private assertFieldReadable;
1531
1727
  /**
1532
1728
  * Internal helper that sets a field value directly on THIS entity's own Fields array
1533
1729
  * without IS-A routing. Used by Set() for own-fields and for mirroring parent field values.
1534
1730
  */
1535
- private SetLocal;
1731
+ private setLocal;
1536
1732
  /**
1537
1733
  * Returns the value of the field with the given name. If the field is a date, and the value is a string, it will be converted to a date object.
1538
1734
  *
@@ -1565,7 +1761,7 @@ export declare abstract class BaseEntity<T = unknown> {
1565
1761
  * a saved/loaded record. This enables entities populated via SetMany (e.g., IS-A parent
1566
1762
  * entities) to correctly recognize themselves as existing records.
1567
1763
  */
1568
- private UpdateSavedStateFromPrimaryKeys;
1764
+ private updateSavedStateFromPrimaryKeys;
1569
1765
  /**
1570
1766
  * NOTE: Do not call this method directly. Use the {@link To} method instead
1571
1767
  *
@@ -1582,6 +1778,16 @@ export declare abstract class BaseEntity<T = unknown> {
1582
1778
  * @returns
1583
1779
  */
1584
1780
  GetChangesSinceLastSave(): Partial<T>;
1781
+ /**
1782
+ * Computes a deterministic SHA-256 content hash of the entity's field values using
1783
+ * the canonicalizer and Web Crypto API from `@memberjunction/global`.
1784
+ *
1785
+ * By default, hashes all loaded non-system fields (excluding `__mj_*` columns).
1786
+ * The result is byte-for-byte identical across client and server tiers.
1787
+ *
1788
+ * @param options Optional configuration specifying subset of fields and/or whether to exclude system fields.
1789
+ */
1790
+ ComputeContentHash(options?: ComputeContentHashOptions): Promise<string>;
1585
1791
  /**
1586
1792
  * This utility method calls GetDataObject() internally and formats the result as a JSON string. If you want to get the data as an object instead of a string, call GetDataObject() directly.
1587
1793
  * @param params
@@ -1741,12 +1947,12 @@ export declare abstract class BaseEntity<T = unknown> {
1741
1947
  * @param options
1742
1948
  * @returns
1743
1949
  */
1744
- private _InnerSave;
1950
+ private _innerSave;
1745
1951
  /**
1746
1952
  * Runs all registered PreSave hooks. If any hook returns false or a string
1747
1953
  * (error message), the save is rejected by throwing an Error.
1748
1954
  */
1749
- private RunPreSaveHooks;
1955
+ private runPreSaveHooks;
1750
1956
  /**
1751
1957
  * Determines whether the parent entity should be deleted after this child entity
1752
1958
  * has been deleted. For overlapping subtype parents (AllowMultipleSubtypes = true),
@@ -1763,7 +1969,7 @@ export declare abstract class BaseEntity<T = unknown> {
1763
1969
  * Caches the entity record name in the provider's EntityRecordNameCache for faster lookups.
1764
1970
  * Called automatically after successful Load(), LoadFromData(), and Save() operations.
1765
1971
  */
1766
- private CacheRecordName;
1972
+ private cacheRecordName;
1767
1973
  /**
1768
1974
  * Utility method that returns true if the given permission being checked is enabled for the current user, and false if not.
1769
1975
  * @param type
@@ -1868,6 +2074,14 @@ export declare abstract class BaseEntity<T = unknown> {
1868
2074
  * @returns true if success, false otherwise
1869
2075
  */
1870
2076
  InnerLoad(CompositeKey: CompositeKey, EntityRelationshipsToLoad?: string[]): Promise<boolean>;
2077
+ /**
2078
+ * The provider's read of the row {@link InnerLoad} loads. While this record is a subtype-hint
2079
+ * probe, a throw from the read is recorded on the probe before it propagates, so the parent
2080
+ * that asked can tell it apart from a failure after the row loaded.
2081
+ */
2082
+ private readRowForLoad;
2083
+ /** The error {@link InnerLoad} logs when the provider finds no row for the key. */
2084
+ private static logLoadFoundNoRow;
1871
2085
  /**
1872
2086
  * Re-fetches the current record from the database using its existing primary key, replacing all in-memory field values
1873
2087
  * with the latest data from the database. This is useful when you know (or suspect) the record has been modified externally
@@ -2030,7 +2244,7 @@ export declare abstract class BaseEntity<T = unknown> {
2030
2244
  * @param options
2031
2245
  * @returns
2032
2246
  */
2033
- private _InnerDelete;
2247
+ private _innerDelete;
2034
2248
  /**
2035
2249
  * Checks if this entity has any child records in IS-A child entity tables.
2036
2250
  * Used for parent delete protection — a parent record cannot be deleted
@@ -2070,7 +2284,7 @@ export declare abstract class BaseEntity<T = unknown> {
2070
2284
  * Internal recursive helper for leaf entity resolution.
2071
2285
  * Walks down the child hierarchy until no more children are found.
2072
2286
  */
2073
- private static ResolveLeafEntityRecursive;
2287
+ private static resolveLeafEntityRecursive;
2074
2288
  /**
2075
2289
  * Enforces disjoint subtype constraint during IS-A child entity creation.
2076
2290
  * A parent record can only be ONE child type at a time. Checks all sibling