@ifc-lite/sdk 6.2.0 → 6.4.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/cost-backend.d.ts +26 -0
- package/dist/cost-backend.d.ts.map +1 -1
- package/dist/cost-backend.js +61 -7
- package/dist/cost-backend.js.map +1 -1
- package/dist/cost-reference-scan.d.ts +12 -0
- package/dist/cost-reference-scan.d.ts.map +1 -0
- package/dist/cost-reference-scan.js +96 -0
- package/dist/cost-reference-scan.js.map +1 -0
- package/dist/cost-removal-reference-guard.d.ts +4 -0
- package/dist/cost-removal-reference-guard.d.ts.map +1 -0
- package/dist/cost-removal-reference-guard.js +37 -0
- package/dist/cost-removal-reference-guard.js.map +1 -0
- package/dist/cost-store-backend.d.ts +24 -0
- package/dist/cost-store-backend.d.ts.map +1 -0
- package/dist/cost-store-backend.js +368 -0
- package/dist/cost-store-backend.js.map +1 -0
- package/dist/cost-types.d.ts +26 -7
- package/dist/cost-types.d.ts.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/namespaces/cost.d.ts +15 -8
- package/dist/namespaces/cost.d.ts.map +1 -1
- package/dist/namespaces/cost.js +12 -5
- package/dist/namespaces/cost.js.map +1 -1
- package/dist/namespaces/query.d.ts +3 -2
- package/dist/namespaces/query.d.ts.map +1 -1
- package/dist/namespaces/query.js +24 -4
- package/dist/namespaces/query.js.map +1 -1
- package/dist/namespaces/store.d.ts +31 -0
- package/dist/namespaces/store.d.ts.map +1 -1
- package/dist/namespaces/store.js +49 -0
- package/dist/namespaces/store.js.map +1 -1
- package/dist/store-cost-types.d.ts +36 -0
- package/dist/store-cost-types.d.ts.map +1 -0
- package/dist/store-cost-types.js +5 -0
- package/dist/store-cost-types.js.map +1 -0
- package/dist/types.d.ts +15 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +10 -10
package/dist/cost-backend.d.ts
CHANGED
|
@@ -1,9 +1,35 @@
|
|
|
1
1
|
import { type IfcDataStore } from '@ifc-lite/parser';
|
|
2
|
+
import type { MutablePropertyView } from '@ifc-lite/mutations';
|
|
2
3
|
import type { CostBackendMethods } from './cost-types.js';
|
|
3
4
|
export interface ResolvedCostModel {
|
|
4
5
|
modelId: string;
|
|
5
6
|
store: IfcDataStore;
|
|
7
|
+
/**
|
|
8
|
+
* The model's pending edits — the same `MutablePropertyView` `bim.export.ifc()`
|
|
9
|
+
* writes through — when it has any (#4857). A host with no loaded-model
|
|
10
|
+
* editing (the CLI and MCP headless backends) returns none, and every read
|
|
11
|
+
* takes the cached on-disk path exactly as before.
|
|
12
|
+
*/
|
|
13
|
+
mutationView?: MutablePropertyView;
|
|
6
14
|
}
|
|
7
15
|
export type CostModelResolver = (modelId?: string) => ResolvedCostModel;
|
|
16
|
+
/**
|
|
17
|
+
* THE cost read entry point, and the one cache between an edit and a read.
|
|
18
|
+
*
|
|
19
|
+
* The cache holds the UNMUTATED graph and nothing else. It is keyed on the
|
|
20
|
+
* store's `source` / `schemaVersion` / `entityIndex` identities — all three
|
|
21
|
+
* replaced wholesale when a model is reloaded and none of them touched by a
|
|
22
|
+
* pending edit — so what it holds cannot go stale under editing: a pending
|
|
23
|
+
* edit never enters it.
|
|
24
|
+
*
|
|
25
|
+
* A read that observes pending edits therefore does not consult the cache at
|
|
26
|
+
* all; it re-extracts through the overlay (#4857). That is the deliberate
|
|
27
|
+
* trade. A second cache keyed on "the overlay as it stood" would need a
|
|
28
|
+
* revision signal bumped at every one of `MutablePropertyView`'s mutation
|
|
29
|
+
* entry points, and one missed entry point is a read that silently reports a
|
|
30
|
+
* pre-edit cost graph — the failure this repo has shipped before. Re-reading
|
|
31
|
+
* costs one cost-scoped extraction per call and only on models that actually
|
|
32
|
+
* have an overlay; being wrong costs a wrong number in a tender.
|
|
33
|
+
*/
|
|
8
34
|
export declare function createCostBackend(resolveModel: CostModelResolver): CostBackendMethods;
|
|
9
35
|
//# sourceMappingURL=cost-backend.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cost-backend.d.ts","sourceRoot":"","sources":["../src/cost-backend.ts"],"names":[],"mappings":"AAIA,OAAO,
|
|
1
|
+
{"version":3,"file":"cost-backend.d.ts","sourceRoot":"","sources":["../src/cost-backend.ts"],"names":[],"mappings":"AAIA,OAAO,EAG0E,KAAK,YAAY,EACjG,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,OAAO,KAAK,EACY,kBAAkB,EAGzC,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,YAAY,CAAC;IACpB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,mBAAmB,CAAC;CACpC;AA2BD,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,iBAAiB,CAAC;AA+HxE;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,iBAAiB,GAAG,kBAAkB,CAgDrF"}
|
package/dist/cost-backend.js
CHANGED
|
@@ -2,6 +2,33 @@
|
|
|
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 { evaluateCostItem, evaluateCostValue, extractCostOnDemand, } from '@ifc-lite/parser';
|
|
5
|
+
import { effectiveCreatedRecord, effectiveSourceRecord } from '@ifc-lite/export';
|
|
6
|
+
/**
|
|
7
|
+
* The cost read model's view of `view`: tombstones and retypes straight off the
|
|
8
|
+
* view, and every record as `effectiveSourceRecord` — the exporter's own
|
|
9
|
+
* pipeline — writes it. No edit kind is re-serialized here.
|
|
10
|
+
*/
|
|
11
|
+
function costOverlay(view, store) {
|
|
12
|
+
return {
|
|
13
|
+
isDeleted: id => view.isDeleted(id),
|
|
14
|
+
retypes: () => new Map([...view.getTypeMutations()].map(([id, mutation]) => [id, mutation.newType])),
|
|
15
|
+
effectiveRecord: (id, text, type) => effectiveSourceRecord(view, id, text, type, store.schemaVersion),
|
|
16
|
+
created: () => view.getNewEntities().map(entity => {
|
|
17
|
+
try {
|
|
18
|
+
const effective = effectiveCreatedRecord(view, entity.expressId, store.schemaVersion);
|
|
19
|
+
return effective
|
|
20
|
+
? { expressId: entity.expressId, ...effective }
|
|
21
|
+
: { expressId: entity.expressId, error: `Created entity #${entity.expressId} disappeared from the mutation overlay` };
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
return {
|
|
25
|
+
expressId: entity.expressId,
|
|
26
|
+
error: error instanceof Error ? error.message : String(error),
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
}),
|
|
30
|
+
};
|
|
31
|
+
}
|
|
5
32
|
function ref(modelId, expressId) { return { modelId, expressId }; }
|
|
6
33
|
function refs(modelId, ids) { return ids.map(expressId => ref(modelId, expressId)); }
|
|
7
34
|
function projectDiagnostic(modelId, value) {
|
|
@@ -121,13 +148,37 @@ function validateEvaluationOptions(options) {
|
|
|
121
148
|
throw new Error('bim.cost evaluation Precision must be an integer from 1 through 10000');
|
|
122
149
|
}
|
|
123
150
|
}
|
|
151
|
+
/**
|
|
152
|
+
* THE cost read entry point, and the one cache between an edit and a read.
|
|
153
|
+
*
|
|
154
|
+
* The cache holds the UNMUTATED graph and nothing else. It is keyed on the
|
|
155
|
+
* store's `source` / `schemaVersion` / `entityIndex` identities — all three
|
|
156
|
+
* replaced wholesale when a model is reloaded and none of them touched by a
|
|
157
|
+
* pending edit — so what it holds cannot go stale under editing: a pending
|
|
158
|
+
* edit never enters it.
|
|
159
|
+
*
|
|
160
|
+
* A read that observes pending edits therefore does not consult the cache at
|
|
161
|
+
* all; it re-extracts through the overlay (#4857). That is the deliberate
|
|
162
|
+
* trade. A second cache keyed on "the overlay as it stood" would need a
|
|
163
|
+
* revision signal bumped at every one of `MutablePropertyView`'s mutation
|
|
164
|
+
* entry points, and one missed entry point is a read that silently reports a
|
|
165
|
+
* pre-edit cost graph — the failure this repo has shipped before. Re-reading
|
|
166
|
+
* costs one cost-scoped extraction per call and only on models that actually
|
|
167
|
+
* have an overlay; being wrong costs a wrong number in a tender.
|
|
168
|
+
*/
|
|
124
169
|
export function createCostBackend(resolveModel) {
|
|
125
170
|
const cache = new WeakMap();
|
|
126
|
-
const resolve = (modelId) => {
|
|
171
|
+
const resolve = (modelId, options) => {
|
|
127
172
|
const resolved = resolveModel(modelId);
|
|
128
173
|
if (!resolved.store.source || resolved.store.source.byteLength === 0) {
|
|
129
174
|
throw new Error(`bim.cost requires loaded IFC source bytes for model '${resolved.modelId}'`);
|
|
130
175
|
}
|
|
176
|
+
const view = options?.includeMutations === false ? undefined : resolved.mutationView;
|
|
177
|
+
if (view) {
|
|
178
|
+
// Pending edits are live state: extract fresh, and never write the
|
|
179
|
+
// result into the unmutated-graph cache above.
|
|
180
|
+
return { ...resolved, graph: extractCostOnDemand(resolved.store, { overlay: costOverlay(view, resolved.store) }) };
|
|
181
|
+
}
|
|
131
182
|
let cached = cache.get(resolved.store);
|
|
132
183
|
if (!cached || cached.source !== resolved.store.source
|
|
133
184
|
|| cached.schemaVersion !== resolved.store.schemaVersion
|
|
@@ -140,22 +191,25 @@ export function createCostBackend(resolveModel) {
|
|
|
140
191
|
}
|
|
141
192
|
return { ...resolved, graph: cached.graph };
|
|
142
193
|
};
|
|
143
|
-
const data = (modelId) => {
|
|
194
|
+
const data = (modelId, options) => {
|
|
195
|
+
const value = resolve(modelId, options);
|
|
196
|
+
return projectCostGraph(value.modelId, value.graph);
|
|
197
|
+
};
|
|
144
198
|
return {
|
|
145
199
|
data,
|
|
146
|
-
schedules: modelId => data(modelId).CostSchedules,
|
|
147
|
-
items: modelId => data(modelId).CostItems,
|
|
148
|
-
values: modelId => data(modelId).CostValues,
|
|
200
|
+
schedules: (modelId, options) => data(modelId, options).CostSchedules,
|
|
201
|
+
items: (modelId, options) => data(modelId, options).CostItems,
|
|
202
|
+
values: (modelId, options) => data(modelId, options).CostValues,
|
|
149
203
|
evaluateItem: (target, options) => {
|
|
150
204
|
validateEvaluationTarget(target);
|
|
151
205
|
validateEvaluationOptions(options);
|
|
152
|
-
const value = resolve(target.modelId);
|
|
206
|
+
const value = resolve(target.modelId, options);
|
|
153
207
|
return projectEvaluation(value.modelId, evaluateCostItem(value.graph, target.expressId, options));
|
|
154
208
|
},
|
|
155
209
|
evaluateValue: (target, options) => {
|
|
156
210
|
validateEvaluationTarget(target);
|
|
157
211
|
validateEvaluationOptions(options);
|
|
158
|
-
const value = resolve(target.modelId);
|
|
212
|
+
const value = resolve(target.modelId, options);
|
|
159
213
|
return projectEvaluation(value.modelId, evaluateCostValue(value.graph, target.expressId, options));
|
|
160
214
|
},
|
|
161
215
|
};
|
package/dist/cost-backend.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cost-backend.js","sourceRoot":"","sources":["../src/cost-backend.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cost-backend.js","sourceRoot":"","sources":["../src/cost-backend.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { MutablePropertyView } from '@ifc-lite/mutations';
|
|
2
|
+
import type { IfcDataStore } from '@ifc-lite/parser';
|
|
3
|
+
/**
|
|
4
|
+
* Index effective records that point at any target id. One pass covers the
|
|
5
|
+
* entity being removed and every candidate cascade value, so deletion cost is
|
|
6
|
+
* linear in model size rather than one full-model scan per cost value.
|
|
7
|
+
* Non-relationship SELECT references such as
|
|
8
|
+
* `IfcMetric.DataValue -> IfcCostValue` therefore cannot be orphaned.
|
|
9
|
+
*/
|
|
10
|
+
export declare function effectiveCostReferenceOccurrences(store: IfcDataStore, view: MutablePropertyView, targetIds: ReadonlySet<number>): Map<number, Map<number, number>>;
|
|
11
|
+
export declare function effectiveCostReferrers(store: IfcDataStore, view: MutablePropertyView, targetIds: ReadonlySet<number>): Map<number, number[]>;
|
|
12
|
+
//# sourceMappingURL=cost-reference-scan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cost-reference-scan.d.ts","sourceRoot":"","sources":["../src/cost-reference-scan.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAyCrD;;;;;;GAMG;AACH,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,mBAAmB,EACzB,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,GAC7B,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CA6BlC;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,mBAAmB,EACzB,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,GAC7B,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAKvB"}
|
|
@@ -0,0 +1,96 @@
|
|
|
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
|
+
/** Full-model incoming-reference guard for destructive cost authoring. */
|
|
5
|
+
import { effectiveCreatedRecord, effectiveSourceRecord } from '@ifc-lite/export';
|
|
6
|
+
function referencedTargetCounts(text, targetIds) {
|
|
7
|
+
const found = new Map();
|
|
8
|
+
let inString = false;
|
|
9
|
+
let inComment = false;
|
|
10
|
+
for (let i = 0; i < text.length; i++) {
|
|
11
|
+
if (inComment) {
|
|
12
|
+
if (text[i] === '*' && text[i + 1] === '/') {
|
|
13
|
+
inComment = false;
|
|
14
|
+
i++;
|
|
15
|
+
}
|
|
16
|
+
continue;
|
|
17
|
+
}
|
|
18
|
+
if (!inString && text[i] === '/' && text[i + 1] === '*') {
|
|
19
|
+
inComment = true;
|
|
20
|
+
i++;
|
|
21
|
+
continue;
|
|
22
|
+
}
|
|
23
|
+
if (text[i] === "'") {
|
|
24
|
+
if (inString && text[i + 1] === "'") {
|
|
25
|
+
i++;
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
inString = !inString;
|
|
29
|
+
}
|
|
30
|
+
continue;
|
|
31
|
+
}
|
|
32
|
+
if (inString || text[i] !== '#')
|
|
33
|
+
continue;
|
|
34
|
+
let value = 0;
|
|
35
|
+
let cursor = i + 1;
|
|
36
|
+
if (cursor >= text.length || text[cursor] < '0' || text[cursor] > '9')
|
|
37
|
+
continue;
|
|
38
|
+
while (cursor < text.length && text[cursor] >= '0' && text[cursor] <= '9') {
|
|
39
|
+
value = value * 10 + Number(text[cursor]);
|
|
40
|
+
cursor++;
|
|
41
|
+
}
|
|
42
|
+
if (targetIds.has(value))
|
|
43
|
+
found.set(value, (found.get(value) ?? 0) + 1);
|
|
44
|
+
i = cursor - 1;
|
|
45
|
+
}
|
|
46
|
+
return found;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Index effective records that point at any target id. One pass covers the
|
|
50
|
+
* entity being removed and every candidate cascade value, so deletion cost is
|
|
51
|
+
* linear in model size rather than one full-model scan per cost value.
|
|
52
|
+
* Non-relationship SELECT references such as
|
|
53
|
+
* `IfcMetric.DataValue -> IfcCostValue` therefore cannot be orphaned.
|
|
54
|
+
*/
|
|
55
|
+
export function effectiveCostReferenceOccurrences(store, view, targetIds) {
|
|
56
|
+
const referrers = new Map();
|
|
57
|
+
const seen = new Set();
|
|
58
|
+
const visitSource = (id, ref) => {
|
|
59
|
+
if (seen.has(id) || view.isDeleted(id))
|
|
60
|
+
return;
|
|
61
|
+
seen.add(id);
|
|
62
|
+
const sourceText = store.source.decodeUtf8(ref.byteOffset, ref.byteOffset + ref.byteLength);
|
|
63
|
+
const record = effectiveSourceRecord(view, id, sourceText, ref.type, store.schemaVersion);
|
|
64
|
+
for (const [targetId, count] of referencedTargetCounts(record.text, targetIds)) {
|
|
65
|
+
if (targetId === id)
|
|
66
|
+
continue;
|
|
67
|
+
const incoming = referrers.get(targetId) ?? new Map();
|
|
68
|
+
incoming.set(id, count);
|
|
69
|
+
referrers.set(targetId, incoming);
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
for (const [id, ref] of store.entityIndex.byId)
|
|
73
|
+
visitSource(id, ref);
|
|
74
|
+
for (const [id, ref] of store.deferredEntityIndex ?? [])
|
|
75
|
+
visitSource(id, ref);
|
|
76
|
+
for (const entity of view.getNewEntities()) {
|
|
77
|
+
if (seen.has(entity.expressId))
|
|
78
|
+
continue;
|
|
79
|
+
const record = effectiveCreatedRecord(view, entity.expressId, store.schemaVersion);
|
|
80
|
+
if (!record)
|
|
81
|
+
continue;
|
|
82
|
+
for (const [targetId, count] of referencedTargetCounts(record.text, targetIds)) {
|
|
83
|
+
if (targetId === entity.expressId)
|
|
84
|
+
continue;
|
|
85
|
+
const incoming = referrers.get(targetId) ?? new Map();
|
|
86
|
+
incoming.set(entity.expressId, count);
|
|
87
|
+
referrers.set(targetId, incoming);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return referrers;
|
|
91
|
+
}
|
|
92
|
+
export function effectiveCostReferrers(store, view, targetIds) {
|
|
93
|
+
return new Map([...effectiveCostReferenceOccurrences(store, view, targetIds)]
|
|
94
|
+
.map(([targetId, occurrences]) => [targetId, [...occurrences.keys()]]));
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=cost-reference-scan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cost-reference-scan.js","sourceRoot":"","sources":["../src/cost-reference-scan.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { CostRemovalReferrers } from '@ifc-lite/create';
|
|
2
|
+
export declare function knownReferrerIds(referrers: CostRemovalReferrers): Set<number>;
|
|
3
|
+
export declare function knownReferenceCount(referrers: CostRemovalReferrers, targetId: number, referrerId: number): number;
|
|
4
|
+
//# sourceMappingURL=cost-removal-reference-guard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cost-removal-reference-guard.d.ts","sourceRoot":"","sources":["../src/cost-removal-reference-guard.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAE7D,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,oBAAoB,GAAG,GAAG,CAAC,MAAM,CAAC,CAY7E;AAED,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,oBAAoB,EAC/B,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,MAAM,CAeR"}
|
|
@@ -0,0 +1,37 @@
|
|
|
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
|
+
export function knownReferrerIds(referrers) {
|
|
5
|
+
return new Set([
|
|
6
|
+
...(referrers.itemCostValues?.keys() ?? []),
|
|
7
|
+
...(referrers.valueComponents?.keys() ?? []),
|
|
8
|
+
...(referrers.valueAppliedValueRef?.keys() ?? []),
|
|
9
|
+
...(referrers.nestRelatedObjects?.keys() ?? []),
|
|
10
|
+
...(referrers.assignmentRelatedObjects?.keys() ?? []),
|
|
11
|
+
...(referrers.nestsAsParent ?? []),
|
|
12
|
+
...(referrers.assignmentsAsControl ?? []),
|
|
13
|
+
...(referrers.otherRelationshipLists ?? []).map(ref => ref.relId),
|
|
14
|
+
...(referrers.otherRelationships ?? []),
|
|
15
|
+
]);
|
|
16
|
+
}
|
|
17
|
+
export function knownReferenceCount(referrers, targetId, referrerId) {
|
|
18
|
+
const count = (values) => values?.filter(id => id === targetId).length ?? 0;
|
|
19
|
+
let total = count(referrers.itemCostValues?.get(referrerId));
|
|
20
|
+
total += count(referrers.valueComponents?.get(referrerId));
|
|
21
|
+
if (referrers.valueAppliedValueRef?.get(referrerId) === targetId)
|
|
22
|
+
total++;
|
|
23
|
+
total += count(referrers.nestRelatedObjects?.get(referrerId));
|
|
24
|
+
total += count(referrers.assignmentRelatedObjects?.get(referrerId));
|
|
25
|
+
for (const ref of referrers.otherRelationshipLists ?? []) {
|
|
26
|
+
if (ref.relId === referrerId)
|
|
27
|
+
total += count(ref.relatedIds);
|
|
28
|
+
}
|
|
29
|
+
if ((referrers.nestsAsParent ?? []).includes(referrerId))
|
|
30
|
+
total++;
|
|
31
|
+
if ((referrers.assignmentsAsControl ?? []).includes(referrerId))
|
|
32
|
+
total++;
|
|
33
|
+
if ((referrers.otherRelationships ?? []).includes(referrerId))
|
|
34
|
+
total++;
|
|
35
|
+
return total;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=cost-removal-reference-guard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cost-removal-reference-guard.js","sourceRoot":"","sources":["../src/cost-removal-reference-guard.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAI/D,MAAM,UAAU,gBAAgB,CAAC,SAA+B;IAC9D,OAAO,IAAI,GAAG,CAAC;QACb,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC3C,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC5C,GAAG,CAAC,SAAS,CAAC,oBAAoB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACjD,GAAG,CAAC,SAAS,CAAC,kBAAkB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC/C,GAAG,CAAC,SAAS,CAAC,wBAAwB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACrD,GAAG,CAAC,SAAS,CAAC,aAAa,IAAI,EAAE,CAAC;QAClC,GAAG,CAAC,SAAS,CAAC,oBAAoB,IAAI,EAAE,CAAC;QACzC,GAAG,CAAC,SAAS,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;QACjE,GAAG,CAAC,SAAS,CAAC,kBAAkB,IAAI,EAAE,CAAC;KACxC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,SAA+B,EAC/B,QAAgB,EAChB,UAAkB;IAElB,MAAM,KAAK,GAAG,CAAC,MAAqC,EAAE,EAAE,CACtD,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;IACpD,IAAI,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,cAAc,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;IAC7D,KAAK,IAAI,KAAK,CAAC,SAAS,CAAC,eAAe,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;IAC3D,IAAI,SAAS,CAAC,oBAAoB,EAAE,GAAG,CAAC,UAAU,CAAC,KAAK,QAAQ;QAAE,KAAK,EAAE,CAAC;IAC1E,KAAK,IAAI,KAAK,CAAC,SAAS,CAAC,kBAAkB,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;IAC9D,KAAK,IAAI,KAAK,CAAC,SAAS,CAAC,wBAAwB,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;IACpE,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,sBAAsB,IAAI,EAAE,EAAE,CAAC;QACzD,IAAI,GAAG,CAAC,KAAK,KAAK,UAAU;YAAE,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC/D,CAAC;IACD,IAAI,CAAC,SAAS,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,KAAK,EAAE,CAAC;IAClE,IAAI,CAAC,SAAS,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,KAAK,EAAE,CAAC;IACzE,IAAI,CAAC,SAAS,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,KAAK,EAAE,CAAC;IACvE,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { MutablePropertyView, StoreEditor } from '@ifc-lite/mutations';
|
|
2
|
+
import type { IfcDataStore } from '@ifc-lite/parser';
|
|
3
|
+
import type { CostStoreBackendMethods } from './store-cost-types.js';
|
|
4
|
+
import type { CostBackendMethods } from './cost-types.js';
|
|
5
|
+
/** What a host resolves per call: the model's store, its `StoreEditor` (already
|
|
6
|
+
* wired to the same `MutablePropertyView` `bim.cost` reads), and its owner history. */
|
|
7
|
+
export interface CostStoreModelResolution {
|
|
8
|
+
modelId: string;
|
|
9
|
+
store: IfcDataStore;
|
|
10
|
+
editor: StoreEditor;
|
|
11
|
+
mutationView: MutablePropertyView;
|
|
12
|
+
ownerHistoryId: number | null;
|
|
13
|
+
}
|
|
14
|
+
export type CostStoreModelResolver = (modelId?: string) => CostStoreModelResolution;
|
|
15
|
+
/** First `IfcOwnerHistory` still live in the overlay, skipping ids the caller already tombstoned (else export dangles). */
|
|
16
|
+
export declare function resolveLiveOwnerHistoryId(store: IfcDataStore, editor: StoreEditor): number | null;
|
|
17
|
+
/**
|
|
18
|
+
* Build `bim.store`'s cost-authoring methods. `cost` is the model's
|
|
19
|
+
* `CostBackendMethods` (from `createCostBackend`) — reads through it are
|
|
20
|
+
* always mutation-aware (`includeMutations: true`) so a rel this session
|
|
21
|
+
* already authored is visible to the very next authoring call.
|
|
22
|
+
*/
|
|
23
|
+
export declare function createCostStoreBackend(resolve: CostStoreModelResolver, cost: Pick<CostBackendMethods, 'data'>, onRelationshipMutation?: (modelId: string) => void): CostStoreBackendMethods;
|
|
24
|
+
//# sourceMappingURL=cost-store-backend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cost-store-backend.d.ts","sourceRoot":"","sources":["../src/cost-store-backend.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAK1D;wFACwF;AACxF,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;IACpB,YAAY,EAAE,mBAAmB,CAAC;IAClC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,MAAM,sBAAsB,GAAG,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,wBAAwB,CAAC;AAEpF,2HAA2H;AAC3H,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,CAGjG;AAuND;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,sBAAsB,EAC/B,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,EACtC,sBAAsB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GACjD,uBAAuB,CA0HzB"}
|