@ifc-lite/mcp 0.17.0 → 0.20.2

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 (119) hide show
  1. package/dist/authored-attribute-value.d.ts +3 -0
  2. package/dist/authored-attribute-value.d.ts.map +1 -0
  3. package/dist/authored-attribute-value.js +34 -0
  4. package/dist/authored-attribute-value.js.map +1 -0
  5. package/dist/backend-query-relationships.d.ts +5 -0
  6. package/dist/backend-query-relationships.d.ts.map +1 -0
  7. package/dist/backend-query-relationships.js +55 -0
  8. package/dist/backend-query-relationships.js.map +1 -0
  9. package/dist/backend-query.d.ts +5 -6
  10. package/dist/backend-query.d.ts.map +1 -1
  11. package/dist/backend-query.js +81 -140
  12. package/dist/backend-query.js.map +1 -1
  13. package/dist/context.d.ts +8 -0
  14. package/dist/context.d.ts.map +1 -1
  15. package/dist/context.js.map +1 -1
  16. package/dist/effective-entity-membership.d.ts +8 -0
  17. package/dist/effective-entity-membership.d.ts.map +1 -0
  18. package/dist/effective-entity-membership.js +23 -0
  19. package/dist/effective-entity-membership.js.map +1 -0
  20. package/dist/headless-backend-cost-store.d.ts +14 -0
  21. package/dist/headless-backend-cost-store.d.ts.map +1 -0
  22. package/dist/headless-backend-cost-store.js +20 -0
  23. package/dist/headless-backend-cost-store.js.map +1 -0
  24. package/dist/headless-backend-store-stubs.d.ts +12 -0
  25. package/dist/headless-backend-store-stubs.d.ts.map +1 -0
  26. package/dist/headless-backend-store-stubs.js +9 -0
  27. package/dist/headless-backend-store-stubs.js.map +1 -0
  28. package/dist/headless-backend-structural-store.d.ts +21 -0
  29. package/dist/headless-backend-structural-store.d.ts.map +1 -0
  30. package/dist/headless-backend-structural-store.js +20 -0
  31. package/dist/headless-backend-structural-store.js.map +1 -0
  32. package/dist/headless-backend.d.ts +2 -1
  33. package/dist/headless-backend.d.ts.map +1 -1
  34. package/dist/headless-backend.js +9 -9
  35. package/dist/headless-backend.js.map +1 -1
  36. package/dist/index.d.ts +9 -1
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +12 -1
  39. package/dist/index.js.map +1 -1
  40. package/dist/loader.d.ts.map +1 -1
  41. package/dist/loader.js +4 -0
  42. package/dist/loader.js.map +1 -1
  43. package/dist/overlay.d.ts +23 -28
  44. package/dist/overlay.d.ts.map +1 -1
  45. package/dist/overlay.js +84 -99
  46. package/dist/overlay.js.map +1 -1
  47. package/dist/protocol/types.d.ts +0 -1
  48. package/dist/protocol/types.d.ts.map +1 -1
  49. package/dist/schema-tables.d.ts.map +1 -1
  50. package/dist/schema-tables.js +4 -2
  51. package/dist/schema-tables.js.map +1 -1
  52. package/dist/server.js +2 -2
  53. package/dist/server.js.map +1 -1
  54. package/dist/spatial-tree.d.ts.map +1 -1
  55. package/dist/spatial-tree.js +3 -9
  56. package/dist/spatial-tree.js.map +1 -1
  57. package/dist/tools/check-rules.d.ts +3 -0
  58. package/dist/tools/check-rules.d.ts.map +1 -0
  59. package/dist/tools/check-rules.js +75 -0
  60. package/dist/tools/check-rules.js.map +1 -0
  61. package/dist/tools/diff-authored-keys.d.ts +68 -0
  62. package/dist/tools/diff-authored-keys.d.ts.map +1 -0
  63. package/dist/tools/diff-authored-keys.js +166 -0
  64. package/dist/tools/diff-authored-keys.js.map +1 -0
  65. package/dist/tools/diff-content.d.ts +33 -0
  66. package/dist/tools/diff-content.d.ts.map +1 -0
  67. package/dist/tools/diff-content.js +158 -0
  68. package/dist/tools/diff-content.js.map +1 -0
  69. package/dist/tools/diff-entity-scope.d.ts +53 -0
  70. package/dist/tools/diff-entity-scope.d.ts.map +1 -0
  71. package/dist/tools/diff-entity-scope.js +94 -0
  72. package/dist/tools/diff-entity-scope.js.map +1 -0
  73. package/dist/tools/diff-fingerprints.d.ts +4 -2
  74. package/dist/tools/diff-fingerprints.d.ts.map +1 -1
  75. package/dist/tools/diff-fingerprints.js +69 -153
  76. package/dist/tools/diff-fingerprints.js.map +1 -1
  77. package/dist/tools/diff.d.ts.map +1 -1
  78. package/dist/tools/diff.js +40 -117
  79. package/dist/tools/diff.js.map +1 -1
  80. package/dist/tools/entity-target-schema.d.ts +16 -0
  81. package/dist/tools/entity-target-schema.d.ts.map +1 -0
  82. package/dist/tools/entity-target-schema.js +32 -0
  83. package/dist/tools/entity-target-schema.js.map +1 -0
  84. package/dist/tools/flow.d.ts +3 -0
  85. package/dist/tools/flow.d.ts.map +1 -0
  86. package/dist/tools/flow.js +239 -0
  87. package/dist/tools/flow.js.map +1 -0
  88. package/dist/tools/ids-accessor.d.ts +9 -1
  89. package/dist/tools/ids-accessor.d.ts.map +1 -1
  90. package/dist/tools/ids-accessor.js +9 -2
  91. package/dist/tools/ids-accessor.js.map +1 -1
  92. package/dist/tools/index.d.ts +4 -1
  93. package/dist/tools/index.d.ts.map +1 -1
  94. package/dist/tools/index.js +7 -1
  95. package/dist/tools/index.js.map +1 -1
  96. package/dist/tools/mutate.d.ts.map +1 -1
  97. package/dist/tools/mutate.js +15 -46
  98. package/dist/tools/mutate.js.map +1 -1
  99. package/dist/tools/structural.d.ts +11 -0
  100. package/dist/tools/structural.d.ts.map +1 -0
  101. package/dist/tools/structural.js +23 -0
  102. package/dist/tools/structural.js.map +1 -0
  103. package/dist/tools/util.d.ts.map +1 -1
  104. package/dist/tools/util.js +15 -18
  105. package/dist/tools/util.js.map +1 -1
  106. package/dist/tools/validation.d.ts.map +1 -1
  107. package/dist/tools/validation.js +40 -41
  108. package/dist/tools/validation.js.map +1 -1
  109. package/dist/tools/viewer.d.ts.map +1 -1
  110. package/dist/tools/viewer.js +10 -29
  111. package/dist/tools/viewer.js.map +1 -1
  112. package/dist/validate.d.ts +22 -1
  113. package/dist/validate.d.ts.map +1 -1
  114. package/dist/validate.js +45 -10
  115. package/dist/validate.js.map +1 -1
  116. package/dist/viewer-manager.d.ts.map +1 -1
  117. package/dist/viewer-manager.js +1 -0
  118. package/dist/viewer-manager.js.map +1 -1
  119. package/package.json +24 -20
@@ -0,0 +1,3 @@
1
+ /** Coerce one authored STEP attribute to the scalar shape used by queries. */
2
+ export declare function authoredValue(value: unknown): string | number | boolean | undefined;
3
+ //# sourceMappingURL=authored-attribute-value.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authored-attribute-value.d.ts","sourceRoot":"","sources":["../src/authored-attribute-value.ts"],"names":[],"mappings":"AAIA,8EAA8E;AAC9E,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAmBnF"}
@@ -0,0 +1,34 @@
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
+ /** Coerce one authored STEP attribute to the scalar shape used by queries. */
5
+ export function authoredValue(value) {
6
+ if (typeof value === 'number' || typeof value === 'boolean')
7
+ return value;
8
+ if (value && typeof value === 'object' && !Array.isArray(value)) {
9
+ const wrapper = value;
10
+ if (typeof wrapper.real === 'number')
11
+ return wrapper.real;
12
+ if (wrapper.typed?.value !== undefined)
13
+ return wrapper.typed.value;
14
+ return undefined;
15
+ }
16
+ if (typeof value !== 'string')
17
+ return undefined;
18
+ const trimmed = value.trim();
19
+ if (trimmed === '' || trimmed === '$' || trimmed === '*' || trimmed === '.U.' || trimmed === '.X.')
20
+ return undefined;
21
+ if (trimmed === '.T.')
22
+ return true;
23
+ if (trimmed === '.F.')
24
+ return false;
25
+ if (trimmed.startsWith('#'))
26
+ return trimmed;
27
+ if (trimmed.length >= 2 && trimmed.startsWith("'") && trimmed.endsWith("'")) {
28
+ return trimmed.slice(1, -1).replace(/''/g, "'");
29
+ }
30
+ if (trimmed.length >= 2 && trimmed.startsWith('.') && trimmed.endsWith('.'))
31
+ return trimmed.slice(1, -1);
32
+ return trimmed;
33
+ }
34
+ //# sourceMappingURL=authored-attribute-value.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authored-attribute-value.js","sourceRoot":"","sources":["../src/authored-attribute-value.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D,8EAA8E;AAC9E,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC1E,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,MAAM,OAAO,GAAG,KAAyE,CAAC;QAC1F,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,OAAO,CAAC,IAAI,CAAC;QAC1D,IAAI,OAAO,CAAC,KAAK,EAAE,KAAK,KAAK,SAAS;YAAE,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;QACnE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK,KAAK,IAAI,OAAO,KAAK,KAAK;QAAE,OAAO,SAAS,CAAC;IACrH,IAAI,OAAO,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,OAAO,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IACpC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,OAAO,CAAC;IAC5C,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5E,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACzG,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { EntityData, EntityRef, EntityRelationshipsData } from '@ifc-lite/sdk';
2
+ import type { PendingOverlay } from './overlay.js';
3
+ /** Apply queued relationship creates/deletes and endpoint metadata edits. */
4
+ export declare function foldRelationshipRows(result: EntityRelationshipsData, pending: PendingOverlay, ref: EntityRef, entityData: (ref: EntityRef) => EntityData | null): EntityRelationshipsData;
5
+ //# sourceMappingURL=backend-query-relationships.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backend-query-relationships.d.ts","sourceRoot":"","sources":["../src/backend-query-relationships.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACpF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,6EAA6E;AAC7E,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,uBAAuB,EAC/B,OAAO,EAAE,cAAc,EACvB,GAAG,EAAE,SAAS,EACd,UAAU,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,UAAU,GAAG,IAAI,GAChD,uBAAuB,CA4CzB"}
@@ -0,0 +1,55 @@
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
+ /** Apply queued relationship creates/deletes and endpoint metadata edits. */
5
+ export function foldRelationshipRows(result, pending, ref, entityData) {
6
+ if (pending.deleted.has(ref.expressId)) {
7
+ return { voids: [], fills: [], groups: [], connections: [], relations: [] };
8
+ }
9
+ const seen = new Set();
10
+ const relations = (result.relations ?? []).flatMap((edge) => {
11
+ if (pending.deleted.has(edge.relationshipId) || pending.supersededRelationshipIds.has(edge.relationshipId)
12
+ || pending.deleted.has(edge.entity.id))
13
+ return [];
14
+ const target = entityData({ modelId: ref.modelId, expressId: edge.entity.id });
15
+ if (!target)
16
+ return [];
17
+ const key = `${edge.direction}:${edge.relationshipId}:${edge.entity.id}`;
18
+ if (seen.has(key))
19
+ return [];
20
+ seen.add(key);
21
+ // Parsed rows carry the exact subtype (IfcDoorStandardCase); only a queued retype replaces it.
22
+ const type = pending.effectiveType(edge.entity.id) ?? edge.entity.type;
23
+ return [{ ...edge, entity: { id: edge.entity.id, name: target.name || undefined, type } }];
24
+ });
25
+ for (const edge of pending.relationshipEdges(ref.expressId)) {
26
+ const key = `${edge.direction}:${edge.relationshipId}:${edge.targetId}`;
27
+ if (seen.has(key))
28
+ continue;
29
+ const target = entityData({ modelId: ref.modelId, expressId: edge.targetId });
30
+ if (!target)
31
+ continue;
32
+ seen.add(key);
33
+ relations.push({
34
+ relationshipId: edge.relationshipId,
35
+ relationshipType: edge.relationshipType,
36
+ direction: edge.direction,
37
+ entity: { id: edge.targetId, name: target.name || undefined, type: target.type },
38
+ });
39
+ }
40
+ const entities = (types, directions) => relations
41
+ .filter(edge => types.includes(edge.relationshipType.toUpperCase()) && directions.includes(edge.direction))
42
+ .map(edge => edge.entity);
43
+ return {
44
+ voids: entities(['IFCRELVOIDSELEMENT'], ['forward'])
45
+ .filter((entity, index, all) => all.findIndex(other => other.id === entity.id) === index),
46
+ fills: entities(['IFCRELFILLSELEMENT'], ['inverse'])
47
+ .filter((entity, index, all) => all.findIndex(other => other.id === entity.id) === index),
48
+ groups: entities(['IFCRELASSIGNSTOGROUP', 'IFCRELASSIGNSTOGROUPBYFACTOR'], ['inverse'])
49
+ .filter((entity, index, all) => all.findIndex(other => other.id === entity.id) === index),
50
+ connections: entities(['IFCRELCONNECTSPATHELEMENTS'], ['forward', 'inverse'])
51
+ .filter((entity, index, all) => entity.id !== ref.expressId && all.findIndex(other => other.id === entity.id) === index),
52
+ relations,
53
+ };
54
+ }
55
+ //# sourceMappingURL=backend-query-relationships.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backend-query-relationships.js","sourceRoot":"","sources":["../src/backend-query-relationships.ts"],"names":[],"mappings":"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"}
@@ -21,15 +21,14 @@
21
21
  * `bim.decomposes`. A queued `IfcRelContainedInSpatialStructure` is how an agent
22
22
  * places something over MCP, so ignoring it was ignoring a write.
23
23
  *
24
- * What is deliberately not folded: `relationships`, whose voids / fills / groups
25
- * / connections come from a parser-side extractor with no overlay seam, and the
26
- * geometry the clash and viewer tools read. Those are rebuilt on the next
27
- * `model_load` after a save.
24
+ * Exact `relationships().relations` rows are folded through the same overlay.
25
+ * Legacy projections and geometry rebuild on `model_load` after a save.
28
26
  */
29
27
  import type { QueryBackendMethods } from '@ifc-lite/sdk';
30
28
  import type { IfcDataStore } from '@ifc-lite/parser';
31
29
  import { expandTypes, isQueryableObjectType } from '@ifc-lite/parser';
32
- import { type PendingOverlay } from './overlay.js';
30
+ import { type MutablePropertyView } from '@ifc-lite/mutations';
31
+ import type { PendingOverlay } from './overlay.js';
33
32
  export { expandTypes };
34
33
  /**
35
34
  * Which classes an unfiltered query answers with.
@@ -45,5 +44,5 @@ export declare const isProductType: typeof isQueryableObjectType;
45
44
  * `MutablePropertyView` lazily on the first mutation, so a session that is only
46
45
  * ever read gets `null` on every call and keeps the original store-only path.
47
46
  */
48
- export declare function createQueryAdapter(store: IfcDataStore, modelId: string, overlay: () => PendingOverlay | null): QueryBackendMethods;
47
+ export declare function createQueryAdapter(store: IfcDataStore, modelId: string, overlay: () => PendingOverlay | null, mutationView: () => MutablePropertyView | null): QueryBackendMethods;
49
48
  //# sourceMappingURL=backend-query.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"backend-query.d.ts","sourceRoot":"","sources":["../src/backend-query.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EAWV,mBAAmB,EAEpB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAML,WAAW,EAGX,qBAAqB,EACtB,MAAM,kBAAkB,CAAC;AAK1B,OAAO,EAAgC,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAKjF,OAAO,EAAE,WAAW,EAAE,CAAC;AAEvB;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,8BAAwB,CAAC;AA+DnD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,cAAc,GAAG,IAAI,GACnC,mBAAmB,CA4UrB"}
1
+ {"version":3,"file":"backend-query.d.ts","sourceRoot":"","sources":["../src/backend-query.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAWV,mBAAmB,EAEpB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAOL,WAAW,EAGX,qBAAqB,EACtB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAA6B,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1F,OAAO,KAAK,EAAiB,cAAc,EAAE,MAAM,cAAc,CAAC;AAMlE,OAAO,EAAE,WAAW,EAAE,CAAC;AAEvB;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,8BAAwB,CAAC;AAenD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,cAAc,GAAG,IAAI,EACpC,YAAY,EAAE,MAAM,mBAAmB,GAAG,IAAI,GAC7C,mBAAmB,CAgUrB"}
@@ -1,10 +1,12 @@
1
1
  /* This Source Code Form is subject to the terms of the Mozilla Public
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
- import { extractAllEntityAttributes, extractClassificationsOnDemand, extractDocumentsOnDemand, extractMaterialsOnDemand, extractRelationshipsOnDemand, expandTypes, QUERY_REL_TYPE_MAP, extractTypePropertiesOnDemand, isQueryableObjectType, } from '@ifc-lite/parser';
4
+ import { extractAllEntityAttributes, extractClassificationsOnDemand, extractDocumentsOnDemand, extractMaterialsOnDemand, extractRelationshipsOnDemand, extractExactRelatedIds, expandTypes, QUERY_REL_TYPE_MAP, extractTypePropertiesOnDemand, isQueryableObjectType, } from '@ifc-lite/parser';
5
5
  import { attributeNamesForSchema } from './schema-tables.js';
6
6
  import { EntityNode, matchesPropertyFilter } from '@ifc-lite/query';
7
- import { edgeSurvives } from '@ifc-lite/data';
7
+ import { iterateEffectiveEntityIds } from '@ifc-lite/mutations';
8
+ import { authoredValue } from './authored-attribute-value.js';
9
+ import { foldRelationshipRows } from './backend-query-relationships.js';
8
10
  // `expandTypes` used to be defined here; it now comes from `@ifc-lite/parser`,
9
11
  // shared with the other query backends (see `query-backend-maps.ts`). Re-exported
10
12
  // so this module's consumers are unaffected by where it lives.
@@ -17,89 +19,35 @@ export { expandTypes };
17
19
  * here because both packages already publish it under this name.
18
20
  */
19
21
  export const isProductType = isQueryableObjectType;
20
- /** The overlay's answer for an entity it created, in `EntityData` shape. */
21
- function createdEntityData(created, ref) {
22
+ function createdEntityData(created, ref, store) {
23
+ const names = attributeNamesForSchema(created.ifcType, store.schemaVersion);
24
+ const objectType = authoredValue(created.attributes[names.indexOf('ObjectType')]);
22
25
  return {
23
26
  ref,
24
27
  globalId: created.globalId,
25
28
  name: created.name ?? '',
26
29
  type: created.ifcType,
27
30
  description: created.description ?? '',
28
- // Slot 4 is `ObjectType` on an IfcObject but `ApplicableOccurrence` on an
29
- // IfcTypeObject, so it is not read positionally. An `entity_set_attribute`
30
- // override still lands, applied by the caller.
31
- objectType: '',
31
+ objectType: typeof objectType === 'string' ? objectType : '',
32
32
  };
33
33
  }
34
- /**
35
- * One authored STEP attribute as a plain scalar, for `bim.attributes` on a
36
- * created entity.
37
- *
38
- * **Not `stepText`.** That helper answers "is this text?", and deliberately says
39
- * no to `#42` because its caller reads an entity's *Name* and must not mistake a
40
- * reference for one. Reusing it here dropped every structural attribute an agent
41
- * authored — `ObjectPlacement: '#40'` vanished from the readback (#2014). The
42
- * fix belongs on this side of the line, not in `stepText`: a reference *is* the
43
- * value of a structural attribute, and it is what will be serialised.
44
- *
45
- * Coercion mirrors the parsed path (`coerceRaw` in `@ifc-lite/query`) so a
46
- * created entity and a parsed one report the same shapes: `$`/`*`/`.U.`/`.X.`
47
- * are absent, `.T.`/`.F.` are booleans, other dotted tokens are bare enum names,
48
- * quoted text is unquoted.
49
- *
50
- * Lists are skipped — and so are they on the parsed path, where `coerceRaw`
51
- * answers null for an array. `EntityAttributeData.value` has no array form to
52
- * put one in, and reporting a created entity's `RelatedElements` while a parsed
53
- * entity's stays hidden would trade one inconsistency for another. The queued
54
- * relationships those lists express are read back through `related()` instead,
55
- * where they have somewhere to go.
56
- */
57
- function authoredValue(value) {
58
- if (typeof value === 'number' || typeof value === 'boolean')
59
- return value;
60
- // The authoring API's wrapper forms (`StoreEditor.addEntity`).
61
- if (value && typeof value === 'object' && !Array.isArray(value)) {
62
- const wrapper = value;
63
- if (typeof wrapper.real === 'number')
64
- return wrapper.real;
65
- if (wrapper.typed && wrapper.typed.value !== undefined)
66
- return wrapper.typed.value;
67
- return undefined;
68
- }
69
- if (typeof value !== 'string')
70
- return undefined;
71
- const trimmed = value.trim();
72
- if (trimmed === '' || trimmed === '$' || trimmed === '*')
73
- return undefined;
74
- if (trimmed === '.T.')
75
- return true;
76
- if (trimmed === '.F.')
77
- return false;
78
- if (trimmed === '.U.' || trimmed === '.X.')
79
- return undefined;
80
- if (trimmed.startsWith('#'))
81
- return trimmed;
82
- if (trimmed.length >= 2 && trimmed.startsWith("'") && trimmed.endsWith("'")) {
83
- return trimmed.slice(1, -1).replace(/''/g, "'");
84
- }
85
- if (trimmed.length >= 2 && trimmed.startsWith('.') && trimmed.endsWith('.'))
86
- return trimmed.slice(1, -1);
87
- return trimmed;
88
- }
89
34
  /**
90
35
  * Build the query adapter over a store, folding whatever `overlay()` returns at
91
36
  * call time. `overlay` is a getter, not a value: the backend creates its
92
37
  * `MutablePropertyView` lazily on the first mutation, so a session that is only
93
38
  * ever read gets `null` on every call and keeps the original store-only path.
94
39
  */
95
- export function createQueryAdapter(store, modelId, overlay) {
40
+ export function createQueryAdapter(store, modelId, overlay, mutationView) {
96
41
  function entityData(ref) {
97
42
  const pending = overlay();
98
43
  if (pending?.deleted.has(ref.expressId))
99
44
  return null;
100
45
  const created = pending?.createdEntity(ref.expressId);
101
- if (created)
102
- return withOverrides(createdEntityData(created, ref), pending, ref.expressId);
46
+ if (created) {
47
+ const data = createdEntityData(created, ref, store);
48
+ return { ...data, type: pending?.effectiveType(ref.expressId) ?? data.type };
49
+ }
50
+ // @raw-entity-enumeration-ok tombstones and overlay-created ids returned above; this point probe only checks the remaining parsed source
103
51
  if (!store.entityIndex.byId.has(ref.expressId))
104
52
  return null;
105
53
  const node = new EntityNode(store, ref.expressId);
@@ -110,7 +58,7 @@ export function createQueryAdapter(store, modelId, overlay) {
110
58
  ref,
111
59
  globalId: node.globalId,
112
60
  name: node.name,
113
- type,
61
+ type: pending?.effectiveType(ref.expressId) ?? type,
114
62
  description: node.description,
115
63
  objectType: node.objectType,
116
64
  }, pending, ref.expressId);
@@ -119,17 +67,36 @@ export function createQueryAdapter(store, modelId, overlay) {
119
67
  if (!pending)
120
68
  return data;
121
69
  const overrides = pending.attributes(expressId);
122
- if (overrides.size === 0)
70
+ const positional = pending.positionalAttributes(expressId);
71
+ if (overrides.size === 0 && positional.size === 0 && !pending.effectiveType(expressId))
123
72
  return data;
124
- // `EntityData` has a slot for exactly these three; anything else the session
125
- // wrote (`Tag`) reaches the caller through `attributes()` below, which
126
- // carries the whole map.
127
- return {
73
+ const next = {
128
74
  ...data,
75
+ type: pending.effectiveType(expressId) ?? data.type,
129
76
  name: overrides.get('Name') ?? data.name,
130
77
  description: overrides.get('Description') ?? data.description,
131
78
  objectType: overrides.get('ObjectType') ?? data.objectType,
132
79
  };
80
+ // Positional slots are named by the effective class (a queued retype wins).
81
+ const effectiveType = pending.effectiveType(expressId);
82
+ const exactType = effectiveType ?? (store.entities.getTypeName(expressId) || data.type);
83
+ const names = attributeNamesForSchema(exactType, store.schemaVersion);
84
+ if (effectiveType && names.length > 0 && !names.includes('ObjectType'))
85
+ next.objectType = '';
86
+ for (const [index, value] of positional) {
87
+ const authored = authoredValue(value);
88
+ const isUnset = value == null || (typeof value === 'string' && ['', '$', '*'].includes(value.trim()));
89
+ const text = typeof authored === 'string' ? authored : isUnset ? '' : null;
90
+ if (text === null)
91
+ continue;
92
+ if (names[index] === 'Name')
93
+ next.name = text;
94
+ else if (names[index] === 'Description')
95
+ next.description = text;
96
+ else if (names[index] === 'ObjectType')
97
+ next.objectType = text;
98
+ }
99
+ return next;
133
100
  }
134
101
  function properties(ref, captured) {
135
102
  // `captured` lets a caller that already has the overlay pass it in rather
@@ -177,7 +144,8 @@ export function createQueryAdapter(store, modelId, overlay) {
177
144
  if (!pending)
178
145
  return base;
179
146
  const overrides = pending.attributes(ref.expressId);
180
- if (overrides.size === 0)
147
+ const positional = pending.positionalAttributes(ref.expressId);
148
+ if (overrides.size === 0 && positional.size === 0)
181
149
  return base;
182
150
  // Overwrite what the base carries, then append what it does not. The append
183
151
  // is the half that was missing (#2014): `extractAllEntityAttributes` omits
@@ -185,16 +153,23 @@ export function createQueryAdapter(store, modelId, overlay) {
185
153
  // `Description` changed the top-level field while this list still denied it
186
154
  // — one payload contradicting itself. Appended names go last; the list is
187
155
  // name-keyed and its order is not positional (the base already drops nulls).
188
- const merged = base.map((attr) => {
189
- const written = overrides.get(attr.name);
190
- return written === undefined ? attr : { ...attr, value: written };
191
- });
192
- const present = new Set(merged.map((attr) => attr.name));
193
- for (const [name, value] of overrides) {
194
- if (!present.has(name))
195
- merged.push({ name, value });
156
+ const merged = new Map(base.map((attribute) => [attribute.name, attribute.value]));
157
+ const writes = new Map(overrides);
158
+ const exactType = created?.ifcType ?? store.entities.getTypeName(ref.expressId);
159
+ const names = attributeNamesForSchema(exactType, store.schemaVersion);
160
+ for (const [index, value] of positional) {
161
+ const name = names[index];
162
+ if (name)
163
+ writes.set(name, value);
164
+ }
165
+ for (const [name, value] of writes) {
166
+ const authored = authoredValue(value);
167
+ if (authored === undefined)
168
+ merged.delete(name);
169
+ else
170
+ merged.set(name, authored);
196
171
  }
197
- return merged;
172
+ return [...merged].map(([name, value]) => ({ name, value }));
198
173
  }
199
174
  function namedAuthoredAttributes(created) {
200
175
  // The *model's* schema, not the IFC4 pin. `IfcRelCoversSpaces` names slot 4
@@ -223,31 +198,21 @@ export function createQueryAdapter(store, modelId, overlay) {
223
198
  const requested = descriptor.types && descriptor.types.length > 0
224
199
  ? expandTypes(descriptor.types, store.schemaVersion)
225
200
  : null;
226
- const entityIds = [];
227
- if (requested) {
228
- for (const type of requested) {
229
- const typeIds = store.entityIndex.byType.get(type) ?? [];
230
- for (const eid of typeIds)
231
- entityIds.push(eid);
232
- }
233
- }
234
- else {
235
- for (const [typeName, ids] of store.entityIndex.byType) {
236
- if (isProductType(typeName)) {
237
- for (const eid of ids)
238
- entityIds.push(eid);
239
- }
240
- }
241
- }
242
201
  const results = [];
243
- for (const expressId of entityIds) {
244
- if (expressId === 0)
202
+ for (const { expressId, type, overlayCreated } of iterateEffectiveEntityIds(store, mutationView(), requested ?? undefined)) {
203
+ if (!requested && !isProductType(type))
245
204
  continue;
246
- if (pending?.deleted.has(expressId))
205
+ const ref = { modelId, expressId };
206
+ if (overlayCreated) {
207
+ const created = pending?.createdEntity(expressId);
208
+ if (!created)
209
+ throw new Error(`Missing pending entity #${expressId} during enumeration`);
210
+ results.push(withOverrides(createdEntityData(created, ref, store), pending, expressId));
247
211
  continue;
212
+ }
248
213
  const node = new EntityNode(store, expressId);
249
214
  results.push(withOverrides({
250
- ref: { modelId, expressId },
215
+ ref,
251
216
  globalId: node.globalId,
252
217
  name: node.name,
253
218
  type: node.type,
@@ -255,20 +220,6 @@ export function createQueryAdapter(store, modelId, overlay) {
255
220
  objectType: node.objectType,
256
221
  }, pending, expressId));
257
222
  }
258
- // Queued entities join the same result set under the same type rules, so
259
- // an agent that creates a wall and then queries for walls finds it.
260
- // `createdAll`, not `created`: `model_info` and `count_entities` count
261
- // every queued entity, so a typed query over the same class has to list
262
- // every one of them or the two contradict each other about what exists
263
- // (#2014). A queued entity with no GlobalId is still an entity; callers
264
- // address it by the `expressId` every row carries.
265
- const wanted = requested ? new Set(requested) : null;
266
- for (const created of pending?.createdAll ?? []) {
267
- const key = created.ifcType.toUpperCase();
268
- if (wanted ? !wanted.has(key) : !isProductType(key))
269
- continue;
270
- results.push(withOverrides(createdEntityData(created, { modelId, expressId: created.expressId }), pending, created.expressId));
271
- }
272
223
  let filtered = results;
273
224
  if (descriptor.filters && descriptor.filters.length > 0) {
274
225
  const propsCache = new Map();
@@ -368,7 +319,11 @@ export function createQueryAdapter(store, modelId, overlay) {
368
319
  return extractDocumentsOnDemand(store, ref.expressId);
369
320
  },
370
321
  relationships(ref) {
371
- return extractRelationshipsOnDemand(store, ref.expressId);
322
+ const result = extractRelationshipsOnDemand(store, ref.expressId);
323
+ const pending = overlay();
324
+ if (!pending)
325
+ return result;
326
+ return foldRelationshipRows(result, pending, ref, entityData);
372
327
  },
373
328
  /**
374
329
  * Containment, aggregation and typing, with the session's queued edits
@@ -401,11 +356,9 @@ export function createQueryAdapter(store, modelId, overlay) {
401
356
  if (relEnum === undefined)
402
357
  return [];
403
358
  const pending = overlay();
404
- // A deleted entity relates to nothing. Filtering only the far end left it
405
- // answering questions about itself (#2014 review).
359
+ // A deleted entity relates to nothing (#2014 review).
406
360
  if (pending?.deleted.has(ref.expressId))
407
361
  return [];
408
- const half = direction === 'forward' ? store.relationships.forward : store.relationships.inverse;
409
362
  const out = [];
410
363
  const seen = new Set();
411
364
  const take = (expressId) => {
@@ -414,26 +367,14 @@ export function createQueryAdapter(store, modelId, overlay) {
414
367
  seen.add(expressId);
415
368
  out.push(expressId);
416
369
  };
417
- // Two `IfcRel*` instances can name the same triple; the graph keeps
418
- // only one as `relationshipId` and folds the rest into
419
- // `shadowedRelationshipIds` (#3760). `edgeSurvives` (shared with the
420
- // CLI backend, #3782 review) treats the connection as alive as long
421
- // as any one of them still exists.
422
- const isDeleted = pending ? (id) => pending.deleted.has(id) : () => false;
423
- for (const edge of half.getEdges(ref.expressId, relEnum)) {
424
- if (edgeSurvives(edge, isDeleted))
425
- take(edge.target);
426
- }
427
- for (const relation of pending?.queuedRelations(relType) ?? []) {
428
- if (direction === 'forward') {
429
- if (relation.relating !== ref.expressId)
430
- continue;
431
- for (const target of relation.related)
432
- take(target);
433
- }
434
- else if (relation.related.includes(ref.expressId)) {
435
- take(relation.relating);
436
- }
370
+ const isDeleted = pending
371
+ ? (id) => pending.deleted.has(id) || pending.supersededRelationshipIds.has(id)
372
+ : () => false;
373
+ for (const id of extractExactRelatedIds(store, ref.expressId, relType, direction, isDeleted))
374
+ take(id);
375
+ for (const edge of pending?.relationshipEdges(ref.expressId, relType) ?? []) {
376
+ if (edge.direction === direction)
377
+ take(edge.targetId);
437
378
  }
438
379
  return out.map((expressId) => ({ modelId: ref.modelId, expressId }));
439
380
  },
@@ -1 +1 @@
1
- {"version":3,"file":"backend-query.js","sourceRoot":"","sources":["../src/backend-query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backend-query.js","sourceRoot":"","sources":["../src/backend-query.ts"],"names":[],"mappings":"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"}
package/dist/context.d.ts CHANGED
@@ -25,6 +25,14 @@ export interface LoadedModel {
25
25
  /** Concrete backend, retained so mutation tools can reach the editor without reflection. */
26
26
  backend: HeadlessLikeBackend;
27
27
  filePath?: string;
28
+ /**
29
+ * `sourceModelIdentity(name, postUnwrapBytes)` — the same string the viewer
30
+ * stores as `FederatedModel.sourceFingerprint`, so a `.rules.json` rule set
31
+ * whose `targets.modelFingerprints` were authored in the viewer resolves to
32
+ * this model in `check_rules` too (#5138). Absent when the model did not come
33
+ * from a file this process read (it then matches no fingerprint target).
34
+ */
35
+ sourceFingerprint?: string;
28
36
  loadedAt: number;
29
37
  }
30
38
  export interface ModelRegistry {
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,UAAU,CAAC;IAChB,KAAK,EAAE,YAAY,CAAC;IACpB,4FAA4F;IAC5F,OAAO,EAAE,mBAAmB,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,IAAI,WAAW,EAAE,CAAC;IACtB,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAAC;IACpC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAAC;IACzC,GAAG,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;IAC9B,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5B,KAAK,IAAI,MAAM,CAAC;CACjB;AAED,qBAAa,qBAAsB,YAAW,aAAa;IACzD,OAAO,CAAC,MAAM,CAAkC;IAEhD,IAAI,IAAI,WAAW,EAAE;IAIrB,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAInC,OAAO,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IASxC,GAAG,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAI7B,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAI3B,KAAK,IAAI,MAAM;CAGhB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAClE;AAED,eAAO,MAAM,aAAa,EAAE,gBAE3B,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,CAAC;AAEtF,MAAM,WAAW,MAAM;IACrB,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC7E;AAED,eAAO,MAAM,aAAa,EAAE,MAE3B,CAAC;AAEF;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,yEAAyE;IACzE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,yFAAyF;IACzF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,aAAa,CAAC;IACxB,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,kEAAkE;IAClE,MAAM,EAAE,WAAW,CAAC;IACpB,4EAA4E;IAC5E,MAAM,EAAE,YAAY,CAAC;IACrB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,yEAAyE;IACzE,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8DAA8D;IAC9D,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,kDAAkD;IAClD,eAAe,EAAE,OAAO,CAAC;IACzB,+DAA+D;IAC/D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,wCAAwC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,cAAc,EAAE,YAG5B,CAAC"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAiD/D,MAAM,OAAO,qBAAqB;IACxB,MAAM,GAAG,IAAI,GAAG,EAAuB,CAAC;IAEhD,IAAI;QACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,GAAG,CAAC,EAAU;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC;IACrC,CAAC;IAED,OAAO,CAAC,EAAW;QACjB,IAAI,EAAE;YAAE,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC;QAC3C,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAgC,CAAC;YAC1E,OAAO,IAAI,IAAI,IAAI,CAAC;QACtB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,GAAG,CAAC,KAAkB;QACpB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,CAAC,EAAU;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;CACF;AAMD,MAAM,CAAC,MAAM,aAAa,GAAqB;IAC7C,MAAM,KAA4C,CAAC;CACpD,CAAC;AAQF,MAAM,CAAC,MAAM,aAAa,GAAW;IACnC,GAAG,KAAyD,CAAC;CAC9D,CAAC;AA0CF,MAAM,CAAC,MAAM,cAAc,GAAiB;IAC1C,QAAQ,EAAE,KAAK;IACf,eAAe,EAAE,KAAK;CACvB,CAAC"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAyD/D,MAAM,OAAO,qBAAqB;IACxB,MAAM,GAAG,IAAI,GAAG,EAAuB,CAAC;IAEhD,IAAI;QACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,GAAG,CAAC,EAAU;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC;IACrC,CAAC;IAED,OAAO,CAAC,EAAW;QACjB,IAAI,EAAE;YAAE,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC;QAC3C,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAgC,CAAC;YAC1E,OAAO,IAAI,IAAI,IAAI,CAAC;QACtB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,GAAG,CAAC,KAAkB;QACpB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,CAAC,EAAU;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;CACF;AAMD,MAAM,CAAC,MAAM,aAAa,GAAqB;IAC7C,MAAM,KAA4C,CAAC;CACpD,CAAC;AAQF,MAAM,CAAC,MAAM,aAAa,GAAW;IACnC,GAAG,KAAyD,CAAC;CAC9D,CAAC;AA0CF,MAAM,CAAC,MAAM,cAAc,GAAiB;IAC1C,QAAQ,EAAE,KAAK;IACf,eAAe,EAAE,KAAK;CACvB,CAAC"}
@@ -0,0 +1,8 @@
1
+ /** Adapt the MCP session overlay to the shared effective-entity boundary. */
2
+ import type { EffectiveEntityOverlay } from '@ifc-lite/data';
3
+ import type { IfcDataStore } from '@ifc-lite/parser';
4
+ import type { PendingOverlay } from './overlay.js';
5
+ export declare function pendingEntityMembership(overlay: PendingOverlay | null): EffectiveEntityOverlay | null;
6
+ /** IFCX has columnar rows but no STEP type buckets; give the shared iterator its source domain. */
7
+ export declare function effectiveSourceIds(store: IfcDataStore): Iterable<number> | undefined;
8
+ //# sourceMappingURL=effective-entity-membership.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effective-entity-membership.d.ts","sourceRoot":"","sources":["../src/effective-entity-membership.ts"],"names":[],"mappings":"AAIA,6EAA6E;AAC7E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,GAAG,sBAAsB,GAAG,IAAI,CAYrG;AAED,mGAAmG;AACnG,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,SAAS,CAGpF"}