@ifc-lite/data 1.15.1 → 1.17.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 (74) hide show
  1. package/README.md +58 -28
  2. package/dist/entity-table.d.ts +53 -0
  3. package/dist/entity-table.d.ts.map +1 -1
  4. package/dist/entity-table.js +147 -93
  5. package/dist/entity-table.js.map +1 -1
  6. package/dist/ifc-schema/generated/attributes.d.ts +10 -0
  7. package/dist/ifc-schema/generated/attributes.d.ts.map +1 -0
  8. package/dist/ifc-schema/generated/attributes.js +2775 -0
  9. package/dist/ifc-schema/generated/attributes.js.map +1 -0
  10. package/dist/ifc-schema/generated/data-types.d.ts +8 -0
  11. package/dist/ifc-schema/generated/data-types.d.ts.map +1 -0
  12. package/dist/ifc-schema/generated/data-types.js +396 -0
  13. package/dist/ifc-schema/generated/data-types.js.map +1 -0
  14. package/dist/ifc-schema/generated/entities-ifc2x3.d.ts +8 -0
  15. package/dist/ifc-schema/generated/entities-ifc2x3.d.ts.map +1 -0
  16. package/dist/ifc-schema/generated/entities-ifc2x3.js +777 -0
  17. package/dist/ifc-schema/generated/entities-ifc2x3.js.map +1 -0
  18. package/dist/ifc-schema/generated/entities-ifc4.d.ts +8 -0
  19. package/dist/ifc-schema/generated/entities-ifc4.d.ts.map +1 -0
  20. package/dist/ifc-schema/generated/entities-ifc4.js +938 -0
  21. package/dist/ifc-schema/generated/entities-ifc4.js.map +1 -0
  22. package/dist/ifc-schema/generated/entities-ifc4x3.d.ts +8 -0
  23. package/dist/ifc-schema/generated/entities-ifc4x3.d.ts.map +1 -0
  24. package/dist/ifc-schema/generated/entities-ifc4x3.js +1014 -0
  25. package/dist/ifc-schema/generated/entities-ifc4x3.js.map +1 -0
  26. package/dist/ifc-schema/generated/partof-relations.d.ts +10 -0
  27. package/dist/ifc-schema/generated/partof-relations.d.ts.map +1 -0
  28. package/dist/ifc-schema/generated/partof-relations.js +28 -0
  29. package/dist/ifc-schema/generated/partof-relations.js.map +1 -0
  30. package/dist/ifc-schema/generated/psets-ifc2x3.d.ts +8 -0
  31. package/dist/ifc-schema/generated/psets-ifc2x3.d.ts.map +1 -0
  32. package/dist/ifc-schema/generated/psets-ifc2x3.js +3416 -0
  33. package/dist/ifc-schema/generated/psets-ifc2x3.js.map +1 -0
  34. package/dist/ifc-schema/generated/psets-ifc4.d.ts +8 -0
  35. package/dist/ifc-schema/generated/psets-ifc4.d.ts.map +1 -0
  36. package/dist/ifc-schema/generated/psets-ifc4.js +4510 -0
  37. package/dist/ifc-schema/generated/psets-ifc4.js.map +1 -0
  38. package/dist/ifc-schema/generated/psets-ifc4x3.d.ts +8 -0
  39. package/dist/ifc-schema/generated/psets-ifc4x3.d.ts.map +1 -0
  40. package/dist/ifc-schema/generated/psets-ifc4x3.js +8554 -0
  41. package/dist/ifc-schema/generated/psets-ifc4x3.js.map +1 -0
  42. package/dist/ifc-schema/index.d.ts +61 -0
  43. package/dist/ifc-schema/index.d.ts.map +1 -0
  44. package/dist/ifc-schema/index.js +212 -0
  45. package/dist/ifc-schema/index.js.map +1 -0
  46. package/dist/ifc-schema/types.d.ts +108 -0
  47. package/dist/ifc-schema/types.d.ts.map +1 -0
  48. package/dist/ifc-schema/types.js +5 -0
  49. package/dist/ifc-schema/types.js.map +1 -0
  50. package/dist/index.d.ts +11 -8
  51. package/dist/index.d.ts.map +1 -1
  52. package/dist/index.js +11 -4
  53. package/dist/index.js.map +1 -1
  54. package/dist/property-table.d.ts +22 -0
  55. package/dist/property-table.d.ts.map +1 -1
  56. package/dist/property-table.js +89 -62
  57. package/dist/property-table.js.map +1 -1
  58. package/dist/quantity-table.d.ts +18 -0
  59. package/dist/quantity-table.d.ts.map +1 -1
  60. package/dist/quantity-table.js +80 -66
  61. package/dist/quantity-table.js.map +1 -1
  62. package/dist/relationship-graph.d.ts +53 -6
  63. package/dist/relationship-graph.d.ts.map +1 -1
  64. package/dist/relationship-graph.js +149 -113
  65. package/dist/relationship-graph.js.map +1 -1
  66. package/dist/string-table.d.ts +8 -0
  67. package/dist/string-table.d.ts.map +1 -1
  68. package/dist/string-table.js +20 -0
  69. package/dist/string-table.js.map +1 -1
  70. package/dist/utf8-decode.d.ts +24 -0
  71. package/dist/utf8-decode.d.ts.map +1 -0
  72. package/dist/utf8-decode.js +103 -0
  73. package/dist/utf8-decode.js.map +1 -0
  74. package/package.json +3 -2
@@ -24,10 +24,6 @@ export class PropertyTableBuilder {
24
24
  const valueInt = new Int32Array(count);
25
25
  const valueBool = new Uint8Array(count).fill(255); // 255 = null
26
26
  const unitId = new Int32Array(count).fill(-1);
27
- // Build indices
28
- const entityIndex = new Map();
29
- const psetIndex = new Map();
30
- const propIndex = new Map();
31
27
  // Fill arrays
32
28
  for (let i = 0; i < count; i++) {
33
29
  const row = this.rows[i];
@@ -65,13 +61,8 @@ export class PropertyTableBuilder {
65
61
  if (row.unitId !== undefined) {
66
62
  unitId[i] = row.unitId;
67
63
  }
68
- // Build indices
69
- addToIndex(entityIndex, row.entityId, i);
70
- addToIndex(psetIndex, psetNameIdx, i);
71
- addToIndex(propIndex, propNameIdx, i);
72
64
  }
73
- const strings = this.strings;
74
- const table = {
65
+ return propertyTableFromColumns({
75
66
  count,
76
67
  entityId,
77
68
  psetName,
@@ -83,61 +74,97 @@ export class PropertyTableBuilder {
83
74
  valueInt,
84
75
  valueBool,
85
76
  unitId,
86
- entityIndex,
87
- psetIndex,
88
- propIndex,
89
- getForEntity: (id) => {
90
- const rowIndices = entityIndex.get(id) || [];
91
- const psets = new Map();
92
- for (const idx of rowIndices) {
93
- const psetNameStr = strings.get(psetName[idx]);
94
- const psetGlobalIdStr = strings.get(psetGlobalId[idx]);
95
- if (!psets.has(psetNameStr)) {
96
- psets.set(psetNameStr, {
97
- name: psetNameStr,
98
- globalId: psetGlobalIdStr,
99
- properties: [],
100
- });
101
- }
102
- const pset = psets.get(psetNameStr);
103
- const propNameStr = strings.get(propName[idx]);
104
- const propValue = getPropertyValue(table, idx, strings);
105
- pset.properties.push({
106
- name: propNameStr,
107
- type: propType[idx],
108
- value: propValue,
109
- });
77
+ }, this.strings);
78
+ }
79
+ }
80
+ /** Rebuild a live `PropertyTable` (closures + indices) from column data. */
81
+ export function propertyTableFromColumns(columns, strings) {
82
+ const { count, entityId, psetName, psetGlobalId, propName, propType, valueString, valueReal, valueInt, valueBool, unitId, } = columns;
83
+ const entityIndex = new Map();
84
+ const psetIndex = new Map();
85
+ const propIndex = new Map();
86
+ for (let i = 0; i < count; i++) {
87
+ addToIndex(entityIndex, entityId[i], i);
88
+ addToIndex(psetIndex, psetName[i], i);
89
+ addToIndex(propIndex, propName[i], i);
90
+ }
91
+ const table = {
92
+ count,
93
+ entityId,
94
+ psetName,
95
+ psetGlobalId,
96
+ propName,
97
+ propType,
98
+ valueString,
99
+ valueReal,
100
+ valueInt,
101
+ valueBool,
102
+ unitId,
103
+ entityIndex,
104
+ psetIndex,
105
+ propIndex,
106
+ getForEntity: (id) => {
107
+ const rowIndices = entityIndex.get(id) || [];
108
+ const psets = new Map();
109
+ for (const idx of rowIndices) {
110
+ const psetNameStr = strings.get(psetName[idx]);
111
+ const psetGlobalIdStr = strings.get(psetGlobalId[idx]);
112
+ if (!psets.has(psetNameStr)) {
113
+ psets.set(psetNameStr, { name: psetNameStr, globalId: psetGlobalIdStr, properties: [] });
110
114
  }
111
- return Array.from(psets.values());
112
- },
113
- getPropertyValue: (id, pset, prop) => {
114
- const rowIndices = entityIndex.get(id) || [];
115
- const psetIdx = strings.indexOf(pset);
116
- const propIdx = strings.indexOf(prop);
117
- for (const idx of rowIndices) {
118
- if (psetName[idx] === psetIdx && propName[idx] === propIdx) {
119
- return getPropertyValue(table, idx, strings);
120
- }
115
+ const pset = psets.get(psetNameStr);
116
+ const propNameStr = strings.get(propName[idx]);
117
+ pset.properties.push({
118
+ name: propNameStr,
119
+ type: propType[idx],
120
+ value: getPropertyValue(table, idx, strings),
121
+ });
122
+ }
123
+ return Array.from(psets.values());
124
+ },
125
+ getPropertyValue: (id, pset, prop) => {
126
+ const rowIndices = entityIndex.get(id) || [];
127
+ const psetIdx = strings.indexOf(pset);
128
+ const propIdx = strings.indexOf(prop);
129
+ for (const idx of rowIndices) {
130
+ if (psetName[idx] === psetIdx && propName[idx] === propIdx) {
131
+ return getPropertyValue(table, idx, strings);
121
132
  }
122
- return null;
123
- },
124
- findByProperty: (prop, operator, value) => {
125
- const propIdx = strings.indexOf(prop);
126
- if (propIdx < 0)
127
- return [];
128
- const rowIndices = propIndex.get(propIdx) || [];
129
- const results = [];
130
- for (const idx of rowIndices) {
131
- const propValue = getPropertyValue(table, idx, strings);
132
- if (compareValues(propValue, operator, value)) {
133
- results.push(entityId[idx]);
134
- }
133
+ }
134
+ return null;
135
+ },
136
+ findByProperty: (prop, operator, value) => {
137
+ const propIdx = strings.indexOf(prop);
138
+ if (propIdx < 0)
139
+ return [];
140
+ const rowIndices = propIndex.get(propIdx) || [];
141
+ const results = [];
142
+ for (const idx of rowIndices) {
143
+ const propValue = getPropertyValue(table, idx, strings);
144
+ if (compareValues(propValue, operator, value)) {
145
+ results.push(entityId[idx]);
135
146
  }
136
- return results;
137
- },
138
- };
139
- return table;
140
- }
147
+ }
148
+ return results;
149
+ },
150
+ };
151
+ return table;
152
+ }
153
+ /** Extract column data from a `PropertyTable` for transport. */
154
+ export function propertyTableToColumns(table) {
155
+ return {
156
+ count: table.count,
157
+ entityId: table.entityId,
158
+ psetName: table.psetName,
159
+ psetGlobalId: table.psetGlobalId,
160
+ propName: table.propName,
161
+ propType: table.propType,
162
+ valueString: table.valueString,
163
+ valueReal: table.valueReal,
164
+ valueInt: table.valueInt,
165
+ valueBool: table.valueBool,
166
+ unitId: table.unitId,
167
+ };
141
168
  }
142
169
  function addToIndex(index, key, value) {
143
170
  let list = index.get(key);
@@ -1 +1 @@
1
- {"version":3,"file":"property-table.js","sourceRoot":"","sources":["../src/property-table.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"property-table.js","sourceRoot":"","sources":["../src/property-table.ts"],"names":[],"mappings":"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"}
@@ -38,6 +38,24 @@ export declare class QuantityTableBuilder {
38
38
  add(row: QuantityRow): void;
39
39
  build(): QuantityTable;
40
40
  }
41
+ /**
42
+ * Plain-data column representation of a `QuantityTable`. Indices are
43
+ * derived in `quantityTableFromColumns`.
44
+ */
45
+ export interface QuantityTableColumns {
46
+ count: number;
47
+ entityId: Uint32Array;
48
+ qsetName: Uint32Array;
49
+ quantityName: Uint32Array;
50
+ quantityType: Uint8Array;
51
+ value: Float64Array;
52
+ unitId: Int32Array;
53
+ formula: Uint32Array;
54
+ }
55
+ /** Rebuild a live `QuantityTable` (closures + indices) from column data. */
56
+ export declare function quantityTableFromColumns(columns: QuantityTableColumns, strings: StringTable): QuantityTable;
57
+ /** Extract column data from a `QuantityTable` for transport. */
58
+ export declare function quantityTableToColumns(table: QuantityTable): QuantityTableColumns;
41
59
  interface QuantityRow {
42
60
  entityId: number;
43
61
  qsetName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"quantity-table.d.ts","sourceRoot":"","sources":["../src/quantity-table.ts"],"names":[],"mappings":"AAIA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,QAAQ,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,QAAQ,EAAE,WAAW,CAAC;IACtB,QAAQ,EAAE,WAAW,CAAC;IACtB,YAAY,EAAE,WAAW,CAAC;IAC1B,YAAY,EAAE,UAAU,CAAC;IACzB,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC;IAErB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACnC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACjC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAErC,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,EAAE,CAAC;IAC/C,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACxF,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC/D;AAED,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,IAAI,CAAqB;gBAErB,OAAO,EAAE,WAAW;IAIhC,GAAG,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI;IAI3B,KAAK,IAAI,aAAa;CA0GvB;AAED,UAAU,WAAW;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,YAAY,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
1
+ {"version":3,"file":"quantity-table.d.ts","sourceRoot":"","sources":["../src/quantity-table.ts"],"names":[],"mappings":"AAIA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,QAAQ,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,QAAQ,EAAE,WAAW,CAAC;IACtB,QAAQ,EAAE,WAAW,CAAC;IACtB,YAAY,EAAE,WAAW,CAAC;IAC1B,YAAY,EAAE,UAAU,CAAC;IACzB,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC;IAErB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACnC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACjC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAErC,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,EAAE,CAAC;IAC/C,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACxF,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC/D;AAED,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,IAAI,CAAqB;gBAErB,OAAO,EAAE,WAAW;IAIhC,GAAG,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI;IAI3B,KAAK,IAAI,aAAa;CA2BvB;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,WAAW,CAAC;IACtB,QAAQ,EAAE,WAAW,CAAC;IACtB,YAAY,EAAE,WAAW,CAAC;IAC1B,YAAY,EAAE,UAAU,CAAC;IACzB,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC;CACtB;AAED,4EAA4E;AAC5E,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,WAAW,GAAG,aAAa,CAkE3G;AAED,gEAAgE;AAChE,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,aAAa,GAAG,oBAAoB,CAWjF;AAED,UAAU,WAAW;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,YAAY,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
@@ -19,9 +19,6 @@ export class QuantityTableBuilder {
19
19
  const value = new Float64Array(count);
20
20
  const unitId = new Int32Array(count).fill(-1);
21
21
  const formula = new Uint32Array(count).fill(0);
22
- const entityIndex = new Map();
23
- const qsetIndex = new Map();
24
- const quantityIndex = new Map();
25
22
  for (let i = 0; i < count; i++) {
26
23
  const row = this.rows[i];
27
24
  entityId[i] = row.entityId;
@@ -29,74 +26,91 @@ export class QuantityTableBuilder {
29
26
  quantityName[i] = this.strings.intern(row.quantityName);
30
27
  quantityType[i] = row.quantityType;
31
28
  value[i] = row.value;
32
- if (row.unitId !== undefined) {
29
+ if (row.unitId !== undefined)
33
30
  unitId[i] = row.unitId;
34
- }
35
- if (row.formula) {
31
+ if (row.formula)
36
32
  formula[i] = this.strings.intern(row.formula);
37
- }
38
- addToIndex(entityIndex, row.entityId, i);
39
- addToIndex(qsetIndex, qsetName[i], i);
40
- addToIndex(quantityIndex, quantityName[i], i);
41
33
  }
42
- return {
43
- count,
44
- entityId,
45
- qsetName,
46
- quantityName,
47
- quantityType,
48
- value,
49
- unitId,
50
- formula,
51
- entityIndex,
52
- qsetIndex,
53
- quantityIndex,
54
- getForEntity: (id) => {
55
- const rowIndices = entityIndex.get(id) || [];
56
- const qsets = new Map();
57
- for (const idx of rowIndices) {
58
- const qsetNameStr = this.strings.get(qsetName[idx]);
59
- if (!qsets.has(qsetNameStr)) {
60
- qsets.set(qsetNameStr, {
61
- name: qsetNameStr,
62
- quantities: [],
63
- });
64
- }
65
- const qset = qsets.get(qsetNameStr);
66
- const quantNameStr = this.strings.get(quantityName[idx]);
67
- qset.quantities.push({
68
- name: quantNameStr,
69
- type: quantityType[idx],
70
- value: value[idx],
71
- formula: formula[idx] > 0 ? this.strings.get(formula[idx]) : undefined,
72
- });
73
- }
74
- return Array.from(qsets.values());
75
- },
76
- getQuantityValue: (id, qset, quant) => {
77
- const rowIndices = entityIndex.get(id) || [];
78
- const qsetIdx = this.strings.indexOf(qset);
79
- const quantIdx = this.strings.indexOf(quant);
80
- for (const idx of rowIndices) {
81
- if (qsetName[idx] === qsetIdx && quantityName[idx] === quantIdx) {
82
- return value[idx];
83
- }
34
+ return quantityTableFromColumns({ count, entityId, qsetName, quantityName, quantityType, value, unitId, formula }, this.strings);
35
+ }
36
+ }
37
+ /** Rebuild a live `QuantityTable` (closures + indices) from column data. */
38
+ export function quantityTableFromColumns(columns, strings) {
39
+ const { count, entityId, qsetName, quantityName, quantityType, value, unitId, formula } = columns;
40
+ const entityIndex = new Map();
41
+ const qsetIndex = new Map();
42
+ const quantityIndex = new Map();
43
+ for (let i = 0; i < count; i++) {
44
+ addToIndex(entityIndex, entityId[i], i);
45
+ addToIndex(qsetIndex, qsetName[i], i);
46
+ addToIndex(quantityIndex, quantityName[i], i);
47
+ }
48
+ return {
49
+ count,
50
+ entityId,
51
+ qsetName,
52
+ quantityName,
53
+ quantityType,
54
+ value,
55
+ unitId,
56
+ formula,
57
+ entityIndex,
58
+ qsetIndex,
59
+ quantityIndex,
60
+ getForEntity: (id) => {
61
+ const rowIndices = entityIndex.get(id) || [];
62
+ const qsets = new Map();
63
+ for (const idx of rowIndices) {
64
+ const qsetNameStr = strings.get(qsetName[idx]);
65
+ if (!qsets.has(qsetNameStr)) {
66
+ qsets.set(qsetNameStr, { name: qsetNameStr, quantities: [] });
84
67
  }
85
- return null;
86
- },
87
- sumByType: (quantName) => {
88
- const quantIdx = this.strings.indexOf(quantName);
89
- if (quantIdx < 0)
90
- return 0;
91
- const rowIndices = quantityIndex.get(quantIdx) || [];
92
- let sum = 0;
93
- for (const idx of rowIndices) {
94
- sum += value[idx];
68
+ const qset = qsets.get(qsetNameStr);
69
+ const quantNameStr = strings.get(quantityName[idx]);
70
+ qset.quantities.push({
71
+ name: quantNameStr,
72
+ type: quantityType[idx],
73
+ value: value[idx],
74
+ formula: formula[idx] > 0 ? strings.get(formula[idx]) : undefined,
75
+ });
76
+ }
77
+ return Array.from(qsets.values());
78
+ },
79
+ getQuantityValue: (id, qset, quant) => {
80
+ const rowIndices = entityIndex.get(id) || [];
81
+ const qsetIdx = strings.indexOf(qset);
82
+ const quantIdx = strings.indexOf(quant);
83
+ for (const idx of rowIndices) {
84
+ if (qsetName[idx] === qsetIdx && quantityName[idx] === quantIdx) {
85
+ return value[idx];
95
86
  }
96
- return sum;
97
- },
98
- };
99
- }
87
+ }
88
+ return null;
89
+ },
90
+ sumByType: (quantName) => {
91
+ const quantIdx = strings.indexOf(quantName);
92
+ if (quantIdx < 0)
93
+ return 0;
94
+ const rowIndices = quantityIndex.get(quantIdx) || [];
95
+ let sum = 0;
96
+ for (const idx of rowIndices)
97
+ sum += value[idx];
98
+ return sum;
99
+ },
100
+ };
101
+ }
102
+ /** Extract column data from a `QuantityTable` for transport. */
103
+ export function quantityTableToColumns(table) {
104
+ return {
105
+ count: table.count,
106
+ entityId: table.entityId,
107
+ qsetName: table.qsetName,
108
+ quantityName: table.quantityName,
109
+ quantityType: table.quantityType,
110
+ value: table.value,
111
+ unitId: table.unitId,
112
+ formula: table.formula,
113
+ };
100
114
  }
101
115
  function addToIndex(index, key, value) {
102
116
  let list = index.get(key);
@@ -1 +1 @@
1
- {"version":3,"file":"quantity-table.js","sourceRoot":"","sources":["../src/quantity-table.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quantity-table.js","sourceRoot":"","sources":["../src/quantity-table.ts"],"names":[],"mappings":"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"}
@@ -43,11 +43,58 @@ export declare class RelationshipGraphBuilder {
43
43
  private _relIds;
44
44
  addEdge(source: number, target: number, type: RelationshipType, relId: number): void;
45
45
  build(): RelationshipGraph;
46
- /**
47
- * Build CSR (Compressed Sparse Row) using counting sort.
48
- * O(n) instead of O(n log n) — crucial for 12M+ edges.
49
- */
50
- private buildCSR;
51
- private emptyEdges;
52
46
  }
47
+ /**
48
+ * Plain-data column representation of `RelationshipEdges` (one half of a
49
+ * `RelationshipGraph`). Holds CSR offsets, counts, and parallel edge arrays
50
+ * with no closures.
51
+ */
52
+ export interface RelationshipEdgesColumns {
53
+ offsets: Map<number, number>;
54
+ counts: Map<number, number>;
55
+ edgeTargets: Uint32Array;
56
+ edgeTypes: Uint16Array;
57
+ edgeRelIds: Uint32Array;
58
+ }
59
+ /**
60
+ * Plain-data representation of a complete bidirectional `RelationshipGraph`.
61
+ * Used as the worker-transport payload — both halves are pure column data,
62
+ * so the underlying buffers are transferable.
63
+ */
64
+ export interface RelationshipGraphColumns {
65
+ forward: RelationshipEdgesColumns;
66
+ inverse: RelationshipEdgesColumns;
67
+ }
68
+ /**
69
+ * Build CSR (Compressed Sparse Row) using counting sort.
70
+ * O(n) instead of O(n log n) — crucial for 12M+ edges.
71
+ *
72
+ * Exported because the graph can be reconstructed from raw edge arrays
73
+ * (e.g. when merging or rebuilding a graph) without going through the
74
+ * `RelationshipGraphBuilder` mutation API.
75
+ */
76
+ export declare function buildCSR(n: number, keys: number[] | Uint32Array, values: number[] | Uint32Array, types: number[] | Uint16Array, relIds: number[] | Uint32Array): RelationshipEdges;
77
+ /**
78
+ * Rebuild the closure-bearing `RelationshipEdges` view (one direction of
79
+ * the graph) from raw CSR columns. Used by both the in-process builder and
80
+ * the parser-worker transport layer.
81
+ */
82
+ export declare function relationshipEdgesFromColumns(columns: RelationshipEdgesColumns): RelationshipEdges;
83
+ /**
84
+ * Compose a complete `RelationshipGraph` from the two directional halves.
85
+ * Splits cleanly so that the column extractor can pull edges without
86
+ * touching the closures attached above.
87
+ */
88
+ export declare function relationshipGraphFromEdges(forward: RelationshipEdges, inverse: RelationshipEdges): RelationshipGraph;
89
+ /**
90
+ * Reconstruct a `RelationshipGraph` (closures + both halves) from the
91
+ * column-only POJO produced by `relationshipGraphToColumns`.
92
+ */
93
+ export declare function relationshipGraphFromColumns(columns: RelationshipGraphColumns): RelationshipGraph;
94
+ /**
95
+ * Extract the column data (CSR offsets, counts, parallel edge arrays) from
96
+ * a `RelationshipGraph`. The returned typed arrays alias the source — they
97
+ * detach from the source when used in a `postMessage` transfer list.
98
+ */
99
+ export declare function relationshipGraphToColumns(graph: RelationshipGraph): RelationshipGraphColumns;
53
100
  //# sourceMappingURL=relationship-graph.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"relationship-graph.d.ts","sourceRoot":"","sources":["../src/relationship-graph.ts"],"names":[],"mappings":"AAIA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,WAAW,IAAI;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,gBAAgB,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,EAAE,WAAW,CAAC;IACvB,UAAU,EAAE,WAAW,CAAC;IAExB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,gBAAgB,GAAG,IAAI,EAAE,CAAC;IAC5D,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,gBAAgB,GAAG,MAAM,EAAE,CAAC;IAChE,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;CACxC;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,OAAO,EAAE,iBAAiB,CAAC;IAE3B,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,EAAE,CAAC;IACpG,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC;IACzF,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAC;CACjF;AAED,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,gBAAgB,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,OAAO,CAAgB;IAE/B,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAOpF,KAAK,IAAI,iBAAiB;IAqC1B;;;OAGG;IACH,OAAO,CAAC,QAAQ;IAsFhB,OAAO,CAAC,UAAU;CAYnB"}
1
+ {"version":3,"file":"relationship-graph.d.ts","sourceRoot":"","sources":["../src/relationship-graph.ts"],"names":[],"mappings":"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"}