@almadar/runtime 6.9.0 → 6.9.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.
@@ -1,4 +1,4 @@
1
- export { InMemoryPersistence, OrbitalServerRuntime, collectDeclaredConfigDefaults, createOrbitalServerRuntime } from './chunk-TNK77RLG.js';
1
+ export { InMemoryPersistence, OrbitalServerRuntime, collectDeclaredConfigDefaults, createOrbitalServerRuntime } from './chunk-6W74ZCFQ.js';
2
2
  import './chunk-PZ5AY32C.js';
3
3
  //# sourceMappingURL=OrbitalServerRuntime.js.map
4
4
  //# sourceMappingURL=OrbitalServerRuntime.js.map
@@ -5256,12 +5256,20 @@ var OrbitalServerRuntime = class {
5256
5256
  }
5257
5257
  }
5258
5258
  const populatedFieldName = includeField.endsWith("Id") ? includeField.slice(0, -2) : includeField;
5259
+ const isSelfRef = relatedEntityType === entityType;
5260
+ const hydrateClone = (id) => {
5261
+ const related = relatedEntities.get(id);
5262
+ if (!related) return void 0;
5263
+ const copy = { ...related };
5264
+ if (isSelfRef) copy[foreignKeyField] = [];
5265
+ return copy;
5266
+ };
5259
5267
  for (const entity of entities) {
5260
5268
  const fkValue = entity[foreignKeyField];
5261
5269
  if (cardinality === "one" || cardinality === "many-to-one") {
5262
5270
  if (typeof fkValue === "string" && relatedEntities.has(fkValue)) {
5263
5271
  Object.defineProperty(entity, populatedFieldName, {
5264
- value: relatedEntities.get(fkValue),
5272
+ value: hydrateClone(fkValue),
5265
5273
  writable: true,
5266
5274
  enumerable: true,
5267
5275
  configurable: true
@@ -5271,14 +5279,14 @@ var OrbitalServerRuntime = class {
5271
5279
  if (Array.isArray(fkValue)) {
5272
5280
  const fkIds = fkValue.filter((id) => typeof id === "string");
5273
5281
  Object.defineProperty(entity, populatedFieldName, {
5274
- value: fkIds.map((id) => relatedEntities.get(id)).filter(Boolean),
5282
+ value: fkIds.map(hydrateClone).filter(Boolean),
5275
5283
  writable: true,
5276
5284
  enumerable: true,
5277
5285
  configurable: true
5278
5286
  });
5279
5287
  } else if (typeof fkValue === "string" && relatedEntities.has(fkValue)) {
5280
5288
  Object.defineProperty(entity, populatedFieldName, {
5281
- value: [relatedEntities.get(fkValue)],
5289
+ value: [hydrateClone(fkValue)],
5282
5290
  writable: true,
5283
5291
  enumerable: true,
5284
5292
  configurable: true
@@ -5475,5 +5483,5 @@ function buildMatcher(src, listenerOrbital) {
5475
5483
  }
5476
5484
 
5477
5485
  export { EffectExecutor, EventBus, HANDLER_MANIFEST, InMemoryPersistence, MockPersistenceAdapter, OrbitalServerRuntime, StateMachineManager, buildEmitsFromTraits, collectDeclaredConfigDefaults, containsBindings, createContextFromBindings, createInitialTraitState, createMockPersistence, createOrbitalServerRuntime, createTestExecutor, createUnifiedLoader, extractBindings, findInitialState, findTransition, formatPayloadValidationError, getIsolatedCollectionName, getNamespacedEvent, interpolateProps, interpolateValue, isBrowser, isElectron, isNamespacedEvent, isNode, normalizeEventKey, parseNamespacedEvent, preprocessSchema, processEvent, validateEventPayload, validatePayloadShapes };
5478
- //# sourceMappingURL=chunk-TNK77RLG.js.map
5479
- //# sourceMappingURL=chunk-TNK77RLG.js.map
5486
+ //# sourceMappingURL=chunk-6W74ZCFQ.js.map
5487
+ //# sourceMappingURL=chunk-6W74ZCFQ.js.map