@ifc-lite/export 2.9.4 → 3.0.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 (126) hide show
  1. package/dist/csv-cell.d.ts +101 -0
  2. package/dist/csv-cell.d.ts.map +1 -0
  3. package/dist/csv-cell.js +90 -0
  4. package/dist/csv-cell.js.map +1 -0
  5. package/dist/declared-property-type.d.ts +19 -8
  6. package/dist/declared-property-type.d.ts.map +1 -1
  7. package/dist/declared-property-type.js +31 -9
  8. package/dist/declared-property-type.js.map +1 -1
  9. package/dist/demesh-session.d.ts.map +1 -1
  10. package/dist/demesh-session.js +2 -1
  11. package/dist/demesh-session.js.map +1 -1
  12. package/dist/effective-index.js +1 -1
  13. package/dist/index.d.ts +1 -0
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +9 -0
  16. package/dist/index.js.map +1 -1
  17. package/dist/lod1-generator.d.ts +0 -2
  18. package/dist/lod1-generator.d.ts.map +1 -1
  19. package/dist/lod1-generator.js +1 -1
  20. package/dist/lod1-generator.js.map +1 -1
  21. package/dist/merged-exporter.d.ts +19 -0
  22. package/dist/merged-exporter.d.ts.map +1 -1
  23. package/dist/merged-exporter.js +23 -41
  24. package/dist/merged-exporter.js.map +1 -1
  25. package/dist/parquet-exporter.d.ts +1 -3
  26. package/dist/parquet-exporter.d.ts.map +1 -1
  27. package/dist/parquet-exporter.js +1 -0
  28. package/dist/parquet-exporter.js.map +1 -1
  29. package/dist/property-value-serialization.d.ts +54 -0
  30. package/dist/property-value-serialization.d.ts.map +1 -0
  31. package/dist/property-value-serialization.js +134 -0
  32. package/dist/property-value-serialization.js.map +1 -0
  33. package/dist/reference-collector.d.ts +20 -0
  34. package/dist/reference-collector.d.ts.map +1 -1
  35. package/dist/reference-collector.js +46 -113
  36. package/dist/reference-collector.js.map +1 -1
  37. package/dist/schema-converter.d.ts.map +1 -1
  38. package/dist/schema-converter.js +46 -96
  39. package/dist/schema-converter.js.map +1 -1
  40. package/dist/source-ref-bounds.d.ts +3 -3
  41. package/dist/source-ref-bounds.js +3 -3
  42. package/dist/step-attribute-mutations.d.ts +49 -0
  43. package/dist/step-attribute-mutations.d.ts.map +1 -0
  44. package/dist/step-attribute-mutations.js +172 -0
  45. package/dist/step-attribute-mutations.js.map +1 -0
  46. package/dist/step-attribute-serializers.d.ts +41 -0
  47. package/dist/step-attribute-serializers.d.ts.map +1 -0
  48. package/dist/step-attribute-serializers.js +74 -0
  49. package/dist/step-attribute-serializers.js.map +1 -0
  50. package/dist/step-collection.d.ts +55 -0
  51. package/dist/step-collection.d.ts.map +1 -0
  52. package/dist/step-collection.js +126 -0
  53. package/dist/step-collection.js.map +1 -0
  54. package/dist/step-export-contexts.d.ts +61 -0
  55. package/dist/step-export-contexts.d.ts.map +1 -0
  56. package/dist/step-export-contexts.js +50 -0
  57. package/dist/step-export-contexts.js.map +1 -0
  58. package/dist/step-export-types.d.ts +262 -0
  59. package/dist/step-export-types.d.ts.map +1 -0
  60. package/dist/step-export-types.js +22 -0
  61. package/dist/step-export-types.js.map +1 -0
  62. package/dist/step-exporter.d.ts +23 -354
  63. package/dist/step-exporter.d.ts.map +1 -1
  64. package/dist/step-exporter.js +76 -1260
  65. package/dist/step-exporter.js.map +1 -1
  66. package/dist/step-geometry-types.d.ts +3 -0
  67. package/dist/step-geometry-types.d.ts.map +1 -0
  68. package/dist/step-geometry-types.js +73 -0
  69. package/dist/step-geometry-types.js.map +1 -0
  70. package/dist/step-georeferencing.d.ts +0 -10
  71. package/dist/step-georeferencing.d.ts.map +1 -1
  72. package/dist/step-georeferencing.js +46 -94
  73. package/dist/step-georeferencing.js.map +1 -1
  74. package/dist/step-header.d.ts +53 -0
  75. package/dist/step-header.d.ts.map +1 -0
  76. package/dist/step-header.js +63 -0
  77. package/dist/step-header.js.map +1 -0
  78. package/dist/step-map-unit.d.ts +90 -0
  79. package/dist/step-map-unit.d.ts.map +1 -0
  80. package/dist/step-map-unit.js +277 -0
  81. package/dist/step-map-unit.js.map +1 -0
  82. package/dist/step-omission-predicates.d.ts +51 -0
  83. package/dist/step-omission-predicates.d.ts.map +1 -0
  84. package/dist/step-omission-predicates.js +268 -0
  85. package/dist/step-omission-predicates.js.map +1 -0
  86. package/dist/step-overlay-attribute-overrides.d.ts +32 -0
  87. package/dist/step-overlay-attribute-overrides.d.ts.map +1 -0
  88. package/dist/step-overlay-attribute-overrides.js +83 -0
  89. package/dist/step-overlay-attribute-overrides.js.map +1 -0
  90. package/dist/step-overlay-entities.d.ts +64 -0
  91. package/dist/step-overlay-entities.d.ts.map +1 -0
  92. package/dist/step-overlay-entities.js +119 -0
  93. package/dist/step-overlay-entities.js.map +1 -0
  94. package/dist/step-pass-builder.d.ts +45 -0
  95. package/dist/step-pass-builder.d.ts.map +1 -0
  96. package/dist/step-pass-builder.js +249 -0
  97. package/dist/step-pass-builder.js.map +1 -0
  98. package/dist/step-property-set-collection.d.ts +24 -0
  99. package/dist/step-property-set-collection.d.ts.map +1 -0
  100. package/dist/step-property-set-collection.js +286 -0
  101. package/dist/step-property-set-collection.js.map +1 -0
  102. package/dist/step-property-set-generators.d.ts +20 -0
  103. package/dist/step-property-set-generators.d.ts.map +1 -0
  104. package/dist/step-property-set-generators.js +98 -0
  105. package/dist/step-property-set-generators.js.map +1 -0
  106. package/dist/step-property-set-index.d.ts +25 -0
  107. package/dist/step-property-set-index.d.ts.map +1 -0
  108. package/dist/step-property-set-index.js +69 -0
  109. package/dist/step-property-set-index.js.map +1 -0
  110. package/dist/step-property-set-readers.d.ts +158 -0
  111. package/dist/step-property-set-readers.d.ts.map +1 -0
  112. package/dist/step-property-set-readers.js +251 -0
  113. package/dist/step-property-set-readers.js.map +1 -0
  114. package/dist/step-property-sets.d.ts +2 -184
  115. package/dist/step-property-sets.d.ts.map +1 -1
  116. package/dist/step-property-sets.js +22 -674
  117. package/dist/step-property-sets.js.map +1 -1
  118. package/dist/step-serialization.d.ts +33 -52
  119. package/dist/step-serialization.d.ts.map +1 -1
  120. package/dist/step-serialization.js +69 -131
  121. package/dist/step-serialization.js.map +1 -1
  122. package/dist/step-source-iteration.d.ts +97 -0
  123. package/dist/step-source-iteration.d.ts.map +1 -0
  124. package/dist/step-source-iteration.js +178 -0
  125. package/dist/step-source-iteration.js.map +1 -0
  126. package/package.json +7 -7
@@ -0,0 +1,178 @@
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 { filterHiddenRefsFromRelationshipLine } from './reference-collector.js';
5
+ import { convertStepLine } from './schema-converter.js';
6
+ import { nominateDeliveredInPlaceEdits } from './in-place-nomination.js';
7
+ import { decodeRange } from './source-ref-bounds.js';
8
+ import { getPropertyIdsInSet } from './step-property-set-readers.js';
9
+ /**
10
+ * Un-skip property/quantity atoms that a surviving (non-skipped, and — under
11
+ * visible-only export — still-included) IfcPropertySet / IfcElementQuantity
12
+ * still references.
13
+ *
14
+ * When a property is edited, the modified pset is replaced and its member atoms
15
+ * are added to `skipIds` wholesale. Because exporters deduplicate shared
16
+ * Pset_*Common atoms (e.g. a single IsExternal / IsLoadBearing value referenced
17
+ * by many psets), that wholesale skip can drop an atom another pset still needs.
18
+ * This pass restores any such atom: the edited pset still emits its replacement
19
+ * with the new value, while the shared atom stays for the psets that keep their
20
+ * original value.
21
+ */
22
+ function retainSharedAtoms(skipIds, allowedEntityIds, ctxOf) {
23
+ if (skipIds.size === 0)
24
+ return;
25
+ // Built once for the whole sweep rather than per container: the readers in
26
+ // `step-property-set-readers.ts` take the context, and this loop calls one
27
+ // of them once per IfcPropertySet / IfcElementQuantity in the file.
28
+ const ctx = ctxOf.propertySetContext();
29
+ const byType = ctxOf.dataStore.entityIndex.byType;
30
+ const containerIds = [
31
+ ...(byType.get('IFCPROPERTYSET') ?? []),
32
+ ...(byType.get('IFCELEMENTQUANTITY') ?? []),
33
+ ];
34
+ for (const containerId of containerIds) {
35
+ // Skipped containers are being dropped/replaced — their atoms may go.
36
+ if (skipIds.has(containerId))
37
+ continue;
38
+ // Under visible-only export a container outside the closure is not emitted,
39
+ // so it cannot keep an atom alive.
40
+ if (allowedEntityIds !== null && !allowedEntityIds.has(containerId))
41
+ continue;
42
+ for (const atomId of getPropertyIdsInSet(ctx, containerId)) {
43
+ skipIds.delete(atomId);
44
+ }
45
+ }
46
+ }
47
+ /**
48
+ * Write every source-backed record this export keeps, into `pass.entities`.
49
+ *
50
+ * Mutates the pass in place and returns nothing: three later readers take its
51
+ * output at a distance — the assembly step reads `pass.entities`, `settle()`
52
+ * reads `pass.modifications`, and the header count reads both.
53
+ *
54
+ * `mayNameOmittedRefs` is passed rather than read off the pass because it is
55
+ * deliberately not a pass member: it folds in `hiddenProductIds`, which the
56
+ * visible-only closure walk only assigns after the pass is constructed, so
57
+ * hoisting it would change what it computes rather than where it is named. The
58
+ * overlay-created-entities block reads the same local. `isOmittedFromOutput`
59
+ * is passed alongside it for the same reason — it closes over `pass` but is
60
+ * built once by the caller (`step-exporter.ts`), not re-derived here.
61
+ */
62
+ export function writeSourceEntityLines(pass, options, mayNameOmittedRefs, isOmittedFromOutput, ctx) {
63
+ // A modified pset is replaced wholesale, which skips ALL of its member atoms.
64
+ // But IFC exporters deduplicate identical Pset_*Common atoms (e.g. one
65
+ // IsExternal IfcPropertySingleValue shared by dozens of psets), so skipping a
66
+ // shared atom would orphan every OTHER pset that still references it, leaving
67
+ // dangling refs and an invalid file. Keep any atom a surviving container needs.
68
+ retainSharedAtoms(pass.skipPropertySetIds, pass.allowedEntityIds, ctx);
69
+ // Export original entities from source buffer, SKIPPING modified property sets
70
+ if (!options.deltaOnly && ctx.dataStore.source) {
71
+ const source = ctx.dataStore.source;
72
+ // Extract existing entities from source. The effective index has already
73
+ // dropped everything the overlay tombstoned, so there is no separate
74
+ // deleted check to forget here.
75
+ for (const [expressId, entityRef] of pass.effective) {
76
+ // Skip overlay-only entities — emitted by the overlay-created-entities
77
+ // block back in `export()`.
78
+ // A ref this source cannot address is skipped by the same test rather
79
+ // than decoded: `decodeUtf8` clamps such a range and the empty string
80
+ // it returns used to be pushed into the file as a blank line, leaving
81
+ // every generated record that names the host dangling (#2491).
82
+ if (!pass.isReadableSourceRef(entityRef)) {
83
+ continue;
84
+ }
85
+ // Skip entities outside the visible closure
86
+ if (pass.allowedEntityIds !== null && !pass.allowedEntityIds.has(expressId)) {
87
+ continue;
88
+ }
89
+ // Skip property sets/relationships that are being replaced
90
+ if (pass.skipPropertySetIds.has(expressId) || pass.skipRelationshipIds.has(expressId)) {
91
+ continue;
92
+ }
93
+ // Skip type entities whose HasPropertySets attribute will be rewritten
94
+ if (pass.rewrittenEntityIds.has(expressId)) {
95
+ continue;
96
+ }
97
+ // Skip geometry if not included. Classified via `isGeometryExcluded`
98
+ // (which reads the EFFECTIVE type, `effective.effectiveType`) rather
99
+ // than `entityRef.type` directly: a retype can move a record across
100
+ // the geometry boundary in either direction, and this check has to
101
+ // agree with `hasEmittableHostBytes`/`willBeEmitted`'s use of the
102
+ // same predicate — otherwise a wall retyped to `IfcCartesianPoint`
103
+ // still ships its (rewritten) geometry line under
104
+ // `includeGeometry: false`, the exact "predicate must agree" failure
105
+ // this file already guards for the non-retyped case (#2414).
106
+ if (pass.isGeometryExcluded(expressId, entityRef.type)) {
107
+ continue;
108
+ }
109
+ // Get original entity text — decodeRange handles SAB-backed
110
+ // sources (Firefox/Chrome reject `TextDecoder.decode()` on a
111
+ // SharedArrayBuffer-backed view; the parser deliberately keeps
112
+ // `source` zero-copy SAB-backed for worker sharing).
113
+ const entityText = decodeRange(source, entityRef.byteOffset, entityRef.byteOffset + entityRef.byteLength);
114
+ // Retype, named attribute edits and positional edits, in that order.
115
+ // Shared verbatim with the type-object `HasPropertySets` rewrite in
116
+ // `step-property-sets.ts`, which writes the line this pass would
117
+ // otherwise have written — hence injected rather than moved here.
118
+ const mutated = ctx.applySourceLineMutations(expressId, entityText, entityRef.type, pass.modifiedAttributes.get(expressId), pass.sourceSchema, pass.overlayActive, (attr, value) => pass.warnings.push(`entity #${expressId}: attribute ${attr} not written - ` +
119
+ `${JSON.stringify(value)} is not a number and the slot is REAL-typed`));
120
+ let nextEntityText = mutated.text;
121
+ // A hidden PRODUCT's own line is already out of the export via
122
+ // `allowedEntityIds`, and a TOMBSTONED entity's via `effective` — this
123
+ // is the relationship that NAMED either one. `IFCREL*` is an
124
+ // unconditional root (see `getVisibleEntityIds`), so its bytes reach
125
+ // here unfiltered even when one of the ids they name was just
126
+ // excluded; left alone that ships a `#N` with no `#N=` line, whether
127
+ // the exclusion came from `visibleOnly` or from a plain deletion
128
+ // (#2398). Checked before the nomination below: a relationship this
129
+ // withholds must not also be counted as a delivered modification.
130
+ //
131
+ // Classified by the EFFECTIVE type (`effective.effectiveType`), not
132
+ // the source's authored type: a retype can move a record across
133
+ // the `IFCREL*` boundary in either direction (`applySourceLineMutations`
134
+ // already rewrote `nextEntityText` to the new class), and this check
135
+ // has to agree with what actually got written, the same way
136
+ // `getVisibleEntityIds` already does for the visibility walk itself.
137
+ const effectiveRelType = pass.effective.effectiveType(expressId, entityRef.type).toUpperCase();
138
+ if (mayNameOmittedRefs && effectiveRelType.startsWith('IFCREL')) {
139
+ const filtered = filterHiddenRefsFromRelationshipLine(nextEntityText, isOmittedFromOutput);
140
+ if (filtered === null) {
141
+ pass.warnings.push(ctx.relationshipWithheldWarning(expressId, effectiveRelType));
142
+ continue;
143
+ }
144
+ nextEntityText = filtered;
145
+ }
146
+ // A retype or a positional edit that CHANGED the line is what makes
147
+ // this entity count; a named attribute edit was already nominated by
148
+ // the collection pass. Both flags report effect, so retyping an entity
149
+ // to the class it already is — or writing a slot the token it already
150
+ // holds — no longer claims a modification over a line the export left
151
+ // byte-identical. This pass is full-export-only (`deltaOnly` skips it
152
+ // wholesale), so nomination IS emission here and the kinds only have to
153
+ // be right for the entity count — which is per entity, hence unchanged.
154
+ if (mutated.retyped || mutated.positional)
155
+ pass.modifiedEntities.add(expressId);
156
+ if (mutated.retyped)
157
+ pass.modifications.nominate(expressId, 'retype');
158
+ if (mutated.positional)
159
+ pass.modifications.nominate(expressId, 'positional');
160
+ // The named-attribute kinds join them here rather than at their
161
+ // collection sites, for the same reason and on the same signal (#2483).
162
+ // This pass is full-export-only, so there is nothing to gate.
163
+ nominateDeliveredInPlaceEdits(pass.modifications, expressId, mutated, pass.inPlaceNominees);
164
+ // Apply schema conversion if exporting to a different schema version
165
+ if (pass.converting) {
166
+ const converted = convertStepLine(nextEntityText, pass.sourceSchema, pass.schema, options.guidRandom);
167
+ if (converted !== null) {
168
+ pass.entities.push(converted);
169
+ }
170
+ // null means entity should be skipped (no valid representation in target schema)
171
+ }
172
+ else {
173
+ pass.entities.push(nextEntityText);
174
+ }
175
+ }
176
+ }
177
+ }
178
+ //# sourceMappingURL=step-source-iteration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"step-source-iteration.js","sourceRoot":"","sources":["../src/step-source-iteration.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ifc-lite/export",
3
- "version": "2.9.4",
3
+ "version": "3.0.1",
4
4
  "description": "Export formats for IFC-Lite",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -16,16 +16,16 @@
16
16
  "parquet-wasm": "^0.7.2",
17
17
  "apache-arrow": "^21.2.0",
18
18
  "jszip": "^3.10.0",
19
- "@ifc-lite/geometry": "^3.8.4",
20
- "@ifc-lite/data": "^3.4.0",
21
- "@ifc-lite/encoding": "^2.0.0",
22
- "@ifc-lite/parser": "^4.2.0",
23
- "@ifc-lite/mutations": "^1.26.1"
19
+ "@ifc-lite/data": "^3.5.0",
20
+ "@ifc-lite/encoding": "^2.1.0",
21
+ "@ifc-lite/parser": "^4.3.2",
22
+ "@ifc-lite/mutations": "^1.27.0",
23
+ "@ifc-lite/geometry": "^4.1.0"
24
24
  },
25
25
  "devDependencies": {
26
26
  "typescript": "^6.0.3",
27
27
  "vitest": "^4.1.10",
28
- "@ifc-lite/ifcx": "^2.3.7"
28
+ "@ifc-lite/ifcx": "^3.0.1"
29
29
  },
30
30
  "license": "MPL-2.0",
31
31
  "author": "Louis True",