@ifc-lite/cache 3.1.0 → 3.3.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 (69) hide show
  1. package/README.md +63 -23
  2. package/dist/adapt.d.ts +72 -0
  3. package/dist/adapt.d.ts.map +1 -0
  4. package/dist/adapt.js +68 -0
  5. package/dist/adapt.js.map +1 -0
  6. package/dist/glb-color.d.ts +15 -0
  7. package/dist/glb-color.d.ts.map +1 -0
  8. package/dist/glb-color.js +18 -0
  9. package/dist/glb-color.js.map +1 -0
  10. package/dist/glb.d.ts.map +1 -1
  11. package/dist/glb.js +3 -3
  12. package/dist/glb.js.map +1 -1
  13. package/dist/index.d.ts +18 -5
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +17 -5
  16. package/dist/index.js.map +1 -1
  17. package/dist/reader.js +1 -1
  18. package/dist/reader.js.map +1 -1
  19. package/dist/sections/entity-index-columns.d.ts +4 -0
  20. package/dist/sections/entity-index-columns.d.ts.map +1 -0
  21. package/dist/sections/entity-index-columns.js +41 -0
  22. package/dist/sections/entity-index-columns.js.map +1 -0
  23. package/dist/sections/entity-index.d.ts.map +1 -1
  24. package/dist/sections/entity-index.js +17 -9
  25. package/dist/sections/entity-index.js.map +1 -1
  26. package/dist/sections/geometry-chunks.d.ts +2 -2
  27. package/dist/sections/geometry-chunks.d.ts.map +1 -1
  28. package/dist/sections/geometry-chunks.js +21 -22
  29. package/dist/sections/geometry-chunks.js.map +1 -1
  30. package/dist/sections/geometry-codec.d.ts +8 -0
  31. package/dist/sections/geometry-codec.d.ts.map +1 -0
  32. package/dist/sections/geometry-codec.js +19 -0
  33. package/dist/sections/geometry-codec.js.map +1 -0
  34. package/dist/sections/geometry.d.ts.map +1 -1
  35. package/dist/sections/geometry.js +49 -0
  36. package/dist/sections/geometry.js.map +1 -1
  37. package/dist/sections/properties.d.ts.map +1 -1
  38. package/dist/sections/properties.js +23 -26
  39. package/dist/sections/properties.js.map +1 -1
  40. package/dist/sections/quantities.d.ts.map +1 -1
  41. package/dist/sections/quantities.js +26 -25
  42. package/dist/sections/quantities.js.map +1 -1
  43. package/dist/sections/relationships.d.ts +25 -2
  44. package/dist/sections/relationships.d.ts.map +1 -1
  45. package/dist/sections/relationships.js +150 -16
  46. package/dist/sections/relationships.js.map +1 -1
  47. package/dist/types.d.ts +51 -2
  48. package/dist/types.d.ts.map +1 -1
  49. package/dist/types.js +37 -1
  50. package/dist/types.js.map +1 -1
  51. package/dist/workers/geometry-compression-client.d.ts +27 -0
  52. package/dist/workers/geometry-compression-client.d.ts.map +1 -0
  53. package/dist/workers/geometry-compression-client.js +84 -0
  54. package/dist/workers/geometry-compression-client.js.map +1 -0
  55. package/dist/workers/geometry-compression-handler.d.ts +4 -0
  56. package/dist/workers/geometry-compression-handler.d.ts.map +1 -0
  57. package/dist/workers/geometry-compression-handler.js +18 -0
  58. package/dist/workers/geometry-compression-handler.js.map +1 -0
  59. package/dist/workers/geometry-compression-protocol.d.ts +14 -0
  60. package/dist/workers/geometry-compression-protocol.d.ts.map +1 -0
  61. package/dist/workers/geometry-compression-protocol.js +10 -0
  62. package/dist/workers/geometry-compression-protocol.js.map +1 -0
  63. package/dist/workers/geometry-compression.worker.d.ts +2 -0
  64. package/dist/workers/geometry-compression.worker.d.ts.map +1 -0
  65. package/dist/workers/geometry-compression.worker.js +13 -0
  66. package/dist/workers/geometry-compression.worker.js.map +1 -0
  67. package/dist/writer.js +1 -1
  68. package/dist/writer.js.map +1 -1
  69. package/package.json +5 -4
@@ -1 +1 @@
1
- {"version":3,"file":"quantities.js","sourceRoot":"","sources":["../../src/sections/quantities.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quantities.js","sourceRoot":"","sources":["../../src/sections/quantities.ts"],"names":[],"mappings":"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"}
@@ -12,10 +12,33 @@ import { BufferWriter, BufferReader } from '../utils/buffer-utils.js';
12
12
  * - edgeTargets: Uint32Array[edgeCount]
13
13
  * - edgeTypes: Uint16Array[edgeCount]
14
14
  * - edgeRelIds: Uint32Array[edgeCount]
15
+ * - shadowedGroupCount: uint32 (v18+, #3782: edges collapsed from more
16
+ * than one IfcRel* instance — see RelationshipGraphBuilder.addEdge)
17
+ * - shadowedEdgeIndex: Uint32Array[shadowedGroupCount]
18
+ * - shadowedGroupOffsets: Uint32Array[shadowedGroupCount + 1]
19
+ * - shadowedIdCount: uint32
20
+ * - shadowedRelIds: Uint32Array[shadowedIdCount]
21
+ *
22
+ * A v17 reader stops after edgeRelIds — the trailing shadow section is new
23
+ * bytes it never asks for, and the section table's own size field bounds
24
+ * how far a stray future read could reach. A v18+ reader given a v17
25
+ * section (should one ever reach it — the cache LOOKUP key embeds
26
+ * FORMAT_VERSION, so normal load paths never do) must not attempt the
27
+ * shadow read at all; see the `version` parameter on `readRelationships`.
15
28
  */
16
29
  export declare function writeRelationships(writer: BufferWriter, graph: RelationshipGraph): void;
17
30
  /**
18
- * Read RelationshipGraph from buffer
31
+ * Read RelationshipGraph from buffer. `version` is the cache header's
32
+ * FORMAT_VERSION — v17 sections have no shadow-id trailer (see
33
+ * `writeEdges`'s doc comment); pass the header's actual version so a v17
34
+ * section isn't misread as a v18+ one.
35
+ *
36
+ * Required, not defaulted to `FORMAT_VERSION`: a forgotten argument would
37
+ * silently read every buffer as the CURRENT version, the unsafe direction —
38
+ * a real v17 blob would be misread as v18 and hit `validateShadowedColumns`
39
+ * on bytes that were never written as a trailer at all (#3782 round 3
40
+ * review). `reader.ts`'s only call site already threads `header.version`
41
+ * through.
19
42
  */
20
- export declare function readRelationships(reader: BufferReader): RelationshipGraph;
43
+ export declare function readRelationships(reader: BufferReader, version: number): RelationshipGraph;
21
44
  //# sourceMappingURL=relationships.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"relationships.d.ts","sourceRoot":"","sources":["../../src/sections/relationships.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAA0B,MAAM,gBAAgB,CAAC;AAEhF,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAEtE;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,iBAAiB,GAAG,IAAI,CAMvF;AAgCD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,iBAAiB,CA+BzE"}
1
+ {"version":3,"file":"relationships.d.ts","sourceRoot":"","sources":["../../src/sections/relationships.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAA0B,MAAM,gBAAgB,CAAC;AAEhF,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAEtE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,iBAAiB,GAAG,IAAI,CAMvF;AA+CD;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,GAAG,iBAAiB,CAqC1F"}
@@ -1,7 +1,7 @@
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
- import { RelationshipType } from '@ifc-lite/data';
4
+ import { RelationshipType, binarySearchU32 } from '@ifc-lite/data';
5
5
  /**
6
6
  * Write RelationshipGraph to buffer
7
7
  * Format (for each direction - forward and inverse):
@@ -11,6 +11,19 @@ import { RelationshipType } from '@ifc-lite/data';
11
11
  * - edgeTargets: Uint32Array[edgeCount]
12
12
  * - edgeTypes: Uint16Array[edgeCount]
13
13
  * - edgeRelIds: Uint32Array[edgeCount]
14
+ * - shadowedGroupCount: uint32 (v18+, #3782: edges collapsed from more
15
+ * than one IfcRel* instance — see RelationshipGraphBuilder.addEdge)
16
+ * - shadowedEdgeIndex: Uint32Array[shadowedGroupCount]
17
+ * - shadowedGroupOffsets: Uint32Array[shadowedGroupCount + 1]
18
+ * - shadowedIdCount: uint32
19
+ * - shadowedRelIds: Uint32Array[shadowedIdCount]
20
+ *
21
+ * A v17 reader stops after edgeRelIds — the trailing shadow section is new
22
+ * bytes it never asks for, and the section table's own size field bounds
23
+ * how far a stray future read could reach. A v18+ reader given a v17
24
+ * section (should one ever reach it — the cache LOOKUP key embeds
25
+ * FORMAT_VERSION, so normal load paths never do) must not attempt the
26
+ * shadow read at all; see the `version` parameter on `readRelationships`.
14
27
  */
15
28
  export function writeRelationships(writer, graph) {
16
29
  // Write forward edges
@@ -34,13 +47,34 @@ function writeEdges(writer, edges) {
34
47
  writer.writeTypedArray(edges.edgeTargets);
35
48
  writer.writeTypedArray(edges.edgeTypes);
36
49
  writer.writeTypedArray(edges.edgeRelIds);
50
+ // Shadowed rel ids: sparse (absent whenever no edge in this half collapsed
51
+ // more than one IfcRel* instance), so this costs 4 bytes on the
52
+ // overwhelming majority of graphs.
53
+ const shadowedEdgeIndex = edges.shadowedEdgeIndex ?? new Uint32Array(0);
54
+ const shadowedGroupOffsets = edges.shadowedGroupOffsets ?? new Uint32Array([0]);
55
+ const shadowedRelIds = edges.shadowedRelIds ?? new Uint32Array(0);
56
+ writer.writeUint32(shadowedEdgeIndex.length);
57
+ writer.writeTypedArray(shadowedEdgeIndex);
58
+ writer.writeTypedArray(shadowedGroupOffsets);
59
+ writer.writeUint32(shadowedRelIds.length);
60
+ writer.writeTypedArray(shadowedRelIds);
37
61
  }
38
62
  /**
39
- * Read RelationshipGraph from buffer
63
+ * Read RelationshipGraph from buffer. `version` is the cache header's
64
+ * FORMAT_VERSION — v17 sections have no shadow-id trailer (see
65
+ * `writeEdges`'s doc comment); pass the header's actual version so a v17
66
+ * section isn't misread as a v18+ one.
67
+ *
68
+ * Required, not defaulted to `FORMAT_VERSION`: a forgotten argument would
69
+ * silently read every buffer as the CURRENT version, the unsafe direction —
70
+ * a real v17 blob would be misread as v18 and hit `validateShadowedColumns`
71
+ * on bytes that were never written as a trailer at all (#3782 round 3
72
+ * review). `reader.ts`'s only call site already threads `header.version`
73
+ * through.
40
74
  */
41
- export function readRelationships(reader) {
42
- const forward = readEdges(reader);
43
- const inverse = readEdges(reader);
75
+ export function readRelationships(reader, version) {
76
+ const forward = readEdges(reader, version);
77
+ const inverse = readEdges(reader, version);
44
78
  return {
45
79
  forward,
46
80
  inverse,
@@ -58,15 +92,71 @@ export function readRelationships(reader) {
58
92
  const edges = forward.getEdges(sourceId);
59
93
  return edges
60
94
  .filter((e) => e.target === targetId)
61
- .map((e) => ({
62
- relationshipId: e.relationshipId,
63
- type: e.type,
64
- typeName: relationshipTypeToString(e.type),
65
- }));
95
+ .map((e) => {
96
+ const info = {
97
+ relationshipId: e.relationshipId,
98
+ type: e.type,
99
+ typeName: relationshipTypeToString(e.type),
100
+ };
101
+ if (e.shadowedRelationshipIds !== undefined) {
102
+ info.shadowedRelationshipIds = e.shadowedRelationshipIds;
103
+ }
104
+ return info;
105
+ });
66
106
  },
67
107
  };
68
108
  }
69
- function readEdges(reader) {
109
+ /**
110
+ * Fail fast on a corrupt shadowed-rel-ids trailer (v18+, #3782), the same
111
+ * way the (offset, count) guard above does for the base edge arrays:
112
+ * `readUint32Array` only bounds-checks against the buffer's remaining
113
+ * bytes, it says nothing about whether the VALUES it read are internally
114
+ * consistent. Without this, `getEdges`'s `binarySearchU32` +
115
+ * `shadowedRelIds.subarray(...)` silently attaches the wrong ids to the
116
+ * wrong edge, clamps or overruns the slice, or (an out-of-range
117
+ * `shadowedEdgeIndex` entry) drops a group's shadowed ids entirely — every
118
+ * one of those is wrong data returned without an error, not a crash.
119
+ *
120
+ * Checks, in the order a corrupt encoder is most likely to break them:
121
+ * - `shadowedGroupOffsets.length === shadowedEdgeIndex.length + 1`
122
+ * - `shadowedGroupOffsets[0] === 0`
123
+ * - `shadowedGroupOffsets` strictly increasing (equal neighbours would be
124
+ * an empty group, which `buildShadowedColumns` never emits — see its
125
+ * "present implies non-empty" invariant)
126
+ * - `shadowedGroupOffsets[last] === shadowedRelIds.length`
127
+ * - `shadowedEdgeIndex` strictly ascending and every entry `< edgeCount`
128
+ */
129
+ function validateShadowedColumns(shadowedEdgeIndex, shadowedGroupOffsets, shadowedRelIds, edgeCount) {
130
+ const groupCount = shadowedEdgeIndex.length;
131
+ if (shadowedGroupOffsets.length !== groupCount + 1) {
132
+ throw new Error(`Corrupt cache RelationshipGraph: shadowedGroupOffsets has ${shadowedGroupOffsets.length} ` +
133
+ `entries, expected ${groupCount + 1} for ${groupCount} shadowed group(s)`);
134
+ }
135
+ if (shadowedGroupOffsets[0] !== 0) {
136
+ throw new Error(`Corrupt cache RelationshipGraph: shadowedGroupOffsets[0] must be 0, got ${shadowedGroupOffsets[0]}`);
137
+ }
138
+ if (shadowedGroupOffsets[groupCount] !== shadowedRelIds.length) {
139
+ throw new Error(`Corrupt cache RelationshipGraph: shadowedGroupOffsets[${groupCount}] ` +
140
+ `(${shadowedGroupOffsets[groupCount]}) does not match shadowedRelIds length ${shadowedRelIds.length}`);
141
+ }
142
+ let prevEdgeIndex = -1;
143
+ for (let g = 0; g < groupCount; g++) {
144
+ const edgeIndex = shadowedEdgeIndex[g];
145
+ if (edgeIndex <= prevEdgeIndex) {
146
+ throw new Error(`Corrupt cache RelationshipGraph: shadowedEdgeIndex is not strictly ascending ` +
147
+ `at group ${g} (${edgeIndex} <= ${prevEdgeIndex})`);
148
+ }
149
+ if (edgeIndex >= edgeCount) {
150
+ throw new Error(`Corrupt cache RelationshipGraph: shadowedEdgeIndex[${g}] = ${edgeIndex} is out of range for edgeCount ${edgeCount}`);
151
+ }
152
+ prevEdgeIndex = edgeIndex;
153
+ if (shadowedGroupOffsets[g + 1] <= shadowedGroupOffsets[g]) {
154
+ throw new Error(`Corrupt cache RelationshipGraph: shadowed group ${g} is empty ` +
155
+ `[${shadowedGroupOffsets[g]}, ${shadowedGroupOffsets[g + 1]})`);
156
+ }
157
+ }
158
+ }
159
+ function readEdges(reader, version) {
70
160
  const nodeCount = reader.readUint32();
71
161
  const offsets = new Map();
72
162
  const counts = new Map();
@@ -81,28 +171,67 @@ function readEdges(reader) {
81
171
  const edgeTargets = reader.readUint32Array(edgeCount);
82
172
  const edgeTypes = reader.readUint16Array(edgeCount);
83
173
  const edgeRelIds = reader.readUint32Array(edgeCount);
84
- return {
174
+ // Fail fast on a corrupt cache: each node's (offset, count) pair is an
175
+ // independent field from `edgeCount` — `BufferReader`'s own bounds checks
176
+ // (see its `ensureAvailable` doc comment) only guarantee the edge arrays
177
+ // themselves are `edgeCount` long, they say nothing about whether a given
178
+ // node's range stays inside that. Without this check, `getEdges` below
179
+ // reads `edgeTargets[i]` for `i` past the array's end — a plain JS typed-
180
+ // array index-out-of-bounds, which silently yields `undefined` rather than
181
+ // throwing — and returns edges with an `undefined` target/type/
182
+ // relationshipId mixed in with the real ones instead of failing loudly.
183
+ // Mirrors the same-shaped guards already in `strings.ts` (offset
184
+ // monotonicity) and `entity-index.ts` (typeIndex range).
185
+ for (const [entityId, offset] of offsets) {
186
+ const count = counts.get(entityId) ?? 0;
187
+ if (offset + count > edgeCount) {
188
+ throw new Error(`Corrupt cache RelationshipGraph: entity ${entityId}'s edge range ` +
189
+ `[${offset}, ${offset + count}) exceeds edge array length ${edgeCount}`);
190
+ }
191
+ }
192
+ let shadowedEdgeIndex;
193
+ let shadowedGroupOffsets;
194
+ let shadowedRelIds;
195
+ if (version >= 18) {
196
+ const shadowedGroupCount = reader.readUint32();
197
+ shadowedEdgeIndex = reader.readUint32Array(shadowedGroupCount);
198
+ shadowedGroupOffsets = reader.readUint32Array(shadowedGroupCount + 1);
199
+ const shadowedIdCount = reader.readUint32();
200
+ shadowedRelIds = reader.readUint32Array(shadowedIdCount);
201
+ validateShadowedColumns(shadowedEdgeIndex, shadowedGroupOffsets, shadowedRelIds, edgeCount);
202
+ }
203
+ const edges = {
85
204
  offsets,
86
205
  counts,
87
206
  edgeTargets,
88
207
  edgeTypes,
89
208
  edgeRelIds,
209
+ shadowedEdgeIndex,
210
+ shadowedGroupOffsets,
211
+ shadowedRelIds,
90
212
  getEdges(entityId, type) {
91
213
  const offset = offsets.get(entityId);
92
214
  if (offset === undefined)
93
215
  return [];
94
216
  const count = counts.get(entityId);
95
- const edges = [];
217
+ const result = [];
96
218
  for (let i = offset; i < offset + count; i++) {
97
219
  if (type === undefined || edgeTypes[i] === type) {
98
- edges.push({
220
+ const edge = {
99
221
  target: edgeTargets[i],
100
222
  type: edgeTypes[i],
101
223
  relationshipId: edgeRelIds[i],
102
- });
224
+ };
225
+ if (shadowedEdgeIndex && shadowedGroupOffsets && shadowedRelIds) {
226
+ const g = binarySearchU32(shadowedEdgeIndex, i);
227
+ if (g !== -1) {
228
+ edge.shadowedRelationshipIds = Array.from(shadowedRelIds.subarray(shadowedGroupOffsets[g], shadowedGroupOffsets[g + 1]));
229
+ }
230
+ }
231
+ result.push(edge);
103
232
  }
104
233
  }
105
- return edges;
234
+ return result;
106
235
  },
107
236
  getTargets(entityId, type) {
108
237
  return this.getEdges(entityId, type).map((e) => e.target);
@@ -111,6 +240,11 @@ function readEdges(reader) {
111
240
  return offsets.has(entityId);
112
241
  },
113
242
  };
243
+ // `shadowedEdgeIndex`/etc. are `undefined` (not present) on a pre-#3782
244
+ // cache read (version < 18) — matches `RelationshipEdges`'s optional
245
+ // fields exactly, so `edges` above satisfies the interface either way
246
+ // without a cast.
247
+ return edges;
114
248
  }
115
249
  function relationshipTypeToString(type) {
116
250
  const names = {
@@ -1 +1 @@
1
- {"version":3,"file":"relationships.js","sourceRoot":"","sources":["../../src/sections/relationships.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relationships.js","sourceRoot":"","sources":["../../src/sections/relationships.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -107,8 +107,44 @@ export declare const MAGIC = 1279477321;
107
107
  * follows. A v15 reader still reads v14 sections — the column is
108
108
  * version-gated and degrades to the enum-only name, exactly the pre-v15
109
109
  * behaviour.
110
+ *
111
+ * v15->v16: instanced shards go to IFNS v2 (#2985). Their instance records gain
112
+ * a trailing `itemId` and declare a 92-byte stride, and the InstancedShards
113
+ * section stores shard bytes VERBATIM -- it never re-encodes. So a v2 shard
114
+ * this build writes would sit under a cache key an OLDER bundle still
115
+ * matches, and that bundle's decoder is a strict `version !== 1` throw which
116
+ * `useGeometryStreaming` swallows with a console.warn. Every instanced
117
+ * occurrence would vanish while the flat geometry kept drawing: it reads as
118
+ * missing geometry, not as a version error. Deploy skew reaches that without
119
+ * a rollback (a tab opened before the deploy, an edge still serving the
120
+ * previous bundle), and this repo has been bitten by deploy skew before.
121
+ * The bump splits the keyspace rather than sharing it: an old bundle looks
122
+ * for v15, misses, re-parses, and writes v1 shards it can read; this build
123
+ * looks for v16. This is the ONE bump here that is deliberately destructive
124
+ * -- every existing entry re-meshes once -- because the alternative is a
125
+ * silent partial render on a bundle nobody can update.
126
+ *
127
+ * v16->v17: the QuantityTable gains a `qsetGlobalId` column (#3606),
128
+ * mirroring PropertyTable's `psetGlobalId` — `QuantityTable.getForEntity`
129
+ * now groups on (qsetName, qsetGlobalId) instead of qsetName alone, so
130
+ * two distinct `IfcElementQuantity` instances sharing a literal name
131
+ * (federated merge, or an exporter emitting the same Qto_ set twice)
132
+ * stay separate instead of the second instance's quantities landing
133
+ * under the first instance's GlobalId.
134
+ *
135
+ * v17->v18: the Relationships section gains a trailing shadowed-rel-ids
136
+ * trailer per direction (#3782): `RelationshipGraphBuilder.addEdge` now
137
+ * folds a repeat (source, target, type) triple into the surviving edge
138
+ * instead of dropping it, keeping the extra `IfcRel*` express ids so a
139
+ * delete of the surviving one doesn't erase a connection a sibling
140
+ * instance still names. Appended AFTER `edgeRelIds` so the v17 prefix
141
+ * stays byte-identical; a v18 reader handed a v17 section simply stops
142
+ * there and never emits `shadowedRelationshipIds` — matches the pre-v18
143
+ * in-memory behaviour exactly, since those graphs never tracked them
144
+ * either. Not the destructive kind of bump: no existing cache entry is
145
+ * wrong to read, only silent about a rare case until it is re-parsed.
110
146
  */
111
- export declare const FORMAT_VERSION = 15;
147
+ export declare const FORMAT_VERSION = 18;
112
148
  /** Geometry chunking parameters (v13+). Grouping is a WRITE-side layout
113
149
  * policy: readers only trust the directory, so these can change without a
114
150
  * format bump. Cell size mirrors the renderer's spatial bucketing default
@@ -227,6 +263,10 @@ export interface CacheWriteOptions {
227
263
  * latency matters more than entry size.
228
264
  */
229
265
  compressGeometryChunks?: boolean;
266
+ /** Use one lazy browser module worker for geometry compression (default false).
267
+ * Requires Worker support and a bundled worker asset; failure rejects the write.
268
+ * Has no effect when compression is disabled or all chunks are below its floor. */
269
+ compressGeometryChunksInWorker?: boolean;
230
270
  }
231
271
  /**
232
272
  * Options for reading cache
@@ -282,7 +322,16 @@ export interface CacheEntityRef {
282
322
  lineNumber?: number;
283
323
  }
284
324
  export interface CacheEntityIndex {
285
- byId: Iterable<[number, CacheEntityRef]>;
325
+ byId: Iterable<[number, CacheEntityRef]> & {
326
+ /** Optional borrowed columns equivalent to iteration; never mutated/transferred. */
327
+ getColumns?(): {
328
+ expressIds: Uint32Array;
329
+ byteOffsets: Uint32Array;
330
+ byteLengths: Uint32Array;
331
+ typeIndices: Uint16Array;
332
+ typeStrings: string[];
333
+ };
334
+ };
286
335
  }
287
336
  export interface CachedEntityIndexColumns {
288
337
  ids: Uint32Array;
@@ -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
@@ -105,8 +105,44 @@ export const MAGIC = 0x4C434649; // "IFCL" in little-endian
105
105
  * follows. A v15 reader still reads v14 sections — the column is
106
106
  * version-gated and degrades to the enum-only name, exactly the pre-v15
107
107
  * behaviour.
108
+ *
109
+ * v15->v16: instanced shards go to IFNS v2 (#2985). Their instance records gain
110
+ * a trailing `itemId` and declare a 92-byte stride, and the InstancedShards
111
+ * section stores shard bytes VERBATIM -- it never re-encodes. So a v2 shard
112
+ * this build writes would sit under a cache key an OLDER bundle still
113
+ * matches, and that bundle's decoder is a strict `version !== 1` throw which
114
+ * `useGeometryStreaming` swallows with a console.warn. Every instanced
115
+ * occurrence would vanish while the flat geometry kept drawing: it reads as
116
+ * missing geometry, not as a version error. Deploy skew reaches that without
117
+ * a rollback (a tab opened before the deploy, an edge still serving the
118
+ * previous bundle), and this repo has been bitten by deploy skew before.
119
+ * The bump splits the keyspace rather than sharing it: an old bundle looks
120
+ * for v15, misses, re-parses, and writes v1 shards it can read; this build
121
+ * looks for v16. This is the ONE bump here that is deliberately destructive
122
+ * -- every existing entry re-meshes once -- because the alternative is a
123
+ * silent partial render on a bundle nobody can update.
124
+ *
125
+ * v16->v17: the QuantityTable gains a `qsetGlobalId` column (#3606),
126
+ * mirroring PropertyTable's `psetGlobalId` — `QuantityTable.getForEntity`
127
+ * now groups on (qsetName, qsetGlobalId) instead of qsetName alone, so
128
+ * two distinct `IfcElementQuantity` instances sharing a literal name
129
+ * (federated merge, or an exporter emitting the same Qto_ set twice)
130
+ * stay separate instead of the second instance's quantities landing
131
+ * under the first instance's GlobalId.
132
+ *
133
+ * v17->v18: the Relationships section gains a trailing shadowed-rel-ids
134
+ * trailer per direction (#3782): `RelationshipGraphBuilder.addEdge` now
135
+ * folds a repeat (source, target, type) triple into the surviving edge
136
+ * instead of dropping it, keeping the extra `IfcRel*` express ids so a
137
+ * delete of the surviving one doesn't erase a connection a sibling
138
+ * instance still names. Appended AFTER `edgeRelIds` so the v17 prefix
139
+ * stays byte-identical; a v18 reader handed a v17 section simply stops
140
+ * there and never emits `shadowedRelationshipIds` — matches the pre-v18
141
+ * in-memory behaviour exactly, since those graphs never tracked them
142
+ * either. Not the destructive kind of bump: no existing cache entry is
143
+ * wrong to read, only silent about a rare case until it is re-parsed.
108
144
  */
109
- export const FORMAT_VERSION = 15;
145
+ export const FORMAT_VERSION = 18;
110
146
  /** Geometry chunking parameters (v13+). Grouping is a WRITE-side layout
111
147
  * policy: readers only trust the directory, so these can change without a
112
148
  * format bump. Cell size mirrors the renderer's spatial bucketing default
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAS/D,0BAA0B;AAC1B,MAAM,CAAC,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,0BAA0B;AAE3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH;;;;;;GAMG;AACH;;;;;;;;;;GAUG;AACH;;;;;;;;;;GAUG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AAEjC;;;yEAGyE;AACzE,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,CAAC;AAC3C,2EAA2E;AAC3E,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AACzD,4EAA4E;AAC5E,MAAM,CAAC,MAAM,iCAAiC,GAAG,EAAE,GAAG,IAAI,CAAC;AAE3D,qDAAqD;AACrD,MAAM,CAAN,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC5B,2DAAQ,CAAA;IACR,qDAAqD;IACrD,uEAAmB,CAAA;AACrB,CAAC,EAJW,kBAAkB,KAAlB,kBAAkB,QAI7B;AAiBD,yCAAyC;AACzC,MAAM,CAAN,IAAY,WAWX;AAXD,WAAY,WAAW;IACrB,mDAAW,CAAA;IACX,qDAAY,CAAA;IACZ,yDAAc,CAAA;IACd,yDAAc,CAAA;IACd,+DAAiB,CAAA;IACjB,qDAAY,CAAA;IACZ,mDAAW,CAAA;IACX,iDAAU,CAAA;IACV,2DAAe,CAAA;IACf,oEAAoB,CAAA;AACtB,CAAC,EAXW,WAAW,KAAX,WAAW,QAWtB;AAED,yBAAyB;AACzB,MAAM,CAAN,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,qDAAU,CAAA;IACV,iDAAQ,CAAA;IACR,qDAAU,CAAA;AACZ,CAAC,EAJW,aAAa,KAAb,aAAa,QAIxB;AAED,mBAAmB;AACnB,MAAM,CAAN,IAAY,WAcX;AAdD,WAAY,WAAW;IACrB,6CAAQ,CAAA;IACR,yDAAmB,CAAA;IACnB,2DAAoB,CAAA;IACpB,yDAAmB,CAAA;IACnB;;;;;;;OAOG;IACH,mEAAwB,CAAA;AAC1B,CAAC,EAdW,WAAW,KAAX,WAAW,QActB;AAED,oBAAoB;AACpB,MAAM,CAAN,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,+CAAQ,CAAA;IACR,2DAAmB,CAAA;AACrB,CAAC,EAHW,YAAY,KAAZ,YAAY,QAGvB;AA+ID,2BAA2B;AAC3B,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,CAAC;AAE9B,kCAAkC;AAClC,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAS/D,0BAA0B;AAC1B,MAAM,CAAC,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,0BAA0B;AAE3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH;;;;;;GAMG;AACH;;;;;;;;;;GAUG;AACH;;;;;;;;;;GAUG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8EG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AAEjC;;;yEAGyE;AACzE,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,CAAC;AAC3C,2EAA2E;AAC3E,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AACzD,4EAA4E;AAC5E,MAAM,CAAC,MAAM,iCAAiC,GAAG,EAAE,GAAG,IAAI,CAAC;AAE3D,qDAAqD;AACrD,MAAM,CAAN,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC5B,2DAAQ,CAAA;IACR,qDAAqD;IACrD,uEAAmB,CAAA;AACrB,CAAC,EAJW,kBAAkB,KAAlB,kBAAkB,QAI7B;AAiBD,yCAAyC;AACzC,MAAM,CAAN,IAAY,WAWX;AAXD,WAAY,WAAW;IACrB,mDAAW,CAAA;IACX,qDAAY,CAAA;IACZ,yDAAc,CAAA;IACd,yDAAc,CAAA;IACd,+DAAiB,CAAA;IACjB,qDAAY,CAAA;IACZ,mDAAW,CAAA;IACX,iDAAU,CAAA;IACV,2DAAe,CAAA;IACf,oEAAoB,CAAA;AACtB,CAAC,EAXW,WAAW,KAAX,WAAW,QAWtB;AAED,yBAAyB;AACzB,MAAM,CAAN,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,qDAAU,CAAA;IACV,iDAAQ,CAAA;IACR,qDAAU,CAAA;AACZ,CAAC,EAJW,aAAa,KAAb,aAAa,QAIxB;AAED,mBAAmB;AACnB,MAAM,CAAN,IAAY,WAcX;AAdD,WAAY,WAAW;IACrB,6CAAQ,CAAA;IACR,yDAAmB,CAAA;IACnB,2DAAoB,CAAA;IACpB,yDAAmB,CAAA;IACnB;;;;;;;OAOG;IACH,mEAAwB,CAAA;AAC1B,CAAC,EAdW,WAAW,KAAX,WAAW,QActB;AAED,oBAAoB;AACpB,MAAM,CAAN,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,+CAAQ,CAAA;IACR,2DAAmB,CAAA;AACrB,CAAC,EAHW,YAAY,KAAZ,YAAY,QAGvB;AA4JD,2BAA2B;AAC3B,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,CAAC;AAE9B,kCAAkC;AAClC,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC"}
@@ -0,0 +1,27 @@
1
+ import type { CompressionRequest } from './geometry-compression-protocol.js';
2
+ type StoredChunk = {
3
+ bytes: Uint8Array<ArrayBuffer>;
4
+ compressed: boolean;
5
+ };
6
+ export interface CompressionWorkerPort {
7
+ onmessage: ((event: MessageEvent<unknown>) => void) | null;
8
+ onerror: ((event: ErrorEvent) => void) | null;
9
+ onmessageerror: ((event: MessageEvent<unknown>) => void) | null;
10
+ postMessage(message: CompressionRequest, transfers: ArrayBuffer[]): void;
11
+ terminate(): void;
12
+ }
13
+ /** Private per-write owner. The existing builder bounds requests to four chunks. */
14
+ export declare class GeometryCompressionSession {
15
+ private readonly createWorker;
16
+ private worker?;
17
+ private nextId;
18
+ private failure?;
19
+ private readonly pending;
20
+ constructor(createWorker?: () => CompressionWorkerPort);
21
+ compress(raw: Uint8Array<ArrayBuffer>): Promise<StoredChunk>;
22
+ close(): void;
23
+ private receive;
24
+ private fail;
25
+ }
26
+ export {};
27
+ //# sourceMappingURL=geometry-compression-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geometry-compression-client.d.ts","sourceRoot":"","sources":["../../src/workers/geometry-compression-client.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAuB,MAAM,oCAAoC,CAAC;AAElG,KAAK,WAAW,GAAG;IAAE,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAE,CAAC;AAC3E,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IAC3D,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IAC9C,cAAc,EAAE,CAAC,CAAC,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IAChE,WAAW,CAAC,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IACzE,SAAS,IAAI,IAAI,CAAC;CACnB;AAED,oFAAoF;AACpF,qBAAa,0BAA0B;IAQzB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAPzC,OAAO,CAAC,MAAM,CAAC,CAAwB;IACvC,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,OAAO,CAAC,CAAQ;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAEnB;gBAEwB,YAAY,GAAE,MAAM,qBAC6C;IAE9F,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;IAyB5D,KAAK,IAAI,IAAI;IAIb,OAAO,CAAC,OAAO;IA2Bf,OAAO,CAAC,IAAI;CAYb"}
@@ -0,0 +1,84 @@
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
+ /** Private per-write owner. The existing builder bounds requests to four chunks. */
5
+ export class GeometryCompressionSession {
6
+ createWorker;
7
+ worker;
8
+ nextId = 0;
9
+ failure;
10
+ pending = new Map();
11
+ constructor(createWorker = () => new Worker(new URL('./geometry-compression.worker.js', import.meta.url), { type: 'module' })) {
12
+ this.createWorker = createWorker;
13
+ }
14
+ compress(raw) {
15
+ if (this.failure)
16
+ return Promise.reject(this.failure);
17
+ if (raw.byteOffset !== 0 || raw.byteLength !== raw.buffer.byteLength) {
18
+ return Promise.reject(new Error('Geometry compression requires an owned whole buffer'));
19
+ }
20
+ return new Promise((resolve, reject) => {
21
+ const id = ++this.nextId;
22
+ this.pending.set(id, { length: raw.byteLength, resolve, reject });
23
+ try {
24
+ if (!this.worker) {
25
+ this.worker = this.createWorker();
26
+ this.worker.onmessage = event => this.receive(event.data);
27
+ this.worker.onerror = event => {
28
+ event.preventDefault();
29
+ this.fail(new Error(`Geometry compression worker failed: ${event.message}`));
30
+ };
31
+ this.worker.onmessageerror = () => this.fail(new Error('Geometry compression response could not be decoded'));
32
+ }
33
+ this.worker.postMessage({ id, buffer: raw.buffer }, [raw.buffer]);
34
+ }
35
+ catch (error) {
36
+ this.fail(error instanceof Error ? error : new Error(String(error)));
37
+ }
38
+ });
39
+ }
40
+ close() {
41
+ this.fail(new Error('Geometry compression session closed'));
42
+ }
43
+ receive(value) {
44
+ if (!value || typeof value !== 'object') {
45
+ this.fail(new Error('Invalid geometry compression response'));
46
+ return;
47
+ }
48
+ const response = value;
49
+ const pending = typeof response.id === 'number' ? this.pending.get(response.id) : undefined;
50
+ if (!pending) {
51
+ this.fail(new Error('Unknown geometry compression response id'));
52
+ return;
53
+ }
54
+ if ('error' in response) {
55
+ this.fail(new Error(`Geometry compression failed: ${String(response.error)}`));
56
+ return;
57
+ }
58
+ if (!('buffer' in response) || !(response.buffer instanceof ArrayBuffer)
59
+ || typeof response.compressed !== 'boolean'
60
+ || (response.compressed && response.buffer.byteLength === 0)
61
+ || (response.compressed ? response.buffer.byteLength >= pending.length
62
+ : response.buffer.byteLength !== pending.length)) {
63
+ this.fail(new Error('Invalid geometry compression result length or flags'));
64
+ return;
65
+ }
66
+ this.pending.delete(response.id);
67
+ pending.resolve({ bytes: new Uint8Array(response.buffer), compressed: response.compressed });
68
+ }
69
+ fail(error) {
70
+ if (this.failure)
71
+ return;
72
+ this.failure = error;
73
+ const worker = this.worker;
74
+ this.worker = undefined;
75
+ if (worker) {
76
+ worker.onmessage = worker.onerror = worker.onmessageerror = null;
77
+ worker.terminate();
78
+ }
79
+ for (const pending of this.pending.values())
80
+ pending.reject(error);
81
+ this.pending.clear();
82
+ }
83
+ }
84
+ //# sourceMappingURL=geometry-compression-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geometry-compression-client.js","sourceRoot":"","sources":["../../src/workers/geometry-compression-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { type CompressionResponse } from './geometry-compression-protocol.js';
2
+ /** Canonical codec handler shared by the real worker and transport contract tests. */
3
+ export declare function handleCompressionRequest(value: unknown, send: (response: CompressionResponse, transfers: ArrayBuffer[]) => void): Promise<void>;
4
+ //# sourceMappingURL=geometry-compression-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geometry-compression-handler.d.ts","sourceRoot":"","sources":["../../src/workers/geometry-compression-handler.ts"],"names":[],"mappings":"AAKA,OAAO,EAAwB,KAAK,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAEpG,sFAAsF;AACtF,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,CAAC,QAAQ,EAAE,mBAAmB,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,IAAI,GACtE,OAAO,CAAC,IAAI,CAAC,CAQf"}