@ifc-lite/geometry 4.0.1 → 4.2.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.
Files changed (53) hide show
  1. package/README.md +6 -3
  2. package/dist/diagnostics.d.ts +42 -3
  3. package/dist/diagnostics.d.ts.map +1 -1
  4. package/dist/diagnostics.js +37 -8
  5. package/dist/diagnostics.js.map +1 -1
  6. package/dist/energy-export-bridge.d.ts +35 -0
  7. package/dist/energy-export-bridge.d.ts.map +1 -0
  8. package/dist/energy-export-bridge.js +31 -0
  9. package/dist/energy-export-bridge.js.map +1 -0
  10. package/dist/geometry-coordinate.d.ts.map +1 -1
  11. package/dist/geometry-coordinate.js +11 -0
  12. package/dist/geometry-coordinate.js.map +1 -1
  13. package/dist/geometry-parallel.d.ts +2 -1
  14. package/dist/geometry-parallel.d.ts.map +1 -1
  15. package/dist/geometry-parallel.js +29 -85
  16. package/dist/geometry-parallel.js.map +1 -1
  17. package/dist/geometry.worker.d.ts +7 -0
  18. package/dist/geometry.worker.d.ts.map +1 -1
  19. package/dist/geometry.worker.js +6 -5
  20. package/dist/geometry.worker.js.map +1 -1
  21. package/dist/hbjson-stats.d.ts +28 -0
  22. package/dist/hbjson-stats.d.ts.map +1 -0
  23. package/dist/hbjson-stats.js +5 -0
  24. package/dist/hbjson-stats.js.map +1 -0
  25. package/dist/ifc-lite-bridge.d.ts +11 -14
  26. package/dist/ifc-lite-bridge.d.ts.map +1 -1
  27. package/dist/ifc-lite-bridge.js +12 -16
  28. package/dist/ifc-lite-bridge.js.map +1 -1
  29. package/dist/index.d.ts +23 -20
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +56 -63
  32. package/dist/index.js.map +1 -1
  33. package/dist/packed-instanced-decoder.d.ts +20 -3
  34. package/dist/packed-instanced-decoder.d.ts.map +1 -1
  35. package/dist/packed-instanced-decoder.js +122 -17
  36. package/dist/packed-instanced-decoder.js.map +1 -1
  37. package/dist/shard-stitch.d.ts +110 -0
  38. package/dist/shard-stitch.d.ts.map +1 -0
  39. package/dist/shard-stitch.js +112 -0
  40. package/dist/shard-stitch.js.map +1 -0
  41. package/dist/symbolic-types.d.ts +89 -0
  42. package/dist/symbolic-types.d.ts.map +1 -0
  43. package/dist/symbolic-types.js +5 -0
  44. package/dist/symbolic-types.js.map +1 -0
  45. package/dist/types.d.ts +15 -77
  46. package/dist/types.d.ts.map +1 -1
  47. package/dist/types.js +7 -1
  48. package/dist/types.js.map +1 -1
  49. package/dist/wasm-asset-error.d.ts +17 -0
  50. package/dist/wasm-asset-error.d.ts.map +1 -1
  51. package/dist/wasm-asset-error.js +32 -0
  52. package/dist/wasm-asset-error.js.map +1 -1
  53. package/package.json +4 -4
@@ -0,0 +1,112 @@
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
+ /**
5
+ * SPIKE: stitch N speculative shard scans into the full entity index —
6
+ * byte-identical to the single-threaded scan. Port of the native
7
+ * `parallel_scan::stitch`: shard 0 is authoritative (header-aware start); for
8
+ * shard i>0 the previous shard's validated `handoff` is a real entity start, so
9
+ * binary-search shard i's `starts` for it and drop the speculative prefix before
10
+ * it. Concatenates the validated slices in shard order (= file order), so
11
+ * last-wins on a duplicate id is preserved when the worker rebuilds its map.
12
+ *
13
+ * Returns null on the rare "handoff not found" case (speculative overshoot / a
14
+ * record spanning a whole shard), which needs the serial-rescan fallback the JS
15
+ * spike doesn't implement — the caller falls back to the pre-pass's own index.
16
+ */
17
+ export function stitchShards(shards) {
18
+ const n = shards.length;
19
+ // Phase 1 — locate each shard's validated slice (binary-search the previous
20
+ // shard's handoff) WITHOUT copying, so the output size is exact before any
21
+ // allocation. Exactness matters: the id/start/length columns are allocated
22
+ // SAB-backed below and handed to every worker as full-buffer views, so a
23
+ // cap-sized buffer would let consumers read past the last real record.
24
+ const sliceFrom = new Array(n).fill(0);
25
+ let used = 1;
26
+ let w = shards[0].ids.length; // shard 0 is authoritative, take every record
27
+ // Shard 0 started at the header-skip boundary, so every refusal it made is
28
+ // one a serial scan makes too. Later shards are attributed in the loop.
29
+ let oversizedIdCount = shards[0].oversizedIdStarts.length;
30
+ // Same authority argument as the refusals above: shard 0 starts at the
31
+ // header-skip boundary, so a stop it reports is one a serial scan makes too.
32
+ let malformedStopped = shards[0].malformedStart !== undefined;
33
+ let expectedStart = shards[0].handoff; // -1 => no more real entities
34
+ for (let i = 1; i < n; i++) {
35
+ // -1 means the previous shard hit EOF: every later shard is speculative
36
+ // end to end, so its records AND its refusals are dropped by breaking.
37
+ if (expectedStart < 0)
38
+ break;
39
+ // starts is strictly increasing → binary-search for expectedStart.
40
+ const starts = shards[i].starts;
41
+ let lo = 0;
42
+ let hi = starts.length - 1;
43
+ let p = -1;
44
+ while (lo <= hi) {
45
+ const mid = (lo + hi) >>> 1;
46
+ const v = starts[mid];
47
+ if (v === expectedStart) {
48
+ p = mid;
49
+ break;
50
+ }
51
+ if (v < expectedStart)
52
+ lo = mid + 1;
53
+ else
54
+ hi = mid - 1;
55
+ }
56
+ if (p < 0) {
57
+ // Handoff not present in this shard — fallback path (not implemented here).
58
+ return null;
59
+ }
60
+ sliceFrom[i] = p;
61
+ w += starts.length - p;
62
+ // Refusals are cut at the SAME boundary as the records: scanner positions
63
+ // only advance, so everything below `expectedStart` came from the
64
+ // speculative prefix just dropped, and everything from it on is what a
65
+ // serial scan over those bytes produces.
66
+ const refusals = shards[i].oversizedIdStarts;
67
+ for (let k = 0; k < refusals.length; k++) {
68
+ if (refusals[k] >= expectedStart)
69
+ oversizedIdCount++;
70
+ }
71
+ // Cut at the SAME boundary, for the same reason: a stop below
72
+ // `expectedStart` was produced by the speculative prefix just dropped, so
73
+ // it describes bytes this stitch is not taking from this shard.
74
+ const stop = shards[i].malformedStart;
75
+ if (stop !== undefined && stop >= expectedStart)
76
+ malformedStopped = true;
77
+ expectedStart = shards[i].handoff;
78
+ used = i + 1;
79
+ }
80
+ // Phase 2 — single concatenation copy, straight into SharedArrayBuffer-backed
81
+ // columns. The stitched index used to be copied THREE times per column on the
82
+ // main thread (cap-array stitch → `.slice()` to contiguous → `.set()` into
83
+ // fresh SABs in deliverEntityIndex); writing the stitch output into SABs
84
+ // directly makes index delivery zero-copy (~450 MB of critical-path memcpy
85
+ // saved on a 19M-entity file). `classes` stays plain: its only consumer past
86
+ // the span-extraction loop is the pre-pass worker, which takes it by transfer.
87
+ const sabAvailable = typeof SharedArrayBuffer !== 'undefined';
88
+ const u32Column = (len) => new Uint32Array(sabAvailable ? new SharedArrayBuffer(len * 4) : new ArrayBuffer(len * 4));
89
+ const outIds = u32Column(w);
90
+ const outStarts = u32Column(w);
91
+ const outLengths = u32Column(w);
92
+ const outClasses = new Uint8Array(w);
93
+ let o = 0;
94
+ for (let i = 0; i < used; i++) {
95
+ const s = shards[i];
96
+ const p = sliceFrom[i];
97
+ outIds.set(p === 0 ? s.ids : s.ids.subarray(p), o);
98
+ outStarts.set(p === 0 ? s.starts : s.starts.subarray(p), o);
99
+ outLengths.set(p === 0 ? s.lengths : s.lengths.subarray(p), o);
100
+ outClasses.set(p === 0 ? s.classes : s.classes.subarray(p), o);
101
+ o += s.ids.length - p;
102
+ }
103
+ return {
104
+ ids: outIds,
105
+ starts: outStarts,
106
+ lengths: outLengths,
107
+ classes: outClasses,
108
+ oversizedIdCount,
109
+ malformedRecordCount: malformedStopped ? 1 : undefined,
110
+ };
111
+ }
112
+ //# sourceMappingURL=shard-stitch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shard-stitch.js","sourceRoot":"","sources":["../src/shard-stitch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * The symbolic-representation type family, split out of `types.ts` (#3199).
3
+ *
4
+ * Moved rather than trimmed: `types.ts` sat EXACTLY at its module-size budget,
5
+ * and the TS allowlist is explicit that budgets ratchet DOWN by default -- a
6
+ * raise is sanctioned but deliberate, and wants a per-file justification in the
7
+ * PR, which a split does not. This family is self-contained -- nothing
8
+ * imports it from `types.ts`, and the names the package root exposes come from
9
+ * `ifc-lite-bridge.ts` -- so it is the natural seam. `types.ts` re-exports it,
10
+ * so the public surface is unchanged.
11
+ */
12
+ /**
13
+ * Representation identifier types for symbolic representations
14
+ */
15
+ export type SymbolicRepIdentifier = 'Plan' | 'Annotation' | 'FootPrint' | 'Axis';
16
+ /**
17
+ * A 2D polyline from symbolic representations
18
+ * Used for door swings, window cuts, equipment symbols, etc.
19
+ */
20
+ export interface SymbolicPolyline {
21
+ /** Express ID of the parent IFC element */
22
+ expressId: number;
23
+ /** IFC type name (e.g., "IfcDoor", "IfcWindow") */
24
+ ifcType: string;
25
+ /** 2D points as Float32Array [x1, y1, x2, y2, ...] */
26
+ points: Float32Array;
27
+ /** Number of points in the polyline */
28
+ pointCount: number;
29
+ /** Whether this is a closed loop */
30
+ isClosed: boolean;
31
+ /** Representation identifier ("Plan", "Annotation", etc.) */
32
+ repIdentifier: string;
33
+ }
34
+ /**
35
+ * A 2D circle or arc from symbolic representations
36
+ */
37
+ export interface SymbolicCircle {
38
+ /** Express ID of the parent IFC element */
39
+ expressId: number;
40
+ /** IFC type name */
41
+ ifcType: string;
42
+ /** Center X coordinate */
43
+ centerX: number;
44
+ /** Center Y coordinate */
45
+ centerY: number;
46
+ /** Radius */
47
+ radius: number;
48
+ /** Start angle in radians (0 for full circle) */
49
+ startAngle: number;
50
+ /** End angle in radians (2π for full circle) */
51
+ endAngle: number;
52
+ /** Whether this is a full circle */
53
+ isFullCircle: boolean;
54
+ /** Representation identifier */
55
+ repIdentifier: string;
56
+ }
57
+ /**
58
+ * Collection of symbolic representations from an IFC model
59
+ * These are pre-authored 2D representations for architectural drawings
60
+ */
61
+ export interface SymbolicRepresentationCollection {
62
+ /** Number of polylines */
63
+ polylineCount: number;
64
+ /** Number of circles/arcs */
65
+ circleCount: number;
66
+ /** Total count of all symbolic items */
67
+ totalCount: number;
68
+ /** Check if collection is empty */
69
+ isEmpty: boolean;
70
+ /** Get polyline at index */
71
+ getPolyline(index: number): SymbolicPolyline | undefined;
72
+ /** Get circle at index */
73
+ getCircle(index: number): SymbolicCircle | undefined;
74
+ /** Get all express IDs that have symbolic representations */
75
+ getExpressIds(): Uint32Array;
76
+ }
77
+ /**
78
+ * Converted symbolic data for use in drawing generation
79
+ * Organized by express ID for easy lookup
80
+ */
81
+ export interface SymbolicDataByEntity {
82
+ /** Map from expressId to polylines for that entity */
83
+ polylines: Map<number, SymbolicPolyline[]>;
84
+ /** Map from expressId to circles for that entity */
85
+ circles: Map<number, SymbolicCircle[]>;
86
+ /** Set of express IDs that have symbolic representations */
87
+ expressIds: Set<number>;
88
+ }
89
+ //# sourceMappingURL=symbolic-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"symbolic-types.d.ts","sourceRoot":"","sources":["../src/symbolic-types.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AAEH;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,YAAY,GAAG,WAAW,GAAG,MAAM,CAAC;AAEjF;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,MAAM,EAAE,YAAY,CAAC;IACrB,uCAAuC;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,oCAAoC;IACpC,QAAQ,EAAE,OAAO,CAAC;IAClB,6DAA6D;IAC7D,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,0BAA0B;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,0BAA0B;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa;IACb,MAAM,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,UAAU,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,YAAY,EAAE,OAAO,CAAC;IACtB,gCAAgC;IAChC,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,gCAAgC;IAC/C,0BAA0B;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,6BAA6B;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,mCAAmC;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,4BAA4B;IAC5B,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAAC;IACzD,0BAA0B;IAC1B,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC;IACrD,6DAA6D;IAC7D,aAAa,IAAI,WAAW,CAAC;CAC9B;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,sDAAsD;IACtD,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAC3C,oDAAoD;IACpD,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;IACvC,4DAA4D;IAC5D,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACzB"}
@@ -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=symbolic-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"symbolic-types.js","sourceRoot":"","sources":["../src/symbolic-types.ts"],"names":[],"mappings":"AAAA;;+DAE+D"}
package/dist/types.d.ts CHANGED
@@ -48,6 +48,20 @@ export interface MeshData {
48
48
  * for every vertex, so picking/selection resolves to the correct individual
49
49
  * entity even though many entities share a single GPU batch. */
50
50
  entityIds?: Uint32Array;
51
+ /** The `IfcRepresentationItem` this mesh came from, so a host can drill from
52
+ * a rendered piece to its entity (#2985). ALWAYS a representation item;
53
+ * `materialId` carries the other case and the two are NEVER both set.
54
+ * Absent where identity is merged away (single-mesh fallback, cached
55
+ * `IfcMappedItem`, GPU instancing) (#3199). */
56
+ geometryItemId?: number;
57
+ /** The `IfcMaterial` layer this mesh slices. DISJOINT from `geometryItemId`,
58
+ * which used to carry it — so following that field for a layered wall landed
59
+ * on the wrong entity. `geometryClass === 3` cannot substitute (#3199).
60
+ * Same id space as `expressId`: a federated viewer session re-homes it
61
+ * alongside `expressId` and `geometryItemId` (`applyFederationOffsetToMesh`
62
+ * in `apps/viewer/src/hooks/useIfcLoader.ts`), so a value read off this
63
+ * field is always safe to resolve the same way as `expressId` (#3525). */
64
+ materialId?: number;
51
65
  /** Per-vertex texture coordinates (u, v pairs, 1:1 with positions), present
52
66
  * only for textured meshes (issue #961). */
53
67
  uvs?: Float32Array;
@@ -351,81 +365,5 @@ export interface GeometryResult {
351
365
  */
352
366
  instancedGeometryVolumes?: Map<number, number>;
353
367
  }
354
- /**
355
- * Representation identifier types for symbolic representations
356
- */
357
- export type SymbolicRepIdentifier = 'Plan' | 'Annotation' | 'FootPrint' | 'Axis';
358
- /**
359
- * A 2D polyline from symbolic representations
360
- * Used for door swings, window cuts, equipment symbols, etc.
361
- */
362
- export interface SymbolicPolyline {
363
- /** Express ID of the parent IFC element */
364
- expressId: number;
365
- /** IFC type name (e.g., "IfcDoor", "IfcWindow") */
366
- ifcType: string;
367
- /** 2D points as Float32Array [x1, y1, x2, y2, ...] */
368
- points: Float32Array;
369
- /** Number of points in the polyline */
370
- pointCount: number;
371
- /** Whether this is a closed loop */
372
- isClosed: boolean;
373
- /** Representation identifier ("Plan", "Annotation", etc.) */
374
- repIdentifier: string;
375
- }
376
- /**
377
- * A 2D circle or arc from symbolic representations
378
- */
379
- export interface SymbolicCircle {
380
- /** Express ID of the parent IFC element */
381
- expressId: number;
382
- /** IFC type name */
383
- ifcType: string;
384
- /** Center X coordinate */
385
- centerX: number;
386
- /** Center Y coordinate */
387
- centerY: number;
388
- /** Radius */
389
- radius: number;
390
- /** Start angle in radians (0 for full circle) */
391
- startAngle: number;
392
- /** End angle in radians (2π for full circle) */
393
- endAngle: number;
394
- /** Whether this is a full circle */
395
- isFullCircle: boolean;
396
- /** Representation identifier */
397
- repIdentifier: string;
398
- }
399
- /**
400
- * Collection of symbolic representations from an IFC model
401
- * These are pre-authored 2D representations for architectural drawings
402
- */
403
- export interface SymbolicRepresentationCollection {
404
- /** Number of polylines */
405
- polylineCount: number;
406
- /** Number of circles/arcs */
407
- circleCount: number;
408
- /** Total count of all symbolic items */
409
- totalCount: number;
410
- /** Check if collection is empty */
411
- isEmpty: boolean;
412
- /** Get polyline at index */
413
- getPolyline(index: number): SymbolicPolyline | undefined;
414
- /** Get circle at index */
415
- getCircle(index: number): SymbolicCircle | undefined;
416
- /** Get all express IDs that have symbolic representations */
417
- getExpressIds(): Uint32Array;
418
- }
419
- /**
420
- * Converted symbolic data for use in drawing generation
421
- * Organized by express ID for easy lookup
422
- */
423
- export interface SymbolicDataByEntity {
424
- /** Map from expressId to polylines for that entity */
425
- polylines: Map<number, SymbolicPolyline[]>;
426
- /** Map from expressId to circles for that entity */
427
- circles: Map<number, SymbolicCircle[]>;
428
- /** Set of express IDs that have symbolic representations */
429
- expressIds: Set<number>;
430
- }
368
+ export * from './symbolic-types.js';
431
369
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js CHANGED
@@ -1,5 +1,11 @@
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
- export {};
4
+ // ═══════════════════════════════════════════════════════════════════════════
5
+ // SYMBOLIC REPRESENTATION TYPES
6
+ // For Plan, Annotation, FootPrint representations (2D curves for drawings)
7
+ // ═══════════════════════════════════════════════════════════════════════════
8
+ // The symbolic-representation family lives in its own module (#3199); re-exported
9
+ // here so every existing `from './types.js'` import keeps working unchanged.
10
+ export * from './symbolic-types.js';
5
11
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;+DAE+D"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAuX/D,8EAA8E;AAC9E,gCAAgC;AAChC,2EAA2E;AAC3E,8EAA8E;AAE9E,kFAAkF;AAClF,6EAA6E;AAC7E,cAAc,qBAAqB,CAAC"}
@@ -58,6 +58,23 @@ export type WasmAssetUnavailableKind = 'wasm-asset' | 'worker-script';
58
58
  * loop without fixing them.
59
59
  */
60
60
  export declare function isWasmAssetUnavailableError(err: unknown): boolean;
61
+ /**
62
+ * True when `err`'s message is the worker-script version-skew signature
63
+ * synthesized by `geometry-parallel.ts`'s pre-pass or process-worker `onerror`
64
+ * handlers (`Pre-pass worker failed: worker script failed to load (possibly a
65
+ * stale deployment)` / `Geometry worker failed: …` — same suffix). This is a
66
+ * DIFFERENT (and deliberately narrower) test than
67
+ * {@link isWasmAssetUnavailableError}: that one matches the wasm-binary
68
+ * MIME/404 signature (#1363) and is used both to trigger a reload from an
69
+ * arbitrary unclassified error AND, by a host, to decide whether an already-
70
+ * recovered exception is safe to drop from error tracking. The worker-script
71
+ * variant never carries a wasm/MIME/status token (see the messageless
72
+ * `ErrorEvent` this wraps), so `isWasmAssetUnavailableError` structurally
73
+ * cannot see it; this function exists so a host-side classifier that only has
74
+ * the final message text (not the `kind` on the `WASM_ASSET_UNAVAILABLE_EVENT`
75
+ * detail) can still recognize the same recovered condition.
76
+ */
77
+ export declare function isWorkerScriptSkewMessage(err: unknown): boolean;
61
78
  /**
62
79
  * If `err` is the version-skew signature, broadcast
63
80
  * {@link WASM_ASSET_UNAVAILABLE_EVENT} on `globalThis` so an opted-in host can
@@ -1 +1 @@
1
- {"version":3,"file":"wasm-asset-error.d.ts","sourceRoot":"","sources":["../src/wasm-asset-error.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,mCAAmC,CAAC;AAE7E;;;;;;;;;GASG;AACH,MAAM,MAAM,wBAAwB,GAAG,YAAY,GAAG,eAAe,CAAC;AAYtE;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAmCjE;AAaD;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAIlE;AAkBD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,+BAA+B,CAC7C,GAAG,EAAE,OAAO,EACZ,kBAAkB,EAAE,OAAO,GAC1B,OAAO,CAiBT"}
1
+ {"version":3,"file":"wasm-asset-error.d.ts","sourceRoot":"","sources":["../src/wasm-asset-error.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,mCAAmC,CAAC;AAE7E;;;;;;;;;GASG;AACH,MAAM,MAAM,wBAAwB,GAAG,YAAY,GAAG,eAAe,CAAC;AAYtE;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAmCjE;AAgBD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAE/D;AAaD;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAIlE;AAkBD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,+BAA+B,CAC7C,GAAG,EAAE,OAAO,EACZ,kBAAkB,EAAE,OAAO,GAC1B,OAAO,CAiBT"}
@@ -89,6 +89,38 @@ export function isWasmAssetUnavailableError(err) {
89
89
  }
90
90
  return false;
91
91
  }
92
+ // The literal detail text `geometry-parallel.ts`'s worker `onerror` handlers
93
+ // (pre-pass AND the process-worker pool — both wrap it as `Pre-pass worker
94
+ // failed: ${detail}` / `Geometry worker failed: ${detail}`) synthesize ONLY
95
+ // when the worker never posted a message and the ErrorEvent itself carried no
96
+ // `.message`/`.filename` — i.e. exactly the condition under which
97
+ // `notifyIfWorkerScriptUnavailable` below dispatches
98
+ // `WASM_ASSET_UNAVAILABLE_EVENT` with `kind: 'worker-script'` and the host
99
+ // reloads. It carries none of the wasm/MIME/status-code tokens
100
+ // `isWasmAssetUnavailableError` looks for, so a caller that re-derives
101
+ // classification from the message text alone (rather than trusting the
102
+ // `kind` the library already assigned) misses it entirely — see
103
+ // `isWorkerScriptSkewMessage` below.
104
+ const WORKER_SCRIPT_SKEW_SIGNATURE = 'worker script failed to load (possibly a stale deployment)';
105
+ /**
106
+ * True when `err`'s message is the worker-script version-skew signature
107
+ * synthesized by `geometry-parallel.ts`'s pre-pass or process-worker `onerror`
108
+ * handlers (`Pre-pass worker failed: worker script failed to load (possibly a
109
+ * stale deployment)` / `Geometry worker failed: …` — same suffix). This is a
110
+ * DIFFERENT (and deliberately narrower) test than
111
+ * {@link isWasmAssetUnavailableError}: that one matches the wasm-binary
112
+ * MIME/404 signature (#1363) and is used both to trigger a reload from an
113
+ * arbitrary unclassified error AND, by a host, to decide whether an already-
114
+ * recovered exception is safe to drop from error tracking. The worker-script
115
+ * variant never carries a wasm/MIME/status token (see the messageless
116
+ * `ErrorEvent` this wraps), so `isWasmAssetUnavailableError` structurally
117
+ * cannot see it; this function exists so a host-side classifier that only has
118
+ * the final message text (not the `kind` on the `WASM_ASSET_UNAVAILABLE_EVENT`
119
+ * detail) can still recognize the same recovered condition.
120
+ */
121
+ export function isWorkerScriptSkewMessage(err) {
122
+ return messageOf(err).includes(WORKER_SCRIPT_SKEW_SIGNATURE);
123
+ }
92
124
  function domDispatcher() {
93
125
  const g = globalThis;
94
126
  return typeof g.dispatchEvent === 'function' && typeof g.CustomEvent === 'function'
@@ -1 +1 @@
1
- {"version":3,"file":"wasm-asset-error.js","sourceRoot":"","sources":["../src/wasm-asset-error.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wasm-asset-error.js","sourceRoot":"","sources":["../src/wasm-asset-error.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": "4.0.1",
3
+ "version": "4.2.0",
4
4
  "description": "Geometry processing bridge for IFC-Lite - exact-arithmetic CSG, streamed across workers",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -18,8 +18,8 @@
18
18
  }
19
19
  },
20
20
  "dependencies": {
21
- "@ifc-lite/data": "^3.4.1",
22
- "@ifc-lite/wasm": "^6.0.1"
21
+ "@ifc-lite/data": "^4.0.0",
22
+ "@ifc-lite/wasm": "^6.2.0"
23
23
  },
24
24
  "optionalDependencies": {
25
25
  "@tauri-apps/api": "^2.11.1"
@@ -27,7 +27,7 @@
27
27
  "devDependencies": {
28
28
  "@tauri-apps/api": "^2.11.1",
29
29
  "typescript": "^6.0.3",
30
- "vitest": "^4.1.10"
30
+ "vitest": "^4.1.11"
31
31
  },
32
32
  "license": "MPL-2.0",
33
33
  "author": "Louis True",