@ifc-lite/sdk 6.3.0 → 7.1.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.
Files changed (56) hide show
  1. package/README.md +12 -4
  2. package/dist/cost-backend.d.ts.map +1 -1
  3. package/dist/cost-backend.js +2 -14
  4. package/dist/cost-backend.js.map +1 -1
  5. package/dist/cost-owner-history.d.ts +10 -0
  6. package/dist/cost-owner-history.d.ts.map +1 -0
  7. package/dist/cost-owner-history.js +18 -0
  8. package/dist/cost-owner-history.js.map +1 -0
  9. package/dist/cost-reference-scan.d.ts +12 -0
  10. package/dist/cost-reference-scan.d.ts.map +1 -0
  11. package/dist/cost-reference-scan.js +97 -0
  12. package/dist/cost-reference-scan.js.map +1 -0
  13. package/dist/cost-removal-reference-guard.d.ts +4 -0
  14. package/dist/cost-removal-reference-guard.d.ts.map +1 -0
  15. package/dist/cost-removal-reference-guard.js +37 -0
  16. package/dist/cost-removal-reference-guard.js.map +1 -0
  17. package/dist/cost-store-backend.d.ts +22 -0
  18. package/dist/cost-store-backend.d.ts.map +1 -0
  19. package/dist/cost-store-backend.js +363 -0
  20. package/dist/cost-store-backend.js.map +1 -0
  21. package/dist/effective-record-overlay.d.ts +5 -0
  22. package/dist/effective-record-overlay.d.ts.map +1 -0
  23. package/dist/effective-record-overlay.js +27 -0
  24. package/dist/effective-record-overlay.js.map +1 -0
  25. package/dist/index.d.ts +7 -0
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +4 -0
  28. package/dist/index.js.map +1 -1
  29. package/dist/namespaces/mutate.d.ts +24 -0
  30. package/dist/namespaces/mutate.d.ts.map +1 -1
  31. package/dist/namespaces/mutate.js +45 -0
  32. package/dist/namespaces/mutate.js.map +1 -1
  33. package/dist/namespaces/query.d.ts +3 -2
  34. package/dist/namespaces/query.d.ts.map +1 -1
  35. package/dist/namespaces/query.js +24 -4
  36. package/dist/namespaces/query.js.map +1 -1
  37. package/dist/namespaces/store.d.ts +59 -0
  38. package/dist/namespaces/store.d.ts.map +1 -1
  39. package/dist/namespaces/store.js +98 -0
  40. package/dist/namespaces/store.js.map +1 -1
  41. package/dist/store-cost-types.d.ts +36 -0
  42. package/dist/store-cost-types.d.ts.map +1 -0
  43. package/dist/store-cost-types.js +5 -0
  44. package/dist/store-cost-types.js.map +1 -0
  45. package/dist/store-structural-backend.d.ts +10 -0
  46. package/dist/store-structural-backend.d.ts.map +1 -0
  47. package/dist/store-structural-backend.js +102 -0
  48. package/dist/store-structural-backend.js.map +1 -0
  49. package/dist/store-structural-types.d.ts +36 -0
  50. package/dist/store-structural-types.d.ts.map +1 -0
  51. package/dist/store-structural-types.js +5 -0
  52. package/dist/store-structural-types.js.map +1 -0
  53. package/dist/types.d.ts +43 -69
  54. package/dist/types.d.ts.map +1 -1
  55. package/dist/types.js.map +1 -1
  56. package/package.json +14 -13
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @ifc-lite/sdk
2
2
 
3
- The scripting SDK for ifc-lite: a single `bim.*` API for BIM automation. One context object exposes querying, properties, mutations, viewer control, exports (CSV, glTF, STEP, HBJSON), IDS validation, BCF collaboration, clash detection, 2D drawings, schedules, lists, lenses, and element creation. The same API runs embedded in the viewer, connected across tabs, in Node scripts via the CLI (`ifc-lite eval` / `ifc-lite run`), and inside the QuickJS sandbox.
3
+ The scripting SDK for ifc-lite: a single `bim.*` API for BIM automation. One context object exposes querying, properties, mutations, viewer control, exports (CSV, JSON, IFC/STEP, HBJSON, DFJSON), IDS validation, BCF collaboration, clash detection, 2D drawings, schedules, lists, lenses, and element creation. The same API runs embedded in the viewer, connected across tabs, in Node scripts via the CLI (`ifc-lite eval` / `ifc-lite run`), and inside the QuickJS sandbox.
4
4
 
5
5
  ## Install
6
6
 
@@ -13,8 +13,11 @@ npm install @ifc-lite/sdk
13
13
  ```ts
14
14
  import { createBimContext } from '@ifc-lite/sdk';
15
15
 
16
- // Embedded mode (local backend)
17
- const bim = createBimContext({ backend: myLocalBackend });
16
+ // Embedded mode: a backend drives a loaded model. `BimBackend` is a
17
+ // 16-namespace interface, so use a ready-made one rather than writing it --
18
+ // `HeadlessLikeBackend` from @ifc-lite/mcp is the exported headless backend.
19
+ import { HeadlessLikeBackend } from '@ifc-lite/mcp';
20
+ const bim = createBimContext({ backend: new HeadlessLikeBackend(store, 'model.ifc', 'model-1') });
18
21
 
19
22
  // Connected mode (cross-tab)
20
23
  import { BroadcastTransport } from '@ifc-lite/sdk';
@@ -31,7 +34,7 @@ bim.viewer.colorize(walls.map(w => w.ref), '#ff0000');
31
34
  - `bim.query()` - fluent entity queries by type, property, quantity
32
35
  - `bim.model` / `bim.mutate` / `bim.store` - model info, edits, raw store access
33
36
  - `bim.viewer` - selection, visibility, colorization, camera, sections
34
- - `bim.export` - CSV, glTF, STEP, HBJSON
37
+ - `bim.export` - `csv`, `json`, `ifc` (STEP), `hbjson`, `dfjson`, `download`
35
38
  - `bim.ids` / `bim.bcf` / `bim.clash` - validation, collaboration, interference checks
36
39
  - `bim.drawing` / `bim.list` / `bim.lens` - section cuts and SVG, schedules, rule-based coloring
37
40
  - `bim.cost` - canonical IFC 5D graph and decimal-string item/value evaluation
@@ -41,6 +44,11 @@ Cost reads describe the loaded IFC source snapshot. Every STEP reference is an
41
44
  `EntityRef` (`{ modelId, expressId }`); pending generic mutation overlays are
42
45
  not silently folded into the graph.
43
46
 
47
+ Cost authoring hosts can call `resolveLiveOwnerHistoryId(store, editor, view)`
48
+ with the editor's `MutablePropertyView` to choose from the effective entity set,
49
+ including overlay-created or retyped `IfcOwnerHistory` records. The older
50
+ two-argument call remains source-only and skips deleted source records.
51
+
44
52
  Also exported: `BimHost` (viewer side), `RemoteBackend`, `MessagePortTransport`, and the full `IfcCreator` API re-exported from `@ifc-lite/create`.
45
53
 
46
54
  ## Links
@@ -1 +1 @@
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;AAcD,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"}
1
+ {"version":3,"file":"cost-backend.d.ts","sourceRoot":"","sources":["../src/cost-backend.ts"],"names":[],"mappings":"AAIA,OAAO,EAGgD,KAAK,YAAY,EACvE,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG/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;AAED,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"}
@@ -2,19 +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 { evaluateCostItem, evaluateCostValue, extractCostOnDemand, } from '@ifc-lite/parser';
5
- import { 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
- };
17
- }
5
+ import { createEffectiveRecordOverlay } from './effective-record-overlay.js';
18
6
  function ref(modelId, expressId) { return { modelId, expressId }; }
19
7
  function refs(modelId, ids) { return ids.map(expressId => ref(modelId, expressId)); }
20
8
  function projectDiagnostic(modelId, value) {
@@ -163,7 +151,7 @@ export function createCostBackend(resolveModel) {
163
151
  if (view) {
164
152
  // Pending edits are live state: extract fresh, and never write the
165
153
  // result into the unmutated-graph cache above.
166
- return { ...resolved, graph: extractCostOnDemand(resolved.store, { overlay: costOverlay(view, resolved.store) }) };
154
+ return { ...resolved, graph: extractCostOnDemand(resolved.store, { overlay: createEffectiveRecordOverlay(view, resolved.store) }) };
167
155
  }
168
156
  let cached = cache.get(resolved.store);
169
157
  if (!cached || cached.source !== resolved.store.source
@@ -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":"AAAA;;+DAE+D;AAE/D,OAAO,EACL,gBAAgB,EAAE,iBAAiB,EAAE,mBAAmB,GAGzD,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAsB7E,SAAS,GAAG,CAAC,OAAe,EAAE,SAAiB,IAAe,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;AAC9F,SAAS,IAAI,CAAC,OAAe,EAAE,GAAa,IAAiB,OAAO,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAEpH,SAAS,iBAAiB,CAAC,OAAe,EAAE,KAAqB;IAC/D,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ;QAClE,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QAChF,GAAG,CAAC,KAAK,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC;KACtG,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,OAAe,EAAE,KAAuB;IAC9D,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW;QAAE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;IAChG,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;IAC9F,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC;AACrJ,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAe,EAAE,KAA2B;IACvE,MAAM,MAAM,GAAG,CAAC,EAAsB,EAAE,EAAE,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC3F,MAAM,IAAI,GAAG,CAAC,GAAyB,EAAE,EAAE,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC/F,OAAO;QACL,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI;QACpD,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;QACrE,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;QACzD,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;QAC9E,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;QACnG,GAAG,CAAC,KAAK,CAAC,qBAAqB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,qBAAqB,EAAE,KAAK,CAAC,qBAAqB,EAAE,CAAC;QAC5G,GAAG,CAAC,KAAK,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAChG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAC/G,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC;QAC1G,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;QACvG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC;QAC1G,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC;QAC1G,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC;QAC1G,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAE,CAAC;QACzH,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC7G,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;QACvF,GAAG,CAAC,KAAK,CAAC,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,EAAE,CAAC;KACpG,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAmB,KAAQ;IACzC,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAM,CAAC;AACjG,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAe,EAAE,KAA0B;IACnE,MAAM,QAAQ,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,CAAC,EAAsB,EAAa,EAAE;QACrD,IAAI,EAAE,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QAC1F,OAAO,QAAQ,CAAC,EAAE,CAAC,CAAC;IACtB,CAAC,CAAC;IACF,OAAO;QACL,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa;QACpE,aAAa,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC;YACtD,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI;YAC1E,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5D,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc;YAC1E,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE;SACjG,CAAC,CAAC;QACH,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC;YAC9C,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI;YAC1E,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5D,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc;YAC1E,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,GAAG,CAAC,QAAQ,CAAC;SACjG,CAAC,CAAC;QACH,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC;YAChD,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI;YAClE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC;YAC/G,SAAS,EAAE,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC;YAChF,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc;YAC9E,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1F,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;YACtF,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ;SACtE,CAAC,CAAC;QACH,cAAc,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC;YACxD,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI;YAClE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;YACjG,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1F,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW;YAC5F,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO;YAClF,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,GAAG,CAAC,QAAQ,CAAC;YAC7E,oBAAoB,EAAE,KAAK,CAAC,oBAAoB;SACjD,CAAC,CAAC;QACH,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC;YACtC,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ;YAC1E,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACtF,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK;SAC/C,CAAC,CAAC;QACH,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC;YAC5D,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc;YACpE,aAAa,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS;YACxE,cAAc,EAAE,KAAK,CAAC,cAAc;SACrC,CAAC,CAAC;QACH,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5G,aAAa,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACpF,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC9E,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;KACtE,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAe,EAAE,KAA2B;IACrE,OAAO,OAAO,CAAC;QACb,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ;QAClF,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,eAAe,EAAE,KAAK,CAAC,eAAe;QAClE,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;KAC7E,CAAC,CAAC;AACL,CAAC;AAED,SAAS,wBAAwB,CAAC,MAAiB;IACjD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjF,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC9E,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;QACpE,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;IACxF,CAAC;AACH,CAAC;AAED,SAAS,yBAAyB,CAAC,OAA0C;IAC3E,IAAI,OAAO,EAAE,SAAS,KAAK,SAAS;WAC/B,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,SAAS,GAAG,CAAC,IAAI,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,EAAE,CAAC;QACnG,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;IAC3F,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,iBAAiB,CAAC,YAA+B;IAC/D,MAAM,KAAK,GAAG,IAAI,OAAO,EAGrB,CAAC;IACL,MAAM,OAAO,GAAG,CAAC,OAAgB,EAAE,OAAyB,EAAE,EAAE;QAC9D,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;YACrE,MAAM,IAAI,KAAK,CAAC,wDAAwD,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC;QAC/F,CAAC;QACD,MAAM,IAAI,GAAG,OAAO,EAAE,gBAAgB,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC;QACrF,IAAI,IAAI,EAAE,CAAC;YACT,mEAAmE;YACnE,+CAA+C;YAC/C,OAAO,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,mBAAmB,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,4BAA4B,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;QACtI,CAAC;QACD,IAAI,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,KAAK,CAAC,MAAM;eACjD,MAAM,CAAC,aAAa,KAAK,QAAQ,CAAC,KAAK,CAAC,aAAa;eACrD,MAAM,CAAC,WAAW,KAAK,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YACvD,MAAM,GAAG;gBACP,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa;gBAC1E,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,EAAE,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC;aACpF,CAAC;YACF,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;IAC9C,CAAC,CAAC;IACF,MAAM,IAAI,GAAG,CAAC,OAAgB,EAAE,OAAyB,EAAE,EAAE;QAC3D,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxC,OAAO,gBAAgB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC,CAAC;IACF,OAAO;QACL,IAAI;QACJ,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,aAAa;QACrE,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS;QAC7D,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,UAAU;QAC/D,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE;YAChC,wBAAwB,CAAC,MAAM,CAAC,CAAC;YAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;YACrE,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC/C,OAAO,iBAAiB,CAAC,KAAK,CAAC,OAAO,EAAE,gBAAgB,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;QACpG,CAAC;QACD,aAAa,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE;YACjC,wBAAwB,CAAC,MAAM,CAAC,CAAC;YAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;YACrE,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC/C,OAAO,iBAAiB,CAAC,KAAK,CAAC,OAAO,EAAE,iBAAiB,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;QACrG,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { type MutablePropertyView, type StoreEditor } from '@ifc-lite/mutations';
2
+ import type { IfcDataStore } from '@ifc-lite/parser';
3
+ /**
4
+ * First live `IfcOwnerHistory`, including one created or retyped in the
5
+ * overlay. Pass the editor's mutation view to see the full effective entity
6
+ * set. The optional view preserves the older source-only call signature;
7
+ * that path still skips tombstones through `editor.hasEntity`.
8
+ */
9
+ export declare function resolveLiveOwnerHistoryId(store: IfcDataStore, editor: StoreEditor, view?: MutablePropertyView): number | null;
10
+ //# sourceMappingURL=cost-owner-history.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cost-owner-history.d.ts","sourceRoot":"","sources":["../src/cost-owner-history.ts"],"names":[],"mappings":"AAIA,OAAO,EAA6B,KAAK,mBAAmB,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC5G,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,WAAW,EACnB,IAAI,CAAC,EAAE,mBAAmB,GACzB,MAAM,GAAG,IAAI,CAKf"}
@@ -0,0 +1,18 @@
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
+ import { iterateEffectiveEntityIds } from '@ifc-lite/mutations';
5
+ /**
6
+ * First live `IfcOwnerHistory`, including one created or retyped in the
7
+ * overlay. Pass the editor's mutation view to see the full effective entity
8
+ * set. The optional view preserves the older source-only call signature;
9
+ * that path still skips tombstones through `editor.hasEntity`.
10
+ */
11
+ export function resolveLiveOwnerHistoryId(store, editor, view) {
12
+ for (const { expressId } of iterateEffectiveEntityIds(store, view, ['IFCOWNERHISTORY'])) {
13
+ if (editor.hasEntity(expressId))
14
+ return expressId;
15
+ }
16
+ return null;
17
+ }
18
+ //# sourceMappingURL=cost-owner-history.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cost-owner-history.js","sourceRoot":"","sources":["../src/cost-owner-history.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D,OAAO,EAAE,yBAAyB,EAA8C,MAAM,qBAAqB,CAAC;AAG5G;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CACvC,KAAmB,EACnB,MAAmB,EACnB,IAA0B;IAE1B,KAAK,MAAM,EAAE,SAAS,EAAE,IAAI,yBAAyB,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC;QACxF,IAAI,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;IACpD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -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,CA8BlC;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,97 @@
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
+ // @raw-entity-enumeration-ok visitSource applies tombstones and effective source records; authored records are appended below
73
+ for (const [id, ref] of store.entityIndex.byId)
74
+ visitSource(id, ref);
75
+ for (const [id, ref] of store.deferredEntityIndex ?? [])
76
+ visitSource(id, ref);
77
+ for (const entity of view.getNewEntities()) {
78
+ if (seen.has(entity.expressId))
79
+ continue;
80
+ const record = effectiveCreatedRecord(view, entity.expressId, store.schemaVersion);
81
+ if (!record)
82
+ continue;
83
+ for (const [targetId, count] of referencedTargetCounts(record.text, targetIds)) {
84
+ if (targetId === entity.expressId)
85
+ continue;
86
+ const incoming = referrers.get(targetId) ?? new Map();
87
+ incoming.set(entity.expressId, count);
88
+ referrers.set(targetId, incoming);
89
+ }
90
+ }
91
+ return referrers;
92
+ }
93
+ export function effectiveCostReferrers(store, view, targetIds) {
94
+ return new Map([...effectiveCostReferenceOccurrences(store, view, targetIds)]
95
+ .map(([targetId, occurrences]) => [targetId, [...occurrences.keys()]]));
96
+ }
97
+ //# 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,22 @@
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
+ /**
16
+ * Build `bim.store`'s cost-authoring methods. `cost` is the model's
17
+ * `CostBackendMethods` (from `createCostBackend`) — reads through it are
18
+ * always mutation-aware (`includeMutations: true`) so a rel this session
19
+ * already authored is visible to the very next authoring call.
20
+ */
21
+ export declare function createCostStoreBackend(resolve: CostStoreModelResolver, cost: Pick<CostBackendMethods, 'data'>, onRelationshipMutation?: (modelId: string) => void): CostStoreBackendMethods;
22
+ //# 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;AAuNpF;;;;;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"}