@bldrs-ai/conway 1.419.1268 → 1.422.1273
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/compiled/examples/browser-bundled.cjs +1 -1
- package/compiled/examples/cli-bundled.cjs +1 -1
- package/compiled/examples/cli-step-bundled.cjs +1 -1
- package/compiled/examples/validator-bundled.cjs +1 -1
- package/compiled/src/compat/web-ifc/ifc_api.d.ts +41 -0
- package/compiled/src/compat/web-ifc/ifc_api.d.ts.map +1 -1
- package/compiled/src/compat/web-ifc/ifc_api.js +64 -1
- package/compiled/src/compat/web-ifc/ifc_api_deferred_open.test.d.ts +2 -0
- package/compiled/src/compat/web-ifc/ifc_api_deferred_open.test.d.ts.map +1 -0
- package/compiled/src/compat/web-ifc/ifc_api_deferred_open.test.js +88 -0
- package/compiled/src/compat/web-ifc/ifc_api_model_passthrough.d.ts +8 -0
- package/compiled/src/compat/web-ifc/ifc_api_model_passthrough.d.ts.map +1 -1
- package/compiled/src/compat/web-ifc/ifc_api_model_passthrough_factory.d.ts.map +1 -1
- package/compiled/src/compat/web-ifc/ifc_api_model_passthrough_factory.js +3 -1
- package/compiled/src/compat/web-ifc/ifc_api_proxy_ifc.d.ts +61 -0
- package/compiled/src/compat/web-ifc/ifc_api_proxy_ifc.d.ts.map +1 -1
- package/compiled/src/compat/web-ifc/ifc_api_proxy_ifc.js +210 -1
- package/compiled/src/compat/web-ifc/web_wasm_directory.test.d.ts +2 -0
- package/compiled/src/compat/web-ifc/web_wasm_directory.test.d.ts.map +1 -0
- package/compiled/src/compat/web-ifc/web_wasm_directory.test.js +22 -0
- package/compiled/src/index.d.ts +1 -1
- package/compiled/src/index.d.ts.map +1 -1
- package/compiled/src/index.js +1 -1
- package/compiled/src/version/version.js +1 -1
- package/compiled/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -39,6 +39,10 @@ export class IfcApiProxyIfc {
|
|
|
39
39
|
this.wasmModule = wasmModule;
|
|
40
40
|
this.settings = settings;
|
|
41
41
|
this.fs = undefined;
|
|
42
|
+
/** Was this model opened without extraction (DEFER_GEOMETRY)? */
|
|
43
|
+
this.deferredMode_ = false;
|
|
44
|
+
/** Cursor into demandProducts_ — products before it are extracted. */
|
|
45
|
+
this.demandCursor_ = 0;
|
|
42
46
|
this._isCoordinated = false;
|
|
43
47
|
this.linearScalingFactor = 1;
|
|
44
48
|
this.identity = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];
|
|
@@ -57,6 +61,8 @@ export class IfcApiProxyIfc {
|
|
|
57
61
|
const loadState = precomputed ??
|
|
58
62
|
IfcApiProxyIfc.parseAndExtract(modelID, data, new ConwayGeometry(wasmModule), settings);
|
|
59
63
|
this.conwaywasm = loadState.conwaywasm;
|
|
64
|
+
this.conwayGeometry_ = loadState.conwayGeometry;
|
|
65
|
+
this.deferredMode_ = loadState.deferred === true;
|
|
60
66
|
const statistics = Logger.getStatistics(modelID);
|
|
61
67
|
const { allTimeStart, stepHeader, model, scene, conwayGeometry, geometryTimeInMs: executionTimeInMs, } = loadState;
|
|
62
68
|
// get linear scaling factor
|
|
@@ -195,6 +201,26 @@ export class IfcApiProxyIfc {
|
|
|
195
201
|
const loadState = await IfcApiProxyIfc.parseColumnarAndExtractAsync(modelID, data, new ConwayGeometry(wasmModule), settings);
|
|
196
202
|
return new IfcApiProxyIfc(modelID, data, wasmModule, settings, loadState);
|
|
197
203
|
}
|
|
204
|
+
/**
|
|
205
|
+
* Deferred-geometry streamed open (conway extension; slice A of
|
|
206
|
+
* Share's demand/tiled rendering — design doc
|
|
207
|
+
* demand-tiled-rendering.md): identical streamed columnar parse, but
|
|
208
|
+
* NO geometry extraction happens at open. The proxy registers with an
|
|
209
|
+
* empty scene wired to the demand-extraction seam; callers then pump
|
|
210
|
+
* {@link extractGeometryBatch} to extract products in file-order
|
|
211
|
+
* batches, receiving each batch's meshes incrementally — the scene,
|
|
212
|
+
* properties, and spatial structure work from the first batch.
|
|
213
|
+
*
|
|
214
|
+
* @param modelID The model ID being opened.
|
|
215
|
+
* @param data The IFC data buffer.
|
|
216
|
+
* @param wasmModule The wasm module.
|
|
217
|
+
* @param settings Loader settings (ON_PROGRESS is honored for parse).
|
|
218
|
+
* @return {Promise<IfcApiProxyIfc>} The constructed proxy.
|
|
219
|
+
*/
|
|
220
|
+
static async createDeferred(modelID, data, wasmModule, settings) {
|
|
221
|
+
const loadState = await IfcApiProxyIfc.parseColumnarAndExtractAsync(modelID, data, new ConwayGeometry(wasmModule), settings, true);
|
|
222
|
+
return new IfcApiProxyIfc(modelID, data, wasmModule, settings, loadState);
|
|
223
|
+
}
|
|
198
224
|
/**
|
|
199
225
|
* Log + record the header parse result on the model statistics.
|
|
200
226
|
*
|
|
@@ -393,7 +419,7 @@ export class IfcApiProxyIfc {
|
|
|
393
419
|
* @param settings Loader settings (ON_PROGRESS is honored).
|
|
394
420
|
* @return {Promise<IfcProxyLoadState>} Everything the constructor tail needs.
|
|
395
421
|
*/
|
|
396
|
-
static async parseColumnarAndExtractAsync(modelID, data, conwaywasm, settings) {
|
|
422
|
+
static async parseColumnarAndExtractAsync(modelID, data, conwaywasm, settings, deferGeometry = false) {
|
|
397
423
|
const tracker = IfcApiProxyIfc.makeTracker(settings);
|
|
398
424
|
const allTimeStart = Date.now();
|
|
399
425
|
const parser = IfcStepParser.Instance;
|
|
@@ -424,6 +450,24 @@ export class IfcApiProxyIfc {
|
|
|
424
450
|
const model = new IfcStepModel(data, columns);
|
|
425
451
|
statistics?.setParseTime(parseEndTime - parseStartTime);
|
|
426
452
|
const conwayGeometry = new IfcGeometryExtraction(conwaywasm, model);
|
|
453
|
+
// Deferred mode (createDeferred): no extraction now — prime the
|
|
454
|
+
// per-product demand seam and hand back the (empty) live scene the
|
|
455
|
+
// batch pump populates. `scene` is the same object streamAllMeshes
|
|
456
|
+
// walks, so meshes appear to consumers as batches extract.
|
|
457
|
+
if (deferGeometry) {
|
|
458
|
+
conwayGeometry.prepareDemandExtraction();
|
|
459
|
+
statistics?.setProductCount(model.typeCount(IfcProduct));
|
|
460
|
+
return {
|
|
461
|
+
conwaywasm,
|
|
462
|
+
deferred: true,
|
|
463
|
+
allTimeStart,
|
|
464
|
+
stepHeader,
|
|
465
|
+
model,
|
|
466
|
+
scene: conwayGeometry.scene,
|
|
467
|
+
conwayGeometry,
|
|
468
|
+
geometryTimeInMs: 0,
|
|
469
|
+
};
|
|
470
|
+
}
|
|
427
471
|
tracker?.beginPhase("geometry", "products");
|
|
428
472
|
const geometryTick = tracker !== void 0 ?
|
|
429
473
|
(completed, total) => {
|
|
@@ -913,6 +957,171 @@ export class IfcApiProxyIfc {
|
|
|
913
957
|
closeModel() {
|
|
914
958
|
// Null operation.
|
|
915
959
|
}
|
|
960
|
+
/**
|
|
961
|
+
* Deferred-mode batch pump (conway extension; Share demand/tiled
|
|
962
|
+
* rendering slice A): extract the next `batchSize` products (file
|
|
963
|
+
* order) through the per-product demand seam and emit THIS BATCH's
|
|
964
|
+
* meshes through `meshCallback` — the incremental twin of
|
|
965
|
+
* streamAllMeshes. Placed-geometry math (coordination, scaling,
|
|
966
|
+
* centering) is identical; the shared meshMap is updated so
|
|
967
|
+
* getFlatMesh keeps working. Call repeatedly until `remaining` is 0.
|
|
968
|
+
*
|
|
969
|
+
* Requires a model opened with deferred geometry
|
|
970
|
+
* (`OpenModelStreamed(data, {..., DEFER_GEOMETRY: true})`); on a
|
|
971
|
+
* fully-extracted model this is a no-op returning remaining 0.
|
|
972
|
+
*
|
|
973
|
+
* @param batchSize Max products to extract this call (min 1).
|
|
974
|
+
* @param meshCallback Receives each newly-extracted product's mesh.
|
|
975
|
+
* @return {object} `{extracted, remaining}` — products processed this
|
|
976
|
+
* call and products still pending.
|
|
977
|
+
*/
|
|
978
|
+
extractGeometryBatch(batchSize, meshCallback) {
|
|
979
|
+
// Fully-extracted opens have nothing to pump — re-running the
|
|
980
|
+
// per-product extraction on them would duplicate scene work.
|
|
981
|
+
if (!this.deferredMode_) {
|
|
982
|
+
return { extracted: 0, remaining: 0 };
|
|
983
|
+
}
|
|
984
|
+
if (this.demandProducts_ === void 0) {
|
|
985
|
+
const products = [];
|
|
986
|
+
for (const product of this.model[0].types(IfcProduct)) {
|
|
987
|
+
products.push(product.localID);
|
|
988
|
+
}
|
|
989
|
+
this.demandProducts_ = products;
|
|
990
|
+
this.demandCursor_ = 0;
|
|
991
|
+
}
|
|
992
|
+
const end = Math.min(this.demandCursor_ + Math.max(batchSize, 1), this.demandProducts_.length);
|
|
993
|
+
const batch = new Set();
|
|
994
|
+
for (; this.demandCursor_ < end; ++this.demandCursor_) {
|
|
995
|
+
const localID = this.demandProducts_[this.demandCursor_];
|
|
996
|
+
if (this.conwayGeometry_.extractProductGeometryByLocalID(localID)) {
|
|
997
|
+
batch.add(localID);
|
|
998
|
+
}
|
|
999
|
+
}
|
|
1000
|
+
if (meshCallback !== void 0 && batch.size > 0) {
|
|
1001
|
+
this.streamMeshesForEntities_(batch, meshCallback);
|
|
1002
|
+
}
|
|
1003
|
+
return {
|
|
1004
|
+
extracted: batch.size,
|
|
1005
|
+
remaining: this.demandProducts_.length - this.demandCursor_,
|
|
1006
|
+
};
|
|
1007
|
+
}
|
|
1008
|
+
/**
|
|
1009
|
+
* Walk the scene and emit FlatMeshes for the given entities only —
|
|
1010
|
+
* the filtered core of streamAllMeshes with identical placed-geometry
|
|
1011
|
+
* math. Also fixes a latent multi-call bug: the derived coordination
|
|
1012
|
+
* matrix is stored back to the model tuple, so later batches place
|
|
1013
|
+
* with the SAME coordination the first batch established
|
|
1014
|
+
* (streamAllMeshes never needed this — it runs once).
|
|
1015
|
+
*
|
|
1016
|
+
* @param entityFilter Entity localIDs whose meshes to emit.
|
|
1017
|
+
* @param meshCallback Receives one FlatMesh per matched entity.
|
|
1018
|
+
*/
|
|
1019
|
+
streamMeshesForEntities_(entityFilter, meshCallback) {
|
|
1020
|
+
const [model, scene, meshMap, geometryMaterialTransformMap] = this.model;
|
|
1021
|
+
let coordinationMatrix = this.model[5];
|
|
1022
|
+
const emitted = new Set();
|
|
1023
|
+
// eslint-disable-next-line no-unused-vars
|
|
1024
|
+
for (const [_, nativeTransform, geometry, material, entity] of scene.walk()) {
|
|
1025
|
+
if (entity?.localID === void 0 || !entityFilter.has(entity.localID) ||
|
|
1026
|
+
entity.expressID === void 0) {
|
|
1027
|
+
continue;
|
|
1028
|
+
}
|
|
1029
|
+
if (geometry.type !== CanonicalMeshType.BUFFER_GEOMETRY || geometry.temporary) {
|
|
1030
|
+
continue;
|
|
1031
|
+
}
|
|
1032
|
+
const material_ = material ?? {
|
|
1033
|
+
name: "",
|
|
1034
|
+
// eslint-disable-next-line no-magic-numbers
|
|
1035
|
+
baseColor: [0.8, 0.8, 0.8, 1],
|
|
1036
|
+
// eslint-disable-next-line no-magic-numbers
|
|
1037
|
+
legacyColor: [0.8, 0.8, 0.8, 1],
|
|
1038
|
+
doubleSided: true,
|
|
1039
|
+
blend: 0,
|
|
1040
|
+
};
|
|
1041
|
+
let nativePt;
|
|
1042
|
+
if (!this._isCoordinated && this.settings?.COORDINATE_TO_ORIGIN) {
|
|
1043
|
+
nativePt = geometry.geometry.getPoint(0);
|
|
1044
|
+
}
|
|
1045
|
+
const geomCenter = glmatrix.vec3.create();
|
|
1046
|
+
const center = geometry.geometry.normalize();
|
|
1047
|
+
geomCenter[0] = center.x;
|
|
1048
|
+
geomCenter[1] = center.y;
|
|
1049
|
+
geomCenter[2] = center.z;
|
|
1050
|
+
const translationMatrixGeomMin = glmatrix.mat4.create();
|
|
1051
|
+
glmatrix.mat4.fromTranslation(translationMatrixGeomMin, geomCenter);
|
|
1052
|
+
const expressID = model.getElementByLocalID(geometry.localID)?.expressID;
|
|
1053
|
+
const geometryTransform = nativeTransform?.getValues();
|
|
1054
|
+
let newMatrix;
|
|
1055
|
+
if (geometryTransform !== void 0) {
|
|
1056
|
+
newMatrix = glmatrix.mat4.fromValues(...geometryTransform);
|
|
1057
|
+
}
|
|
1058
|
+
else {
|
|
1059
|
+
newMatrix = glmatrix.mat4.create();
|
|
1060
|
+
}
|
|
1061
|
+
if (!this._isCoordinated && this.settings?.COORDINATE_TO_ORIGIN) {
|
|
1062
|
+
const pt = [nativePt.x, nativePt.y, nativePt.z];
|
|
1063
|
+
const transformedPt = glmatrix.vec4.create();
|
|
1064
|
+
glmatrix.vec4.transformMat4(transformedPt, [pt[0], pt[1], pt[2], 1], newMatrix);
|
|
1065
|
+
coordinationMatrix = glmatrix.mat4.create();
|
|
1066
|
+
glmatrix.mat4.fromTranslation(coordinationMatrix, [-transformedPt[0], -transformedPt[1], -transformedPt[2]]);
|
|
1067
|
+
const scaleMatrix = glmatrix.mat4.create();
|
|
1068
|
+
const scaleVec = glmatrix.vec3.fromValues(this.linearScalingFactor, this.linearScalingFactor, this.linearScalingFactor);
|
|
1069
|
+
glmatrix.mat4.scale(scaleMatrix, scaleMatrix, scaleVec);
|
|
1070
|
+
glmatrix.mat4.multiply(coordinationMatrix, this.NormalizeMat, coordinationMatrix);
|
|
1071
|
+
glmatrix.mat4.multiply(coordinationMatrix, scaleMatrix, coordinationMatrix);
|
|
1072
|
+
// Persist for every later batch (and getCoordinationMatrix).
|
|
1073
|
+
this.model[5] = coordinationMatrix;
|
|
1074
|
+
this._isCoordinated = true;
|
|
1075
|
+
}
|
|
1076
|
+
const newTransform = glmatrix.mat4.create();
|
|
1077
|
+
const scaleMatrix = glmatrix.mat4.create();
|
|
1078
|
+
const scaleVec = glmatrix.vec3.fromValues(this.linearScalingFactor, this.linearScalingFactor, this.linearScalingFactor);
|
|
1079
|
+
glmatrix.mat4.scale(scaleMatrix, scaleMatrix, scaleVec);
|
|
1080
|
+
glmatrix.mat4.multiply(newTransform, coordinationMatrix, newMatrix);
|
|
1081
|
+
glmatrix.mat4.multiply(newTransform, newTransform, translationMatrixGeomMin);
|
|
1082
|
+
const newTransformArr = Array.from(newTransform);
|
|
1083
|
+
geometryMaterialTransformMap.set(expressID, [geometry.geometry, material_, newTransformArr]);
|
|
1084
|
+
const color = {
|
|
1085
|
+
x: material_.legacyColor[0],
|
|
1086
|
+
y: material_.legacyColor[1],
|
|
1087
|
+
z: material_.legacyColor[2],
|
|
1088
|
+
w: material_.legacyColor[3],
|
|
1089
|
+
};
|
|
1090
|
+
const placed = {
|
|
1091
|
+
color,
|
|
1092
|
+
geometryExpressID: expressID,
|
|
1093
|
+
flatTransformation: newTransformArr,
|
|
1094
|
+
};
|
|
1095
|
+
let mesh = meshMap.get(entity.expressID);
|
|
1096
|
+
if (mesh === void 0) {
|
|
1097
|
+
const placedArray = new Array();
|
|
1098
|
+
const placedVector = {
|
|
1099
|
+
get: (index) => placedArray[index] ?? placed,
|
|
1100
|
+
size: () => placedArray.length,
|
|
1101
|
+
push: (parameter) => {
|
|
1102
|
+
placedArray.push(parameter);
|
|
1103
|
+
},
|
|
1104
|
+
};
|
|
1105
|
+
const flatMesh = {
|
|
1106
|
+
geometries: placedVector,
|
|
1107
|
+
expressID: entity.expressID,
|
|
1108
|
+
};
|
|
1109
|
+
mesh = [placedVector, flatMesh];
|
|
1110
|
+
meshMap.set(entity.expressID, mesh);
|
|
1111
|
+
}
|
|
1112
|
+
mesh[0].push(placed);
|
|
1113
|
+
mesh[1].geometries = mesh[0];
|
|
1114
|
+
emitted.add(entity.expressID);
|
|
1115
|
+
}
|
|
1116
|
+
const vectorFlatMesh = this.model[4];
|
|
1117
|
+
for (const expressID of emitted) {
|
|
1118
|
+
const mesh = meshMap.get(expressID);
|
|
1119
|
+
if (mesh !== void 0) {
|
|
1120
|
+
vectorFlatMesh.push(mesh[1]);
|
|
1121
|
+
meshCallback(mesh[1]);
|
|
1122
|
+
}
|
|
1123
|
+
}
|
|
1124
|
+
}
|
|
916
1125
|
/**
|
|
917
1126
|
*
|
|
918
1127
|
* @param modelID
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web_wasm_directory.test.d.ts","sourceRoot":"","sources":["../../../../src/compat/web-ifc/web_wasm_directory.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// The wasm-directory normalization behind the isolated-context module
|
|
2
|
+
// prefix (Share #1610): embedder SetWasmPath values are site-root-
|
|
3
|
+
// relative by convention and must come out as absolute directories,
|
|
4
|
+
// since they become runtime dynamic-import prefixes whose resolution
|
|
5
|
+
// must not depend on the page or bundle URL (the pthread worker script
|
|
6
|
+
// URL derives from the imported module's import.meta.url).
|
|
7
|
+
import { describe, expect, test } from "@jest/globals";
|
|
8
|
+
import { webWasmDirectory } from "./ifc_api.js";
|
|
9
|
+
describe("webWasmDirectory", () => {
|
|
10
|
+
test("site-root-relative convention absolutizes", () => {
|
|
11
|
+
expect(webWasmDirectory("./static/js/")).toBe("/static/js/");
|
|
12
|
+
expect(webWasmDirectory("static/js/")).toBe("/static/js/");
|
|
13
|
+
});
|
|
14
|
+
test("absolute paths pass through with a trailing slash ensured", () => {
|
|
15
|
+
expect(webWasmDirectory("/static/js/")).toBe("/static/js/");
|
|
16
|
+
expect(webWasmDirectory("/wasm")).toBe("/wasm/");
|
|
17
|
+
});
|
|
18
|
+
test("missing input falls back to the conventional serve directory", () => {
|
|
19
|
+
expect(webWasmDirectory(undefined)).toBe("/static/js/");
|
|
20
|
+
expect(webWasmDirectory("")).toBe("/static/js/");
|
|
21
|
+
});
|
|
22
|
+
});
|
package/compiled/src/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { ParseResult } from "./step/parsing/step_parser.js";
|
|
2
2
|
export { IfcGeometryExtraction } from "./ifc/ifc_geometry_extraction.js";
|
|
3
3
|
export { IfcPropertyExtraction } from "./ifc/ifc_property_extraction.js";
|
|
4
|
-
export { ConwayGeometry, GeometryObject, FileHandlerFunction } from "../dependencies/conway-geom/index.js";
|
|
4
|
+
export { ConwayGeometry, GeometryObject, FileHandlerFunction, setModulePrefix, } from "../dependencies/conway-geom/index.js";
|
|
5
5
|
export { versionString } from "./version/version.js";
|
|
6
6
|
export { default as Logger, LogLevel, LogEntry, LoggingProxy, LogSink } from "./logging/logger.js";
|
|
7
7
|
export { product, shape_definition_representation } from "./AP214E3_2010/AP214E3_2010_gen/index.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AACrE,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AACrE,OAAO,EACL,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,eAAe,GAChB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEjD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAE/F,OAAO,EAAE,OAAO,EAAE,+BAA+B,EAAE,MAAM,iCAAiC,CAAA;AAC1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AACvD,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,eAAe,EACf,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,iBAAiB,EACjB,SAAS,EACT,QAAQ,EACR,eAAe,EACf,aAAa,EACb,UAAU,GACX,MAAM,qBAAqB,CAAA;AAU5B,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AACrG,OAAO,EACL,2BAA2B,EAC3B,gCAAgC,GACjC,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AACzE,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,0BAA0B,GAC3B,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,EACL,gCAAgC,EAChC,gCAAgC,EAChC,oBAAoB,EACpB,UAAU,GACX,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,yBAAyB,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAA;AACrG,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAA;AAC5E,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AACnG,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AACnG,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AACpF,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA"}
|
package/compiled/src/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { ParseResult } from "./step/parsing/step_parser.js";
|
|
2
2
|
export { IfcGeometryExtraction } from "./ifc/ifc_geometry_extraction.js";
|
|
3
3
|
export { IfcPropertyExtraction } from "./ifc/ifc_property_extraction.js";
|
|
4
|
-
export { ConwayGeometry } from "../dependencies/conway-geom/index.js";
|
|
4
|
+
export { ConwayGeometry, setModulePrefix, } from "../dependencies/conway-geom/index.js";
|
|
5
5
|
export { versionString } from "./version/version.js";
|
|
6
6
|
// Replace your current Logger export with this
|
|
7
7
|
export { default as Logger, LogLevel } from "./logging/logger.js";
|
|
@@ -5,5 +5,5 @@
|
|
|
5
5
|
// only the first segment (major) is meaningful and is the one CI carries forward.
|
|
6
6
|
// Must stay in `vN.N.N` shape: the CI stamp regex, scripts/updateVersion.mjs, and
|
|
7
7
|
// statistics.ts all match `v\d+\.\d+\.\d+`.
|
|
8
|
-
const versionString = 'Conway v1.
|
|
8
|
+
const versionString = 'Conway v1.422.1273';
|
|
9
9
|
export { versionString };
|