@ifc-lite/geometry 1.14.1 → 1.14.3
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.
|
@@ -29,11 +29,18 @@ export interface ParseMeshesInstancedAsyncOptions {
|
|
|
29
29
|
export declare class IfcLiteBridge {
|
|
30
30
|
private ifcApi;
|
|
31
31
|
private initialized;
|
|
32
|
+
private isWasmRuntimeError;
|
|
33
|
+
private markFatalWasmRuntimeError;
|
|
32
34
|
/**
|
|
33
35
|
* Initialize IFC-Lite WASM
|
|
34
36
|
* The WASM binary is automatically resolved from the same location as the JS module
|
|
35
37
|
*/
|
|
36
38
|
init(): Promise<void>;
|
|
39
|
+
/**
|
|
40
|
+
* Reset the JS wrapper state.
|
|
41
|
+
* This does not reload wasm-bindgen's module singleton after a fatal WASM panic.
|
|
42
|
+
*/
|
|
43
|
+
reset(): void;
|
|
37
44
|
/**
|
|
38
45
|
* Parse IFC content and return mesh collection (blocking)
|
|
39
46
|
* Returns individual meshes with express IDs and colors
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ifc-lite-bridge.d.ts","sourceRoot":"","sources":["../src/ifc-lite-bridge.ts"],"names":[],"mappings":"AAUA,OAAa,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,YAAY,EAAE,gCAAgC,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACxM,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,YAAY,EAAE,gCAAgC,EAAE,gBAAgB,EAAE,cAAc,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"ifc-lite-bridge.d.ts","sourceRoot":"","sources":["../src/ifc-lite-bridge.ts"],"names":[],"mappings":"AAUA,OAAa,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,YAAY,EAAE,gCAAgC,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACxM,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,YAAY,EAAE,gCAAgC,EAAE,gBAAgB,EAAE,cAAc,EAAE,CAAC;AAMzK,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,QAAQ,GAAG,iBAAiB,GAAG,SAAS,CAAC;CACjD;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,uBAAuB;IACtC,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACtE,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAC7C,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,KAAK,IAAI,CAAC;CAClF;AAED,MAAM,WAAW,gCAAgC;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,CAAC,UAAU,EAAE,iBAAiB,EAAE,EAAE,QAAQ,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACjF,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,IAAI,CAAC;CACvD;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,WAAW,CAAkB;IAErC,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,yBAAyB;IAKjC;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA2B3B;;;OAGG;IACH,KAAK,IAAI,IAAI;IAKb;;;OAGG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc;IAoB5C;;;;OAIG;IACH,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,uBAAuB;IAoB9D;;;;OAIG;IACG,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB7F;;;;;OAKG;IACG,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,gCAAqC,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB/G;;;OAGG;IACH,4BAA4B,CAAC,OAAO,EAAE,MAAM,GAAG,gCAAgC;IAoB/E;;OAEG;IACH,MAAM,IAAI,MAAM;IAOhB;;OAEG;IACH,aAAa,IAAI,OAAO;IAIxB;;OAEG;IACH,UAAU,IAAI,MAAM;CAGrB"}
|
package/dist/ifc-lite-bridge.js
CHANGED
|
@@ -8,9 +8,18 @@
|
|
|
8
8
|
import { createLogger } from '@ifc-lite/data';
|
|
9
9
|
import init, { IfcAPI } from '@ifc-lite/wasm';
|
|
10
10
|
const log = createLogger('Geometry');
|
|
11
|
+
const FATAL_WASM_RELOAD_REQUIRED_MESSAGE = 'IFC-Lite WASM cannot recover from a fatal runtime error within the same document lifetime. Reload the page or recreate the worker process before calling init() again.';
|
|
12
|
+
let fatalWasmRuntimeError = null;
|
|
11
13
|
export class IfcLiteBridge {
|
|
12
14
|
ifcApi = null;
|
|
13
15
|
initialized = false;
|
|
16
|
+
isWasmRuntimeError(error) {
|
|
17
|
+
return error instanceof WebAssembly.RuntimeError;
|
|
18
|
+
}
|
|
19
|
+
markFatalWasmRuntimeError() {
|
|
20
|
+
fatalWasmRuntimeError = new Error(FATAL_WASM_RELOAD_REQUIRED_MESSAGE);
|
|
21
|
+
this.reset();
|
|
22
|
+
}
|
|
14
23
|
/**
|
|
15
24
|
* Initialize IFC-Lite WASM
|
|
16
25
|
* The WASM binary is automatically resolved from the same location as the JS module
|
|
@@ -18,6 +27,9 @@ export class IfcLiteBridge {
|
|
|
18
27
|
async init() {
|
|
19
28
|
if (this.initialized)
|
|
20
29
|
return;
|
|
30
|
+
if (fatalWasmRuntimeError) {
|
|
31
|
+
throw fatalWasmRuntimeError;
|
|
32
|
+
}
|
|
21
33
|
try {
|
|
22
34
|
// Initialize WASM module - wasm-bindgen automatically resolves the WASM URL
|
|
23
35
|
// from import.meta.url, no need to manually construct paths
|
|
@@ -30,9 +42,23 @@ export class IfcLiteBridge {
|
|
|
30
42
|
log.error('Failed to initialize WASM geometry engine', error, {
|
|
31
43
|
operation: 'init',
|
|
32
44
|
});
|
|
45
|
+
if (this.isWasmRuntimeError(error)) {
|
|
46
|
+
this.markFatalWasmRuntimeError();
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
this.reset();
|
|
50
|
+
}
|
|
33
51
|
throw error;
|
|
34
52
|
}
|
|
35
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* Reset the JS wrapper state.
|
|
56
|
+
* This does not reload wasm-bindgen's module singleton after a fatal WASM panic.
|
|
57
|
+
*/
|
|
58
|
+
reset() {
|
|
59
|
+
this.initialized = false;
|
|
60
|
+
this.ifcApi = null;
|
|
61
|
+
}
|
|
36
62
|
/**
|
|
37
63
|
* Parse IFC content and return mesh collection (blocking)
|
|
38
64
|
* Returns individual meshes with express IDs and colors
|
|
@@ -51,6 +77,9 @@ export class IfcLiteBridge {
|
|
|
51
77
|
operation: 'parseMeshes',
|
|
52
78
|
data: { contentLength: content.length },
|
|
53
79
|
});
|
|
80
|
+
if (this.isWasmRuntimeError(error)) {
|
|
81
|
+
this.markFatalWasmRuntimeError();
|
|
82
|
+
}
|
|
54
83
|
throw error;
|
|
55
84
|
}
|
|
56
85
|
}
|
|
@@ -73,6 +102,9 @@ export class IfcLiteBridge {
|
|
|
73
102
|
operation: 'parseMeshesInstanced',
|
|
74
103
|
data: { contentLength: content.length },
|
|
75
104
|
});
|
|
105
|
+
if (this.isWasmRuntimeError(error)) {
|
|
106
|
+
this.markFatalWasmRuntimeError();
|
|
107
|
+
}
|
|
76
108
|
throw error;
|
|
77
109
|
}
|
|
78
110
|
}
|
|
@@ -93,6 +125,9 @@ export class IfcLiteBridge {
|
|
|
93
125
|
operation: 'parseMeshesAsync',
|
|
94
126
|
data: { contentLength: content.length },
|
|
95
127
|
});
|
|
128
|
+
if (this.isWasmRuntimeError(error)) {
|
|
129
|
+
this.markFatalWasmRuntimeError();
|
|
130
|
+
}
|
|
96
131
|
throw error;
|
|
97
132
|
}
|
|
98
133
|
}
|
|
@@ -114,6 +149,9 @@ export class IfcLiteBridge {
|
|
|
114
149
|
operation: 'parseMeshesInstancedAsync',
|
|
115
150
|
data: { contentLength: content.length },
|
|
116
151
|
});
|
|
152
|
+
if (this.isWasmRuntimeError(error)) {
|
|
153
|
+
this.markFatalWasmRuntimeError();
|
|
154
|
+
}
|
|
117
155
|
throw error;
|
|
118
156
|
}
|
|
119
157
|
}
|
|
@@ -135,6 +173,9 @@ export class IfcLiteBridge {
|
|
|
135
173
|
operation: 'parseSymbolicRepresentations',
|
|
136
174
|
data: { contentLength: content.length },
|
|
137
175
|
});
|
|
176
|
+
if (this.isWasmRuntimeError(error)) {
|
|
177
|
+
this.markFatalWasmRuntimeError();
|
|
178
|
+
}
|
|
138
179
|
throw error;
|
|
139
180
|
}
|
|
140
181
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ifc-lite-bridge.js","sourceRoot":"","sources":["../src/ifc-lite-bridge.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,IAAI,EAAE,EAAE,MAAM,EAA4J,MAAM,gBAAgB,CAAC;AAGxM,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"ifc-lite-bridge.js","sourceRoot":"","sources":["../src/ifc-lite-bridge.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ifc-lite/geometry",
|
|
3
|
-
"version": "1.14.
|
|
3
|
+
"version": "1.14.3",
|
|
4
4
|
"description": "Geometry processing bridge for IFC-Lite - 1.9x faster than web-ifc",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
}
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@ifc-lite/data": "^1.14.
|
|
16
|
-
"@ifc-lite/wasm": "^1.14.
|
|
15
|
+
"@ifc-lite/data": "^1.14.3",
|
|
16
|
+
"@ifc-lite/wasm": "^1.14.3"
|
|
17
17
|
},
|
|
18
18
|
"optionalDependencies": {
|
|
19
19
|
"@tauri-apps/api": "^2.0.0"
|