@ifc-lite/cache 3.0.6 → 3.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 (40) hide show
  1. package/README.md +51 -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 +2 -2
  18. package/dist/reader.js.map +1 -1
  19. package/dist/sections/entities.d.ts +11 -2
  20. package/dist/sections/entities.d.ts.map +1 -1
  21. package/dist/sections/entities.js +35 -107
  22. package/dist/sections/entities.js.map +1 -1
  23. package/dist/sections/geometry.d.ts.map +1 -1
  24. package/dist/sections/geometry.js +92 -0
  25. package/dist/sections/geometry.js.map +1 -1
  26. package/dist/sections/properties.d.ts.map +1 -1
  27. package/dist/sections/properties.js +23 -26
  28. package/dist/sections/properties.js.map +1 -1
  29. package/dist/sections/quantities.d.ts.map +1 -1
  30. package/dist/sections/quantities.js +26 -25
  31. package/dist/sections/quantities.js.map +1 -1
  32. package/dist/sections/relationships.d.ts +25 -2
  33. package/dist/sections/relationships.d.ts.map +1 -1
  34. package/dist/sections/relationships.js +150 -16
  35. package/dist/sections/relationships.js.map +1 -1
  36. package/dist/types.d.ts +67 -1
  37. package/dist/types.d.ts.map +1 -1
  38. package/dist/types.js +67 -1
  39. package/dist/types.js.map +1 -1
  40. 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":"AAAA;;+DAE+D;AAO/D,OAAO,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAGpF;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,MAAoB,EAAE,UAAyB;IAC7E,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;IAE/B,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAE1B,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IAChD,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IAChD,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IAChD,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAE3C,gBAAgB;IAChB,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;IAC3C,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;IACzC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC;AAC/C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,MAAoB,EAAE,OAAoB;IACvE,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IAElC,MAAM,QAAQ,GAAG,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,YAAY,GAAG,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACnD,MAAM,YAAY,GAAG,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACnD,MAAM,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAE9C,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IACxD,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;IAEhE,OAAO;QACL,KAAK;QACL,QAAQ;QACR,QAAQ;QACR,YAAY;QACZ,YAAY;QACZ,YAAY;QACZ,KAAK;QACL,MAAM;QACN,OAAO;QACP,WAAW;QACX,SAAS;QACT,aAAa;QAEb,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE;YACnB,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;YAC7C,OAAO,2BAA2B,CAChC,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,KAAK,EACL,OAAO,EACP,OAAO,CACR,CAAC;QACJ,CAAC;QAED,gBAAgB,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;YACpC,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;YAC7C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAExC,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;gBAC7B,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,OAAO,IAAI,YAAY,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;oBAChE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC;gBACpB,CAAC;YACH,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAED,4DAA4D;QAC5D,uEAAuE;QACvE,sEAAsE;QACtE,yEAAyE;QACzE,uBAAuB;QACvB,cAAc,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE;YACzD,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC5C,IAAI,QAAQ,GAAG,CAAC;gBAAE,OAAO,EAAE,CAAC;YAE5B,MAAM,OAAO,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAChE,IAAI,IAAI,KAAK,SAAS,IAAI,OAAO,GAAG,CAAC;gBAAE,OAAO,EAAE,CAAC;YAEjD,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACrD,MAAM,OAAO,GAAa,EAAE,CAAC;YAE7B,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;gBAC7B,IAAI,OAAO,IAAI,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,OAAO;oBAAE,SAAS;gBACxD,IAAI,qBAAqB,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE,CAAC;oBAC7D,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC;YAED,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,4DAA4D;QAC5D,yEAAyE;QACzE,kEAAkE;QAClE,oDAAoD;QACpD,SAAS,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,EAAE;YACpC,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBAC9B,MAAM,IAAI,KAAK,CACb,uEAAuE;oBACrE,gFAAgF;oBAChF,yEAAyE,CAC5E,CAAC;YACJ,CAAC;YACD,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC5C,IAAI,QAAQ,GAAG,CAAC;gBAAE,OAAO,CAAC,CAAC;YAE3B,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACrD,IAAI,GAAG,GAAG,CAAC,CAAC;YAEZ,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;gBAC7B,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;YACpB,CAAC;YAED,OAAO,GAAG,CAAC;QACb,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,MAAoB,EAAE,KAA4B;IACpE,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QAClC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACxB,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAClC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,SAAS,CAAC,MAAoB,EAAE,QAAgB,EAAE,IAAY;IACrE,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IACjC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAChC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QACvC,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;YACrC,IAAI,QAAQ,IAAI,QAAQ,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CACb,+BAA+B,IAAI,eAAe,QAAQ,YAAY,GAAG,GAAG;oBAC1E,qBAAqB,QAAQ,EAAE,CAClC,CAAC;YACJ,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxB,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -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
@@ -77,8 +77,74 @@ export declare const MAGIC = 1279477321;
77
77
  * cache-hit load (first paint after the FIRST chunk instead of a full
78
78
  * deserialize) and is the on-disk foundation for evict-to-disk residency.
79
79
  * Per-mesh record layout inside a chunk is UNCHANGED from v12.
80
+ *
81
+ * v14: the per-mesh record gains the two DISJOINT source ids (#3199) —
82
+ * `geometryItemId` (an `IfcRepresentationItem`) and `materialId` (an
83
+ * `IfcMaterial`), two u32 written unconditionally with **0xFFFFFFFF** meaning
84
+ * absent. NOT 0, deliberately: `#0` is not a STEP instance name, but
85
+ * `router/layers.rs` DOES decode an unreferenced layer (an air gap) as
86
+ * `material_id = 0`. The producer filters that to absent as of #3199, so 0
87
+ * should never reach this record — the sentinel keeps the encoding correct
88
+ * without depending on that, since an absence marker the domain can produce
89
+ * is one upstream change from being wrong again.
90
+ * Bumped rather than read leniently because the record is positional: a v13
91
+ * reader handed a v14 record would take the origin's first f64 out of the two
92
+ * new u32 and every field after it would be garbage. A v14 reader still reads
93
+ * v13 records correctly — the fields are version-gated and degrade to
94
+ * `undefined`, which is the same state the runtime uses where the identity is
95
+ * genuinely merged away, so an old cache degrades to "unknown" and never to a
96
+ * WRONG id.
97
+ *
98
+ * v15: the Entities section gains a trailing `rawTypeName: Uint32Array[count]`
99
+ * of interned-string indices, appended after the typeRanges triples. Only
100
+ * ~1/4 of the concrete IFC product classes in the generated schema registry
101
+ * have an `IfcTypeEnum` member, so the enum column alone cannot name the
102
+ * rest; the live parser table has carried a raw-name column for that
103
+ * fallback all along and the cache did not, which turned every such element
104
+ * into 'Unknown' on a cache load. Bumped rather than sniffed because the
105
+ * section is positional: a v14 section has nothing after the triples, so a
106
+ * reader that read the column unconditionally would consume whatever
107
+ * follows. A v15 reader still reads v14 sections — the column is
108
+ * version-gated and degrades to the enum-only name, exactly the pre-v15
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.
80
146
  */
81
- export declare const FORMAT_VERSION = 13;
147
+ export declare const FORMAT_VERSION = 18;
82
148
  /** Geometry chunking parameters (v13+). Grouping is a WRITE-side layout
83
149
  * policy: readers only trust the directory, so these can change without a
84
150
  * format bump. Cell size mirrors the renderer's spatial bucketing default
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClI,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEnE,0BAA0B;AAC1B,eAAO,MAAM,KAAK,aAAa,CAAC;AAEhC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH;;;;;;GAMG;AACH;;;;;;;;;;GAUG;AACH;;;;;;;;;;GAUG;AACH;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,cAAc,KAAK,CAAC;AAEjC;;;yEAGyE;AACzE,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAC3C,2EAA2E;AAC3E,eAAO,MAAM,yBAAyB,QAAkB,CAAC;AACzD,4EAA4E;AAC5E,eAAO,MAAM,iCAAiC,QAAY,CAAC;AAE3D,qDAAqD;AACrD,oBAAY,kBAAkB;IAC5B,IAAI,IAAI;IACR,qDAAqD;IACrD,UAAU,IAAS;CACpB;AAED,qDAAqD;AACrD,MAAM,WAAW,iBAAiB;IAChC,2EAA2E;IAC3E,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,+EAA+E;IAC/E,UAAU,EAAE,MAAM,CAAC;IACnB,kFAAkF;IAClF,UAAU,EAAE,MAAM,CAAC;IACnB,oDAAoD;IACpD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,kBAAkB,CAAC;CAC3B;AAED,yCAAyC;AACzC,oBAAY,WAAW;IACrB,OAAO,IAAI;IACX,QAAQ,IAAI;IACZ,UAAU,IAAI;IACd,UAAU,IAAI;IACd,aAAa,IAAI;IACjB,QAAQ,IAAI;IACZ,OAAO,IAAI;IACX,MAAM,IAAI;IACV,WAAW,IAAI;IACf,eAAe,KAAK;CACrB;AAED,yBAAyB;AACzB,oBAAY,aAAa;IACvB,MAAM,IAAI;IACV,IAAI,IAAI;IACR,MAAM,IAAI;CACX;AAED,mBAAmB;AACnB,oBAAY,WAAW;IACrB,IAAI,IAAI;IACR,UAAU,IAAS;IACnB,WAAW,IAAS;IACpB,UAAU,IAAS;IACnB;;;;;;;OAOG;IACH,eAAe,IAAS;CACzB;AAED,oBAAoB;AACpB,oBAAY,YAAY;IACtB,IAAI,IAAI;IACR,UAAU,IAAS;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,WAAW,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,aAAa,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;CAEtB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,4CAA4C;IAC5C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gDAAgD;IAChD,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC;;;;;;;;;OASG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,6CAA6C;IAC7C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,sDAAsD;IACtD,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,mDAAmD;IACnD,YAAY,CAAC,EAAE,WAAW,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,aAAa,CAAC;IACtB;;;;OAIG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;IACrB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,aAAa,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,WAAW,CAAC;IACrB,QAAQ,EAAE,WAAW,CAAC;IACtB,UAAU,EAAE,aAAa,CAAC;IAC1B,UAAU,EAAE,aAAa,CAAC;IAC1B,aAAa,EAAE,iBAAiB,CAAC;IACjC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,WAAW,CAAC,EAAE,gBAAgB,CAAC;CAChC;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,QAAQ,CAAC,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,wBAAwB;IACvC,GAAG,EAAE,WAAW,CAAC;IACjB,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,cAAc,CAAC;IAC1B,WAAW,CAAC,EAAE,wBAAwB,CAAC;IACvC,QAAQ,CAAC,EAAE;QACT,MAAM,EAAE,QAAQ,EAAE,CAAC;QACnB,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC;QACvB,cAAc,EAAE,cAAc,CAAC;QAC/B;;6EAEqE;QACrE,eAAe,CAAC,EAAE,WAAW,EAAE,CAAC;KACjC,CAAC;CACH;AAED,2BAA2B;AAC3B,eAAO,MAAM,WAAW,KAAK,CAAC;AAE9B,kCAAkC;AAClC,eAAO,MAAM,kBAAkB,KAAK,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js CHANGED
@@ -75,8 +75,74 @@ export const MAGIC = 0x4C434649; // "IFCL" in little-endian
75
75
  * cache-hit load (first paint after the FIRST chunk instead of a full
76
76
  * deserialize) and is the on-disk foundation for evict-to-disk residency.
77
77
  * Per-mesh record layout inside a chunk is UNCHANGED from v12.
78
+ *
79
+ * v14: the per-mesh record gains the two DISJOINT source ids (#3199) —
80
+ * `geometryItemId` (an `IfcRepresentationItem`) and `materialId` (an
81
+ * `IfcMaterial`), two u32 written unconditionally with **0xFFFFFFFF** meaning
82
+ * absent. NOT 0, deliberately: `#0` is not a STEP instance name, but
83
+ * `router/layers.rs` DOES decode an unreferenced layer (an air gap) as
84
+ * `material_id = 0`. The producer filters that to absent as of #3199, so 0
85
+ * should never reach this record — the sentinel keeps the encoding correct
86
+ * without depending on that, since an absence marker the domain can produce
87
+ * is one upstream change from being wrong again.
88
+ * Bumped rather than read leniently because the record is positional: a v13
89
+ * reader handed a v14 record would take the origin's first f64 out of the two
90
+ * new u32 and every field after it would be garbage. A v14 reader still reads
91
+ * v13 records correctly — the fields are version-gated and degrade to
92
+ * `undefined`, which is the same state the runtime uses where the identity is
93
+ * genuinely merged away, so an old cache degrades to "unknown" and never to a
94
+ * WRONG id.
95
+ *
96
+ * v15: the Entities section gains a trailing `rawTypeName: Uint32Array[count]`
97
+ * of interned-string indices, appended after the typeRanges triples. Only
98
+ * ~1/4 of the concrete IFC product classes in the generated schema registry
99
+ * have an `IfcTypeEnum` member, so the enum column alone cannot name the
100
+ * rest; the live parser table has carried a raw-name column for that
101
+ * fallback all along and the cache did not, which turned every such element
102
+ * into 'Unknown' on a cache load. Bumped rather than sniffed because the
103
+ * section is positional: a v14 section has nothing after the triples, so a
104
+ * reader that read the column unconditionally would consume whatever
105
+ * follows. A v15 reader still reads v14 sections — the column is
106
+ * version-gated and degrades to the enum-only name, exactly the pre-v15
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.
78
144
  */
79
- export const FORMAT_VERSION = 13;
145
+ export const FORMAT_VERSION = 18;
80
146
  /** Geometry chunking parameters (v13+). Grouping is a WRITE-side layout
81
147
  * policy: readers only trust the directory, so these can change without a
82
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;;;;;;;;;;;;GAYG;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;AA+ID,2BAA2B;AAC3B,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,CAAC;AAE9B,kCAAkC;AAClC,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ifc-lite/cache",
3
- "version": "3.0.6",
3
+ "version": "3.2.0",
4
4
  "description": "Binary cache format for IFC-Lite - fast model loading",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -13,12 +13,13 @@
13
13
  }
14
14
  },
15
15
  "dependencies": {
16
- "@ifc-lite/data": "^3.4.1",
17
- "@ifc-lite/geometry": "^4.0.0"
16
+ "@ifc-lite/data": "^4.0.0",
17
+ "@ifc-lite/geometry": "^4.2.0"
18
18
  },
19
19
  "devDependencies": {
20
20
  "typescript": "^6.0.3",
21
- "vitest": "^4.1.10"
21
+ "vitest": "^4.1.11",
22
+ "@ifc-lite/parser": "^5.0.0"
22
23
  },
23
24
  "license": "MPL-2.0",
24
25
  "author": "Louis True",