@ifc-lite/mcp 0.9.2 → 0.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +32 -1
- package/dist/auth/scope.d.ts.map +1 -1
- package/dist/auth/scope.js +6 -2
- package/dist/auth/scope.js.map +1 -1
- package/dist/backend-query.d.ts +41 -0
- package/dist/backend-query.d.ts.map +1 -0
- package/dist/backend-query.js +486 -0
- package/dist/backend-query.js.map +1 -0
- package/dist/headless-backend.d.ts +4 -3
- package/dist/headless-backend.d.ts.map +1 -1
- package/dist/headless-backend.js +26 -212
- package/dist/headless-backend.js.map +1 -1
- package/dist/overlay.d.ts +171 -0
- package/dist/overlay.d.ts.map +1 -0
- package/dist/overlay.js +300 -0
- package/dist/overlay.js.map +1 -0
- package/dist/resources/providers.d.ts.map +1 -1
- package/dist/resources/providers.js +28 -27
- package/dist/resources/providers.js.map +1 -1
- package/dist/schema-tables.d.ts +42 -0
- package/dist/schema-tables.d.ts.map +1 -0
- package/dist/schema-tables.js +75 -0
- package/dist/schema-tables.js.map +1 -0
- package/dist/spatial-tree.d.ts +40 -0
- package/dist/spatial-tree.d.ts.map +1 -0
- package/dist/spatial-tree.js +70 -0
- package/dist/spatial-tree.js.map +1 -0
- package/dist/tools/bsdd.d.ts.map +1 -1
- package/dist/tools/bsdd.js +5 -16
- package/dist/tools/bsdd.js.map +1 -1
- package/dist/tools/clash.d.ts.map +1 -1
- package/dist/tools/clash.js +36 -23
- package/dist/tools/clash.js.map +1 -1
- package/dist/tools/diff-fingerprints.d.ts +110 -0
- package/dist/tools/diff-fingerprints.d.ts.map +1 -0
- package/dist/tools/diff-fingerprints.js +410 -0
- package/dist/tools/diff-fingerprints.js.map +1 -0
- package/dist/tools/diff.d.ts.map +1 -1
- package/dist/tools/diff.js +199 -26
- package/dist/tools/diff.js.map +1 -1
- package/dist/tools/discovery.d.ts.map +1 -1
- package/dist/tools/discovery.js +124 -36
- package/dist/tools/discovery.js.map +1 -1
- package/dist/tools/export.d.ts.map +1 -1
- package/dist/tools/export.js +136 -68
- package/dist/tools/export.js.map +1 -1
- package/dist/tools/mutate.d.ts.map +1 -1
- package/dist/tools/mutate.js +74 -11
- package/dist/tools/mutate.js.map +1 -1
- package/dist/tools/query.d.ts.map +1 -1
- package/dist/tools/query.js +129 -69
- package/dist/tools/query.js.map +1 -1
- package/dist/tools/util.d.ts +36 -7
- package/dist/tools/util.d.ts.map +1 -1
- package/dist/tools/util.js +90 -0
- package/dist/tools/util.js.map +1 -1
- package/dist/tools/validation.d.ts.map +1 -1
- package/dist/tools/validation.js +82 -26
- package/dist/tools/validation.js.map +1 -1
- package/dist/viewer-manager.d.ts +9 -0
- package/dist/viewer-manager.d.ts.map +1 -1
- package/dist/viewer-manager.js +37 -2
- package/dist/viewer-manager.js.map +1 -1
- package/package.json +19 -18
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
import type { BimBackend, BimEventType, ModelBackendMethods, QueryBackendMethods, SelectionBackendMethods, VisibilityBackendMethods, ViewerBackendMethods, MutateBackendMethods, StoreBackendMethods, SpatialBackendMethods, ExportBackendMethods, LensBackendMethods, FilesBackendMethods, ScheduleBackendMethods } from '@ifc-lite/sdk';
|
|
15
15
|
import type { IfcDataStore } from '@ifc-lite/parser';
|
|
16
16
|
import { MutablePropertyView, StoreEditor } from '@ifc-lite/mutations';
|
|
17
|
-
|
|
18
|
-
export
|
|
17
|
+
import { type PendingOverlay } from './overlay.js';
|
|
18
|
+
export { expandTypes, isProductType } from './backend-query.js';
|
|
19
19
|
export declare class HeadlessLikeBackend implements BimBackend {
|
|
20
20
|
readonly model: ModelBackendMethods;
|
|
21
21
|
readonly query: QueryBackendMethods;
|
|
@@ -43,7 +43,8 @@ export declare class HeadlessLikeBackend implements BimBackend {
|
|
|
43
43
|
constructor(store: IfcDataStore, modelName: string, modelId: string);
|
|
44
44
|
subscribe(_event: BimEventType, _handler: (data: unknown) => void): () => void;
|
|
45
45
|
private createModelAdapter;
|
|
46
|
-
|
|
46
|
+
/** This session's queued edits, or null when it has none. */
|
|
47
|
+
pendingOverlay(): PendingOverlay | null;
|
|
47
48
|
private createSelectionAdapter;
|
|
48
49
|
private getOrCreateStoreEditor;
|
|
49
50
|
/** Expose the mutation view so tools can inspect pending mutations. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"headless-backend.d.ts","sourceRoot":"","sources":["../src/headless-backend.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,EACxB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,
|
|
1
|
+
{"version":3,"file":"headless-backend.d.ts","sourceRoot":"","sources":["../src/headless-backend.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,EACxB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EAMvB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAQvE,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAEpE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEhE,qBAAa,mBAAoB,YAAW,UAAU;IACpD,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,uBAAuB,CAAC;IAC5C;;;;;OAKG;IACH,UAAU,EAAE,wBAAwB,CAAC;IACrC,MAAM,EAAE,oBAAoB,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;IACtC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC;IAE1C,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,YAAY,CAAoC;IACxD,OAAO,CAAC,WAAW,CAA4B;gBAEnC,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IA6BnE,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI;IAI9E,OAAO,CAAC,kBAAkB;IAqB1B,6DAA6D;IAC7D,cAAc,IAAI,cAAc,GAAG,IAAI;IAIvC,OAAO,CAAC,sBAAsB;IAQ9B,OAAO,CAAC,sBAAsB;IAqB9B,uEAAuE;IACvE,eAAe,IAAI,mBAAmB,GAAG,IAAI;IAI7C,iFAAiF;IACjF,YAAY,IAAI,WAAW;IAI3B,6EAA6E;IAC7E,uBAAuB,CAAC,MAAM,EAAE,oBAAoB,EAAE,UAAU,EAAE,wBAAwB,GAAG,IAAI;IAKjG,0EAA0E;IAC1E,uBAAuB,IAAI,IAAI;IAS/B,OAAO,CAAC,kBAAkB;IA2B1B,OAAO,CAAC,mBAAmB;IA2G3B,OAAO,CAAC,qBAAqB;CAqB9B"}
|
package/dist/headless-backend.js
CHANGED
|
@@ -2,64 +2,11 @@
|
|
|
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 { MutablePropertyView, StoreEditor } from '@ifc-lite/mutations';
|
|
5
|
-
import {
|
|
6
|
-
import { RelationshipType, IfcTypeEnum, IfcTypeEnumFromString } from '@ifc-lite/data';
|
|
7
|
-
import { extractAllEntityAttributes, extractClassificationsOnDemand, extractMaterialsOnDemand, extractTypePropertiesOnDemand, extractDocumentsOnDemand, extractRelationshipsOnDemand, extractScheduleOnDemand, } from '@ifc-lite/parser';
|
|
5
|
+
import { extractPropertiesOnDemand, extractQuantitiesOnDemand, extractScheduleOnDemand, } from '@ifc-lite/parser';
|
|
8
6
|
import { exportToStep, StepExporter } from '@ifc-lite/export';
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
IfcRelDefinesByType: RelationshipType.DefinesByType,
|
|
13
|
-
IfcRelVoidsElement: RelationshipType.VoidsElement,
|
|
14
|
-
IfcRelFillsElement: RelationshipType.FillsElement,
|
|
15
|
-
};
|
|
16
|
-
const IFC_SUBTYPES = {
|
|
17
|
-
IFCWALL: ['IFCWALLSTANDARDCASE', 'IFCWALLELEMENTEDCASE'],
|
|
18
|
-
IFCBEAM: ['IFCBEAMSTANDARDCASE'],
|
|
19
|
-
IFCCOLUMN: ['IFCCOLUMNSTANDARDCASE'],
|
|
20
|
-
IFCDOOR: ['IFCDOORSTANDARDCASE'],
|
|
21
|
-
IFCWINDOW: ['IFCWINDOWSTANDARDCASE'],
|
|
22
|
-
IFCSLAB: ['IFCSLABSTANDARDCASE', 'IFCSLABELEMENTEDCASE'],
|
|
23
|
-
IFCMEMBER: ['IFCMEMBERSTANDARDCASE'],
|
|
24
|
-
IFCPLATE: ['IFCPLATESTANDARDCASE'],
|
|
25
|
-
IFCOPENINGELEMENT: ['IFCOPENINGSTANDARDCASE'],
|
|
26
|
-
};
|
|
27
|
-
export function expandTypes(types) {
|
|
28
|
-
const result = [];
|
|
29
|
-
for (const type of types) {
|
|
30
|
-
const upper = type.toUpperCase();
|
|
31
|
-
result.push(upper);
|
|
32
|
-
const subtypes = IFC_SUBTYPES[upper];
|
|
33
|
-
if (subtypes)
|
|
34
|
-
for (const sub of subtypes)
|
|
35
|
-
result.push(sub);
|
|
36
|
-
}
|
|
37
|
-
return result;
|
|
38
|
-
}
|
|
39
|
-
export function isProductType(type) {
|
|
40
|
-
const enumVal = IfcTypeEnumFromString(type);
|
|
41
|
-
if (enumVal === IfcTypeEnum.Unknown)
|
|
42
|
-
return false;
|
|
43
|
-
const upper = type.toUpperCase();
|
|
44
|
-
if (upper.startsWith('IFCREL'))
|
|
45
|
-
return false;
|
|
46
|
-
if (upper.startsWith('IFCPROPERTY'))
|
|
47
|
-
return false;
|
|
48
|
-
if (upper.startsWith('IFCQUANTITY'))
|
|
49
|
-
return false;
|
|
50
|
-
if (upper === 'IFCELEMENTQUANTITY')
|
|
51
|
-
return false;
|
|
52
|
-
if (upper.endsWith('TYPE'))
|
|
53
|
-
return false;
|
|
54
|
-
return true;
|
|
55
|
-
}
|
|
56
|
-
function normalizeBoolean(value) {
|
|
57
|
-
if (value === true || value === '.T.' || value === 'true' || value === 'TRUE')
|
|
58
|
-
return 'true';
|
|
59
|
-
if (value === false || value === '.F.' || value === 'false' || value === 'FALSE')
|
|
60
|
-
return 'false';
|
|
61
|
-
return value;
|
|
62
|
-
}
|
|
7
|
+
import { createQueryAdapter } from './backend-query.js';
|
|
8
|
+
import { overlayFromView } from './overlay.js';
|
|
9
|
+
export { expandTypes, isProductType } from './backend-query.js';
|
|
63
10
|
export class HeadlessLikeBackend {
|
|
64
11
|
model;
|
|
65
12
|
query;
|
|
@@ -89,7 +36,11 @@ export class HeadlessLikeBackend {
|
|
|
89
36
|
this.modelName = modelName;
|
|
90
37
|
this.modelId = modelId;
|
|
91
38
|
this.model = this.createModelAdapter();
|
|
92
|
-
this
|
|
39
|
+
// The read surface folds this session's queued mutations in (#2004). The
|
|
40
|
+
// overlay is passed as a getter because it is built lazily on the first
|
|
41
|
+
// mutation, so a session that is only ever read stays on the store-only
|
|
42
|
+
// path and pays nothing.
|
|
43
|
+
this.query = createQueryAdapter(store, modelId, () => this.pendingOverlay());
|
|
93
44
|
this.selection = this.createSelectionAdapter();
|
|
94
45
|
this.visibility = { hide() { }, show() { }, isolate() { }, reset() { } };
|
|
95
46
|
this.viewer = {
|
|
@@ -131,160 +82,9 @@ export class HeadlessLikeBackend {
|
|
|
131
82
|
loadIfc() { },
|
|
132
83
|
};
|
|
133
84
|
}
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
function getEntityData(ref) {
|
|
138
|
-
if (!store.entityIndex.byId.has(ref.expressId))
|
|
139
|
-
return null;
|
|
140
|
-
const node = new EntityNode(store, ref.expressId);
|
|
141
|
-
const type = node.type;
|
|
142
|
-
if (!type || type === 'Unknown')
|
|
143
|
-
return null;
|
|
144
|
-
return {
|
|
145
|
-
ref,
|
|
146
|
-
globalId: node.globalId,
|
|
147
|
-
name: node.name,
|
|
148
|
-
type,
|
|
149
|
-
description: node.description,
|
|
150
|
-
objectType: node.objectType,
|
|
151
|
-
};
|
|
152
|
-
}
|
|
153
|
-
function getProperties(ref) {
|
|
154
|
-
const node = new EntityNode(store, ref.expressId);
|
|
155
|
-
return node.properties().map((pset) => ({
|
|
156
|
-
name: pset.name,
|
|
157
|
-
globalId: pset.globalId,
|
|
158
|
-
properties: pset.properties.map((p) => ({ name: p.name, type: p.type, value: p.value })),
|
|
159
|
-
}));
|
|
160
|
-
}
|
|
161
|
-
function getQuantities(ref) {
|
|
162
|
-
const node = new EntityNode(store, ref.expressId);
|
|
163
|
-
return node.quantities().map((qset) => ({
|
|
164
|
-
name: qset.name,
|
|
165
|
-
quantities: qset.quantities.map((q) => ({ name: q.name, type: q.type, value: q.value })),
|
|
166
|
-
}));
|
|
167
|
-
}
|
|
168
|
-
return {
|
|
169
|
-
entities(descriptor) {
|
|
170
|
-
const results = [];
|
|
171
|
-
let entityIds;
|
|
172
|
-
if (descriptor.types && descriptor.types.length > 0) {
|
|
173
|
-
entityIds = [];
|
|
174
|
-
for (const type of expandTypes(descriptor.types)) {
|
|
175
|
-
const typeIds = store.entityIndex.byType.get(type) ?? [];
|
|
176
|
-
for (const eid of typeIds)
|
|
177
|
-
entityIds.push(eid);
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
else {
|
|
181
|
-
entityIds = [];
|
|
182
|
-
for (const [typeName, ids] of store.entityIndex.byType) {
|
|
183
|
-
if (isProductType(typeName)) {
|
|
184
|
-
for (const eid of ids)
|
|
185
|
-
entityIds.push(eid);
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
for (const expressId of entityIds) {
|
|
190
|
-
if (expressId === 0)
|
|
191
|
-
continue;
|
|
192
|
-
const node = new EntityNode(store, expressId);
|
|
193
|
-
results.push({
|
|
194
|
-
ref: { modelId: id, expressId },
|
|
195
|
-
globalId: node.globalId,
|
|
196
|
-
name: node.name,
|
|
197
|
-
type: node.type,
|
|
198
|
-
description: node.description,
|
|
199
|
-
objectType: node.objectType,
|
|
200
|
-
});
|
|
201
|
-
}
|
|
202
|
-
let filtered = results;
|
|
203
|
-
if (descriptor.filters && descriptor.filters.length > 0) {
|
|
204
|
-
const propsCache = new Map();
|
|
205
|
-
const cachedProps = (ref) => {
|
|
206
|
-
let cached = propsCache.get(ref.expressId);
|
|
207
|
-
if (!cached) {
|
|
208
|
-
cached = getProperties(ref);
|
|
209
|
-
propsCache.set(ref.expressId, cached);
|
|
210
|
-
}
|
|
211
|
-
return cached;
|
|
212
|
-
};
|
|
213
|
-
for (const filter of descriptor.filters) {
|
|
214
|
-
filtered = filtered.filter((entity) => {
|
|
215
|
-
const props = cachedProps(entity.ref);
|
|
216
|
-
const pset = props.find((p) => p.name === filter.psetName);
|
|
217
|
-
if (!pset)
|
|
218
|
-
return false;
|
|
219
|
-
const prop = pset.properties.find((p) => p.name === filter.propName);
|
|
220
|
-
if (!prop)
|
|
221
|
-
return false;
|
|
222
|
-
if (filter.operator === 'exists')
|
|
223
|
-
return true;
|
|
224
|
-
const v = normalizeBoolean(prop.value);
|
|
225
|
-
const f = normalizeBoolean(filter.value);
|
|
226
|
-
switch (filter.operator) {
|
|
227
|
-
case '=': return String(v) === String(f);
|
|
228
|
-
case '!=': return String(v) !== String(f);
|
|
229
|
-
case '>': return Number(v) > Number(f);
|
|
230
|
-
case '<': return Number(v) < Number(f);
|
|
231
|
-
case '>=': return Number(v) >= Number(f);
|
|
232
|
-
case '<=': return Number(v) <= Number(f);
|
|
233
|
-
case 'contains': return String(v).toLowerCase().includes(String(f).toLowerCase());
|
|
234
|
-
default: return false;
|
|
235
|
-
}
|
|
236
|
-
});
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
if (descriptor.offset && descriptor.offset > 0)
|
|
240
|
-
filtered = filtered.slice(descriptor.offset);
|
|
241
|
-
if (descriptor.limit && descriptor.limit > 0)
|
|
242
|
-
filtered = filtered.slice(0, descriptor.limit);
|
|
243
|
-
return filtered;
|
|
244
|
-
},
|
|
245
|
-
// Headless contexts have no interactive viewer filter, so there is never
|
|
246
|
-
// an "active filter" to report (issue #1107).
|
|
247
|
-
entitiesMatchingActiveFilter: () => null,
|
|
248
|
-
entityData: getEntityData,
|
|
249
|
-
attributes(ref) {
|
|
250
|
-
return extractAllEntityAttributes(store, ref.expressId);
|
|
251
|
-
},
|
|
252
|
-
properties: getProperties,
|
|
253
|
-
quantities: getQuantities,
|
|
254
|
-
classifications(ref) {
|
|
255
|
-
return extractClassificationsOnDemand(store, ref.expressId);
|
|
256
|
-
},
|
|
257
|
-
materials(ref) {
|
|
258
|
-
return extractMaterialsOnDemand(store, ref.expressId);
|
|
259
|
-
},
|
|
260
|
-
typeProperties(ref) {
|
|
261
|
-
const info = extractTypePropertiesOnDemand(store, ref.expressId);
|
|
262
|
-
if (!info)
|
|
263
|
-
return null;
|
|
264
|
-
return {
|
|
265
|
-
typeName: info.typeName,
|
|
266
|
-
typeId: info.typeId,
|
|
267
|
-
properties: info.properties.map((pset) => ({
|
|
268
|
-
name: pset.name,
|
|
269
|
-
globalId: pset.globalId,
|
|
270
|
-
properties: pset.properties.map((p) => ({ name: p.name, type: p.type, value: p.value })),
|
|
271
|
-
})),
|
|
272
|
-
};
|
|
273
|
-
},
|
|
274
|
-
documents(ref) {
|
|
275
|
-
return extractDocumentsOnDemand(store, ref.expressId);
|
|
276
|
-
},
|
|
277
|
-
relationships(ref) {
|
|
278
|
-
return extractRelationshipsOnDemand(store, ref.expressId);
|
|
279
|
-
},
|
|
280
|
-
related(ref, relType, direction) {
|
|
281
|
-
const relEnum = REL_TYPE_MAP[relType];
|
|
282
|
-
if (relEnum === undefined)
|
|
283
|
-
return [];
|
|
284
|
-
const targets = store.relationships.getRelated(ref.expressId, relEnum, direction);
|
|
285
|
-
return targets.map((expressId) => ({ modelId: ref.modelId, expressId }));
|
|
286
|
-
},
|
|
287
|
-
};
|
|
85
|
+
/** This session's queued edits, or null when it has none. */
|
|
86
|
+
pendingOverlay() {
|
|
87
|
+
return overlayFromView(this.mutationView);
|
|
288
88
|
}
|
|
289
89
|
createSelectionAdapter() {
|
|
290
90
|
let selection = [];
|
|
@@ -297,6 +97,20 @@ export class HeadlessLikeBackend {
|
|
|
297
97
|
if (this.storeEditor)
|
|
298
98
|
return this.storeEditor;
|
|
299
99
|
this.mutationView = new MutablePropertyView(this.dataStore.properties || null, this.modelId);
|
|
100
|
+
// Give the overlay a base to merge against. The columnar parser leaves
|
|
101
|
+
// `store.properties` empty and serves properties on demand, so without
|
|
102
|
+
// these the view's *only* source is the overlay itself: `getForEntity`
|
|
103
|
+
// answers with the one edited pset and nothing else. That is not a
|
|
104
|
+
// cosmetic gap — `StepExporter` re-emits `getForEntity(id)` for every
|
|
105
|
+
// entity with a property mutation and skips the original records, so
|
|
106
|
+
// editing one property dropped every sibling property in that pset on
|
|
107
|
+
// save. Mirrors `apps/viewer/src/utils/configureMutationView.ts` minus its
|
|
108
|
+
// `extractTypeEntityOwnProperties` branch: the same plain extractor is what
|
|
109
|
+
// `diff-fingerprints.ts` hashes, and the two must read one base.
|
|
110
|
+
if (this.dataStore.source?.length > 0) {
|
|
111
|
+
this.mutationView.setOnDemandExtractor((entityId) => extractPropertiesOnDemand(this.dataStore, entityId));
|
|
112
|
+
this.mutationView.setQuantityExtractor((entityId) => extractQuantitiesOnDemand(this.dataStore, entityId));
|
|
113
|
+
}
|
|
300
114
|
this.storeEditor = new StoreEditor(this.dataStore, this.mutationView);
|
|
301
115
|
return this.storeEditor;
|
|
302
116
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"headless-backend.js","sourceRoot":"","sources":["../src/headless-backend.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"headless-backend.js","sourceRoot":"","sources":["../src/headless-backend.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAsC/D,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,YAAY,EAA0B,MAAM,kBAAkB,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAuB,MAAM,cAAc,CAAC;AAEpE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEhE,MAAM,OAAO,mBAAmB;IACrB,KAAK,CAAsB;IAC3B,KAAK,CAAsB;IAC3B,SAAS,CAA0B;IAC5C;;;;;OAKG;IACH,UAAU,CAA2B;IACrC,MAAM,CAAuB;IACpB,MAAM,CAAuB;IAC7B,KAAK,CAAsB;IAC3B,OAAO,CAAwB;IAC/B,MAAM,CAAuB;IAC7B,IAAI,CAAqB;IACzB,KAAK,CAAsB;IAC3B,QAAQ,CAAyB;IAElC,SAAS,CAAe;IACxB,SAAS,CAAS;IAClB,OAAO,CAAS;IAChB,YAAY,GAA+B,IAAI,CAAC;IAChD,WAAW,GAAuB,IAAI,CAAC;IAE/C,YAAY,KAAmB,EAAE,SAAiB,EAAE,OAAe;QACjE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACvC,yEAAyE;QACzE,wEAAwE;QACxE,wEAAwE;QACxE,yBAAyB;QACzB,IAAI,CAAC,KAAK,GAAG,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;QAC7E,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC/C,IAAI,CAAC,UAAU,GAAG,EAAE,IAAI,KAAI,CAAC,EAAE,IAAI,KAAI,CAAC,EAAE,OAAO,KAAI,CAAC,EAAE,KAAK,KAAI,CAAC,EAAE,CAAC;QACrE,IAAI,CAAC,MAAM,GAAG;YACZ,QAAQ,KAAI,CAAC,EAAE,WAAW,KAAI,CAAC,EAAE,WAAW,KAAI,CAAC;YACjD,KAAK,KAAI,CAAC,EAAE,UAAU,KAAI,CAAC,EAAE,UAAU,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC;YAC1D,SAAS,KAAI,CAAC,EAAE,SAAS,KAAK,OAAO,EAAE,IAAI,EAAE,aAAsB,EAAE,CAAC,CAAC,CAAC;SACzE,CAAC;QACF,IAAI,CAAC,MAAM,GAAG;YACZ,WAAW,KAAI,CAAC,EAAE,YAAY,KAAI,CAAC,EAAE,cAAc,KAAI,CAAC;YACxD,UAAU,KAAI,CAAC,EAAE,QAAQ,KAAI,CAAC,EAAE,IAAI,KAAK,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,OAAO,KAAK,CAAC,CAAC,CAAC;SACnF,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACvC,IAAI,CAAC,OAAO,GAAG,EAAE,WAAW,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,EAAE,OAAO,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,KAAI,CAAC,EAAE,UAAU,KAAI,CAAC,EAAE,SAAS,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAClI,IAAI,CAAC,KAAK,GAAG,EAAE,IAAI,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/C,CAAC;IAED,SAAS,CAAC,MAAoB,EAAE,QAAiC;QAC/D,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;IAClB,CAAC;IAEO,kBAAkB;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;QAC5B,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QACxB,OAAO;YACL,IAAI;gBACF,OAAO,CAAC;wBACN,EAAE;wBACF,IAAI;wBACJ,MAAM,EAAE,KAAK,CAAC,aAAa;wBAC3B,aAAa,EAAE,KAAK,CAAC,aAAa;wBAClC,WAAW,EAAE,KAAK,CAAC,WAAW;wBAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;wBACxB,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE;qBACrB,CAAC,CAAC;YACL,CAAC;YACD,QAAQ,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC;YACzB,OAAO,KAA6B,CAAC;SACtC,CAAC;IACJ,CAAC;IAED,6DAA6D;IAC7D,cAAc;QACZ,OAAO,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC5C,CAAC;IAEO,sBAAsB;QAC5B,IAAI,SAAS,GAAgB,EAAE,CAAC;QAChC,OAAO;YACL,GAAG,KAAK,OAAO,SAAS,CAAC,CAAC,CAAC;YAC3B,GAAG,CAAC,IAAiB,IAAI,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC;SAC7C,CAAC;IACJ,CAAC;IAEO,sBAAsB;QAC5B,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC;QAC9C,IAAI,CAAC,YAAY,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,IAAI,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7F,uEAAuE;QACvE,uEAAuE;QACvE,uEAAuE;QACvE,mEAAmE;QACnE,sEAAsE;QACtE,qEAAqE;QACrE,sEAAsE;QACtE,2EAA2E;QAC3E,4EAA4E;QAC5E,iEAAiE;QACjE,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,yBAAyB,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;YAC1G,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,yBAAyB,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC5G,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACtE,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,uEAAuE;IACvE,eAAe;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,iFAAiF;IACjF,YAAY;QACV,OAAO,IAAI,CAAC,sBAAsB,EAAE,CAAC;IACvC,CAAC;IAED,6EAA6E;IAC7E,uBAAuB,CAAC,MAA4B,EAAE,UAAoC;QACxF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,0EAA0E;IAC1E,uBAAuB;QACrB,IAAI,CAAC,MAAM,GAAG;YACZ,QAAQ,KAAI,CAAC,EAAE,WAAW,KAAI,CAAC,EAAE,WAAW,KAAI,CAAC;YACjD,KAAK,KAAI,CAAC,EAAE,UAAU,KAAI,CAAC,EAAE,UAAU,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC;YAC1D,SAAS,KAAI,CAAC,EAAE,SAAS,KAAK,OAAO,EAAE,IAAI,EAAE,aAAsB,EAAE,CAAC,CAAC,CAAC;SACzE,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,EAAE,IAAI,KAAI,CAAC,EAAE,IAAI,KAAI,CAAC,EAAE,OAAO,KAAI,CAAC,EAAE,KAAK,KAAI,CAAC,EAAE,CAAC;IACvE,CAAC;IAEO,kBAAkB;QACxB,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAChD,OAAO;YACL,SAAS,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE;gBAC1B,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,UAAqD,CAAC,CAAC;gBACjG,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC;YAC/C,CAAC;YACD,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC;YACxD,sBAAsB,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;gBAC5C,GAAG,EAAE,CAAC,sBAAsB,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,KAA6D,CAAC,CAAC;YACpH,CAAC;YACD,yEAAyE;YACzE,qEAAqE;YACrE,kEAAkE;YAClE,SAAS,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC,CAAC,CAAC;YAC/F,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC,CAAC,CAAC;YAC3F,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC,CAAC,CAAC;YAC3F,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC,CAAC,CAAC;YAC3F,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC,CAAC,CAAC;YAC3F,SAAS,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC,CAAC,CAAC;YAC/F,QAAQ,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC,CAAC,CAAC;YAC7F,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC,CAAC,CAAC;YAC3F,QAAQ,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC,CAAC,CAAC;YAC7F,SAAS,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC,CAAC,CAAC;SAChG,CAAC;IACJ,CAAC;IAEO,mBAAmB;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7B,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;QAEhC,MAAM,SAAS,GAAG,CAAC,KAAa,EAAE,GAAW,EAAU,EAAE;YACvD,uEAAuE;YACvE,yEAAyE;YACzE,IAAI,GAAG,GAAG,KAAK,CAAC;YAChB,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7B,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;YAClB,CAAC;YACD,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvF,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;YACxC,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC,CAAC;QAEF,MAAM,aAAa,GAAG,CACpB,IAAgB,EAChB,GAAW,EACX,KAA+B,EAC/B,KAA+B,EACvB,EAAE;YACV,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM;gBAAE,OAAO,IAAI,CAAC,IAAI,CAAC;YACvD,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM;gBAAE,OAAO,IAAI,CAAC,IAAI,CAAC;YACvD,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,UAAU;gBAAE,OAAO,IAAI,CAAC,QAAQ,CAAC;YACnE,IAAI,GAAG,KAAK,aAAa,IAAI,GAAG,KAAK,aAAa;gBAAE,OAAO,IAAI,CAAC,WAAW,CAAC;YAC5E,IAAI,GAAG,KAAK,YAAY,IAAI,GAAG,KAAK,YAAY;gBAAE,OAAO,IAAI,CAAC,UAAU,CAAC;YACzE,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC7B,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;gBACZ,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;gBAClC,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;gBACrC,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;oBACnD,IAAI,IAAI,EAAE,CAAC;wBACT,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;wBAC/D,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI;4BAAE,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACrD,CAAC;gBACH,CAAC;gBACD,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;oBACnD,IAAI,IAAI,EAAE,CAAC;wBACT,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;wBAC9D,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI;4BAAE,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBACnD,CAAC;gBACH,CAAC;YACH,CAAC;YACD,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC;QAEF,OAAO;YACL,GAAG,CAAC,IAAI,EAAE,OAAO;gBACf,MAAM,UAAU,GAAG,IAAmB,CAAC;gBACvC,MAAM,IAAI,GAAG,OAAoD,CAAC;gBAClE,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC;gBAClC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC5D,MAAM,IAAI,GAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACxC,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;oBAC7B,MAAM,IAAI,GAAG,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;oBAC1C,IAAI,CAAC,IAAI;wBAAE,SAAS;oBACpB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;oBAC3D,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;oBAC3D,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC3E,CAAC;gBACD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/E,CAAC;YACD,IAAI,CAAC,IAAI,EAAE,OAAO;gBAChB,MAAM,UAAU,GAAG,IAAmB,CAAC;gBACvC,MAAM,IAAI,GAAG,OAAmB,CAAC;gBACjC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBACpD,MAAM,MAAM,GAA8B,EAAE,CAAC;gBAC7C,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;oBAC7B,MAAM,IAAI,GAAG,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;oBAC1C,IAAI,CAAC,IAAI;wBAAE,SAAS;oBACpB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;oBAC3D,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;oBAC3D,MAAM,GAAG,GAA4B,EAAE,CAAC;oBACxC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;wBACvB,MAAM,CAAC,GAAG,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;wBACjD,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;oBACvB,CAAC;oBACD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACnB,CAAC;gBACD,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,GAAG,EAAE,CAAC,IAAI,EAAE,OAAO,EAAU,EAAE;gBAC7B,MAAM,UAAU,GAAG,IAAmB,CAAC;gBACvC,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,CAA4B,CAAC;gBACxD,MAAM,MAAM,GAAI,IAAI,CAAC,MAAuC,IAAI,KAAK,CAAC,aAAa,IAAI,MAAM,CAAC;gBAC9F,MAAM,UAAU,GAA+B,EAAE,MAAM,EAAE,CAAC;gBAC1D,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACxC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;oBAChE,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC;oBAC9B,UAAU,CAAC,iBAAiB,GAAG,WAAW,CAAC;oBAC3C,UAAU,CAAC,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;gBACjD,CAAC;gBACD,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;oBACtB,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;oBAC5D,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC;oBAC1D,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAClD,CAAC;gBACD,OAAO,YAAY,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YACzC,CAAC;YACD,QAAQ,KAA8E,CAAC;SACxF,CAAC;IACJ,CAAC;IAEO,qBAAqB;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7B,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QACxB,IAAI,MAAM,GAAsD,IAAI,CAAC;QACrE,MAAM,MAAM,GAAG,CAAC,OAAgB,EAAQ,EAAE;YACxC,IAAI,OAAO,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;gBAC9B,MAAM,IAAI,KAAK,CAAC,oBAAoB,OAAO,8BAA8B,EAAE,GAAG,CAAC,CAAC;YAClF,CAAC;QACH,CAAC,CAAC;QACF,MAAM,OAAO,GAAG,CAAC,OAAgB,EAA8C,EAAE;YAC/E,MAAM,CAAC,OAAO,CAAC,CAAC;YAChB,IAAI,CAAC,MAAM;gBAAE,MAAM,GAAG,uBAAuB,CAAC,KAAK,CAA+C,CAAC;YACnG,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;QACF,OAAO;YACL,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;YACvB,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK;YAC9B,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa;YAC9C,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;SACvC,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The pending-mutation overlay, in the shape the server's read surface needs to
|
|
3
|
+
* read it. One reader for every tool: `model_diff` (#2000) and, since #2004, the
|
|
4
|
+
* query backend, `model_info` and `count_entities`.
|
|
5
|
+
*
|
|
6
|
+
* A `model_id` on this server does not name a file — it names a session model,
|
|
7
|
+
* and `entity_set_property` / `entity_set_attribute` / `entity_create` /
|
|
8
|
+
* `entity_delete` queue their edits in a `MutablePropertyView` overlay that the
|
|
9
|
+
* parsed `IfcDataStore` never sees (the store's buffer and index are immutable;
|
|
10
|
+
* the overlay materialises at `export_ifc` / `model_save` time).
|
|
11
|
+
*
|
|
12
|
+
* Read straight from the store, a tool therefore answers about the file as it
|
|
13
|
+
* was parsed. That is the wrong answer for the caller most likely to ask: an
|
|
14
|
+
* agent edits, reads back to confirm, and is told its edit did not happen — and
|
|
15
|
+
* the natural recovery from that is to edit again.
|
|
16
|
+
*
|
|
17
|
+
* **Reads fold the overlay in silently; the payload then says how many edits are
|
|
18
|
+
* queued.** Folding is what makes "what is there now" answerable at all, and
|
|
19
|
+
* `query_entities`' filters make it non-negotiable: a query for the value an
|
|
20
|
+
* agent just wrote has to find it, and a tool that reported the divergence
|
|
21
|
+
* instead of folding would still return the pre-edit row set. Reporting is what
|
|
22
|
+
* keeps the answer honest about not being on disk yet — `pendingMutations` is
|
|
23
|
+
* absent, not zero, on a session that has never been edited, so nothing changes
|
|
24
|
+
* for a read-only caller.
|
|
25
|
+
*/
|
|
26
|
+
import type { PropertySet, QuantitySet } from '@ifc-lite/data';
|
|
27
|
+
import type { MutablePropertyView } from '@ifc-lite/mutations';
|
|
28
|
+
import { type IfcDataStore } from '@ifc-lite/parser';
|
|
29
|
+
import type { LoadedModel } from './context.js';
|
|
30
|
+
/** An entity that exists only in the overlay (`entity_create`). */
|
|
31
|
+
export interface CreatedEntity {
|
|
32
|
+
expressId: number;
|
|
33
|
+
/** IFC class as authored, e.g. `IfcWall`. */
|
|
34
|
+
ifcType: string;
|
|
35
|
+
/** Empty for a created entity that carries none — an `IfcCartesianPoint`, or
|
|
36
|
+
* a root the caller left unidentified. Never empty in {@link
|
|
37
|
+
* PendingOverlay.created}, which is the cross-model-identity list. */
|
|
38
|
+
globalId: string;
|
|
39
|
+
name?: string;
|
|
40
|
+
description?: string;
|
|
41
|
+
/** The positional STEP attributes exactly as authored. */
|
|
42
|
+
attributes: readonly unknown[];
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Attribute writes queued for an entity, keyed by IFC attribute name.
|
|
46
|
+
*
|
|
47
|
+
* **Not a fixed set of fields, deliberately.** This used to project the three
|
|
48
|
+
* names the fingerprint hashes (`Name` / `Description` / `ObjectType`) while
|
|
49
|
+
* `entity_set_attribute` accepted four, so a written `Tag` was queued and never
|
|
50
|
+
* read back (#2014). A projection that enumerates has to be kept in step with
|
|
51
|
+
* the write tool's enum by hand, and was not. Passing every queued write through
|
|
52
|
+
* means the read surface cannot fall behind the write surface again: whatever
|
|
53
|
+
* the enum grows, the readback carries.
|
|
54
|
+
*/
|
|
55
|
+
export type AttributeOverrides = ReadonlyMap<string, string>;
|
|
56
|
+
/**
|
|
57
|
+
* One queued `IfcRel…` record, resolved to the entities it links.
|
|
58
|
+
*
|
|
59
|
+
* `entity_create` is the only way an agent can relate anything over MCP, so a
|
|
60
|
+
* queued relationship is how a session says "this new wall is in that storey".
|
|
61
|
+
* Reading it back is what keeps `in_storey` from dropping an entity the same
|
|
62
|
+
* session just placed.
|
|
63
|
+
*/
|
|
64
|
+
export interface QueuedRelation {
|
|
65
|
+
/** expressId of the queued `IfcRel…` record itself. */
|
|
66
|
+
relationshipId: number;
|
|
67
|
+
/** The `Relating…` end — the container, whole, or type. */
|
|
68
|
+
relating: number;
|
|
69
|
+
/** The `Related…` end(s) — the contents, parts, or occurrences. */
|
|
70
|
+
related: readonly number[];
|
|
71
|
+
}
|
|
72
|
+
/** The overlay's read surface, as every folding tool consumes it. */
|
|
73
|
+
export interface PendingOverlay {
|
|
74
|
+
/** Express ids tombstoned by `entity_delete`. Empty is the common case.
|
|
75
|
+
* Since #2012 this includes an entity the session created and then deleted:
|
|
76
|
+
* `deleteEntity` tombstones it as well as forgetting it, so that "was this
|
|
77
|
+
* deleted" has a true answer to find. A count therefore has to intersect
|
|
78
|
+
* this with the store rather than subtracting its size — see
|
|
79
|
+
* {@link foldedEntityCount}. */
|
|
80
|
+
readonly deleted: ReadonlySet<number>;
|
|
81
|
+
/** Entities queued by `entity_create` that carry a GlobalId, in creation
|
|
82
|
+
* order. The identity list: `model_diff` compares on it, and
|
|
83
|
+
* `get_entity(global_id)` resolves against it. A created entity without one
|
|
84
|
+
* is reachable through {@link createdEntity} by expressId. */
|
|
85
|
+
readonly created: readonly CreatedEntity[];
|
|
86
|
+
/** Every queued entity, GlobalId-bearing or not, in creation order. What a
|
|
87
|
+
* *count* is about: a created `IfcCartesianPoint` has no identity to compare
|
|
88
|
+
* but is still one more entity in the model. `entity_delete` on a queued
|
|
89
|
+
* entity drops it from this list, so a created-then-deleted entity appears
|
|
90
|
+
* here not at all and in {@link deleted} once. */
|
|
91
|
+
readonly createdAll: readonly CreatedEntity[];
|
|
92
|
+
/** Queued mutations on this model — the same number `mutation_diff` reports.
|
|
93
|
+
* Echoed back so a caller can tell an answer that includes uncommitted edits
|
|
94
|
+
* from one taken over the file as parsed. */
|
|
95
|
+
readonly pendingMutations: number;
|
|
96
|
+
/** Any queued entity by expressId, GlobalId-bearing or not. Null when the id
|
|
97
|
+
* is not one this session created. */
|
|
98
|
+
createdEntity(expressId: number): CreatedEntity | null;
|
|
99
|
+
attributes(expressId: number): AttributeOverrides;
|
|
100
|
+
/** Every entity with a queued attribute write, keyed by expressId. For loops
|
|
101
|
+
* over a whole model: `attributes(id)` builds a map per call, which is fine
|
|
102
|
+
* for one entity and not for a million. */
|
|
103
|
+
attributesByEntity(): ReadonlyMap<number, AttributeOverrides>;
|
|
104
|
+
/** Base property sets with the overlay's edits applied. */
|
|
105
|
+
propertySets(expressId: number): PropertySet[];
|
|
106
|
+
/** Base quantity sets with the overlay's edits applied. */
|
|
107
|
+
quantitySets(expressId: number): QuantitySet[];
|
|
108
|
+
/** Queued relationships of one IFC class, e.g.
|
|
109
|
+
* `'IfcRelContainedInSpatialStructure'`. Empty for a session that created
|
|
110
|
+
* none, which is the common case. */
|
|
111
|
+
queuedRelations(ifcRelType: string): readonly QueuedRelation[];
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* The model's pending overlay, or `null` when it has none.
|
|
115
|
+
*
|
|
116
|
+
* Null is the answer for every model that was only ever read: the backend
|
|
117
|
+
* creates the view lazily on the first mutation, so an unedited session pays
|
|
118
|
+
* nothing and every caller keeps its original store-only path.
|
|
119
|
+
*/
|
|
120
|
+
export declare function pendingOverlay(model: LoadedModel): PendingOverlay | null;
|
|
121
|
+
/**
|
|
122
|
+
* The same reader, built from the view directly.
|
|
123
|
+
*
|
|
124
|
+
* The backend owns its `MutablePropertyView` and folds the overlay into its own
|
|
125
|
+
* query adapter, so it cannot go through `pendingOverlay` — that would need a
|
|
126
|
+
* `LoadedModel`, which is the registry entry wrapped *around* the backend.
|
|
127
|
+
*/
|
|
128
|
+
export declare function overlayFromView(view: MutablePropertyView | null): PendingOverlay | null;
|
|
129
|
+
/**
|
|
130
|
+
* Entity count per STEP type key, with the session's queued creates and deletes
|
|
131
|
+
* applied. Created entities are counted under the uppercase key the store uses,
|
|
132
|
+
* so `entity_create('IfcWall')` lands on the same row as the walls already in
|
|
133
|
+
* the file rather than opening a second `IfcWall` row.
|
|
134
|
+
*/
|
|
135
|
+
export declare function foldedTypeCounts(store: IfcDataStore, overlay: PendingOverlay | null): Map<string, number>;
|
|
136
|
+
/**
|
|
137
|
+
* The model's entity count with the session's creates and deletes applied.
|
|
138
|
+
*
|
|
139
|
+
* Adjusts the parser's own total rather than re-summing `byType`, so an unedited
|
|
140
|
+
* model's number is byte-for-byte what it always was.
|
|
141
|
+
*
|
|
142
|
+
* Only tombstones that name a STORE entity are subtracted. A created-then-
|
|
143
|
+
* deleted entity is already absent from `createdAll`, so counting its tombstone
|
|
144
|
+
* too would subtract it a second time and report one entity fewer than the file
|
|
145
|
+
* has (#2012). This also makes a tombstone on an id the store never had — which
|
|
146
|
+
* `entity_delete` rejects, but nothing here relies on that — unable to drive the
|
|
147
|
+
* count below the truth.
|
|
148
|
+
*/
|
|
149
|
+
export declare function foldedEntityCount(store: IfcDataStore, overlay: PendingOverlay | null): number;
|
|
150
|
+
/**
|
|
151
|
+
* `{ pendingMutations: n }` when any of the sessions has queued edits, `{}`
|
|
152
|
+
* otherwise — spread into a tool payload so an unedited session's shape is
|
|
153
|
+
* untouched.
|
|
154
|
+
*
|
|
155
|
+
* Always a scalar, at every level of every payload. `model_diff` used to publish
|
|
156
|
+
* a `{ base, head }` object under the same name inside `contentDiff`, so one
|
|
157
|
+
* field name meant two shapes depending on where a caller found it; the split is
|
|
158
|
+
* now `pendingMutationsBySide`.
|
|
159
|
+
*/
|
|
160
|
+
export declare function pendingMutationsField(...overlays: Array<PendingOverlay | null>): Record<string, number>;
|
|
161
|
+
/**
|
|
162
|
+
* Unwrap one authored STEP attribute to plain text.
|
|
163
|
+
*
|
|
164
|
+
* `StoreEditor.addEntity` documents both `"'literal'"` and a bare string as
|
|
165
|
+
* ways to write a string attribute, so the quotes have to come off before the
|
|
166
|
+
* value is hashed — otherwise a created entity could never content-match the
|
|
167
|
+
* same entity read back out of a file. `$` (unset), `*` (derived) and `#42`
|
|
168
|
+
* (a reference) are not text.
|
|
169
|
+
*/
|
|
170
|
+
export declare function stepText(value: unknown): string | undefined;
|
|
171
|
+
//# sourceMappingURL=overlay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../src/overlay.ts"],"names":[],"mappings":"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"}
|