@ifc-lite/export 4.8.0 → 4.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/affected-set.d.ts +9 -0
- package/dist/affected-set.d.ts.map +1 -0
- package/dist/affected-set.js +72 -0
- package/dist/affected-set.js.map +1 -0
- package/dist/declared-property-type.d.ts +7 -0
- package/dist/declared-property-type.d.ts.map +1 -1
- package/dist/declared-property-type.js +26 -0
- package/dist/declared-property-type.js.map +1 -1
- package/dist/edit-ownership.d.ts +7 -0
- package/dist/edit-ownership.d.ts.map +1 -0
- package/dist/edit-ownership.js +95 -0
- package/dist/edit-ownership.js.map +1 -0
- package/dist/entity-subgraph.d.ts +11 -3
- package/dist/entity-subgraph.d.ts.map +1 -1
- package/dist/entity-subgraph.js +54 -11
- package/dist/entity-subgraph.js.map +1 -1
- package/dist/grid-placement-dependents.d.ts +4 -0
- package/dist/grid-placement-dependents.d.ts.map +1 -0
- package/dist/grid-placement-dependents.js +71 -0
- package/dist/grid-placement-dependents.js.map +1 -0
- package/dist/grid-reference-context.d.ts +6 -0
- package/dist/grid-reference-context.d.ts.map +1 -0
- package/dist/grid-reference-context.js +68 -0
- package/dist/grid-reference-context.js.map +1 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -3
- package/dist/index.js.map +1 -1
- package/dist/step-coordinate-options.d.ts +35 -0
- package/dist/step-coordinate-options.d.ts.map +1 -0
- package/dist/step-coordinate-options.js +5 -0
- package/dist/step-coordinate-options.js.map +1 -0
- package/dist/step-export-progress.d.ts +4 -0
- package/dist/step-export-progress.d.ts.map +1 -0
- package/dist/step-export-progress.js +9 -0
- package/dist/step-export-progress.js.map +1 -0
- package/dist/step-export-types.d.ts +7 -7
- package/dist/step-export-types.d.ts.map +1 -1
- package/dist/step-export-types.js.map +1 -1
- package/dist/step-exporter.d.ts +1 -0
- package/dist/step-exporter.d.ts.map +1 -1
- package/dist/step-exporter.js +31 -18
- package/dist/step-exporter.js.map +1 -1
- package/dist/step-map-transform.d.ts +7 -0
- package/dist/step-map-transform.d.ts.map +1 -0
- package/dist/step-map-transform.js +89 -0
- package/dist/step-map-transform.js.map +1 -0
- package/dist/step-map-unit-normalization.d.ts +5 -0
- package/dist/step-map-unit-normalization.d.ts.map +1 -0
- package/dist/step-map-unit-normalization.js +194 -0
- package/dist/step-map-unit-normalization.js.map +1 -0
- package/dist/step-map-unit.d.ts +3 -78
- package/dist/step-map-unit.d.ts.map +1 -1
- package/dist/step-map-unit.js +33 -195
- package/dist/step-map-unit.js.map +1 -1
- package/dist/step-native-set-record.d.ts +6 -0
- package/dist/step-native-set-record.d.ts.map +1 -0
- package/dist/step-native-set-record.js +30 -0
- package/dist/step-native-set-record.js.map +1 -0
- package/dist/step-pass-builder.d.ts.map +1 -1
- package/dist/step-pass-builder.js +2 -0
- package/dist/step-pass-builder.js.map +1 -1
- package/dist/step-property-set-collection.d.ts.map +1 -1
- package/dist/step-property-set-collection.js +24 -8
- package/dist/step-property-set-collection.js.map +1 -1
- package/dist/step-property-set-generators.d.ts +8 -2
- package/dist/step-property-set-generators.d.ts.map +1 -1
- package/dist/step-property-set-generators.js +26 -10
- package/dist/step-property-set-generators.js.map +1 -1
- package/dist/step-property-set-readers.d.ts.map +1 -1
- package/dist/step-property-set-readers.js +15 -0
- package/dist/step-property-set-readers.js.map +1 -1
- package/dist/step-property-sets.d.ts +3 -4
- package/dist/step-property-sets.d.ts.map +1 -1
- package/dist/step-property-sets.js +61 -19
- package/dist/step-property-sets.js.map +1 -1
- package/dist/step-type-owned-quantities.d.ts +34 -0
- package/dist/step-type-owned-quantities.d.ts.map +1 -0
- package/dist/step-type-owned-quantities.js +222 -0
- package/dist/step-type-owned-quantities.js.map +1 -0
- package/dist/step-vertical-datum-normalization.d.ts +17 -0
- package/dist/step-vertical-datum-normalization.d.ts.map +1 -0
- package/dist/step-vertical-datum-normalization.js +52 -0
- package/dist/step-vertical-datum-normalization.js.map +1 -0
- package/package.json +9 -8
|
@@ -0,0 +1,68 @@
|
|
|
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
|
+
/** IfcGridPlacement reaches its axes forwards, but their owning IfcGrid is
|
|
5
|
+
* inverse context (#6232). Read ownership from the same effective STEP lines
|
|
6
|
+
* that the subgraph writes; no coordinates or placement resolution live here. */
|
|
7
|
+
import { getAttributeNamesForSchema } from '@ifc-lite/parser';
|
|
8
|
+
import { refGroupFromArg } from './reference-collector.js';
|
|
9
|
+
import { readStepSlots } from './step-argument-parser.js';
|
|
10
|
+
export function gridReferenceContext(index, line, schema) {
|
|
11
|
+
let owners;
|
|
12
|
+
const ref = stepReferenceReader(index, line, schema);
|
|
13
|
+
return (placementId) => {
|
|
14
|
+
const intersection = ref(placementId, 'IFCGRIDPLACEMENT', 'PlacementLocation');
|
|
15
|
+
if (typeof intersection !== 'number')
|
|
16
|
+
return null;
|
|
17
|
+
const axes = ref(intersection, 'IFCVIRTUALGRIDINTERSECTION', 'IntersectingAxes');
|
|
18
|
+
if (!Array.isArray(axes) || axes.length !== 2 || axes[0] === axes[1]
|
|
19
|
+
|| axes.some((id) => index.typeOf(id) !== 'IFCGRIDAXIS'))
|
|
20
|
+
return null;
|
|
21
|
+
if (!owners) {
|
|
22
|
+
owners = new Map();
|
|
23
|
+
// One effective type bucket, including created/retyped/deleted grids.
|
|
24
|
+
for (const gridId of index.byType.get('IFCGRID') ?? []) {
|
|
25
|
+
for (const row of ['UAxes', 'VAxes', 'WAxes']) {
|
|
26
|
+
const rowAxes = ref(gridId, 'IFCGRID', row);
|
|
27
|
+
if (!Array.isArray(rowAxes))
|
|
28
|
+
continue;
|
|
29
|
+
for (const axisId of rowAxes) {
|
|
30
|
+
const memberships = owners.get(axisId) ?? [];
|
|
31
|
+
memberships.push({ gridId, row });
|
|
32
|
+
owners.set(axisId, memberships);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
const first = owners.get(axes[0]);
|
|
38
|
+
const second = owners.get(axes[1]);
|
|
39
|
+
if (first?.length !== 1 || second?.length !== 1
|
|
40
|
+
|| first[0].gridId !== second[0].gridId || first[0].row === second[0].row)
|
|
41
|
+
return null;
|
|
42
|
+
return first[0].gridId;
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
/** Typed reference slots read from the exporter's effective record text. */
|
|
46
|
+
export function stepReferenceReader(index, line, schema) {
|
|
47
|
+
const slots = (id) => {
|
|
48
|
+
const text = line(id);
|
|
49
|
+
return text === null ? undefined : readStepSlots(text)?.slots;
|
|
50
|
+
};
|
|
51
|
+
const attributes = new Map();
|
|
52
|
+
const attribute = (type, name) => {
|
|
53
|
+
let names = attributes.get(type);
|
|
54
|
+
if (!names) {
|
|
55
|
+
names = getAttributeNamesForSchema(type, schema);
|
|
56
|
+
attributes.set(type, names);
|
|
57
|
+
}
|
|
58
|
+
return names.indexOf(name);
|
|
59
|
+
};
|
|
60
|
+
return (id, type, name) => {
|
|
61
|
+
if (index.typeOf(id) !== type)
|
|
62
|
+
return undefined;
|
|
63
|
+
const values = slots(id);
|
|
64
|
+
const token = values?.[attribute(type, name)];
|
|
65
|
+
return token === undefined ? undefined : refGroupFromArg(token);
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=grid-reference-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grid-reference-context.js","sourceRoot":"","sources":["../src/grid-reference-context.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -27,6 +27,9 @@ export { tableToCsv, csvCellOf, type TableToCsvOptions, type TableColumn } from
|
|
|
27
27
|
export { planAuthoredResourceCleanup } from './authored-resource-cleanup.js';
|
|
28
28
|
export { captureAppearanceDependencies } from './appearance-dependencies.js';
|
|
29
29
|
export { effectiveSourceRecord, type EffectiveSourceRecord, effectiveCreatedRecord } from './effective-source-record.js';
|
|
30
|
-
export { serializeEntitySubgraph, remeshContextRoots, type EntitySubgraph, type EntitySubgraphRequest, } from './entity-subgraph.js';
|
|
30
|
+
export { serializeEntitySubgraph, gridPlacementDependents, remeshContextRoots, type EntitySubgraph, type EntitySubgraphRequest, } from './entity-subgraph.js';
|
|
31
31
|
export { serializeEntityArgs } from './attribute-real-slots.js';
|
|
32
|
+
export { validatePropertyDataType } from './declared-property-type.js';
|
|
33
|
+
export { expandAffectedSet, type RemeshCause } from './affected-set.js';
|
|
34
|
+
export { editOwnershipRefusal } from './edit-ownership.js';
|
|
32
35
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -52,11 +52,15 @@ export { captureAppearanceDependencies } from './appearance-dependencies.js';
|
|
|
52
52
|
// exporter's own pipeline: read models that must agree with the exported
|
|
53
53
|
// bytes (the cost read model, #4857) read this instead of re-serializing.
|
|
54
54
|
export { effectiveSourceRecord, effectiveCreatedRecord } from './effective-source-record.js';
|
|
55
|
-
//
|
|
56
|
-
//
|
|
57
|
-
export { serializeEntitySubgraph, remeshContextRoots, } from './entity-subgraph.js';
|
|
55
|
+
// Mini STEP and inverse grid placement context for the shared viewer re-mesh
|
|
56
|
+
// service (#6232). Grid-relative context also scans effective grid ownership.
|
|
57
|
+
export { serializeEntitySubgraph, gridPlacementDependents, remeshContextRoots, } from './entity-subgraph.js';
|
|
58
58
|
// Schema-aware STEP arguments for a freshly created entity — the serializer
|
|
59
59
|
// the exporter uses for overlay-created records. The LandXML imagery export
|
|
60
60
|
// appends the appearance planner's entities with it (#5942).
|
|
61
61
|
export { serializeEntityArgs } from './attribute-real-slots.js';
|
|
62
|
+
// Authored property declarations share the exporter's IfcValue registry/domain rules (SDK mutation consumer).
|
|
63
|
+
export { validatePropertyDataType } from './declared-property-type.js';
|
|
64
|
+
export { expandAffectedSet } from './affected-set.js';
|
|
65
|
+
export { editOwnershipRefusal } from './edit-ownership.js';
|
|
62
66
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;GAEG;AAEH,8EAA8E;AAC9E,oFAAoF;AACpF,OAAO,EAAE,eAAe,EAA6B,MAAM,uBAAuB,CAAC;AACnF,uEAAuE;AACvE,mGAAmG;AACnG,8EAA8E;AAC9E,gDAAgD;AAChD,OAAO,EAAE,YAAY,EAAE,YAAY,EAA0E,MAAM,oBAAoB,CAAC;AACxI,0EAA0E;AAC1E,mEAAmE;AACnE,qEAAqE;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAQ/D,OAAO,EAAE,cAAc,EAA0H,MAAM,sBAAsB,CAAC;AAC9K,OAAO,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC3F,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,eAAe,EAAE,kBAAkB,EAAyB,MAAM,uBAAuB,CAAC;AACvI,OAAO,EACL,qBAAqB,EACrB,4BAA4B,GAK7B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAiD,MAAM,oBAAoB,CAAC;AACjG,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAItF,OAAO,EACL,aAAa,GAId,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,uBAAuB,GAKxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,YAAY,EAA4B,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,6EAA6E;AAC7E,4EAA4E;AAC5E,iEAAiE;AACjE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAExE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACtE,8EAA8E;AAC9E,gFAAgF;AAChF,0EAA0E;AAC1E,+EAA+E;AAC/E,uBAAuB;AACvB,8EAA8E;AAC9E,+EAA+E;AAC/E,iEAAiE;AACjE,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAuB,MAAM,eAAe,CAAC;AAC5F,gFAAgF;AAChF,OAAO,EAAE,UAAU,EAAE,SAAS,EAA4C,MAAM,gBAAgB,CAAC;AAEjG,OAAO,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAE7E,OAAO,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;AAC7E,0EAA0E;AAC1E,yEAAyE;AACzE,0EAA0E;AAC1E,OAAO,EAAE,qBAAqB,EAA8B,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACzH,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;GAEG;AAEH,8EAA8E;AAC9E,oFAAoF;AACpF,OAAO,EAAE,eAAe,EAA6B,MAAM,uBAAuB,CAAC;AACnF,uEAAuE;AACvE,mGAAmG;AACnG,8EAA8E;AAC9E,gDAAgD;AAChD,OAAO,EAAE,YAAY,EAAE,YAAY,EAA0E,MAAM,oBAAoB,CAAC;AACxI,0EAA0E;AAC1E,mEAAmE;AACnE,qEAAqE;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAQ/D,OAAO,EAAE,cAAc,EAA0H,MAAM,sBAAsB,CAAC;AAC9K,OAAO,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC3F,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,eAAe,EAAE,kBAAkB,EAAyB,MAAM,uBAAuB,CAAC;AACvI,OAAO,EACL,qBAAqB,EACrB,4BAA4B,GAK7B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAiD,MAAM,oBAAoB,CAAC;AACjG,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAItF,OAAO,EACL,aAAa,GAId,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,uBAAuB,GAKxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,YAAY,EAA4B,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,6EAA6E;AAC7E,4EAA4E;AAC5E,iEAAiE;AACjE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAExE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACtE,8EAA8E;AAC9E,gFAAgF;AAChF,0EAA0E;AAC1E,+EAA+E;AAC/E,uBAAuB;AACvB,8EAA8E;AAC9E,+EAA+E;AAC/E,iEAAiE;AACjE,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAuB,MAAM,eAAe,CAAC;AAC5F,gFAAgF;AAChF,OAAO,EAAE,UAAU,EAAE,SAAS,EAA4C,MAAM,gBAAgB,CAAC;AAEjG,OAAO,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAE7E,OAAO,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;AAC7E,0EAA0E;AAC1E,yEAAyE;AACzE,0EAA0E;AAC1E,OAAO,EAAE,qBAAqB,EAA8B,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACzH,6EAA6E;AAC7E,8EAA8E;AAC9E,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,kBAAkB,GAGnB,MAAM,sBAAsB,CAAC;AAC9B,4EAA4E;AAC5E,4EAA4E;AAC5E,6DAA6D;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,8GAA8G;AAC9G,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAEvE,OAAO,EAAE,iBAAiB,EAAoB,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { MapConversion, ProjectedCRS } from '@ifc-lite/parser';
|
|
2
|
+
/** Coordinate compatibility adaptations are explicitly opt-in. */
|
|
3
|
+
export interface StepCoordinateNormalizationOptions {
|
|
4
|
+
/** Normalize emitted IfcProjectedCRS map units to metres, preserving the
|
|
5
|
+
* complete map transformation and all project geometry/units. Default false.
|
|
6
|
+
* Unsupported or ambiguous units/operations are preserved with warnings.
|
|
7
|
+
* Requires a full export to the source STEP schema (not deltaOnly).
|
|
8
|
+
*/
|
|
9
|
+
normalizeMapUnitsToMetres?: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Canonical Rust compatibility export, requiring exportAsync and a metre
|
|
12
|
+
* MapUnit. Uniform map rotation/scale moves into logical placements and
|
|
13
|
+
* mapped Body geometry; project/property units remain authored. Unsupported
|
|
14
|
+
* coordinate consumers produce atomic warnings; upload must refuse these.
|
|
15
|
+
* Default: preserve. Requires full geometry in the unchanged source schema.
|
|
16
|
+
*/
|
|
17
|
+
normalizeMapGeometry?: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Write recognized EVRS2007 or EGM2008 IfcProjectedCRS.VerticalDatum names
|
|
20
|
+
* as 'EPSG:3855' (EGM2008 height), the geoid Cesium ion applies. Explicit
|
|
21
|
+
* EPSG codes, ellipsoidal names and unrecognized datum text are preserved;
|
|
22
|
+
* heights are never rewritten. Default false. Requires a full export to
|
|
23
|
+
* the source schema.
|
|
24
|
+
*/
|
|
25
|
+
normalizeVerticalDatumToEgm2008?: boolean;
|
|
26
|
+
}
|
|
27
|
+
/** Authored coordinate-system edits applied before compatibility phases. */
|
|
28
|
+
export interface StepGeoreferencingOptions {
|
|
29
|
+
/** Georeferencing mutations to apply (IfcProjectedCRS / IfcMapConversion edits) */
|
|
30
|
+
georefMutations?: {
|
|
31
|
+
projectedCRS?: Partial<ProjectedCRS>;
|
|
32
|
+
mapConversion?: Partial<MapConversion>;
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=step-coordinate-options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step-coordinate-options.d.ts","sourceRoot":"","sources":["../src/step-coordinate-options.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEpE,kEAAkE;AAClE,MAAM,WAAW,kCAAkC;IACjD;;;;OAIG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC;;;;;;OAMG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;;;OAMG;IACH,+BAA+B,CAAC,EAAE,OAAO,CAAC;CAC3C;AAED,4EAA4E;AAC5E,MAAM,WAAW,yBAAyB;IACxC,mFAAmF;IACnF,eAAe,CAAC,EAAE;QAChB,YAAY,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;QACrC,aAAa,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;KACxC,CAAC;CACH"}
|
|
@@ -0,0 +1,5 @@
|
|
|
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 {};
|
|
5
|
+
//# sourceMappingURL=step-coordinate-options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step-coordinate-options.js","sourceRoot":"","sources":["../src/step-coordinate-options.ts"],"names":[],"mappings":"AAAA;;+DAE+D"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { StepExportOptions, StepExportProgress } from './step-export-types.js';
|
|
2
|
+
/** Preserve the async export's progress callbacks and cancellation boundaries. */
|
|
3
|
+
export declare function reportStepExportProgress(report: StepExportOptions['onProgress'], phase: StepExportProgress['phase'], percent: number, total: number): Promise<void>;
|
|
4
|
+
//# sourceMappingURL=step-export-progress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step-export-progress.d.ts","sourceRoot":"","sources":["../src/step-export-progress.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEpF,kFAAkF;AAClF,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,iBAAiB,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,kBAAkB,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAC1G,OAAO,CAAC,IAAI,CAAC,CAGf"}
|
|
@@ -0,0 +1,9 @@
|
|
|
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
|
+
/** Preserve the async export's progress callbacks and cancellation boundaries. */
|
|
5
|
+
export async function reportStepExportProgress(report, phase, percent, total) {
|
|
6
|
+
report?.({ phase, percent, entitiesProcessed: phase === 'assembling' ? total : 0, entitiesTotal: total });
|
|
7
|
+
await new Promise(resolve => setTimeout(resolve, 0));
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=step-export-progress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step-export-progress.js","sourceRoot":"","sources":["../src/step-export-progress.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAI/D,kFAAkF;AAClF,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,MAAuC,EAAE,KAAkC,EAAE,OAAe,EAAE,KAAa;IAE3G,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,KAAK,KAAK,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1G,MAAM,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7D,CAAC"}
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* -- because the re-export exists to avoid churning callers, not as a channel
|
|
15
15
|
* anything new should be routed through.
|
|
16
16
|
*/
|
|
17
|
-
import type { IfcAttributeValue, IfcSourceHeader
|
|
17
|
+
import type { IfcAttributeValue, IfcSourceHeader } from '@ifc-lite/parser';
|
|
18
18
|
import type { PropertySet, QuantitySet } from '@ifc-lite/data';
|
|
19
19
|
import type { RandomSource } from '@ifc-lite/encoding';
|
|
20
20
|
import type { IfcSchemaVersion } from './schema-converter.js';
|
|
@@ -24,8 +24,10 @@ import type { createSourceRefReader } from './source-ref-bounds.js';
|
|
|
24
24
|
import type { Ifc2x3SlotFill } from './schema-converter-ifc2x3-slots.js';
|
|
25
25
|
import type { Ifc4SlotCheck } from './schema-converter-ifc4-slots.js';
|
|
26
26
|
import type { EnumReconciliation } from './schema-converter-enums.js';
|
|
27
|
+
import type { StepCoordinateNormalizationOptions, StepGeoreferencingOptions } from './step-coordinate-options.js';
|
|
28
|
+
import type { TypeQuantitySource } from './step-type-owned-quantities.js';
|
|
27
29
|
/** Options for STEP export */
|
|
28
|
-
export interface StepExportOptions {
|
|
30
|
+
export interface StepExportOptions extends StepCoordinateNormalizationOptions, StepGeoreferencingOptions {
|
|
29
31
|
/** IFC schema version for the output file (any version, will convert if needed) */
|
|
30
32
|
schema: 'IFC2X3' | 'IFC4' | 'IFC4X3' | 'IFC5';
|
|
31
33
|
/** File description */
|
|
@@ -88,11 +90,6 @@ export interface StepExportOptions {
|
|
|
88
90
|
* to KEEP georeferencing and addresses: dropping them anyway left an
|
|
89
91
|
* `IfcSite.SiteAddress` pointing at a line that was never written (#3351). */
|
|
90
92
|
subsetIdentifyingTypes?: ReadonlySet<string>;
|
|
91
|
-
/** Georeferencing mutations to apply (IfcProjectedCRS / IfcMapConversion edits) */
|
|
92
|
-
georefMutations?: {
|
|
93
|
-
projectedCRS?: Partial<ProjectedCRS>;
|
|
94
|
-
mapConversion?: Partial<MapConversion>;
|
|
95
|
-
};
|
|
96
93
|
/**
|
|
97
94
|
* Seeded randomness for the GlobalIds this exporter SYNTHESIZES:
|
|
98
95
|
* the `IfcPropertySet` / `IfcElementQuantity` roots regenerated for
|
|
@@ -336,7 +333,10 @@ export interface ExportPass {
|
|
|
336
333
|
readonly newQuantitySets: Array<{
|
|
337
334
|
entityId: number;
|
|
338
335
|
qsets: QuantitySet[];
|
|
336
|
+
sourceSets?: readonly (TypeQuantitySource | undefined)[];
|
|
339
337
|
}>;
|
|
338
|
+
readonly typeOwnedQuantityIdsByEntity: Map<number, Map<number, number | null>>;
|
|
339
|
+
readonly addedTypeOwnedQuantityIds: Map<number, number[]>;
|
|
340
340
|
readonly typeOwnedPsetNamesByEntity: Map<number, Set<string>>;
|
|
341
341
|
readonly typeOwnedPsetIdsByEntity: Map<number, number[]>;
|
|
342
342
|
readonly rewrittenEntityIds: Set<number>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-export-types.d.ts","sourceRoot":"","sources":["../src/step-export-types.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"step-export-types.d.ts","sourceRoot":"","sources":["../src/step-export-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-export-types.js","sourceRoot":"","sources":["../src/step-export-types.ts"],"names":[],"mappings":"AAAA;;+DAE+D;
|
|
1
|
+
{"version":3,"file":"step-export-types.js","sourceRoot":"","sources":["../src/step-export-types.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAgM/D;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,SAAiB,EAAE,IAAY,EAAU,EAAE,CACrF,iBAAiB,SAAS,KAAK,IAAI,0SAA0S,CAAC;AAEhV;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,SAAiB,EAAE,IAAY,EAAU,EAAE,CACpF,WAAW,SAAS,KAAK,IAAI,wNAAwN,CAAC;AAExP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC,SAAiB,EAAE,IAAY,EAAU,EAAE,CAC7F,WAAW,SAAS,KAAK,IAAI,gSAAgS,CAAC"}
|
package/dist/step-exporter.d.ts
CHANGED
|
@@ -44,6 +44,7 @@ export declare class StepExporter {
|
|
|
44
44
|
* Export to STEP format
|
|
45
45
|
*/
|
|
46
46
|
export(options: StepExportOptions): StepExportResult;
|
|
47
|
+
private preparePass;
|
|
47
48
|
/**
|
|
48
49
|
* Async export that yields to the event loop periodically, keeping the
|
|
49
50
|
* UI responsive during large exports. Calls onProgress with live stats.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-exporter.d.ts","sourceRoot":"","sources":["../src/step-exporter.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAmB,MAAM,kBAAkB,CAAC;AAEtE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"step-exporter.d.ts","sourceRoot":"","sources":["../src/step-exporter.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAmB,MAAM,kBAAkB,CAAC;AAEtE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAqB/D;;;;;GAKG;AACH,YAAY,EACV,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,UAAU,GACX,MAAM,wBAAwB,CAAC;AAIhC,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAc,MAAM,wBAAwB,CAAC;AAU9F;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,eAAe,CAAyB;IAChD;;;;;;;;OAQG;IACH,OAAO,CAAC,YAAY,CAAsE;IAC1F;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB,CAA2C;gBAE1D,SAAS,EAAE,YAAY,EAAE,YAAY,CAAC,EAAE,mBAAmB;IAYvE;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,gBAAgB;IAQpD,OAAO,CAAC,WAAW;IA0JnB;;;OAGG;IACG,WAAW,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAmBxE;;OAEG;IACH,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,GAAG,gBAAgB;IAQ3F;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAMxB;;;;;;;;;OASG;IACH,OAAO,CAAC,aAAa;IASrB;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,kBAAkB;IAa1B;;;;;;;OAOG;IACH,OAAO,CAAC,iBAAiB;CAW1B;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,SAAS,EAAE,YAAY,EACvB,OAAO,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,GACnC,MAAM,CAeR"}
|
package/dist/step-exporter.js
CHANGED
|
@@ -11,6 +11,9 @@ import { writeOverlayCreatedEntities } from './step-overlay-entities.js';
|
|
|
11
11
|
import { generatePropertyAndQuantitySetEntities } from './step-property-sets.js';
|
|
12
12
|
import { resolveFallbackOwnerHistoryRef, } from './step-property-set-readers.js';
|
|
13
13
|
import { collectModifications } from './step-collection.js';
|
|
14
|
+
import { normalizeCoordinateMetadata } from './step-map-unit-normalization.js';
|
|
15
|
+
import { normalizeMapGeometry } from './step-map-transform.js';
|
|
16
|
+
import { reportStepExportProgress } from './step-export-progress.js';
|
|
14
17
|
import { assembleExportResult } from './step-header.js';
|
|
15
18
|
import { applySourceLineMutations } from './step-attribute-mutations.js';
|
|
16
19
|
import { buildExportPass } from './step-pass-builder.js';
|
|
@@ -57,6 +60,13 @@ export class StepExporter {
|
|
|
57
60
|
* Export to STEP format
|
|
58
61
|
*/
|
|
59
62
|
export(options) {
|
|
63
|
+
if (options.normalizeMapGeometry) {
|
|
64
|
+
throw new Error('Map geometry normalization requires exportAsync().');
|
|
65
|
+
}
|
|
66
|
+
const prepared = this.preparePass(options);
|
|
67
|
+
return 'result' in prepared ? prepared.result : assembleExportResult(prepared.pass);
|
|
68
|
+
}
|
|
69
|
+
preparePass(options) {
|
|
60
70
|
// Both owner-history caches are per-EXPORT, not per-exporter: they now
|
|
61
71
|
// depend on `willBeEmitted`, which depends on this call's options. Reusing
|
|
62
72
|
// one exporter for a `visibleOnly` export and then a full one would
|
|
@@ -130,6 +140,13 @@ export class StepExporter {
|
|
|
130
140
|
// edits — everything `pass` needs before the omission predicates below,
|
|
131
141
|
// and before the output passes that consume them, can run (#2475, the
|
|
132
142
|
// collection block).
|
|
143
|
+
const notFullSourceExport = options.deltaOnly || converting || (schema !== 'IFC4' && schema !== 'IFC4X3');
|
|
144
|
+
if (notFullSourceExport && (options.normalizeMapUnitsToMetres || options.normalizeVerticalDatumToEgm2008)) {
|
|
145
|
+
throw new Error('Map-unit and vertical datum normalization require a full export to the source IFC4 or IFC4X3 schema.');
|
|
146
|
+
}
|
|
147
|
+
if (options.normalizeMapGeometry && (notFullSourceExport || excludeGeometry)) {
|
|
148
|
+
throw new Error('Map geometry normalization requires a full geometry export to the source IFC4 or IFC4X3 schema.');
|
|
149
|
+
}
|
|
133
150
|
collectModifications(pass, options, applyMutations, this.collectionContext());
|
|
134
151
|
// Which ids this export may still NAME, now that the collection phase has
|
|
135
152
|
// decided which ids it is WRITING (#2475). Must stay here, between those
|
|
@@ -138,7 +155,7 @@ export class StepExporter {
|
|
|
138
155
|
const omission = evaluateOmissionPredicates(pass, options, applyMutations, excludeGeometry, this.mutationView);
|
|
139
156
|
// A deltaOnly export with nothing to say is already finished.
|
|
140
157
|
if (omission.kind === 'short-circuit')
|
|
141
|
-
return omission.result;
|
|
158
|
+
return { result: omission.result };
|
|
142
159
|
const { isOmittedFromOutput, mayNameOmittedRefs } = omission;
|
|
143
160
|
// The owner history an IFC2X3 downgrade reuses for `$` OwnerHistory slots
|
|
144
161
|
// (#4686): the same surviving one the generated property sets fall back to.
|
|
@@ -164,30 +181,26 @@ export class StepExporter {
|
|
|
164
181
|
// Add overlay-created entities (store.addEntity / mutationView.createEntity),
|
|
165
182
|
// applying the same filters as the source-iteration pass (#2475 step 2e).
|
|
166
183
|
writeOverlayCreatedEntities(pass, options, excludeGeometry, applyMutations, mayNameOmittedRefs, isOmittedFromOutput, buildOverlayEntitiesContext(this.mutationView));
|
|
167
|
-
//
|
|
168
|
-
|
|
169
|
-
return
|
|
184
|
+
// Complete map metadata adaptation before optional Rust planning and assembly.
|
|
185
|
+
normalizeCoordinateMetadata(pass, options, () => this.nextExpressId++);
|
|
186
|
+
return { pass };
|
|
170
187
|
}
|
|
171
188
|
/**
|
|
172
189
|
* Async export that yields to the event loop periodically, keeping the
|
|
173
190
|
* UI responsive during large exports. Calls onProgress with live stats.
|
|
174
191
|
*/
|
|
175
192
|
async exportAsync(options) {
|
|
176
|
-
const onProgress = options.onProgress;
|
|
177
|
-
// Report preparing phase
|
|
178
193
|
const totalEntities = getCompleteEntityIndex(this.dataStore).size;
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
if (
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
const result =
|
|
188
|
-
|
|
189
|
-
onProgress({ phase: 'assembling', percent: 0.95, entitiesProcessed: totalEntities, entitiesTotal: totalEntities });
|
|
190
|
-
await new Promise(r => setTimeout(r, 0));
|
|
194
|
+
await reportStepExportProgress(options.onProgress, 'preparing', 0, totalEntities);
|
|
195
|
+
// Sync and async share the mutation-resolved pass. Optional Rust domain
|
|
196
|
+
// planning happens before the shared ledger/header assembly.
|
|
197
|
+
await reportStepExportProgress(options.onProgress, 'entities', 0.1, totalEntities);
|
|
198
|
+
const prepared = this.preparePass(options);
|
|
199
|
+
if ('pass' in prepared && options.normalizeMapGeometry) {
|
|
200
|
+
await normalizeMapGeometry(prepared.pass, id => { this.nextExpressId = Math.max(this.nextExpressId, id + 1); });
|
|
201
|
+
}
|
|
202
|
+
const result = 'result' in prepared ? prepared.result : assembleExportResult(prepared.pass);
|
|
203
|
+
await reportStepExportProgress(options.onProgress, 'assembling', 0.95, totalEntities);
|
|
191
204
|
return result;
|
|
192
205
|
}
|
|
193
206
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-exporter.js","sourceRoot":"","sources":["../src/step-exporter.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"step-exporter.js","sourceRoot":"","sources":["../src/step-exporter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ExportPass } from './step-export-types.js';
|
|
2
|
+
/** Mutation-resolved final-pass seam. Rust owns all coordinate math and IFC
|
|
3
|
+
* semantic preflight; TypeScript applies complete patches and settles the same
|
|
4
|
+
* per-entity ledger as the other export phases (#6587).
|
|
5
|
+
*/
|
|
6
|
+
export declare function normalizeMapGeometry(pass: ExportPass, reserveId: (id: number) => void): Promise<void>;
|
|
7
|
+
//# sourceMappingURL=step-map-transform.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step-map-transform.d.ts","sourceRoot":"","sources":["../src/step-map-transform.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAKzD;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAmD3G"}
|
|
@@ -0,0 +1,89 @@
|
|
|
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 { assembleStepBytes } from './step-file-assembly.js';
|
|
5
|
+
import { readStepSlots } from './step-argument-parser.js';
|
|
6
|
+
/** Mutation-resolved final-pass seam. Rust owns all coordinate math and IFC
|
|
7
|
+
* semantic preflight; TypeScript applies complete patches and settles the same
|
|
8
|
+
* per-entity ledger as the other export phases (#6587).
|
|
9
|
+
*/
|
|
10
|
+
export async function normalizeMapGeometry(pass, reserveId) {
|
|
11
|
+
// Ordinary STEP export remains usable without a WASM runtime installed.
|
|
12
|
+
const { GeometryProcessor } = await import('@ifc-lite/geometry');
|
|
13
|
+
const processor = new GeometryProcessor();
|
|
14
|
+
let plan;
|
|
15
|
+
try {
|
|
16
|
+
await processor.init();
|
|
17
|
+
const content = assembleStepBytes(pass.buildHeader(0), pass.entities);
|
|
18
|
+
plan = readPlan(processor.planMapConversionNormalization(content));
|
|
19
|
+
}
|
|
20
|
+
finally {
|
|
21
|
+
processor.dispose();
|
|
22
|
+
}
|
|
23
|
+
if (plan.warnings.length) {
|
|
24
|
+
if (plan.replacements.length || plan.newEntities.length)
|
|
25
|
+
throw new Error('Non-atomic map normalization plan.');
|
|
26
|
+
pass.warnings.push(...plan.warnings);
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
// Validate the entire patch set before changing an output line. A binding
|
|
30
|
+
// mismatch must not produce a partly normalized model or overwrite an ID.
|
|
31
|
+
const indexes = new Map();
|
|
32
|
+
for (let index = 0; index < pass.entities.length; index++) {
|
|
33
|
+
const id = entityId(pass.entities[index]);
|
|
34
|
+
if (id !== undefined) {
|
|
35
|
+
if (indexes.has(id))
|
|
36
|
+
throw new Error('Duplicate entity in normalization input.');
|
|
37
|
+
indexes.set(id, index);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
const used = new Set();
|
|
41
|
+
for (const patch of [...plan.replacements, ...plan.newEntities]) {
|
|
42
|
+
if (used.has(patch.expressId))
|
|
43
|
+
throw new Error('Duplicate map normalization patch.');
|
|
44
|
+
used.add(patch.expressId);
|
|
45
|
+
}
|
|
46
|
+
if (plan.replacements.some(patch => !indexes.has(patch.expressId))
|
|
47
|
+
|| plan.newEntities.some(patch => indexes.has(patch.expressId))) {
|
|
48
|
+
throw new Error('Map normalization patch IDs do not match the completed export pass.');
|
|
49
|
+
}
|
|
50
|
+
for (const patch of plan.replacements) {
|
|
51
|
+
// All IDs were validated above; preserve full lines/edits from this pass.
|
|
52
|
+
const index = indexes.get(patch.expressId);
|
|
53
|
+
if (index === undefined)
|
|
54
|
+
throw new Error('Map normalization replacement is absent.');
|
|
55
|
+
pass.entities[index] = patch.line;
|
|
56
|
+
if (!pass.effective.isOverlayCreated(patch.expressId) && pass.effective.has(patch.expressId)) {
|
|
57
|
+
pass.modifications.nominate(patch.expressId, 'positional');
|
|
58
|
+
pass.modifications.recordEmitted(patch.expressId, 'positional');
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
for (const patch of plan.newEntities) {
|
|
62
|
+
pass.entities.push(patch.line);
|
|
63
|
+
reserveId(patch.expressId);
|
|
64
|
+
}
|
|
65
|
+
pass.newEntityCount += plan.newEntities.length;
|
|
66
|
+
}
|
|
67
|
+
function entityId(line) {
|
|
68
|
+
const token = /^\s*#([0-9]+)/.exec(line)?.[1];
|
|
69
|
+
return token === undefined ? undefined : Number(token);
|
|
70
|
+
}
|
|
71
|
+
function readPlan(serialized) {
|
|
72
|
+
const value = JSON.parse(serialized);
|
|
73
|
+
if (typeof value !== 'object' || value === null || !('replacements' in value) || !('newEntities' in value)
|
|
74
|
+
|| !('warnings' in value) || !isPatches(value.replacements) || !isPatches(value.newEntities)
|
|
75
|
+
|| !Array.isArray(value.warnings) || !value.warnings.every((warning) => typeof warning === 'string')) {
|
|
76
|
+
throw new Error('Invalid canonical map normalization plan.');
|
|
77
|
+
}
|
|
78
|
+
return { replacements: value.replacements, newEntities: value.newEntities, warnings: value.warnings };
|
|
79
|
+
}
|
|
80
|
+
function isPatches(value) {
|
|
81
|
+
return Array.isArray(value) && value.every((patch) => {
|
|
82
|
+
if (typeof patch !== 'object' || patch === null || !('expressId' in patch) || !('line' in patch)
|
|
83
|
+
|| typeof patch.expressId !== 'number' || !Number.isSafeInteger(patch.expressId)
|
|
84
|
+
|| patch.expressId <= 0 || patch.expressId > 0xffff_ffff || typeof patch.line !== 'string')
|
|
85
|
+
return false;
|
|
86
|
+
return entityId(patch.line) === patch.expressId && readStepSlots(patch.line) !== null;
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=step-map-transform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step-map-transform.js","sourceRoot":"","sources":["../src/step-map-transform.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ExportPass } from './step-export-types.js';
|
|
2
|
+
import type { StepCoordinateNormalizationOptions } from './step-coordinate-options.js';
|
|
3
|
+
/** Opt-in coordinate metadata phases on the emitted model, before Rust planning. */
|
|
4
|
+
export declare function normalizeCoordinateMetadata(pass: ExportPass, options: StepCoordinateNormalizationOptions, allocateId: () => number): void;
|
|
5
|
+
//# sourceMappingURL=step-map-unit-normalization.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step-map-unit-normalization.d.ts","sourceRoot":"","sources":["../src/step-map-unit-normalization.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,8BAA8B,CAAC;AAUvF,oFAAoF;AACpF,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,kCAAkC,EAAE,UAAU,EAAE,MAAM,MAAM,GAAG,IAAI,CAGzI"}
|