@ifc-lite/mutations 1.22.0 → 1.24.0
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.
- package/dist/change-set-to-ops.d.ts.map +1 -1
- package/dist/change-set-to-ops.js +12 -0
- package/dist/change-set-to-ops.js.map +1 -1
- package/dist/effective-changes.d.ts +60 -0
- package/dist/effective-changes.d.ts.map +1 -0
- package/dist/effective-changes.js +277 -0
- package/dist/effective-changes.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/mutable-property-view.d.ts +137 -6
- package/dist/mutable-property-view.d.ts.map +1 -1
- package/dist/mutable-property-view.js +424 -17
- package/dist/mutable-property-view.js.map +1 -1
- package/dist/types.d.ts +49 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +2 -2
|
@@ -9,7 +9,9 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import type { PropertyTable, PropertySet, QuantitySet } from '@ifc-lite/data';
|
|
11
11
|
import { PropertyValueType, QuantityType } from '@ifc-lite/data';
|
|
12
|
-
import type { IfcAttributeValue, PropertyValue, EntityTypeMutation, Mutation, NewEntity } from './types.js';
|
|
12
|
+
import type { IfcAttributeValue, PropertyValue, EntityTypeMutation, Mutation, NewEntity, EffectiveChange } from './types.js';
|
|
13
|
+
import { type AttributeExtractor } from './effective-changes.js';
|
|
14
|
+
export type { AttributeExtractor } from './effective-changes.js';
|
|
13
15
|
/**
|
|
14
16
|
* Function type for on-demand property extraction
|
|
15
17
|
* Allows globalId to be optional to match extractPropertiesOnDemand return type
|
|
@@ -32,6 +34,7 @@ export declare class MutablePropertyView {
|
|
|
32
34
|
private baseTable;
|
|
33
35
|
private onDemandExtractor;
|
|
34
36
|
private quantityExtractor;
|
|
37
|
+
private attributeExtractor;
|
|
35
38
|
private propertyMutations;
|
|
36
39
|
private quantityMutations;
|
|
37
40
|
/**
|
|
@@ -53,6 +56,39 @@ export declare class MutablePropertyView {
|
|
|
53
56
|
private typeMutations;
|
|
54
57
|
private newEntities;
|
|
55
58
|
private tombstones;
|
|
59
|
+
/**
|
|
60
|
+
* Ids `createEntity` allocated and `deleteEntity` then forgot (removed from
|
|
61
|
+
* `newEntities`, per that method's "existing entities are tombstoned; new
|
|
62
|
+
* entities are simply forgotten" contract). Tracked separately so
|
|
63
|
+
* `getEffectiveChanges()` / `collectEffectiveChanges` can tell "overlay-created
|
|
64
|
+
* then forgotten" apart from "an ordinary source-buffer entity" — both are
|
|
65
|
+
* otherwise indistinguishable, being simply absent from `newEntities`.
|
|
66
|
+
* `restoreNewEntity` (the undo-of-delete counterpart) clears the id back out.
|
|
67
|
+
*/
|
|
68
|
+
private forgottenCreatedEntities;
|
|
69
|
+
/**
|
|
70
|
+
* Snapshot of a forgotten-created entity's overlay rows, stashed by
|
|
71
|
+
* `deleteEntity` and restored by `restoreNewEntity`.
|
|
72
|
+
*
|
|
73
|
+
* `deleteEntity` on an overlay-created entity does more than drop it from
|
|
74
|
+
* `newEntities` — it also PURGES every other overlay entry the entity left
|
|
75
|
+
* behind (property/quantity/attribute/positional/type mutations, its
|
|
76
|
+
* `newPsets`/`newQsets` entries, and its own `mutationHistory` records).
|
|
77
|
+
* Without that purge, an entity that was created, edited, then deleted
|
|
78
|
+
* before export left a dangling reference: `StepExporter` derives its
|
|
79
|
+
* property/quantity work list from `getMutations()` (the append-only
|
|
80
|
+
* history) and reads `getForEntity()` / `getQuantitiesForEntity()` straight
|
|
81
|
+
* off `newPsets` / `newQsets` — neither of which the review-side
|
|
82
|
+
* `forgottenCreatedEntities` filter in `effective-changes.ts` touches. The
|
|
83
|
+
* review dialog looked clean while the exported file still contained an
|
|
84
|
+
* `IFCPROPERTYSET` + `IFCRELDEFINESBYPROPERTIES` pointing at an expressId
|
|
85
|
+
* that was never actually created (maintainer finding on #1967).
|
|
86
|
+
*
|
|
87
|
+
* The purged data is captured here, not discarded, because `restoreNewEntity`
|
|
88
|
+
* (undo of the delete) must bring it all back — rows AND count AND what the
|
|
89
|
+
* exporter would see — not just re-add the bare `NewEntity` record.
|
|
90
|
+
*/
|
|
91
|
+
private forgottenEntityOverlay;
|
|
56
92
|
/**
|
|
57
93
|
* Overlay-entity → source-entity aliases for property/quantity reads.
|
|
58
94
|
*
|
|
@@ -98,6 +134,14 @@ export declare class MutablePropertyView {
|
|
|
98
134
|
* Set an on-demand quantity extractor function
|
|
99
135
|
*/
|
|
100
136
|
setQuantityExtractor(extractor: QuantityExtractor): void;
|
|
137
|
+
/**
|
|
138
|
+
* Set the base entity-attribute extractor (Name, Description, ObjectType,
|
|
139
|
+
* Tag, ...), used only to resolve `previousValue` in `getEffectiveChanges()`.
|
|
140
|
+
* Without one, attribute `previousValue` falls back to whatever `oldValue`
|
|
141
|
+
* the overlay entry itself carries — which undo can leave stale/absent (see
|
|
142
|
+
* `getEffectiveChanges()` doc).
|
|
143
|
+
*/
|
|
144
|
+
setAttributeExtractor(extractor: AttributeExtractor): void;
|
|
101
145
|
/**
|
|
102
146
|
* Get base properties for an entity (before mutations)
|
|
103
147
|
* Uses on-demand extraction if available, otherwise falls back to base table.
|
|
@@ -224,9 +268,24 @@ export declare class MutablePropertyView {
|
|
|
224
268
|
*/
|
|
225
269
|
createEntity(type: string, attributes: IfcAttributeValue[]): NewEntity;
|
|
226
270
|
/**
|
|
227
|
-
* Mark an entity for deletion.
|
|
228
|
-
*
|
|
229
|
-
*
|
|
271
|
+
* Mark an entity for deletion. Returns false if the id is unknown to this
|
|
272
|
+
* view, or was already tombstoned.
|
|
273
|
+
*
|
|
274
|
+
* An overlay-created entity is dropped from `newEntities` — so it is emitted
|
|
275
|
+
* nowhere, which is the right answer for something created and deleted in one
|
|
276
|
+
* session — AND tombstoned, so `isDeleted` tells the truth about it.
|
|
277
|
+
*
|
|
278
|
+
* It used to be only forgotten, and that made `isDeleted` lie: every guard
|
|
279
|
+
* that asks "was this deleted" got `false` for an entity that no longer
|
|
280
|
+
* exists, so the export still emitted the `IFCRELDEFINESBYPROPERTIES` for a
|
|
281
|
+
* pset queued on it, dangling at a record nothing wrote (#2012). Forgetting
|
|
282
|
+
* without tombstoning cannot be made safe one guard at a time, because the
|
|
283
|
+
* question the guards ask has no true answer to find.
|
|
284
|
+
*
|
|
285
|
+
* Consumers that count entities must therefore intersect tombstones with the
|
|
286
|
+
* source store rather than subtracting `tombstones.size` wholesale — a
|
|
287
|
+
* created-then-deleted id is absent from BOTH the store and `getNewEntities`,
|
|
288
|
+
* so counting it as a deletion would subtract it twice.
|
|
230
289
|
*/
|
|
231
290
|
deleteEntity(expressId: number): boolean;
|
|
232
291
|
/** Returns all overlay-created entities in insertion order. */
|
|
@@ -268,6 +327,26 @@ export declare class MutablePropertyView {
|
|
|
268
327
|
* restore (the slice's undo stack does this).
|
|
269
328
|
*/
|
|
270
329
|
restoreNewEntity(entity: NewEntity): void;
|
|
330
|
+
/**
|
|
331
|
+
* Move every current overlay entry for `expressId` out of the live maps
|
|
332
|
+
* and into `forgottenEntityOverlay`, and drop this entity's own records
|
|
333
|
+
* from `mutationHistory`. Called by `deleteEntity` when it forgets a
|
|
334
|
+
* created entity. Only stashes a key if something was actually captured,
|
|
335
|
+
* so `unstashEntityOverlay` on a plain (never-edited) create is a no-op.
|
|
336
|
+
*/
|
|
337
|
+
private stashAndPurgeEntityOverlay;
|
|
338
|
+
/**
|
|
339
|
+
* Reverse `stashAndPurgeEntityOverlay`: put everything `deleteEntity`
|
|
340
|
+
* purged back into the live overlay maps. Called by `restoreNewEntity`.
|
|
341
|
+
* A no-op if nothing was stashed for `expressId`.
|
|
342
|
+
*/
|
|
343
|
+
private unstashEntityOverlay;
|
|
344
|
+
/**
|
|
345
|
+
* Every express id this session deleted — source-buffer entities AND ones it
|
|
346
|
+
* created and then deleted. The two are not distinguishable from this set
|
|
347
|
+
* alone; a caller that needs to tell them apart intersects it with the store's
|
|
348
|
+
* own index (see `deleteEntity`).
|
|
349
|
+
*/
|
|
271
350
|
getTombstones(): Set<number>;
|
|
272
351
|
/**
|
|
273
352
|
* Get mutated attributes for an entity.
|
|
@@ -305,7 +384,24 @@ export declare class MutablePropertyView {
|
|
|
305
384
|
*/
|
|
306
385
|
getMutationsForEntity(entityId: number): Mutation[];
|
|
307
386
|
/**
|
|
308
|
-
* Check if an entity
|
|
387
|
+
* Check if an entity currently carries an overlay change.
|
|
388
|
+
*
|
|
389
|
+
* Reads the live overlay (same footprint as {@link hasPendingChanges}),
|
|
390
|
+
* NOT the append-only `mutationHistory` — undo does not pop history (see
|
|
391
|
+
* `getMutations()`), so a history-based check could report `true` for an
|
|
392
|
+
* entity whose edit was fully undone. Called with no `entityId`, this is
|
|
393
|
+
* exactly {@link hasPendingChanges}.
|
|
394
|
+
*
|
|
395
|
+
* Unlike {@link getModifiedEntityCount} (derived from
|
|
396
|
+
* {@link getEffectiveChanges} so it can't diverge), this is a direct
|
|
397
|
+
* per-entity map lookup kept O(1)-ish for callers that probe many entities
|
|
398
|
+
* (e.g. a per-row "has changes" indicator) — re-deriving effective changes
|
|
399
|
+
* per call would be O(overlay size) each time. That means it can still
|
|
400
|
+
* report `true` for an entity whose only overlay entry is a no-op edit
|
|
401
|
+
* (undo landed it back at the base value, so `previousValue === newValue`
|
|
402
|
+
* — see {@link getEffectiveChanges}'s doc). Over-reporting here is the same
|
|
403
|
+
* safe direction {@link hasPendingChanges} already documents; nothing in
|
|
404
|
+
* this repo reads this per-entity form in production as of #1967.
|
|
309
405
|
*/
|
|
310
406
|
hasChanges(entityId?: number): boolean;
|
|
311
407
|
/**
|
|
@@ -325,9 +421,44 @@ export declare class MutablePropertyView {
|
|
|
325
421
|
*/
|
|
326
422
|
hasPendingChanges(): boolean;
|
|
327
423
|
/**
|
|
328
|
-
* Get count of modified entities
|
|
424
|
+
* Get count of modified entities.
|
|
425
|
+
*
|
|
426
|
+
* Reads the live overlay, NOT `mutationHistory` (issue #1915): undo does
|
|
427
|
+
* not pop history, so a history-based count could over-report — e.g. after
|
|
428
|
+
* `setAttribute` + `removeAttributeMutation` (exactly what undoing a
|
|
429
|
+
* freshly-created attribute mutation does), the overlay is empty again but
|
|
430
|
+
* history still holds the one entry. This must agree with
|
|
431
|
+
* {@link hasPendingChanges}: zero here iff that is `false`.
|
|
432
|
+
*
|
|
433
|
+
* Must also agree with {@link getEffectiveChanges} — an entity contributing
|
|
434
|
+
* zero effective rows (a create -> edit -> delete `deleteEntity` forgot, or
|
|
435
|
+
* an edit fully undone back to its base value) must not be counted here
|
|
436
|
+
* either. `collectModifiedEntityIds` is deliberately DERIVED FROM
|
|
437
|
+
* `getEffectiveChanges()` rather than hand-walking the overlay maps a
|
|
438
|
+
* second time, so the two structurally cannot diverge again (issue: the
|
|
439
|
+
* #1915 forgotten-created blind spot, and the #1967 no-op-edit blind spot
|
|
440
|
+
* that a second hand-rolled walk reintroduced).
|
|
329
441
|
*/
|
|
330
442
|
getModifiedEntityCount(): number;
|
|
443
|
+
/** Distinct entity ids with at least one row in {@link getEffectiveChanges}. */
|
|
444
|
+
private collectModifiedEntityIds;
|
|
445
|
+
/**
|
|
446
|
+
* Enumerate every change the overlay currently carries, as it stands right
|
|
447
|
+
* now — never from `mutationHistory` (see {@link getModifiedEntityCount}).
|
|
448
|
+
* This is what the export-review UI (issue #1915) and any snapshot test
|
|
449
|
+
* should read: `previousValue` is derived from the base data (property
|
|
450
|
+
* table / on-demand extractor / attribute extractor), so an undo→redo
|
|
451
|
+
* cycle reports the true original, not a stale history entry.
|
|
452
|
+
*
|
|
453
|
+
* Whole-pset/qset deletes and creates are reported as a single
|
|
454
|
+
* `pset-added` / `pset-deleted` / `qset-added` / `qset-deleted` row rather
|
|
455
|
+
* than one row per property/quantity inside them (deletePropertySet /
|
|
456
|
+
* createPropertySet also populate individual property/quantity mutations
|
|
457
|
+
* internally — those are intentionally not double-reported here).
|
|
458
|
+
*
|
|
459
|
+
* Deterministic ordering: entityId, then kind, then name, then setName.
|
|
460
|
+
*/
|
|
461
|
+
getEffectiveChanges(): EffectiveChange[];
|
|
331
462
|
/**
|
|
332
463
|
* Clear all mutations (reset to base state)
|
|
333
464
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutable-property-view.d.ts","sourceRoot":"","sources":["../src/mutable-property-view.ts"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAY,WAAW,EAAY,MAAM,gBAAgB,CAAC;AAClG,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAyD,kBAAkB,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"mutable-property-view.d.ts","sourceRoot":"","sources":["../src/mutable-property-view.ts"],"names":[],"mappings":"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"}
|