@contember/bindx 0.1.45 → 0.1.47

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 (118) hide show
  1. package/dist/core/ActionDispatcher.d.ts +4 -1
  2. package/dist/core/ActionDispatcher.d.ts.map +1 -1
  3. package/dist/core/actions.d.ts +7 -1
  4. package/dist/core/actions.d.ts.map +1 -1
  5. package/dist/events/EventEmitter.d.ts +13 -1
  6. package/dist/events/EventEmitter.d.ts.map +1 -1
  7. package/dist/handles/BaseHandle.d.ts +14 -3
  8. package/dist/handles/BaseHandle.d.ts.map +1 -1
  9. package/dist/handles/EntityHandle.d.ts +14 -5
  10. package/dist/handles/EntityHandle.d.ts.map +1 -1
  11. package/dist/handles/FieldHandle.d.ts +11 -4
  12. package/dist/handles/FieldHandle.d.ts.map +1 -1
  13. package/dist/handles/HasManyListHandle.d.ts +36 -2
  14. package/dist/handles/HasManyListHandle.d.ts.map +1 -1
  15. package/dist/handles/HasOneHandle.d.ts +52 -9
  16. package/dist/handles/HasOneHandle.d.ts.map +1 -1
  17. package/dist/handles/PlaceholderHandle.d.ts +25 -13
  18. package/dist/handles/PlaceholderHandle.d.ts.map +1 -1
  19. package/dist/handles/index.d.ts +1 -1
  20. package/dist/handles/index.d.ts.map +1 -1
  21. package/dist/handles/proxyFactory.d.ts +7 -1
  22. package/dist/handles/proxyFactory.d.ts.map +1 -1
  23. package/dist/handles/types.d.ts +33 -0
  24. package/dist/handles/types.d.ts.map +1 -1
  25. package/dist/index.d.ts +3 -3
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/persistence/BatchPersister.d.ts +53 -37
  28. package/dist/persistence/BatchPersister.d.ts.map +1 -1
  29. package/dist/persistence/ChangeRegistry.d.ts +15 -0
  30. package/dist/persistence/ChangeRegistry.d.ts.map +1 -1
  31. package/dist/persistence/MutationCollector.d.ts +106 -3
  32. package/dist/persistence/MutationCollector.d.ts.map +1 -1
  33. package/dist/persistence/PersistExecution.d.ts +26 -0
  34. package/dist/persistence/PersistExecution.d.ts.map +1 -0
  35. package/dist/persistence/types.d.ts +8 -2
  36. package/dist/persistence/types.d.ts.map +1 -1
  37. package/dist/store/EntityMetaStore.d.ts +32 -10
  38. package/dist/store/EntityMetaStore.d.ts.map +1 -1
  39. package/dist/store/EntitySnapshotStore.d.ts +50 -3
  40. package/dist/store/EntitySnapshotStore.d.ts.map +1 -1
  41. package/dist/store/ErrorStore.d.ts +3 -2
  42. package/dist/store/ErrorStore.d.ts.map +1 -1
  43. package/dist/store/HasManyStore.d.ts +214 -0
  44. package/dist/store/HasManyStore.d.ts.map +1 -0
  45. package/dist/store/HasOneStore.d.ts +159 -0
  46. package/dist/store/HasOneStore.d.ts.map +1 -0
  47. package/dist/store/ReachabilityAnalyzer.d.ts +19 -0
  48. package/dist/store/ReachabilityAnalyzer.d.ts.map +1 -1
  49. package/dist/store/RekeyOrchestrator.d.ts +76 -0
  50. package/dist/store/RekeyOrchestrator.d.ts.map +1 -0
  51. package/dist/store/RelationEdgeIndex.d.ts +34 -0
  52. package/dist/store/RelationEdgeIndex.d.ts.map +1 -0
  53. package/dist/store/RelationStore.d.ts +74 -137
  54. package/dist/store/RelationStore.d.ts.map +1 -1
  55. package/dist/store/RootRegistry.d.ts +25 -4
  56. package/dist/store/RootRegistry.d.ts.map +1 -1
  57. package/dist/store/SnapshotStore.d.ts +137 -13
  58. package/dist/store/SnapshotStore.d.ts.map +1 -1
  59. package/dist/store/SubscriptionManager.d.ts +63 -14
  60. package/dist/store/SubscriptionManager.d.ts.map +1 -1
  61. package/dist/store/TouchedStore.d.ts +3 -2
  62. package/dist/store/TouchedStore.d.ts.map +1 -1
  63. package/dist/store/relationKey.d.ts +15 -0
  64. package/dist/store/relationKey.d.ts.map +1 -0
  65. package/dist/undo/UndoJournal.d.ts +133 -0
  66. package/dist/undo/UndoJournal.d.ts.map +1 -0
  67. package/dist/undo/UndoManager.d.ts +25 -82
  68. package/dist/undo/UndoManager.d.ts.map +1 -1
  69. package/dist/undo/UnrecordedWriteError.d.ts +16 -0
  70. package/dist/undo/UnrecordedWriteError.d.ts.map +1 -0
  71. package/dist/undo/index.d.ts +3 -1
  72. package/dist/undo/index.d.ts.map +1 -1
  73. package/dist/undo/rekeyJournalEntry.d.ts +20 -0
  74. package/dist/undo/rekeyJournalEntry.d.ts.map +1 -0
  75. package/dist/undo/types.d.ts +0 -48
  76. package/dist/undo/types.d.ts.map +1 -1
  77. package/package.json +2 -2
  78. package/src/core/ActionDispatcher.ts +56 -36
  79. package/src/core/actions.ts +8 -1
  80. package/src/events/EventEmitter.ts +78 -24
  81. package/src/handles/BaseHandle.ts +19 -2
  82. package/src/handles/EntityHandle.ts +48 -17
  83. package/src/handles/FieldHandle.ts +36 -10
  84. package/src/handles/HasManyListHandle.ts +121 -17
  85. package/src/handles/HasOneHandle.ts +177 -44
  86. package/src/handles/PlaceholderHandle.ts +184 -36
  87. package/src/handles/index.ts +3 -0
  88. package/src/handles/proxyFactory.ts +27 -0
  89. package/src/handles/types.ts +39 -0
  90. package/src/index.ts +4 -4
  91. package/src/persistence/BatchPersister.ts +810 -446
  92. package/src/persistence/ChangeRegistry.ts +27 -3
  93. package/src/persistence/MutationCollector.ts +265 -31
  94. package/src/persistence/PersistExecution.ts +217 -0
  95. package/src/persistence/types.ts +8 -2
  96. package/src/store/EntityMetaStore.ts +89 -45
  97. package/src/store/EntitySnapshotStore.ts +102 -19
  98. package/src/store/ErrorStore.ts +6 -5
  99. package/src/store/HasManyStore.ts +810 -0
  100. package/src/store/HasOneStore.ts +454 -0
  101. package/src/store/ReachabilityAnalyzer.ts +37 -0
  102. package/src/store/RekeyOrchestrator.ts +123 -0
  103. package/src/store/RelationEdgeIndex.ts +79 -0
  104. package/src/store/RelationStore.ts +176 -725
  105. package/src/store/RootRegistry.ts +50 -8
  106. package/src/store/SnapshotStore.ts +572 -101
  107. package/src/store/SubscriptionManager.ts +122 -75
  108. package/src/store/TouchedStore.ts +5 -2
  109. package/src/store/relationKey.ts +20 -0
  110. package/src/undo/UndoJournal.ts +258 -0
  111. package/src/undo/UndoManager.ts +151 -281
  112. package/src/undo/UnrecordedWriteError.ts +23 -0
  113. package/src/undo/index.ts +8 -7
  114. package/src/undo/rekeyJournalEntry.ts +145 -0
  115. package/src/undo/types.ts +0 -58
  116. package/dist/core/actionClassification.d.ts +0 -48
  117. package/dist/core/actionClassification.d.ts.map +0 -1
  118. package/src/core/actionClassification.ts +0 -199
@@ -63,7 +63,10 @@ export declare class ActionDispatcher {
63
63
  * Can inspect/modify actions before execution.
64
64
  * Return false to cancel the action.
65
65
  */
66
- export type ActionMiddleware = (action: Action, store: SnapshotStore) => boolean | void;
66
+ export interface ActionMiddleware {
67
+ (action: Action, store: SnapshotStore): boolean | void;
68
+ dispose?: () => void;
69
+ }
67
70
  /**
68
71
  * Creates a logging middleware for debugging.
69
72
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ActionDispatcher.d.ts","sourceRoot":"","sources":["../../src/core/ActionDispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAOxD;;;;;;;;;;GAUG;AACH,qBAAa,gBAAgB;IAK3B,OAAO,CAAC,QAAQ,CAAC,KAAK;IAJvB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyB;IACrD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;gBAGzB,KAAK,EAAE,aAAa,EACrC,YAAY,CAAC,EAAE,YAAY;IAK5B;;OAEG;IACH,eAAe,IAAI,YAAY;IAI/B;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAqC9B;;;OAGG;IACG,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAsCrD;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAmC7B;;;OAGG;IACH,aAAa,CAAC,UAAU,EAAE,gBAAgB,GAAG,IAAI;IAIjD;;OAEG;IACH,gBAAgB,CAAC,UAAU,EAAE,gBAAgB,GAAG,IAAI;IAOpD;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IAQ1B;;OAEG;IACH,OAAO,CAAC,OAAO;CA8Pf;AAED;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,KAAK,OAAO,GAAG,IAAI,CAAA;AAEvF;;GAEG;AACH,wBAAgB,uBAAuB,CACtC,MAAM,GAAE,MAAkB,GACxB,gBAAgB,CAIlB"}
1
+ {"version":3,"file":"ActionDispatcher.d.ts","sourceRoot":"","sources":["../../src/core/ActionDispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAOxD;;;;;;;;;;GAUG;AACH,qBAAa,gBAAgB;IAK3B,OAAO,CAAC,QAAQ,CAAC,KAAK;IAJvB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyB;IACrD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;gBAGzB,KAAK,EAAE,aAAa,EACrC,YAAY,CAAC,EAAE,YAAY;IAM5B;;OAEG;IACH,eAAe,IAAI,YAAY;IAI/B;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IA4C9B;;;OAGG;IACG,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA2CrD;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAmC7B;;;OAGG;IACH,aAAa,CAAC,UAAU,EAAE,gBAAgB,GAAG,IAAI;IAIjD;;OAEG;IACH,gBAAgB,CAAC,UAAU,EAAE,gBAAgB,GAAG,IAAI;IAUpD;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IAQ1B;;OAEG;IACH,OAAO,CAAC,OAAO;CA+Pf;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAChC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,GAAG,IAAI,CAAA;IACtD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CACpB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACtC,MAAM,GAAE,MAAkB,GACxB,gBAAgB,CAIlB"}
@@ -173,6 +173,12 @@ export interface SetPersistingAction {
173
173
  readonly entityType: string;
174
174
  readonly entityId: string;
175
175
  readonly isPersisting: boolean;
176
+ /**
177
+ * Whether this persist is pessimistic. While a pessimistic persist is
178
+ * in-flight, handles present the server baseline instead of the (still dirty)
179
+ * local data. Ignored when isPersisting is false.
180
+ */
181
+ readonly pessimistic?: boolean;
176
182
  }
177
183
  /**
178
184
  * Adds an error to a field
@@ -294,7 +300,7 @@ export declare function setLoadState(entityType: string, entityId: string, statu
294
300
  /**
295
301
  * Creates a SET_PERSISTING action
296
302
  */
297
- export declare function setPersisting(entityType: string, entityId: string, isPersisting: boolean): SetPersistingAction;
303
+ export declare function setPersisting(entityType: string, entityId: string, isPersisting: boolean, pessimistic?: boolean): SetPersistingAction;
298
304
  /**
299
305
  * Creates a SET_PLACEHOLDER_DATA action
300
306
  */
@@ -1 +1 @@
1
- {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../src/core/actions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../src/core/actions.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@
3
3
  * Supports both scoped (entity/field-level) and global subscriptions.
4
4
  */
5
5
  import type { AfterEvent, AfterEventTypes, BeforeEvent, BeforeEventTypes, EventListener, EventTypeMap, Interceptor, Unsubscribe } from './types.js';
6
+ import type { RekeyContext, Rekeyable } from '../store/RekeyOrchestrator.js';
6
7
  /**
7
8
  * EventEmitter for the bindx event system.
8
9
  *
@@ -12,11 +13,13 @@ import type { AfterEvent, AfterEventTypes, BeforeEvent, BeforeEventTypes, EventL
12
13
  * - Field-scoped subscriptions (events for a specific field/relation)
13
14
  * - Interceptors for before-events (can cancel or modify)
14
15
  */
15
- export declare class EventEmitter {
16
+ export declare class EventEmitter implements Rekeyable {
16
17
  private readonly globalListeners;
17
18
  private readonly scopedListeners;
18
19
  private readonly globalInterceptors;
19
20
  private readonly scopedInterceptors;
21
+ /** Old scope keys retained so pre-rekey unsubscribe closures still resolve. */
22
+ private readonly scopeKeyRedirects;
20
23
  /**
21
24
  * Subscribe to an event globally (receives all events of that type).
22
25
  */
@@ -42,6 +45,11 @@ export declare class EventEmitter {
42
45
  * Add a field-scoped interceptor.
43
46
  */
44
47
  interceptField<T extends BeforeEventTypes>(eventType: T, entityType: string, entityId: string, fieldName: string, interceptor: Interceptor<EventTypeMap[T] & BeforeEvent>): Unsubscribe;
48
+ /**
49
+ * Whether any interceptor could receive this event for the given entity.
50
+ * Lets a caller skip the (async) interceptor pipeline when nothing is listening.
51
+ */
52
+ hasInterceptors(eventType: string, entityType: string, entityId: string): boolean;
45
53
  /**
46
54
  * Runs interceptors for a before event.
47
55
  * Returns the (possibly modified) event or null if cancelled.
@@ -55,6 +63,10 @@ export declare class EventEmitter {
55
63
  * Builds a scope key for listener/interceptor lookup.
56
64
  */
57
65
  private buildScopeKey;
66
+ private resolveScopeKey;
67
+ private removeScoped;
68
+ rekey(ctx: RekeyContext): void;
69
+ private rekeyScopedMap;
58
70
  /**
59
71
  * Gets or creates a Set in a Map.
60
72
  */
@@ -1 +1 @@
1
- {"version":3,"file":"EventEmitter.d.ts","sourceRoot":"","sources":["../../src/events/EventEmitter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACX,UAAU,EACV,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,YAAY,EAEZ,WAAW,EAEX,WAAW,EACX,MAAM,YAAY,CAAA;AAQnB;;;;;;;;GAQG;AACH,qBAAa,YAAY;IAExB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAoD;IAGpF,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAoD;IAGpF,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAmD;IAGtF,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAmD;IAMtF;;OAEG;IACH,EAAE,CAAC,CAAC,SAAS,eAAe,EAC3B,SAAS,EAAE,CAAC,EACZ,QAAQ,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,GACnD,WAAW;IAMd;;OAEG;IACH,QAAQ,CAAC,CAAC,SAAS,eAAe,EACjC,SAAS,EAAE,CAAC,EACZ,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,GACnD,WAAW;IAOd;;OAEG;IACH,OAAO,CAAC,CAAC,SAAS,eAAe,EAChC,SAAS,EAAE,CAAC,EACZ,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,GACnD,WAAW;IAWd;;;OAGG;IACH,SAAS,CAAC,CAAC,SAAS,gBAAgB,EACnC,SAAS,EAAE,CAAC,EACZ,WAAW,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,GACrD,WAAW;IAMd;;OAEG;IACH,eAAe,CAAC,CAAC,SAAS,gBAAgB,EACzC,SAAS,EAAE,CAAC,EACZ,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,GACrD,WAAW;IAOd;;OAEG;IACH,cAAc,CAAC,CAAC,SAAS,gBAAgB,EACxC,SAAS,EAAE,CAAC,EACZ,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,GACrD,WAAW;IAWd;;;OAGG;IACG,eAAe,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IA+CzE;;OAEG;IACH,IAAI,CAAC,CAAC,SAAS,UAAU,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IA8B1C;;OAEG;IACH,OAAO,CAAC,aAAa;IAQrB;;OAEG;IACH,OAAO,CAAC,cAAc;IAStB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAO7B;;OAEG;IACH,OAAO,CAAC,eAAe;IAcvB;;;;OAIG;IACH,mBAAmB,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI;IA4C9D;;;OAGG;YACW,iBAAiB;IAoC/B;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IA6C7B;;;OAGG;IACH,KAAK,IAAI,IAAI;IAOb;;;OAGG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;CAcxC"}
1
+ {"version":3,"file":"EventEmitter.d.ts","sourceRoot":"","sources":["../../src/events/EventEmitter.ts"],"names":[],"mappings":"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"}
@@ -33,8 +33,10 @@ export declare abstract class BaseHandle {
33
33
  */
34
34
  export declare abstract class EntityRelatedHandle extends BaseHandle {
35
35
  protected readonly entityType: string;
36
- protected readonly entityId: string;
37
- constructor(entityType: string, entityId: string, store: SnapshotStore, dispatcher: ActionDispatcher);
36
+ private readonly sourceEntityId;
37
+ constructor(entityType: string, sourceEntityId: string, store: SnapshotStore, dispatcher: ActionDispatcher);
38
+ /** Current canonical id; the handle keeps no mutable rekey state. */
39
+ protected get entityId(): string;
38
40
  /**
39
41
  * Subscribe to entity changes.
40
42
  */
@@ -44,9 +46,18 @@ export declare abstract class EntityRelatedHandle extends BaseHandle {
44
46
  */
45
47
  getVersion(): number;
46
48
  /**
47
- * Get entity data.
49
+ * Get the CANONICAL entity data — the live, possibly-dirty values. Use this
50
+ * for dirty tracking and any logic that must reflect the user's edits, even
51
+ * while a pessimistic persist is in-flight. For values to DISPLAY, use
52
+ * {@link getPresentationData}.
48
53
  */
49
54
  protected getEntityData(): Record<string, unknown> | undefined;
55
+ /**
56
+ * Get the entity data a consumer should DISPLAY. Equals {@link getEntityData}
57
+ * except while the entity is pessimistically in-flight, when it returns the
58
+ * server baseline (the canonical data stays dirty underneath).
59
+ */
60
+ protected getPresentationData(): Record<string, unknown> | undefined;
50
61
  /**
51
62
  * Get entity server data.
52
63
  */
@@ -1 +1 @@
1
- {"version":3,"file":"BaseHandle.d.ts","sourceRoot":"","sources":["../../src/handles/BaseHandle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAE9D;;;;;;;;;;;;;GAaG;AACH,8BAAsB,UAAU;IAE9B,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,aAAa;IACvC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,gBAAgB;gBAD5B,KAAK,EAAE,aAAa,EACpB,UAAU,EAAE,gBAAgB;IAGhD;;OAEG;IACH,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAEpD;;OAEG;IACH,QAAQ,CAAC,UAAU,IAAI,MAAM;CAC7B;AAED;;;GAGG;AACH,8BAAsB,mBAAoB,SAAQ,UAAU;IAE1D,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM;IACrC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM;gBADhB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EACnC,KAAK,EAAE,aAAa,EACpB,UAAU,EAAE,gBAAgB;IAK7B;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAI3C;;OAEG;IACH,UAAU,IAAI,MAAM;IAKpB;;OAEG;IACH,SAAS,CAAC,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;IAK9D;;OAEG;IACH,SAAS,CAAC,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;CAI9D;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAC1C,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,OAAO,CAOT"}
1
+ {"version":3,"file":"BaseHandle.d.ts","sourceRoot":"","sources":["../../src/handles/BaseHandle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAE9D;;;;;;;;;;;;;GAaG;AACH,8BAAsB,UAAU;IAE9B,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,aAAa;IACvC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,gBAAgB;gBAD5B,KAAK,EAAE,aAAa,EACpB,UAAU,EAAE,gBAAgB;IAGhD;;OAEG;IACH,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAEpD;;OAEG;IACH,QAAQ,CAAC,UAAU,IAAI,MAAM;CAC7B;AAED;;;GAGG;AACH,8BAAsB,mBAAoB,SAAQ,UAAU;IAE1D,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM;IACrC,OAAO,CAAC,QAAQ,CAAC,cAAc;gBADZ,UAAU,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,EACvC,KAAK,EAAE,aAAa,EACpB,UAAU,EAAE,gBAAgB;IAK7B,qEAAqE;IACrE,SAAS,KAAK,QAAQ,IAAI,MAAM,CAE/B;IAED;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAI3C;;OAEG;IACH,UAAU,IAAI,MAAM;IAKpB;;;;;OAKG;IACH,SAAS,CAAC,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;IAK9D;;;;OAIG;IACH,SAAS,CAAC,mBAAmB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;IAIpE;;OAEG;IACH,SAAS,CAAC,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS;CAI9D;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAC1C,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,OAAO,CAOT"}
@@ -27,6 +27,7 @@ import type { SelectionMeta } from '../selection/types.js';
27
27
  export declare class EntityHandle<T extends object = object, TSelected = T> extends EntityRelatedHandle {
28
28
  private readonly schema;
29
29
  private readonly selection?;
30
+ private readonly entityPath;
30
31
  /** Cache for field handles to ensure stable identity */
31
32
  private readonly fieldHandleCache;
32
33
  /** Cache for relation handles */
@@ -34,9 +35,14 @@ export declare class EntityHandle<T extends object = object, TSelected = T> exte
34
35
  /** Runtime brand symbols for validation */
35
36
  readonly __brands?: Set<symbol>;
36
37
  private constructor();
37
- static create<T extends object = object, TSelected = T>(id: string, entityType: string, store: SnapshotStore, dispatcher: ActionDispatcher, schema: SchemaRegistry, brands?: Set<symbol>, selection?: SelectionMeta): EntityAccessor<T, TSelected>;
38
- static createRaw<T extends object = object, TSelected = T>(id: string, entityType: string, store: SnapshotStore, dispatcher: ActionDispatcher, schema: SchemaRegistry, brands?: Set<symbol>, selection?: SelectionMeta): EntityHandle<T, TSelected>;
38
+ static create<T extends object = object, TSelected = T>(id: string, entityType: string, store: SnapshotStore, dispatcher: ActionDispatcher, schema: SchemaRegistry, brands?: Set<symbol>, selection?: SelectionMeta, entityPath?: readonly string[]): EntityAccessor<T, TSelected>;
39
+ static createRaw<T extends object = object, TSelected = T>(id: string, entityType: string, store: SnapshotStore, dispatcher: ActionDispatcher, schema: SchemaRegistry, brands?: Set<symbol>, selection?: SelectionMeta, entityPath?: readonly string[]): EntityHandle<T, TSelected>;
39
40
  static wrapProxy<T extends object, TSelected>(handle: EntityHandle<T, TSelected>): EntityAccessor<T, TSelected>;
41
+ /**
42
+ * Field names the handle's selection exposes, for enumeration. Without a selection
43
+ * nothing is validated and nothing is listed.
44
+ */
45
+ get selectedFieldNames(): readonly string[];
40
46
  get [FIELD_REF_META](): FieldRefMeta;
41
47
  /**
42
48
  * Gets the entity ID.
@@ -47,8 +53,11 @@ export declare class EntityHandle<T extends object = object, TSelected = T> exte
47
53
  */
48
54
  getSnapshot(): EntitySnapshot<T> | undefined;
49
55
  /**
50
- * Gets the current entity data.
56
+ * Gets the current entity data to DISPLAY.
51
57
  * Returns selected fields subset as specified by TSelected type parameter.
58
+ * While a pessimistic persist is in-flight this is the server baseline; the
59
+ * canonical snapshot (see {@link getSnapshot}, used for dirty tracking) stays
60
+ * dirty underneath.
52
61
  */
53
62
  get data(): TSelected | null;
54
63
  /**
@@ -93,11 +102,11 @@ export declare class EntityHandle<T extends object = object, TSelected = T> exte
93
102
  * Gets a field handle for a specific field.
94
103
  * Returns cached handle to ensure stable identity.
95
104
  */
96
- field<K extends keyof T>(fieldName: K): FieldAccessor<T[K]>;
105
+ field<K extends keyof T>(fieldName: K, dataFieldName?: string): FieldAccessor<T[K]>;
97
106
  /**
98
107
  * Gets a has-one relation handle.
99
108
  */
100
- hasOne<TRelated extends object>(fieldName: string, nestedSelection?: SelectionMeta): HasOneAccessor<TRelated>;
109
+ hasOne<TRelated extends object>(fieldName: string, nestedSelection?: SelectionMeta, dataFieldName?: string): HasOneAccessor<TRelated>;
101
110
  /**
102
111
  * Gets a has-many relation handle.
103
112
  *
@@ -1 +1 @@
1
- {"version":3,"file":"EntityHandle.d.ts","sourceRoot":"","sources":["../../src/handles/EntityHandle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EntityHandle.d.ts","sourceRoot":"","sources":["../../src/handles/EntityHandle.ts"],"names":[],"mappings":"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"}
@@ -18,12 +18,14 @@ export declare class FieldHandle<T = unknown> extends EntityRelatedHandle {
18
18
  private readonly fieldPath;
19
19
  private readonly _enumName?;
20
20
  private readonly _columnType?;
21
+ private readonly dataFieldPath;
22
+ private readonly _fullPath;
21
23
  private _cachedInputProps;
22
24
  private _cachedInputPropsValue;
23
25
  private readonly _boundSetValue;
24
26
  private constructor();
25
- static create<T = unknown>(entityType: string, entityId: string, fieldPath: string[], store: SnapshotStore, dispatcher: ActionDispatcher, enumName?: string, columnType?: string): FieldAccessor<T>;
26
- static createRaw<T = unknown>(entityType: string, entityId: string, fieldPath: string[], store: SnapshotStore, dispatcher: ActionDispatcher, enumName?: string, columnType?: string): FieldHandle<T>;
27
+ static create<T = unknown>(entityType: string, entityId: string, fieldPath: string[], store: SnapshotStore, dispatcher: ActionDispatcher, enumName?: string, columnType?: string, dataFieldPath?: string[], fullPath?: readonly string[]): FieldAccessor<T>;
28
+ static createRaw<T = unknown>(entityType: string, entityId: string, fieldPath: string[], store: SnapshotStore, dispatcher: ActionDispatcher, enumName?: string, columnType?: string, dataFieldPath?: string[], fullPath?: readonly string[]): FieldHandle<T>;
27
29
  static wrapProxy<T>(handle: FieldHandle<T>): FieldAccessor<T>;
28
30
  /**
29
31
  * JSX field reference metadata for collection phase.
@@ -31,7 +33,8 @@ export declare class FieldHandle<T = unknown> extends EntityRelatedHandle {
31
33
  */
32
34
  get [FIELD_REF_META](): FieldRefMeta;
33
35
  /**
34
- * Gets the current field value.
36
+ * Gets the current field value to DISPLAY. While a pessimistic persist is
37
+ * in-flight this is the server baseline; otherwise it is the live value.
35
38
  */
36
39
  get value(): T | null;
37
40
  /**
@@ -39,9 +42,13 @@ export declare class FieldHandle<T = unknown> extends EntityRelatedHandle {
39
42
  */
40
43
  get serverValue(): T | null;
41
44
  /**
42
- * Checks if the field has been modified.
45
+ * Checks if the field has been modified. Compares the CANONICAL value against
46
+ * the server value — never the presented value, so a field stays correctly
47
+ * dirty even while its display shows the server baseline mid-pessimistic-persist.
43
48
  */
44
49
  get isDirty(): boolean;
50
+ private getCurrentValue;
51
+ private getServerValue;
45
52
  /**
46
53
  * Checks if the field has been touched (interacted with by the user).
47
54
  * Useful for showing errors only after user interaction.
@@ -1 +1 @@
1
- {"version":3,"file":"FieldHandle.d.ts","sourceRoot":"","sources":["../../src/handles/FieldHandle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FieldHandle.d.ts","sourceRoot":"","sources":["../../src/handles/FieldHandle.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,7 @@ export declare class HasManyListHandle<TEntity extends object = object, TSelecte
18
18
  private readonly itemType;
19
19
  private readonly schema;
20
20
  private readonly selection?;
21
- private itemHandleCacheRaw;
21
+ private readonly relationPath;
22
22
  private itemHandleCacheProxy;
23
23
  /** Runtime brand symbols for validation */
24
24
  readonly __brands?: Set<symbol>;
@@ -39,7 +39,12 @@ export declare class HasManyListHandle<TEntity extends object = object, TSelecte
39
39
  */
40
40
  private readonly alias;
41
41
  private constructor();
42
- static create<TEntity extends object = object, TSelected = TEntity>(parentEntityType: string, parentEntityId: string, fieldName: string, itemType: string, store: SnapshotStore, dispatcher: ActionDispatcher, schema: SchemaRegistry, brands?: Set<symbol>, alias?: string, selection?: SelectionMeta): HasManyAccessor<TEntity, TSelected>;
42
+ static create<TEntity extends object = object, TSelected = TEntity>(parentEntityType: string, parentEntityId: string, fieldName: string, itemType: string, store: SnapshotStore, dispatcher: ActionDispatcher, schema: SchemaRegistry, brands?: Set<symbol>, alias?: string, selection?: SelectionMeta, relationPath?: readonly string[]): HasManyAccessor<TEntity, TSelected>;
43
+ /**
44
+ * Creates the handle without the alias proxy. Mirrors {@link EntityHandle.createRaw}:
45
+ * the class surface (e.g. {@link itemHandleCacheSize}) is not part of HasManyAccessor.
46
+ */
47
+ static createRaw<TEntity extends object = object, TSelected = TEntity>(parentEntityType: string, parentEntityId: string, fieldName: string, itemType: string, store: SnapshotStore, dispatcher: ActionDispatcher, schema: SchemaRegistry, brands?: Set<symbol>, alias?: string, selection?: SelectionMeta, relationPath?: readonly string[]): HasManyListHandle<TEntity, TSelected>;
43
48
  /**
44
49
  * JSX field reference metadata for collection phase.
45
50
  * Implements HasManyRef interface.
@@ -50,8 +55,31 @@ export declare class HasManyListHandle<TEntity extends object = object, TSelecte
50
55
  * Returns selection-aware EntityAccessors that support `item.fieldName.value`.
51
56
  * Includes planned connections and excludes planned removals.
52
57
  * Uses ordered IDs to preserve order including after move() operations.
58
+ *
59
+ * This is also where the item-accessor cache is pruned — see {@link syncItemHandleCache}.
53
60
  */
54
61
  get items(): EntityAccessor<TEntity, TSelected>[];
62
+ /**
63
+ * Canonical cache key for an item id: a temp id follows its temp→persisted rekey, so a
64
+ * lookup by the now-dead temp id reuses the persisted item's handle instead of minting a
65
+ * duplicate for the same entity.
66
+ */
67
+ private resolveItemKey;
68
+ /**
69
+ * Drops cached item accessors for ids that have left the list. Without it the cache keeps an
70
+ * accessor for every id the relation has ever shown, for as long as the parent handle lives
71
+ * — a paginated / filtered / refetched has-many grows without bound.
72
+ *
73
+ * Runs before the accessors are resolved and never touches a live id, so an item that is
74
+ * still listed keeps the exact same proxy and the exact same handle behind it.
75
+ */
76
+ private syncItemHandleCache;
77
+ private canonicalizeItemHandleCache;
78
+ /**
79
+ * @internal Occupancy of the item-accessor cache. Exposed only so eviction tests can
80
+ * assert the cache stays bounded; not part of the HasManyAccessor API.
81
+ */
82
+ get itemHandleCacheSize(): number;
55
83
  /**
56
84
  * Propagates the parent's embedded has-many data into per-item snapshots and
57
85
  * ensures the has-many state exists in the store.
@@ -61,6 +89,12 @@ export declare class HasManyListHandle<TEntity extends object = object, TSelecte
61
89
  * without ever reading `items`, and that path must also see populated data.
62
90
  * Idempotent within a render — guarded by hasEmbeddedDataChanged.
63
91
  *
92
+ * For the same reason EVERY entry point that reads or writes the has-many state
93
+ * calls this first — isDirty and the mutators as well as items/getById. An
94
+ * embedded list has no state in the store until it is materialised, so a
95
+ * consumer that never iterated saw isDirty === false and had its mutation land
96
+ * on a state nobody reads. Keep new entry points on this guard.
97
+ *
64
98
  * @returns false when there is no embedded list data to materialise.
65
99
  */
66
100
  private materializeEmbeddedItems;
@@ -1 +1 @@
1
- {"version":3,"file":"HasManyListHandle.d.ts","sourceRoot":"","sources":["../../src/handles/HasManyListHandle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HasManyListHandle.d.ts","sourceRoot":"","sources":["../../src/handles/HasManyListHandle.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import type { ActionDispatcher } from '../core/ActionDispatcher.js';
3
3
  import type { SnapshotStore } from '../store/SnapshotStore.js';
4
4
  import type { SchemaRegistry } from '../schema/SchemaRegistry.js';
5
5
  import type { SelectionMeta } from '../selection/types.js';
6
- import { FIELD_REF_META, type FieldRefMeta, type EntityFieldsAccessor, type Unsubscribe, type EntityAccessor, type HasOneAccessor } from './types.js';
6
+ import { FIELD_REF_META, type FieldRefMeta, type EntityFieldsAccessor, type Unsubscribe, type EntityAccessor, type HasOneAccessor, type HasOneRelationState } from './types.js';
7
7
  import { type ErrorInput, type FieldError } from '../errors/types.js';
8
8
  import type { EventTypeMap, AfterEventTypes, BeforeEventTypes, EventListener, Interceptor, EntityPersistedEvent, EntityPersistingEvent, RelationConnectedEvent, RelationDisconnectedEvent, RelationConnectingEvent, RelationDisconnectingEvent } from '../events/types.js';
9
9
  import { EntityHandle } from './EntityHandle.js';
@@ -20,6 +20,8 @@ export declare class HasOneHandle<TEntity extends object = object, TSelected = T
20
20
  private readonly targetType;
21
21
  private readonly schema;
22
22
  private readonly selection?;
23
+ private readonly dataFieldName;
24
+ private readonly relationPath;
23
25
  private entityHandleCacheRaw;
24
26
  private entityHandleCacheProxy;
25
27
  private placeholderCacheRaw;
@@ -27,8 +29,8 @@ export declare class HasOneHandle<TEntity extends object = object, TSelected = T
27
29
  /** Runtime brand symbols for validation */
28
30
  readonly __brands?: Set<symbol>;
29
31
  private constructor();
30
- static create<TEntity extends object = object, TSelected = TEntity>(parentEntityType: string, parentEntityId: string, fieldName: string, targetType: string, store: SnapshotStore, dispatcher: ActionDispatcher, schema: SchemaRegistry, brands?: Set<symbol>, selection?: SelectionMeta): HasOneAccessor<TEntity, TSelected>;
31
- static createRaw<TEntity extends object = object, TSelected = TEntity>(parentEntityType: string, parentEntityId: string, fieldName: string, targetType: string, store: SnapshotStore, dispatcher: ActionDispatcher, schema: SchemaRegistry, brands?: Set<symbol>, selection?: SelectionMeta): HasOneHandle<TEntity, TSelected>;
32
+ static create<TEntity extends object = object, TSelected = TEntity>(parentEntityType: string, parentEntityId: string, fieldName: string, targetType: string, store: SnapshotStore, dispatcher: ActionDispatcher, schema: SchemaRegistry, brands?: Set<symbol>, selection?: SelectionMeta, dataFieldName?: string, relationPath?: readonly string[]): HasOneAccessor<TEntity, TSelected>;
33
+ static createRaw<TEntity extends object = object, TSelected = TEntity>(parentEntityType: string, parentEntityId: string, fieldName: string, targetType: string, store: SnapshotStore, dispatcher: ActionDispatcher, schema: SchemaRegistry, brands?: Set<symbol>, selection?: SelectionMeta, dataFieldName?: string, relationPath?: readonly string[]): HasOneHandle<TEntity, TSelected>;
32
34
  static wrapProxy<TEntity extends object, TSelected>(handle: HasOneHandle<TEntity, TSelected>): HasOneAccessor<TEntity, TSelected>;
33
35
  /**
34
36
  * JSX field reference metadata for collection phase.
@@ -41,16 +43,57 @@ export declare class HasOneHandle<TEntity extends object = object, TSelected = T
41
43
  subscribe(callback: () => void): () => void;
42
44
  /**
43
45
  * Gets the relation state.
44
- * Falls back to snapshot data when no explicit relation state exists,
45
- * so server-loaded has-one relations report 'connected' without
46
- * requiring a prior RelationStore entry.
46
+ * Materializes the RelationStore entry from embedded snapshot data first, so a
47
+ * server-loaded has-one reports 'connected' without a prior explicit entry.
47
48
  */
48
- get state(): 'connected' | 'disconnected' | 'deleted' | 'creating';
49
+ get state(): HasOneRelationState;
49
50
  /**
50
- * Gets the current related entity ID.
51
- * Falls back to entity data if relation state is not initialized.
51
+ * Gets the current related entity ID — read exclusively from the RelationStore
52
+ * after materializing the entry from embedded snapshot data.
52
53
  */
53
54
  get relatedId(): string | null;
55
+ /**
56
+ * Materializes this has-one's RelationStore entry from the parent's embedded
57
+ * snapshot data, so the store is the single source of truth (symmetric with
58
+ * {@link HasManyListHandle.materializeEmbeddedItems}).
59
+ *
60
+ * Only the relation entry is touched here — child-snapshot propagation stays in
61
+ * {@link ensureRelatedEntitySnapshot}, which owns the per-relation propagation
62
+ * slot so the two paths never double-consume it.
63
+ *
64
+ * - No entry yet + the parent embeds a related object with an id → create a
65
+ * `connected` entry (non-notifying) whose server baseline comes from the
66
+ * parent's serverData, so a freshly loaded relation is not dirty
67
+ * (currentId === serverId, state === serverState).
68
+ * - Existing entry + parent re-fetch (embedded reference changed) that is NOT
69
+ * locally dirty → advance the server baseline to the new related id.
70
+ * - A local connect/disconnect, a placeholder, or a `creating` entry is left
71
+ * untouched — it is detected as a locally-dirty relation.
72
+ * - No embedded data and no entry → the relation stays unmaterialized (null).
73
+ */
74
+ private ensureEntry;
75
+ /**
76
+ * On a parent re-fetch (embedded reference changed) advances the relation's
77
+ * server baseline to the embedded related id, but only when the relation is
78
+ * not locally dirty — a local connect/disconnect/create must survive a re-fetch.
79
+ *
80
+ * Does NOT consume the propagation slot — {@link ensureRelatedEntitySnapshot}
81
+ * owns it. The same reference-change signal drives both, so both run within the
82
+ * one render that observes a new parent reference.
83
+ *
84
+ * The baseline write is NON-NOTIFYING: it runs during a render-phase read, and
85
+ * the parent re-fetch that produced the new embedded reference already notified
86
+ * subscribers. Notifying again here would mutate the store and synchronously call
87
+ * subscribers mid-render, violating the external-store contract (cf.
88
+ * {@link ensureRelatedEntitySnapshot}, which refreshes server data with skipNotify
89
+ * for the same reason).
90
+ */
91
+ private advanceServerBaselineOnRefetch;
92
+ private isLocallyDirty;
93
+ /** Reads the embedded related object from the parent's canonical current data. */
94
+ private readEmbeddedRelatedData;
95
+ /** Extracts the related id from the parent's embedded server data, or null. */
96
+ private readServerRelatedId;
54
97
  /**
55
98
  * Gets the related entity ID.
56
99
  * Returns the actual ID if connected, or placeholder ID if disconnected.
@@ -1 +1 @@
1
- {"version":3,"file":"HasOneHandle.d.ts","sourceRoot":"","sources":["../../src/handles/HasOneHandle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HasOneHandle.d.ts","sourceRoot":"","sources":["../../src/handles/HasOneHandle.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { ActionDispatcher } from '../core/ActionDispatcher.js';
2
2
  import type { SnapshotStore } from '../store/SnapshotStore.js';
3
- import { type EntityFieldsAccessor, type Unsubscribe, type EntityAccessor } from './types.js';
3
+ import { FIELD_REF_META, type EntityFieldsAccessor, type FieldRefMeta, type Unsubscribe, type EntityAccessor } from './types.js';
4
4
  import type { ErrorInput, FieldError } from '../errors/types.js';
5
5
  import type { EventTypeMap, AfterEventTypes, BeforeEventTypes, EventListener, Interceptor, EntityPersistedEvent, EntityPersistingEvent } from '../events/types.js';
6
6
  import type { SchemaRegistry } from '../schema/SchemaRegistry.js';
@@ -14,12 +14,13 @@ import type { SchemaRegistry } from '../schema/SchemaRegistry.js';
14
14
  */
15
15
  export declare class PlaceholderHandle<TEntity extends object = object, TSelected = TEntity> {
16
16
  private readonly parentEntityType;
17
- private readonly parentEntityId;
17
+ private readonly sourceParentEntityId;
18
18
  private readonly fieldName;
19
19
  private readonly targetType;
20
20
  private readonly store;
21
21
  private readonly dispatcher;
22
22
  private readonly schema;
23
+ private readonly relationPath;
23
24
  /** Runtime brand symbols for validation */
24
25
  readonly __brands?: Set<symbol>;
25
26
  /** Placeholder ID for this handle */
@@ -29,10 +30,21 @@ export declare class PlaceholderHandle<TEntity extends object = object, TSelecte
29
30
  * (the first time a child is added to one of its has-many relations). Lazily minted.
30
31
  */
31
32
  private materializedId;
33
+ private readonly pendingEventSubscriptions;
34
+ private pendingRelationUnsubscribe;
32
35
  private constructor();
33
- static create<TEntity extends object = object, TSelected = TEntity>(parentEntityType: string, parentEntityId: string, fieldName: string, targetType: string, store: SnapshotStore, dispatcher: ActionDispatcher, schema?: SchemaRegistry | null, brands?: Set<symbol>): EntityAccessor<TEntity, TSelected>;
34
- static createRaw<TEntity extends object = object, TSelected = TEntity>(parentEntityType: string, parentEntityId: string, fieldName: string, targetType: string, store: SnapshotStore, dispatcher: ActionDispatcher, schema?: SchemaRegistry | null, brands?: Set<symbol>): PlaceholderHandle<TEntity, TSelected>;
36
+ private get parentEntityId();
37
+ private get currentEntityId();
38
+ private findCurrentEntityId;
39
+ private watchPendingMaterialization;
40
+ private activatePendingEventSubscriptions;
41
+ private stopWatchingMaterializationWhenIdle;
42
+ static create<TEntity extends object = object, TSelected = TEntity>(parentEntityType: string, parentEntityId: string, fieldName: string, targetType: string, store: SnapshotStore, dispatcher: ActionDispatcher, schema?: SchemaRegistry | null, brands?: Set<symbol>, relationPath?: readonly string[]): EntityAccessor<TEntity, TSelected>;
43
+ static createRaw<TEntity extends object = object, TSelected = TEntity>(parentEntityType: string, parentEntityId: string, fieldName: string, targetType: string, store: SnapshotStore, dispatcher: ActionDispatcher, schema?: SchemaRegistry | null, brands?: Set<symbol>, relationPath?: readonly string[]): PlaceholderHandle<TEntity, TSelected>;
35
44
  static wrapProxy<TEntity extends object, TSelected>(handle: PlaceholderHandle<TEntity, TSelected>): EntityAccessor<TEntity, TSelected>;
45
+ /** A placeholder carries no selection, so enumeration lists nothing beyond `id`. */
46
+ get selectedFieldNames(): readonly string[];
47
+ get [FIELD_REF_META](): FieldRefMeta;
36
48
  /**
37
49
  * Gets the placeholder ID.
38
50
  */
@@ -52,7 +64,7 @@ export declare class PlaceholderHandle<TEntity extends object = object, TSelecte
52
64
  /**
53
65
  * Placeholder entities are always new (not yet persisted).
54
66
  */
55
- get persistedId(): null;
67
+ get persistedId(): string | null;
56
68
  /**
57
69
  * Placeholder entities are always new.
58
70
  */
@@ -128,20 +140,20 @@ export declare class PlaceholderHandle<TEntity extends object = object, TSelecte
128
140
  */
129
141
  clearAllErrors(): void;
130
142
  /**
131
- * No-op for placeholder entities.
143
+ * Activates the subscription when the placeholder materializes.
132
144
  */
133
- on<E extends AfterEventTypes>(_eventType: E, _listener: EventListener<EventTypeMap[E]>): Unsubscribe;
145
+ on<E extends AfterEventTypes>(eventType: E, listener: EventListener<EventTypeMap[E]>): Unsubscribe;
134
146
  /**
135
- * No-op for placeholder entities.
147
+ * Activates the interceptor when the placeholder materializes.
136
148
  */
137
- intercept<E extends BeforeEventTypes>(_eventType: E, _interceptor: Interceptor<EventTypeMap[E]>): Unsubscribe;
149
+ intercept<E extends BeforeEventTypes>(eventType: E, interceptor: Interceptor<EventTypeMap[E]>): Unsubscribe;
138
150
  /**
139
- * No-op for placeholder entities.
151
+ * Subscribes to persistence after materialization.
140
152
  */
141
- onPersisted(_listener: EventListener<EntityPersistedEvent>): Unsubscribe;
153
+ onPersisted(listener: EventListener<EntityPersistedEvent>): Unsubscribe;
142
154
  /**
143
- * No-op for placeholder entities.
155
+ * Intercepts persistence after materialization.
144
156
  */
145
- interceptPersisting(_interceptor: Interceptor<EntityPersistingEvent>): Unsubscribe;
157
+ interceptPersisting(interceptor: Interceptor<EntityPersistingEvent>): Unsubscribe;
146
158
  }
147
159
  //# sourceMappingURL=PlaceholderHandle.d.ts.map