@ifc-lite/mutations 2.0.0 → 2.2.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/apply-mutations.d.ts +47 -0
- package/dist/apply-mutations.d.ts.map +1 -0
- package/dist/apply-mutations.js +182 -0
- package/dist/apply-mutations.js.map +1 -0
- package/dist/bulk-query-engine.d.ts +2 -4
- package/dist/bulk-query-engine.d.ts.map +1 -1
- package/dist/bulk-query-engine.js +2 -1
- package/dist/bulk-query-engine.js.map +1 -1
- package/dist/cooperative-clone.d.ts +4 -0
- package/dist/cooperative-clone.d.ts.map +1 -0
- package/dist/cooperative-clone.js +93 -0
- package/dist/cooperative-clone.js.map +1 -0
- package/dist/cooperative-control.d.ts +17 -0
- package/dist/cooperative-control.d.ts.map +1 -0
- package/dist/cooperative-control.js +67 -0
- package/dist/cooperative-control.js.map +1 -0
- package/dist/cooperative-operation-types.d.ts +53 -0
- package/dist/cooperative-operation-types.d.ts.map +1 -0
- package/dist/cooperative-operation-types.js +2 -0
- package/dist/cooperative-operation-types.js.map +1 -0
- package/dist/cooperative-overlay-access.d.ts +14 -0
- package/dist/cooperative-overlay-access.d.ts.map +1 -0
- package/dist/cooperative-overlay-access.js +12 -0
- package/dist/cooperative-overlay-access.js.map +1 -0
- package/dist/execute-entity-operation.d.ts +6 -0
- package/dist/execute-entity-operation.d.ts.map +1 -0
- package/dist/execute-entity-operation.js +39 -0
- package/dist/execute-entity-operation.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/mutable-overlay-state.d.ts +143 -0
- package/dist/mutable-overlay-state.d.ts.map +1 -0
- package/dist/mutable-overlay-state.js +115 -0
- package/dist/mutable-overlay-state.js.map +1 -0
- package/dist/mutable-property-view.d.ts +62 -86
- package/dist/mutable-property-view.d.ts.map +1 -1
- package/dist/mutable-property-view.js +131 -238
- package/dist/mutable-property-view.js.map +1 -1
- package/dist/overlay-value-equality.d.ts +3 -0
- package/dist/overlay-value-equality.d.ts.map +1 -0
- package/dist/overlay-value-equality.js +52 -0
- package/dist/overlay-value-equality.js.map +1 -0
- package/dist/prepare-entity-operations.d.ts +7 -0
- package/dist/prepare-entity-operations.d.ts.map +1 -0
- package/dist/prepare-entity-operations.js +117 -0
- package/dist/prepare-entity-operations.js.map +1 -0
- package/dist/store-editor.d.ts +12 -14
- package/dist/store-editor.d.ts.map +1 -1
- package/dist/store-editor.js +42 -0
- package/dist/store-editor.js.map +1 -1
- package/dist/types.d.ts +11 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +3 -2
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The mutation-replay engine behind `MutablePropertyView.applyMutations` —
|
|
3
|
+
* pulled out into its own module since the switch over `Mutation['type']`
|
|
4
|
+
* is a large, self-contained dispatcher that only calls the view's already
|
|
5
|
+
* PUBLIC methods (`setProperty`, `deleteProperty`, ...). The two spots that
|
|
6
|
+
* touch the view's private state (`newEntities`, `deletedQsets`) are passed
|
|
7
|
+
* in as narrow callbacks so this file never needs those fields exposed.
|
|
8
|
+
*/
|
|
9
|
+
import { QuantityType } from '@ifc-lite/data';
|
|
10
|
+
import type { PropertyValueType } from '@ifc-lite/data';
|
|
11
|
+
import type { IfcAttributeValue, PropertyValue, Mutation } from './types.js';
|
|
12
|
+
/**
|
|
13
|
+
* The subset of `MutablePropertyView`'s public API `applyMutationsBatch`
|
|
14
|
+
* dispatches into. Declared structurally (rather than importing the class)
|
|
15
|
+
* so this module has no circular dependency on `mutable-property-view.ts`.
|
|
16
|
+
*/
|
|
17
|
+
export interface MutationApplyTarget {
|
|
18
|
+
setProperty(entityId: number, psetName: string, propName: string, newValue: PropertyValue, valueType?: PropertyValueType): unknown;
|
|
19
|
+
deleteProperty(entityId: number, psetName: string, propName: string): unknown;
|
|
20
|
+
deletePropertySet(entityId: number, psetName: string): unknown;
|
|
21
|
+
deleteQuantitySet(entityId: number, qsetName: string): unknown;
|
|
22
|
+
setQuantity(entityId: number, qsetName: string, quantName: string, value: number, quantityType: QuantityType, unit?: string): unknown;
|
|
23
|
+
createQuantitySet(entityId: number, qsetName: string, quantities: Array<{
|
|
24
|
+
name: string;
|
|
25
|
+
value: number;
|
|
26
|
+
quantityType: QuantityType;
|
|
27
|
+
unit?: string;
|
|
28
|
+
}>): unknown;
|
|
29
|
+
setPositionalAttribute(entityId: number, index: number, value: IfcAttributeValue): unknown;
|
|
30
|
+
setEntityType(entityId: number, entityType: string, predefinedType: string | null, oldValue?: string): unknown;
|
|
31
|
+
setAttribute(entityId: number, attributeName: string, newValue: string, oldValue?: string): unknown;
|
|
32
|
+
createPropertySet(entityId: number, psetName: string, properties: Array<{
|
|
33
|
+
name: string;
|
|
34
|
+
value: PropertyValue;
|
|
35
|
+
type?: PropertyValueType;
|
|
36
|
+
unit?: string;
|
|
37
|
+
}>): unknown;
|
|
38
|
+
deleteEntity(expressId: number): unknown;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Apply a batch of mutations (e.g., from imported change set) against
|
|
42
|
+
* `target`. `hasNewEntity` and `markQuantitySetDeleted` give this function
|
|
43
|
+
* the two bits of the view's private state the dispatcher needs without
|
|
44
|
+
* exposing those fields publicly.
|
|
45
|
+
*/
|
|
46
|
+
export declare function applyMutationsBatch(target: MutationApplyTarget, mutations: Mutation[], hasNewEntity: (entityId: number) => boolean, markQuantitySetDeleted: (entityId: number, qsetName: string) => void): void;
|
|
47
|
+
//# sourceMappingURL=apply-mutations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apply-mutations.d.ts","sourceRoot":"","sources":["../src/apply-mutations.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE7E;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,WAAW,CACT,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,aAAa,EACvB,SAAS,CAAC,EAAE,iBAAiB,GAC5B,OAAO,CAAC;IACX,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAC9E,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAC/D,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAC/D,WAAW,CACT,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,YAAY,EAC1B,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC;IACX,iBAAiB,CACf,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,YAAY,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAC5F,OAAO,CAAC;IACX,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC;IAC3F,aAAa,CACX,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,GAAG,IAAI,EAC7B,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC;IACX,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACpG,iBAAiB,CACf,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,aAAa,CAAC;QAAC,IAAI,CAAC,EAAE,iBAAiB,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GACjG,OAAO,CAAC;IACX,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1C;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,mBAAmB,EAC3B,SAAS,EAAE,QAAQ,EAAE,EACrB,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,EAC3C,sBAAsB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,GACnE,IAAI,CAoNN"}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
+
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
|
+
/**
|
|
5
|
+
* The mutation-replay engine behind `MutablePropertyView.applyMutations` —
|
|
6
|
+
* pulled out into its own module since the switch over `Mutation['type']`
|
|
7
|
+
* is a large, self-contained dispatcher that only calls the view's already
|
|
8
|
+
* PUBLIC methods (`setProperty`, `deleteProperty`, ...). The two spots that
|
|
9
|
+
* touch the view's private state (`newEntities`, `deletedQsets`) are passed
|
|
10
|
+
* in as narrow callbacks so this file never needs those fields exposed.
|
|
11
|
+
*/
|
|
12
|
+
import { QuantityType } from '@ifc-lite/data';
|
|
13
|
+
/**
|
|
14
|
+
* Apply a batch of mutations (e.g., from imported change set) against
|
|
15
|
+
* `target`. `hasNewEntity` and `markQuantitySetDeleted` give this function
|
|
16
|
+
* the two bits of the view's private state the dispatcher needs without
|
|
17
|
+
* exposing those fields publicly.
|
|
18
|
+
*/
|
|
19
|
+
export function applyMutationsBatch(target, mutations, hasNewEntity, markQuantitySetDeleted) {
|
|
20
|
+
// CREATE_ENTITY records are skipped (callers must restore the
|
|
21
|
+
// payload via restoreNewEntity). Track the ids we've skipped so a
|
|
22
|
+
// matching DELETE_ENTITY in the same batch doesn't tombstone an
|
|
23
|
+
// entity that never made it into this view — that stale tombstone
|
|
24
|
+
// would later suppress a freshly-allocated overlay entity reusing
|
|
25
|
+
// the same expressId.
|
|
26
|
+
// Pass 1: collect every CREATE_ENTITY id up front, over the whole
|
|
27
|
+
// array, before applying anything. CREATE_ENTITY is unconditionally
|
|
28
|
+
// skipped below (every id it's called for lands here) — but a caller
|
|
29
|
+
// supplying an arbitrary (e.g. imported/merged) Mutation[] may not have
|
|
30
|
+
// its CREATE_ENTITY appear before the mutations that depend on it. A
|
|
31
|
+
// single incremental forward pass would only "see" a create once the
|
|
32
|
+
// loop reaches it, so a dependent mutation earlier in the array would
|
|
33
|
+
// replay before its own entity's creation was known to be skipped —
|
|
34
|
+
// reproducing the orphaned-pset bug via ordering instead of via the
|
|
35
|
+
// original bug shape. Doing the full collection first makes the result
|
|
36
|
+
// order-independent.
|
|
37
|
+
const skippedCreateIds = new Set();
|
|
38
|
+
for (const mutation of mutations) {
|
|
39
|
+
if (mutation.type === 'CREATE_ENTITY') {
|
|
40
|
+
skippedCreateIds.add(mutation.entityId);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
// Pass 2: apply mutations against the now-complete skip set.
|
|
44
|
+
for (const mutation of mutations) {
|
|
45
|
+
// Any mutation recorded against an entity whose own CREATE_ENTITY was
|
|
46
|
+
// skipped above would otherwise replay into an orphan — a pset (or
|
|
47
|
+
// attribute/quantity/type edit) keyed to an expressId that exists in
|
|
48
|
+
// neither the source buffer nor `newEntities`. Refuse those too, so
|
|
49
|
+
// the round trip is lossy (entity + its edits both dropped) rather
|
|
50
|
+
// than corrupting (edits surviving without their entity). This keys
|
|
51
|
+
// off `skippedCreateIds`, not "id absent from newEntities", so a
|
|
52
|
+
// mutation against a normal, pre-existing source-buffer entity is
|
|
53
|
+
// never affected — only ids that had their own CREATE_ENTITY skipped
|
|
54
|
+
// in this same batch land here.
|
|
55
|
+
// The `newEntities` check makes the condition "the create was skipped
|
|
56
|
+
// AND nothing else supplied the entity". A caller following the
|
|
57
|
+
// documented recovery flow calls `restoreNewEntity()` first and
|
|
58
|
+
// *then* replays the history; the id is live by the time we get here,
|
|
59
|
+
// so there is no orphan to guard against and dropping its edits would
|
|
60
|
+
// silently lose data on the exact path the console.warn recommends.
|
|
61
|
+
if (mutation.type !== 'CREATE_ENTITY' &&
|
|
62
|
+
skippedCreateIds.has(mutation.entityId) &&
|
|
63
|
+
!hasNewEntity(mutation.entityId)) {
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
switch (mutation.type) {
|
|
67
|
+
case 'CREATE_PROPERTY':
|
|
68
|
+
case 'UPDATE_PROPERTY':
|
|
69
|
+
if (mutation.psetName && mutation.propName && mutation.newValue !== undefined) {
|
|
70
|
+
target.setProperty(mutation.entityId, mutation.psetName, mutation.propName, mutation.newValue, mutation.valueType);
|
|
71
|
+
}
|
|
72
|
+
break;
|
|
73
|
+
case 'DELETE_PROPERTY':
|
|
74
|
+
if (mutation.psetName && mutation.propName) {
|
|
75
|
+
target.deleteProperty(mutation.entityId, mutation.psetName, mutation.propName);
|
|
76
|
+
}
|
|
77
|
+
break;
|
|
78
|
+
case 'DELETE_PROPERTY_SET':
|
|
79
|
+
if (mutation.psetName) {
|
|
80
|
+
target.deletePropertySet(mutation.entityId, mutation.psetName);
|
|
81
|
+
}
|
|
82
|
+
break;
|
|
83
|
+
case 'DELETE_QUANTITY_SET':
|
|
84
|
+
if (mutation.psetName) {
|
|
85
|
+
target.deleteQuantitySet(mutation.entityId, mutation.psetName);
|
|
86
|
+
// The marker is recorded even when this view cannot SEE the base
|
|
87
|
+
// set, unlike the live path. `deleteQuantitySet` only masks a set
|
|
88
|
+
// the quantity extractor reports, and that extractor is opt-in
|
|
89
|
+
// (null by default, and several in-tree callers wire the property
|
|
90
|
+
// one beside it and not it). A replayed deletion is a decision the
|
|
91
|
+
// origin session already made, so dropping it here would let a
|
|
92
|
+
// later export regenerate a set the user removed. An inert marker
|
|
93
|
+
// on a set that does not exist costs a row in the change list;
|
|
94
|
+
// losing the deletion costs the user's edit.
|
|
95
|
+
markQuantitySetDeleted(mutation.entityId, mutation.psetName);
|
|
96
|
+
}
|
|
97
|
+
break;
|
|
98
|
+
case 'CREATE_QUANTITY':
|
|
99
|
+
case 'UPDATE_QUANTITY':
|
|
100
|
+
if (mutation.psetName && mutation.propName && mutation.newValue !== undefined) {
|
|
101
|
+
target.setQuantity(mutation.entityId, mutation.psetName, mutation.propName, Number(mutation.newValue), mutation.quantityType ?? QuantityType.Count, mutation.unit);
|
|
102
|
+
}
|
|
103
|
+
else if (mutation.type === 'CREATE_QUANTITY' &&
|
|
104
|
+
mutation.psetName &&
|
|
105
|
+
Array.isArray(mutation.newValue)) {
|
|
106
|
+
// `createQuantitySet()` (whole-qset creation, e.g.
|
|
107
|
+
// `StoreEditor.addQuantitySet`) records ONE CREATE_QUANTITY mutation
|
|
108
|
+
// for the whole set — no `propName`, `newValue` is the full
|
|
109
|
+
// quantities array — unlike `setQuantity()`'s per-quantity
|
|
110
|
+
// CREATE_QUANTITY, which always carries both. Mirrors the
|
|
111
|
+
// CREATE_PROPERTY_SET handling below. Without this branch the
|
|
112
|
+
// `psetName && propName` check above is false and the record
|
|
113
|
+
// matched this `case` with nothing done — never falling through to
|
|
114
|
+
// the "unhandled mutation type" warning either — so a freshly
|
|
115
|
+
// created quantity set silently vanished on
|
|
116
|
+
// exportMutations()/importMutations() round trip.
|
|
117
|
+
target.createQuantitySet(mutation.entityId, mutation.psetName, mutation.newValue);
|
|
118
|
+
}
|
|
119
|
+
break;
|
|
120
|
+
case 'UPDATE_POSITIONAL_ATTRIBUTE': {
|
|
121
|
+
// attributeName is `@<index>` for positional mutations.
|
|
122
|
+
const attr = mutation.attributeName ?? '';
|
|
123
|
+
if (!attr.startsWith('@'))
|
|
124
|
+
break;
|
|
125
|
+
const index = Number(attr.slice(1));
|
|
126
|
+
if (!Number.isInteger(index) || index < 0)
|
|
127
|
+
break;
|
|
128
|
+
if (mutation.newValue === undefined)
|
|
129
|
+
break;
|
|
130
|
+
target.setPositionalAttribute(mutation.entityId, index, mutation.newValue);
|
|
131
|
+
break;
|
|
132
|
+
}
|
|
133
|
+
case 'UPDATE_ENTITY_TYPE': {
|
|
134
|
+
const newType = mutation.entityType ?? (typeof mutation.newValue === 'string' ? mutation.newValue : undefined);
|
|
135
|
+
if (!newType)
|
|
136
|
+
break;
|
|
137
|
+
target.setEntityType(mutation.entityId, newType, mutation.predefinedType ?? null, mutation.oldValue == null ? undefined : String(mutation.oldValue));
|
|
138
|
+
break;
|
|
139
|
+
}
|
|
140
|
+
case 'UPDATE_ATTRIBUTE':
|
|
141
|
+
if (mutation.attributeName && mutation.newValue !== undefined && mutation.newValue !== null) {
|
|
142
|
+
target.setAttribute(mutation.entityId, mutation.attributeName, String(mutation.newValue), mutation.oldValue == null ? undefined : String(mutation.oldValue));
|
|
143
|
+
}
|
|
144
|
+
break;
|
|
145
|
+
case 'CREATE_PROPERTY_SET':
|
|
146
|
+
if (mutation.psetName && Array.isArray(mutation.newValue)) {
|
|
147
|
+
// newValue is the original properties array (see createPropertySet,
|
|
148
|
+
// where newValue = properties: Array<{ name; value; type?; unit? }>).
|
|
149
|
+
target.createPropertySet(mutation.entityId, mutation.psetName, mutation.newValue);
|
|
150
|
+
}
|
|
151
|
+
break;
|
|
152
|
+
case 'CREATE_ENTITY': {
|
|
153
|
+
// Replay creates rely on the importer providing the entity body
|
|
154
|
+
// via `restoreNewEntity` separately. The history record alone
|
|
155
|
+
// doesn't carry the type+attributes payload — applying a bare
|
|
156
|
+
// CREATE_ENTITY would lose the entity. We log and skip rather
|
|
157
|
+
// than silently dropping it, so callers see they need to
|
|
158
|
+
// restore the payload through the dedicated path. Unless the
|
|
159
|
+
// caller already restored it, every other mutation recorded
|
|
160
|
+
// against this id in this batch is dropped too (see the guard
|
|
161
|
+
// above this switch) — otherwise the entity is gone but its edits
|
|
162
|
+
// survive as an orphan. (skippedCreateIds was already fully
|
|
163
|
+
// populated in pass 1, above.)
|
|
164
|
+
// eslint-disable-next-line no-console
|
|
165
|
+
console.warn(`applyMutations: CREATE_ENTITY for #${mutation.entityId} requires a NewEntity payload — ` +
|
|
166
|
+
`restore via restoreNewEntity(). Skipping the record; dependent mutations recorded against ` +
|
|
167
|
+
`#${mutation.entityId} are dropped too unless the entity was restored before this call.`);
|
|
168
|
+
break;
|
|
169
|
+
}
|
|
170
|
+
case 'DELETE_ENTITY':
|
|
171
|
+
target.deleteEntity(mutation.entityId);
|
|
172
|
+
break;
|
|
173
|
+
default:
|
|
174
|
+
// Surface unhandled mutation types instead of silently dropping
|
|
175
|
+
// them, so future gaps in this switch are visible.
|
|
176
|
+
// eslint-disable-next-line no-console
|
|
177
|
+
console.warn(`applyMutations: unhandled mutation type '${mutation.type}' for #${mutation.entityId} — skipped`);
|
|
178
|
+
break;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
//# sourceMappingURL=apply-mutations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apply-mutations.js","sourceRoot":"","sources":["../src/apply-mutations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Bulk Query Engine
|
|
3
|
-
*
|
|
4
|
-
* Provides SQL-like query capabilities for selecting and modifying
|
|
5
|
-
* multiple IFC entities at once.
|
|
2
|
+
* Bulk Query Engine: SQL-like selection and modification for multiple
|
|
3
|
+
* IFC entities at once.
|
|
6
4
|
*/
|
|
7
5
|
import type { EntityTable, SpatialHierarchy, PropertyTable } from '@ifc-lite/data';
|
|
8
6
|
import { PropertyValueType } from '@ifc-lite/data';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bulk-query-engine.d.ts","sourceRoot":"","sources":["../src/bulk-query-engine.ts"],"names":[],"mappings":"AAIA
|
|
1
|
+
{"version":3,"file":"bulk-query-engine.d.ts","sourceRoot":"","sources":["../src/bulk-query-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
3
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
4
|
import { checkMutationGuard } from './mutation-guard.js';
|
|
5
|
+
import { compileGuardedRegex } from '@ifc-lite/regex-guard';
|
|
5
6
|
/**
|
|
6
7
|
* Bulk Query Engine for mass property updates
|
|
7
8
|
*/
|
|
@@ -131,7 +132,7 @@ export class BulkQueryEngine {
|
|
|
131
132
|
}
|
|
132
133
|
// Filter by name pattern
|
|
133
134
|
if (criteria.namePattern && this.strings) {
|
|
134
|
-
const regex =
|
|
135
|
+
const regex = compileGuardedRegex(criteria.namePattern, 'i'); // caller-supplied: guard against ReDoS
|
|
135
136
|
candidates = candidates.filter((id) => {
|
|
136
137
|
const idx = this.findEntityIndex(id);
|
|
137
138
|
if (idx === -1)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bulk-query-engine.js","sourceRoot":"","sources":["../src/bulk-query-engine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bulk-query-engine.js","sourceRoot":"","sources":["../src/bulk-query-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { CooperativeControl } from './cooperative-control.js';
|
|
2
|
+
/** The overlay's data vocabulary, not a polyfill for every structuredClone host type. */
|
|
3
|
+
export declare function cloneCooperatively<T>(input: T, control: CooperativeControl): Promise<T>;
|
|
4
|
+
//# sourceMappingURL=cooperative-clone.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cooperative-clone.d.ts","sourceRoot":"","sources":["../src/cooperative-clone.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAK9D,yFAAyF;AACzF,wBAAsB,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC,CAiE7F"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/** The overlay's data vocabulary, not a polyfill for every structuredClone host type. */
|
|
2
|
+
export async function cloneCooperatively(input, control) {
|
|
3
|
+
const memo = new WeakMap();
|
|
4
|
+
const frames = [];
|
|
5
|
+
let shouldPause = false;
|
|
6
|
+
const charge = (bytes) => {
|
|
7
|
+
const due = control.step(bytes);
|
|
8
|
+
shouldPause = shouldPause || due;
|
|
9
|
+
};
|
|
10
|
+
const copy = value => {
|
|
11
|
+
if (value === null || value === undefined || typeof value === 'boolean' || typeof value === 'number') {
|
|
12
|
+
charge(16);
|
|
13
|
+
return value;
|
|
14
|
+
}
|
|
15
|
+
if (typeof value === 'string') {
|
|
16
|
+
charge(16 + value.length * 2);
|
|
17
|
+
return value;
|
|
18
|
+
}
|
|
19
|
+
if (typeof value !== 'object')
|
|
20
|
+
throw new TypeError('Unsupported value in cooperative entity preparation.');
|
|
21
|
+
const known = memo.get(value);
|
|
22
|
+
if (known) {
|
|
23
|
+
charge(8);
|
|
24
|
+
return known;
|
|
25
|
+
}
|
|
26
|
+
charge(128);
|
|
27
|
+
if (value instanceof Map) {
|
|
28
|
+
const result = new Map();
|
|
29
|
+
memo.set(value, result);
|
|
30
|
+
frames.push((function* () {
|
|
31
|
+
for (const [key, item] of value) {
|
|
32
|
+
if (key !== null && typeof key === 'object')
|
|
33
|
+
throw new TypeError('Mutable map keys are unsupported during cooperative entity preparation.');
|
|
34
|
+
result.set(copy(key), copy(item));
|
|
35
|
+
yield;
|
|
36
|
+
}
|
|
37
|
+
})());
|
|
38
|
+
return result;
|
|
39
|
+
}
|
|
40
|
+
if (value instanceof Set) {
|
|
41
|
+
const result = new Set();
|
|
42
|
+
memo.set(value, result);
|
|
43
|
+
frames.push((function* () {
|
|
44
|
+
for (const item of value) {
|
|
45
|
+
if (item !== null && typeof item === 'object')
|
|
46
|
+
throw new TypeError('Mutable set members are unsupported during cooperative entity preparation.');
|
|
47
|
+
result.add(copy(item));
|
|
48
|
+
yield;
|
|
49
|
+
}
|
|
50
|
+
})());
|
|
51
|
+
return result;
|
|
52
|
+
}
|
|
53
|
+
const array = Array.isArray(value);
|
|
54
|
+
const prototype = Object.getPrototypeOf(value);
|
|
55
|
+
if (!array && prototype !== Object.prototype && prototype !== null) {
|
|
56
|
+
throw new TypeError('Cooperative entity preparation supports plain values, arrays, maps and sets only.');
|
|
57
|
+
}
|
|
58
|
+
if (array)
|
|
59
|
+
charge(value.length * 8);
|
|
60
|
+
const result = (array ? new Array(value.length) : Object.create(prototype));
|
|
61
|
+
memo.set(value, result);
|
|
62
|
+
frames.push((function* () {
|
|
63
|
+
// Incremental own-property enumeration preserves sparse arrays and extra
|
|
64
|
+
// enumerable properties without constructing Object.keys(hugeArray).
|
|
65
|
+
for (const key in value) {
|
|
66
|
+
charge(48 + key.length * 2);
|
|
67
|
+
if (!Object.hasOwn(value, key)) {
|
|
68
|
+
yield;
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
const descriptor = Object.getOwnPropertyDescriptor(value, key);
|
|
72
|
+
if (!descriptor || !('value' in descriptor))
|
|
73
|
+
throw new TypeError('Accessors are unsupported during cooperative entity preparation.');
|
|
74
|
+
Object.defineProperty(result, key, { value: copy(descriptor.value), enumerable: true, writable: true, configurable: true });
|
|
75
|
+
yield;
|
|
76
|
+
}
|
|
77
|
+
})());
|
|
78
|
+
return result;
|
|
79
|
+
};
|
|
80
|
+
const result = copy(input);
|
|
81
|
+
while (frames.length || shouldPause) {
|
|
82
|
+
if (shouldPause) {
|
|
83
|
+
shouldPause = false;
|
|
84
|
+
await control.pause();
|
|
85
|
+
}
|
|
86
|
+
control.checkAbort();
|
|
87
|
+
const frame = frames[frames.length - 1];
|
|
88
|
+
if (frame && frame.next().done)
|
|
89
|
+
frames.pop();
|
|
90
|
+
}
|
|
91
|
+
return result;
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=cooperative-clone.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cooperative-clone.js","sourceRoot":"","sources":["../src/cooperative-clone.ts"],"names":[],"mappings":"AAQA,yFAAyF;AACzF,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAI,KAAQ,EAAE,OAA2B;IAC/E,MAAM,IAAI,GAAG,IAAI,OAAO,EAAkB,CAAC;IAC3C,MAAM,MAAM,GAAY,EAAE,CAAC;IAC3B,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,MAAM,MAAM,GAAG,CAAC,KAAa,EAAE,EAAE;QAC/B,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChC,WAAW,GAAG,WAAW,IAAI,GAAG,CAAC;IACnC,CAAC,CAAC;IACF,MAAM,IAAI,GAAS,KAAK,CAAC,EAAE;QACzB,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACrG,MAAM,CAAC,EAAE,CAAC,CAAC;YAAC,OAAO,KAAK,CAAC;QAC3B,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAAC,MAAM,CAAC,EAAE,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAAC,OAAO,KAAK,CAAC;QAAC,CAAC;QAC/E,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,MAAM,IAAI,SAAS,CAAC,sDAAsD,CAAC,CAAC;QAC3G,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,KAAK,EAAE,CAAC;YAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAAC,OAAO,KAAK,CAAC;QAAC,CAAC;QACvC,MAAM,CAAC,GAAG,CAAC,CAAC;QACZ,IAAI,KAAK,YAAY,GAAG,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,IAAI,GAAG,EAAoB,CAAC;YAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACpE,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;gBACpB,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC;oBAChC,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ;wBAAE,MAAM,IAAI,SAAS,CAAC,yEAAyE,CAAC,CAAC;oBAC5I,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;oBAAC,KAAK,CAAC;gBAC3C,CAAC;YACH,CAAC,CAAC,EAAE,CAAC,CAAC;YACN,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,IAAI,KAAK,YAAY,GAAG,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,IAAI,GAAG,EAAW,CAAC;YAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAC3D,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;gBAAM,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACrD,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;wBAAE,MAAM,IAAI,SAAS,CAAC,4EAA4E,CAAC,CAAC;oBACjJ,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;oBAAC,KAAK,CAAC;gBAChC,CAAC;YAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACR,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK,IAAI,SAAS,KAAK,MAAM,CAAC,SAAS,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YACnE,MAAM,IAAI,SAAS,CAAC,mFAAmF,CAAC,CAAC;QAC3G,CAAC;QACD,IAAI,KAAK;YAAE,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAA4B,CAAC;QACvG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;YACpB,yEAAyE;YACzE,qEAAqE;YACrE,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;gBACxB,MAAM,CAAC,EAAE,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAC5B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;oBAAC,KAAK,CAAC;oBAAC,SAAS;gBAAC,CAAC;gBACpD,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBAC/D,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,OAAO,IAAI,UAAU,CAAC;oBAAE,MAAM,IAAI,SAAS,CAAC,kEAAkE,CAAC,CAAC;gBACrI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC5H,KAAK,CAAC;YACR,CAAC;QACH,CAAC,CAAC,EAAE,CAAC,CAAC;QACN,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IACF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3B,OAAO,MAAM,CAAC,MAAM,IAAI,WAAW,EAAE,CAAC;QACpC,IAAI,WAAW,EAAE,CAAC;YAAC,WAAW,GAAG,KAAK,CAAC;YAAC,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QAAC,CAAC;QAChE,OAAO,CAAC,UAAU,EAAE,CAAC;QACrB,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACxC,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI;YAAE,MAAM,CAAC,GAAG,EAAE,CAAC;IAC/C,CAAC;IACD,OAAO,MAAW,CAAC;AACrB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { EntityPreparationOptions } from './cooperative-operation-types.js';
|
|
2
|
+
export declare class CooperativeControl {
|
|
3
|
+
private work;
|
|
4
|
+
private bytes;
|
|
5
|
+
private sliceWork;
|
|
6
|
+
private deadline;
|
|
7
|
+
private readonly maxWork;
|
|
8
|
+
private readonly maxBytes;
|
|
9
|
+
private readonly sliceMs;
|
|
10
|
+
private readonly signal;
|
|
11
|
+
private readonly yieldTask;
|
|
12
|
+
constructor(options: EntityPreparationOptions);
|
|
13
|
+
checkAbort(): void;
|
|
14
|
+
step(bytes?: number): boolean;
|
|
15
|
+
pause(): Promise<void>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=cooperative-control.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cooperative-control.d.ts","sourceRoot":"","sources":["../src/cooperative-control.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAEjF,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;IACjD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsB;gBAEpC,OAAO,EAAE,wBAAwB;IAe7C,UAAU,IAAI,IAAI;IAIlB,IAAI,CAAC,KAAK,SAAI,GAAG,OAAO;IAalB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAmB7B"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
export class CooperativeControl {
|
|
2
|
+
work = 0;
|
|
3
|
+
bytes = 0;
|
|
4
|
+
sliceWork = 0;
|
|
5
|
+
deadline = 0;
|
|
6
|
+
maxWork;
|
|
7
|
+
maxBytes;
|
|
8
|
+
sliceMs;
|
|
9
|
+
signal;
|
|
10
|
+
yieldTask;
|
|
11
|
+
constructor(options) {
|
|
12
|
+
this.signal = options.signal;
|
|
13
|
+
this.maxWork = options.maxWork ?? 16_000_000;
|
|
14
|
+
this.maxBytes = options.maxBytes ?? 512 * 1024 * 1024;
|
|
15
|
+
this.sliceMs = options.maxSliceMs ?? 4;
|
|
16
|
+
if (!Number.isSafeInteger(this.maxWork) || this.maxWork <= 0
|
|
17
|
+
|| !Number.isSafeInteger(this.maxBytes) || this.maxBytes <= 0
|
|
18
|
+
|| !Number.isFinite(this.sliceMs) || this.sliceMs <= 0) {
|
|
19
|
+
throw new RangeError('Cooperative preparation budgets must be finite and positive.');
|
|
20
|
+
}
|
|
21
|
+
this.yieldTask = options.yieldTask ?? (() => new Promise(resolve => setTimeout(resolve, 0)));
|
|
22
|
+
this.deadline = performance.now() + this.sliceMs;
|
|
23
|
+
this.checkAbort();
|
|
24
|
+
}
|
|
25
|
+
checkAbort() {
|
|
26
|
+
if (this.signal?.aborted)
|
|
27
|
+
throw new DOMException('Entity preparation was cancelled.', 'AbortError');
|
|
28
|
+
}
|
|
29
|
+
step(bytes = 0) {
|
|
30
|
+
this.checkAbort();
|
|
31
|
+
this.work++;
|
|
32
|
+
this.bytes += bytes;
|
|
33
|
+
if (this.work > this.maxWork || this.bytes > this.maxBytes) {
|
|
34
|
+
throw new RangeError('Entity preparation exceeds its work or allocation budget.');
|
|
35
|
+
}
|
|
36
|
+
if (++this.sliceWork >= 256 && (this.sliceWork >= 4096 || performance.now() >= this.deadline)) {
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
async pause() {
|
|
42
|
+
this.checkAbort();
|
|
43
|
+
const signal = this.signal;
|
|
44
|
+
let onAbort;
|
|
45
|
+
try {
|
|
46
|
+
await new Promise((resolve, reject) => {
|
|
47
|
+
onAbort = () => reject(new DOMException('Entity preparation was cancelled.', 'AbortError'));
|
|
48
|
+
signal?.addEventListener('abort', onAbort, { once: true });
|
|
49
|
+
// Handle both a thrown scheduler error and abort inside the scheduler.
|
|
50
|
+
try {
|
|
51
|
+
Promise.resolve(this.yieldTask()).then(resolve, reject);
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
reject(error);
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
this.checkAbort();
|
|
58
|
+
}
|
|
59
|
+
finally {
|
|
60
|
+
if (onAbort)
|
|
61
|
+
signal?.removeEventListener('abort', onAbort);
|
|
62
|
+
}
|
|
63
|
+
this.sliceWork = 0;
|
|
64
|
+
this.deadline = performance.now() + this.sliceMs;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=cooperative-control.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cooperative-control.js","sourceRoot":"","sources":["../src/cooperative-control.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { IfcAttributeValue, Mutation, NewEntity } from './types.js';
|
|
2
|
+
export type EntityOperation = {
|
|
3
|
+
kind: 'create';
|
|
4
|
+
expressId: number;
|
|
5
|
+
type: string;
|
|
6
|
+
attributes: IfcAttributeValue[];
|
|
7
|
+
} | {
|
|
8
|
+
kind: 'setPositionalAttribute';
|
|
9
|
+
expressId: number;
|
|
10
|
+
index: number;
|
|
11
|
+
value: IfcAttributeValue;
|
|
12
|
+
skipHistory?: boolean;
|
|
13
|
+
} | {
|
|
14
|
+
kind: 'remove';
|
|
15
|
+
expressId: number;
|
|
16
|
+
};
|
|
17
|
+
export type EntityOperationEffect = {
|
|
18
|
+
kind: 'create';
|
|
19
|
+
entity: NewEntity;
|
|
20
|
+
} | {
|
|
21
|
+
kind: 'setPositionalAttribute';
|
|
22
|
+
expressId: number;
|
|
23
|
+
index: number;
|
|
24
|
+
present: boolean;
|
|
25
|
+
value: IfcAttributeValue | undefined;
|
|
26
|
+
} | {
|
|
27
|
+
kind: 'remove';
|
|
28
|
+
expressId: number;
|
|
29
|
+
entity: NewEntity | null;
|
|
30
|
+
};
|
|
31
|
+
export interface EntityPreparationOptions {
|
|
32
|
+
signal?: AbortSignal;
|
|
33
|
+
/** Must yield to a browser/host task, not only a microtask. No draft is passed. */
|
|
34
|
+
yieldTask?: () => Promise<void>;
|
|
35
|
+
/** Cooperative target, not a guarantee for uninterruptible host operations. Default 4ms. */
|
|
36
|
+
maxSliceMs?: number;
|
|
37
|
+
/** Cumulative visited values/entries across all snapshots. Default 16 million. */
|
|
38
|
+
maxWork?: number;
|
|
39
|
+
/** Conservative cumulative allocation accounting; not measured JS heap size. Default 512MiB. */
|
|
40
|
+
maxBytes?: number;
|
|
41
|
+
}
|
|
42
|
+
export interface PreparedEntityOperations {
|
|
43
|
+
/** Detached caller-owned records; changing these cannot edit publication/checkpoints. */
|
|
44
|
+
readonly effects: readonly EntityOperationEffect[];
|
|
45
|
+
readonly mutations: readonly Mutation[];
|
|
46
|
+
/** Exact synchronous live-overlay AND operation-input fence. Linear in their size. */
|
|
47
|
+
validate(): void;
|
|
48
|
+
commit(): void;
|
|
49
|
+
rollback(): void;
|
|
50
|
+
/** Idempotent. Before commit discards work; after commit relinquishes rollback. */
|
|
51
|
+
dispose(): void;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=cooperative-operation-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cooperative-operation-types.d.ts","sourceRoot":"","sources":["../src/cooperative-operation-types.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEzE,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,iBAAiB,EAAE,CAAA;CAAE,GACpF;IAAE,IAAI,EAAE,wBAAwB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,iBAAiB,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,GACrH;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1C,MAAM,MAAM,qBAAqB,GAC7B;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,wBAAwB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,iBAAiB,GAAG,SAAS,CAAA;CAAE,GAC5H;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAAA;CAAE,CAAC;AAEpE,MAAM,WAAW,wBAAwB;IACvC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,4FAA4F;IAC5F,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kFAAkF;IAClF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gGAAgG;IAChG,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,wBAAwB;IACvC,yFAAyF;IACzF,QAAQ,CAAC,OAAO,EAAE,SAAS,qBAAqB,EAAE,CAAC;IACnD,QAAQ,CAAC,SAAS,EAAE,SAAS,QAAQ,EAAE,CAAC;IACxC,sFAAsF;IACtF,QAAQ,IAAI,IAAI,CAAC;IACjB,MAAM,IAAI,IAAI,CAAC;IACf,QAAQ,IAAI,IAAI,CAAC;IACjB,mFAAmF;IACnF,OAAO,IAAI,IAAI,CAAC;CACjB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cooperative-operation-types.js","sourceRoot":"","sources":["../src/cooperative-operation-types.ts"],"names":[],"mappings":""}
|