@ifc-lite/query 1.0.0 → 1.1.1

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 (127) hide show
  1. package/dist/duckdb-integration.d.ts.map +1 -0
  2. package/dist/duckdb-integration.js.map +1 -0
  3. package/dist/entity-node.d.ts.map +1 -0
  4. package/dist/entity-node.js.map +1 -0
  5. package/dist/entity-query.d.ts.map +1 -0
  6. package/dist/entity-query.js.map +1 -0
  7. package/dist/entity-table.d.ts.map +1 -0
  8. package/dist/entity-table.js.map +1 -0
  9. package/dist/fluent-api.d.ts.map +1 -0
  10. package/dist/fluent-api.js.map +1 -0
  11. package/dist/ifc-query.d.ts.map +1 -0
  12. package/dist/ifc-query.js.map +1 -0
  13. package/dist/index.d.ts.map +1 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/property-table.d.ts.map +1 -0
  16. package/dist/property-table.js.map +1 -0
  17. package/dist/query-result-entity.d.ts.map +1 -0
  18. package/dist/query-result-entity.js.map +1 -0
  19. package/package.json +5 -5
  20. package/dist/parser/src/classification-extractor.d.ts +0 -73
  21. package/dist/parser/src/classification-extractor.d.ts.map +0 -1
  22. package/dist/parser/src/classification-extractor.js +0 -218
  23. package/dist/parser/src/classification-extractor.js.map +0 -1
  24. package/dist/parser/src/columnar-parser.d.ts +0 -43
  25. package/dist/parser/src/columnar-parser.d.ts.map +0 -1
  26. package/dist/parser/src/columnar-parser.js +0 -226
  27. package/dist/parser/src/columnar-parser.js.map +0 -1
  28. package/dist/parser/src/entity-extractor.d.ts +0 -15
  29. package/dist/parser/src/entity-extractor.d.ts.map +0 -1
  30. package/dist/parser/src/entity-extractor.js +0 -144
  31. package/dist/parser/src/entity-extractor.js.map +0 -1
  32. package/dist/parser/src/entity-index.d.ts +0 -11
  33. package/dist/parser/src/entity-index.d.ts.map +0 -1
  34. package/dist/parser/src/entity-index.js +0 -24
  35. package/dist/parser/src/entity-index.js.map +0 -1
  36. package/dist/parser/src/generated/entities.d.ts +0 -6198
  37. package/dist/parser/src/generated/entities.d.ts.map +0 -1
  38. package/dist/parser/src/generated/entities.js +0 -5
  39. package/dist/parser/src/generated/entities.js.map +0 -1
  40. package/dist/parser/src/generated/enums.d.ts +0 -2260
  41. package/dist/parser/src/generated/enums.d.ts.map +0 -1
  42. package/dist/parser/src/generated/enums.js +0 -2470
  43. package/dist/parser/src/generated/enums.js.map +0 -1
  44. package/dist/parser/src/generated/schema-registry.d.ts +0 -50
  45. package/dist/parser/src/generated/schema-registry.d.ts.map +0 -1
  46. package/dist/parser/src/generated/schema-registry.js +0 -60518
  47. package/dist/parser/src/generated/schema-registry.js.map +0 -1
  48. package/dist/parser/src/georef-extractor.d.ts +0 -60
  49. package/dist/parser/src/georef-extractor.d.ts.map +0 -1
  50. package/dist/parser/src/georef-extractor.js +0 -200
  51. package/dist/parser/src/georef-extractor.js.map +0 -1
  52. package/dist/parser/src/ifc-schema.d.ts +0 -13
  53. package/dist/parser/src/ifc-schema.d.ts.map +0 -1
  54. package/dist/parser/src/ifc-schema.js +0 -203
  55. package/dist/parser/src/ifc-schema.js.map +0 -1
  56. package/dist/parser/src/index.d.ts +0 -43
  57. package/dist/parser/src/index.d.ts.map +0 -1
  58. package/dist/parser/src/index.js +0 -150
  59. package/dist/parser/src/index.js.map +0 -1
  60. package/dist/parser/src/material-extractor.d.ts +0 -97
  61. package/dist/parser/src/material-extractor.d.ts.map +0 -1
  62. package/dist/parser/src/material-extractor.js +0 -283
  63. package/dist/parser/src/material-extractor.js.map +0 -1
  64. package/dist/parser/src/property-extractor.d.ts +0 -23
  65. package/dist/parser/src/property-extractor.d.ts.map +0 -1
  66. package/dist/parser/src/property-extractor.js +0 -102
  67. package/dist/parser/src/property-extractor.js.map +0 -1
  68. package/dist/parser/src/quantity-extractor.d.ts +0 -64
  69. package/dist/parser/src/quantity-extractor.d.ts.map +0 -1
  70. package/dist/parser/src/quantity-extractor.js +0 -202
  71. package/dist/parser/src/quantity-extractor.js.map +0 -1
  72. package/dist/parser/src/relationship-extractor.d.ts +0 -18
  73. package/dist/parser/src/relationship-extractor.d.ts.map +0 -1
  74. package/dist/parser/src/relationship-extractor.js +0 -91
  75. package/dist/parser/src/relationship-extractor.js.map +0 -1
  76. package/dist/parser/src/spatial-hierarchy-builder.d.ts +0 -21
  77. package/dist/parser/src/spatial-hierarchy-builder.d.ts.map +0 -1
  78. package/dist/parser/src/spatial-hierarchy-builder.js +0 -201
  79. package/dist/parser/src/spatial-hierarchy-builder.js.map +0 -1
  80. package/dist/parser/src/style-extractor.d.ts +0 -83
  81. package/dist/parser/src/style-extractor.d.ts.map +0 -1
  82. package/dist/parser/src/style-extractor.js +0 -327
  83. package/dist/parser/src/style-extractor.js.map +0 -1
  84. package/dist/parser/src/tokenizer.d.ts +0 -26
  85. package/dist/parser/src/tokenizer.d.ts.map +0 -1
  86. package/dist/parser/src/tokenizer.js +0 -181
  87. package/dist/parser/src/tokenizer.js.map +0 -1
  88. package/dist/parser/src/types.d.ts +0 -42
  89. package/dist/parser/src/types.d.ts.map +0 -1
  90. package/dist/parser/src/types.js +0 -5
  91. package/dist/parser/src/types.js.map +0 -1
  92. package/dist/query/src/duckdb-integration.d.ts.map +0 -1
  93. package/dist/query/src/duckdb-integration.js.map +0 -1
  94. package/dist/query/src/entity-node.d.ts.map +0 -1
  95. package/dist/query/src/entity-node.js.map +0 -1
  96. package/dist/query/src/entity-query.d.ts.map +0 -1
  97. package/dist/query/src/entity-query.js.map +0 -1
  98. package/dist/query/src/entity-table.d.ts.map +0 -1
  99. package/dist/query/src/entity-table.js.map +0 -1
  100. package/dist/query/src/fluent-api.d.ts.map +0 -1
  101. package/dist/query/src/fluent-api.js.map +0 -1
  102. package/dist/query/src/ifc-query.d.ts.map +0 -1
  103. package/dist/query/src/ifc-query.js.map +0 -1
  104. package/dist/query/src/index.d.ts.map +0 -1
  105. package/dist/query/src/index.js.map +0 -1
  106. package/dist/query/src/property-table.d.ts.map +0 -1
  107. package/dist/query/src/property-table.js.map +0 -1
  108. package/dist/query/src/query-result-entity.d.ts.map +0 -1
  109. package/dist/query/src/query-result-entity.js.map +0 -1
  110. /package/dist/{query/src/duckdb-integration.d.ts → duckdb-integration.d.ts} +0 -0
  111. /package/dist/{query/src/duckdb-integration.js → duckdb-integration.js} +0 -0
  112. /package/dist/{query/src/entity-node.d.ts → entity-node.d.ts} +0 -0
  113. /package/dist/{query/src/entity-node.js → entity-node.js} +0 -0
  114. /package/dist/{query/src/entity-query.d.ts → entity-query.d.ts} +0 -0
  115. /package/dist/{query/src/entity-query.js → entity-query.js} +0 -0
  116. /package/dist/{query/src/entity-table.d.ts → entity-table.d.ts} +0 -0
  117. /package/dist/{query/src/entity-table.js → entity-table.js} +0 -0
  118. /package/dist/{query/src/fluent-api.d.ts → fluent-api.d.ts} +0 -0
  119. /package/dist/{query/src/fluent-api.js → fluent-api.js} +0 -0
  120. /package/dist/{query/src/ifc-query.d.ts → ifc-query.d.ts} +0 -0
  121. /package/dist/{query/src/ifc-query.js → ifc-query.js} +0 -0
  122. /package/dist/{query/src/index.d.ts → index.d.ts} +0 -0
  123. /package/dist/{query/src/index.js → index.js} +0 -0
  124. /package/dist/{query/src/property-table.d.ts → property-table.d.ts} +0 -0
  125. /package/dist/{query/src/property-table.js → property-table.js} +0 -0
  126. /package/dist/{query/src/query-result-entity.d.ts → query-result-entity.d.ts} +0 -0
  127. /package/dist/{query/src/query-result-entity.js → query-result-entity.js} +0 -0
@@ -1,226 +0,0 @@
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
- import { PropertyExtractor } from './property-extractor.js';
5
- import { QuantityExtractor } from './quantity-extractor.js';
6
- import { RelationshipExtractor } from './relationship-extractor.js';
7
- import { SpatialHierarchyBuilder } from './spatial-hierarchy-builder.js';
8
- import { StringTable, EntityTableBuilder, PropertyTableBuilder, QuantityTableBuilder, RelationshipGraphBuilder, RelationshipType, PropertyValueType, QuantityType, } from '@ifc-lite/data';
9
- export class ColumnarParser {
10
- /**
11
- * Parse IFC file into columnar data store
12
- */
13
- async parse(buffer, entityRefs, entities, options = {}) {
14
- const startTime = performance.now();
15
- const uint8Buffer = new Uint8Array(buffer);
16
- // Initialize builders
17
- const strings = new StringTable();
18
- const entityTableBuilder = new EntityTableBuilder(entities.size, strings);
19
- const propertyTableBuilder = new PropertyTableBuilder(strings);
20
- const relationshipGraphBuilder = new RelationshipGraphBuilder();
21
- // === Build Entity Table ===
22
- options.onProgress?.({ phase: 'entities', percent: 0 });
23
- let processed = 0;
24
- for (const [id, entity] of entities) {
25
- const attrs = entity.attributes || [];
26
- const globalId = String(attrs[0] || '');
27
- const name = String(attrs[2] || '');
28
- const description = String(attrs[3] || '');
29
- const objectType = String(attrs[7] || '');
30
- // Check if entity has geometry (simplified check)
31
- const hasGeometry = entity.type.toUpperCase().includes('WALL') ||
32
- entity.type.toUpperCase().includes('DOOR') ||
33
- entity.type.toUpperCase().includes('WINDOW') ||
34
- entity.type.toUpperCase().includes('SLAB') ||
35
- entity.type.toUpperCase().includes('COLUMN') ||
36
- entity.type.toUpperCase().includes('BEAM');
37
- const isType = entity.type.toUpperCase().endsWith('TYPE');
38
- entityTableBuilder.add(id, entity.type, globalId, name, description, objectType, hasGeometry, isType);
39
- processed++;
40
- if (processed % 1000 === 0) {
41
- options.onProgress?.({ phase: 'entities', percent: (processed / entities.size) * 100 });
42
- }
43
- }
44
- const entityTable = entityTableBuilder.build();
45
- options.onProgress?.({ phase: 'entities', percent: 100 });
46
- // === Build Property Table ===
47
- options.onProgress?.({ phase: 'properties', percent: 0 });
48
- const propertyExtractor = new PropertyExtractor(entities);
49
- const propertySets = propertyExtractor.extractPropertySets();
50
- // Build mapping: psetId -> entityIds
51
- const psetToEntities = new Map();
52
- const relationshipExtractor = new RelationshipExtractor(entities);
53
- const relationships = relationshipExtractor.extractRelationships();
54
- for (const rel of relationships) {
55
- if (rel.type.toUpperCase() === 'IFCRELDEFINESBYPROPERTIES') {
56
- const psetId = rel.relatingObject;
57
- for (const entityId of rel.relatedObjects) {
58
- let list = psetToEntities.get(psetId);
59
- if (!list) {
60
- list = [];
61
- psetToEntities.set(psetId, list);
62
- }
63
- list.push(entityId);
64
- }
65
- }
66
- }
67
- // Extract properties into columnar format
68
- for (const [psetId, pset] of propertySets) {
69
- const entityIds = psetToEntities.get(psetId) || [];
70
- const globalId = String(entities.get(psetId)?.attributes?.[0] || '');
71
- for (const [propName, propValue] of pset.properties) {
72
- for (const entityId of entityIds) {
73
- let propType = PropertyValueType.String;
74
- let value = propValue.value;
75
- if (propValue.type === 'number') {
76
- propType = PropertyValueType.Real;
77
- value = propValue.value;
78
- }
79
- else if (propValue.type === 'boolean') {
80
- propType = PropertyValueType.Boolean;
81
- value = propValue.value;
82
- }
83
- else if (propValue.type === 'string') {
84
- propType = PropertyValueType.String;
85
- value = String(propValue.value);
86
- }
87
- propertyTableBuilder.add({
88
- entityId,
89
- psetName: pset.name,
90
- psetGlobalId: globalId,
91
- propName,
92
- propType,
93
- value,
94
- });
95
- }
96
- }
97
- }
98
- const propertyTable = propertyTableBuilder.build();
99
- options.onProgress?.({ phase: 'properties', percent: 100 });
100
- // === Build Quantity Table ===
101
- options.onProgress?.({ phase: 'quantities', percent: 0 });
102
- const quantityTableBuilder = new QuantityTableBuilder(strings);
103
- const quantityExtractor = new QuantityExtractor(entities);
104
- const quantitySets = quantityExtractor.extractQuantitySets();
105
- // Build mapping: qsetId -> entityIds (similar to properties)
106
- const qsetToEntities = new Map();
107
- for (const rel of relationships) {
108
- if (rel.type.toUpperCase() === 'IFCRELDEFINESBYPROPERTIES') {
109
- const qsetId = rel.relatingObject;
110
- // Check if this is actually a quantity set (not a property set)
111
- if (quantitySets.has(qsetId)) {
112
- for (const entityId of rel.relatedObjects) {
113
- let list = qsetToEntities.get(qsetId);
114
- if (!list) {
115
- list = [];
116
- qsetToEntities.set(qsetId, list);
117
- }
118
- list.push(entityId);
119
- }
120
- }
121
- }
122
- }
123
- // Map quantity type names to QuantityType enum
124
- const quantityTypeMap = {
125
- 'length': QuantityType.Length,
126
- 'area': QuantityType.Area,
127
- 'volume': QuantityType.Volume,
128
- 'count': QuantityType.Count,
129
- 'weight': QuantityType.Weight,
130
- 'time': QuantityType.Time,
131
- };
132
- // Extract quantities into columnar format
133
- for (const [qsetId, qset] of quantitySets) {
134
- const entityIds = qsetToEntities.get(qsetId) || [];
135
- for (const quantity of qset.quantities) {
136
- for (const entityId of entityIds) {
137
- quantityTableBuilder.add({
138
- entityId,
139
- qsetName: qset.name,
140
- quantityName: quantity.name,
141
- quantityType: quantityTypeMap[quantity.type] ?? QuantityType.Length,
142
- value: quantity.value,
143
- formula: quantity.formula,
144
- });
145
- }
146
- }
147
- }
148
- const quantityTable = quantityTableBuilder.build();
149
- options.onProgress?.({ phase: 'quantities', percent: 100 });
150
- // === Build Relationship Graph ===
151
- options.onProgress?.({ phase: 'relationships', percent: 0 });
152
- const relTypeMap = {
153
- 'IFCRELCONTAINEDINSPATIALSTRUCTURE': RelationshipType.ContainsElements,
154
- 'IFCRELAGGREGATES': RelationshipType.Aggregates,
155
- 'IFCRELDEFINESBYPROPERTIES': RelationshipType.DefinesByProperties,
156
- 'IFCRELDEFINESBYTYPE': RelationshipType.DefinesByType,
157
- 'IFCRELASSOCIATESMATERIAL': RelationshipType.AssociatesMaterial,
158
- 'IFCRELASSOCIATESCLASSIFICATION': RelationshipType.AssociatesClassification,
159
- 'IFCRELVOIDSELEMENT': RelationshipType.VoidsElement,
160
- 'IFCRELFILLSELEMENT': RelationshipType.FillsElement,
161
- 'IFCRELCONNECTSPATHELEMENTS': RelationshipType.ConnectsPathElements,
162
- 'IFCRELSPACEBOUNDARY': RelationshipType.SpaceBoundary,
163
- };
164
- for (const rel of relationships) {
165
- const relType = relTypeMap[rel.type.toUpperCase()];
166
- if (relType) {
167
- for (const targetId of rel.relatedObjects) {
168
- relationshipGraphBuilder.addEdge(rel.relatingObject, targetId, relType, rel.relatingObject);
169
- }
170
- }
171
- }
172
- const relationshipGraph = relationshipGraphBuilder.build();
173
- options.onProgress?.({ phase: 'relationships', percent: 100 });
174
- // Detect schema version (simplified)
175
- let schemaVersion = 'IFC4';
176
- for (const [, entity] of entities) {
177
- if (entity.type.toUpperCase() === 'IFCPROJECT') {
178
- // Check schema version from header or entity
179
- schemaVersion = 'IFC4';
180
- break;
181
- }
182
- }
183
- const parseTime = performance.now() - startTime;
184
- // Build entity index
185
- const entityIndex = {
186
- byId: new Map(),
187
- byType: new Map(),
188
- };
189
- for (const ref of entityRefs) {
190
- entityIndex.byId.set(ref.expressId, ref);
191
- let typeList = entityIndex.byType.get(ref.type);
192
- if (!typeList) {
193
- typeList = [];
194
- entityIndex.byType.set(ref.type, typeList);
195
- }
196
- typeList.push(ref.expressId);
197
- }
198
- // === Build Spatial Hierarchy ===
199
- options.onProgress?.({ phase: 'spatial-hierarchy', percent: 0 });
200
- let spatialHierarchy;
201
- try {
202
- const hierarchyBuilder = new SpatialHierarchyBuilder();
203
- spatialHierarchy = hierarchyBuilder.build(entityTable, relationshipGraph, strings, uint8Buffer, entityIndex);
204
- }
205
- catch (error) {
206
- console.warn('[ColumnarParser] Failed to build spatial hierarchy:', error);
207
- // Continue without hierarchy - it's optional
208
- }
209
- options.onProgress?.({ phase: 'spatial-hierarchy', percent: 100 });
210
- return {
211
- fileSize: buffer.byteLength,
212
- schemaVersion,
213
- entityCount: entities.size,
214
- parseTime,
215
- source: uint8Buffer,
216
- entityIndex,
217
- strings,
218
- entities: entityTable,
219
- properties: propertyTable,
220
- quantities: quantityTable,
221
- relationships: relationshipGraph,
222
- spatialHierarchy,
223
- };
224
- }
225
- }
226
- //# sourceMappingURL=columnar-parser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"columnar-parser.js","sourceRoot":"","sources":["../../../../parser/src/columnar-parser.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- /**
2
- * Entity extractor - parses full entity content from STEP format
3
- */
4
- import type { IfcEntity, EntityRef } from './types.js';
5
- export declare class EntityExtractor {
6
- private buffer;
7
- constructor(buffer: Uint8Array);
8
- /**
9
- * Extract full entity data from a reference
10
- */
11
- extractEntity(ref: EntityRef): IfcEntity | null;
12
- private parseAttributes;
13
- private parseAttributeValue;
14
- }
15
- //# sourceMappingURL=entity-extractor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"entity-extractor.d.ts","sourceRoot":"","sources":["../../../../parser/src/entity-extractor.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvD,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAa;gBAEf,MAAM,EAAE,UAAU;IAI9B;;OAEG;IACH,aAAa,CAAC,GAAG,EAAE,SAAS,GAAG,SAAS,GAAG,IAAI;IA4B/C,OAAO,CAAC,eAAe;IAiDvB,OAAO,CAAC,mBAAmB;CAoE5B"}
@@ -1,144 +0,0 @@
1
- /* This Source Code Form is subject to the terms of the Mozilla Public
2
- * License, v. 2.0. If a copy of the MPL was not distributed with this
3
- * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
- export class EntityExtractor {
5
- buffer;
6
- constructor(buffer) {
7
- this.buffer = buffer;
8
- }
9
- /**
10
- * Extract full entity data from a reference
11
- */
12
- extractEntity(ref) {
13
- try {
14
- const entityText = new TextDecoder().decode(this.buffer.subarray(ref.byteOffset, ref.byteOffset + ref.byteLength));
15
- // Parse: #ID = TYPE(attr1, attr2, ...)
16
- const match = entityText.match(/^#(\d+)\s*=\s*(\w+)\((.*)\)/);
17
- if (!match)
18
- return null;
19
- const expressId = parseInt(match[1], 10);
20
- const type = match[2];
21
- const paramsText = match[3];
22
- // Parse attributes (simplified - handles basic types)
23
- const attributes = this.parseAttributes(paramsText);
24
- return {
25
- expressId,
26
- type,
27
- attributes,
28
- };
29
- }
30
- catch (error) {
31
- console.warn(`Failed to extract entity #${ref.expressId}:`, error);
32
- return null;
33
- }
34
- }
35
- parseAttributes(paramsText) {
36
- if (!paramsText.trim())
37
- return [];
38
- const attributes = [];
39
- let depth = 0;
40
- let current = '';
41
- let inString = false;
42
- let escapeNext = false;
43
- for (let i = 0; i < paramsText.length; i++) {
44
- const char = paramsText[i];
45
- if (escapeNext) {
46
- current += char;
47
- escapeNext = false;
48
- continue;
49
- }
50
- if (char === "'") {
51
- inString = !inString;
52
- current += char;
53
- }
54
- else if (inString) {
55
- if (char === '\\') {
56
- escapeNext = true;
57
- }
58
- current += char;
59
- }
60
- else if (char === '(') {
61
- depth++;
62
- current += char;
63
- }
64
- else if (char === ')') {
65
- depth--;
66
- current += char;
67
- }
68
- else if (char === ',' && depth === 0) {
69
- // End of attribute
70
- attributes.push(this.parseAttributeValue(current.trim()));
71
- current = '';
72
- }
73
- else {
74
- current += char;
75
- }
76
- }
77
- // Add last attribute
78
- if (current.trim()) {
79
- attributes.push(this.parseAttributeValue(current.trim()));
80
- }
81
- return attributes;
82
- }
83
- parseAttributeValue(value) {
84
- value = value.trim();
85
- if (!value || value === '$') {
86
- return null;
87
- }
88
- // List/Array: (#123) or (#123, #456) or ()
89
- if (value.startsWith('(') && value.endsWith(')')) {
90
- const listContent = value.slice(1, -1).trim();
91
- if (!listContent) {
92
- return []; // Empty list
93
- }
94
- // Parse list items (comma-separated)
95
- const items = [];
96
- let depth = 0;
97
- let current = '';
98
- for (let i = 0; i < listContent.length; i++) {
99
- const char = listContent[i];
100
- if (char === '(') {
101
- depth++;
102
- current += char;
103
- }
104
- else if (char === ')') {
105
- depth--;
106
- current += char;
107
- }
108
- else if (char === ',' && depth === 0) {
109
- // End of item
110
- const itemValue = current.trim();
111
- if (itemValue) {
112
- items.push(this.parseAttributeValue(itemValue));
113
- }
114
- current = '';
115
- }
116
- else {
117
- current += char;
118
- }
119
- }
120
- // Add last item
121
- if (current.trim()) {
122
- items.push(this.parseAttributeValue(current.trim()));
123
- }
124
- return items;
125
- }
126
- // Reference: #123
127
- if (value.startsWith('#')) {
128
- const id = parseInt(value.substring(1), 10);
129
- return isNaN(id) ? null : id;
130
- }
131
- // String: 'text'
132
- if (value.startsWith("'") && value.endsWith("'")) {
133
- return value.slice(1, -1).replace(/\\'/g, "'").replace(/\\\\/g, '\\');
134
- }
135
- // Number
136
- const num = parseFloat(value);
137
- if (!isNaN(num)) {
138
- return num;
139
- }
140
- // Enumeration or other identifier
141
- return value;
142
- }
143
- }
144
- //# sourceMappingURL=entity-extractor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"entity-extractor.js","sourceRoot":"","sources":["../../../../parser/src/entity-extractor.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- /**
2
- * Entity index builder - creates fast lookup structures
3
- */
4
- import type { EntityRef, EntityIndex } from './types.js';
5
- export declare class EntityIndexBuilder {
6
- private byId;
7
- private byType;
8
- addEntity(ref: EntityRef): void;
9
- build(): EntityIndex;
10
- }
11
- //# sourceMappingURL=entity-index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"entity-index.d.ts","sourceRoot":"","sources":["../../../../parser/src/entity-index.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzD,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,IAAI,CAAqC;IACjD,OAAO,CAAC,MAAM,CAAoC;IAElD,SAAS,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI;IAY/B,KAAK,IAAI,WAAW;CAMrB"}
@@ -1,24 +0,0 @@
1
- /* This Source Code Form is subject to the terms of the Mozilla Public
2
- * License, v. 2.0. If a copy of the MPL was not distributed with this
3
- * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
- export class EntityIndexBuilder {
5
- byId = new Map();
6
- byType = new Map();
7
- addEntity(ref) {
8
- this.byId.set(ref.expressId, ref);
9
- // Add to type index
10
- let typeList = this.byType.get(ref.type);
11
- if (!typeList) {
12
- typeList = [];
13
- this.byType.set(ref.type, typeList);
14
- }
15
- typeList.push(ref.expressId);
16
- }
17
- build() {
18
- return {
19
- byId: this.byId,
20
- byType: this.byType,
21
- };
22
- }
23
- }
24
- //# sourceMappingURL=entity-index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"entity-index.js","sourceRoot":"","sources":["../../../../parser/src/entity-index.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAQ/D,MAAM,OAAO,kBAAkB;IACrB,IAAI,GAA2B,IAAI,GAAG,EAAE,CAAC;IACzC,MAAM,GAA0B,IAAI,GAAG,EAAE,CAAC;IAElD,SAAS,CAAC,GAAc;QACtB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAElC,oBAAoB;QACpB,IAAI,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,QAAQ,GAAG,EAAE,CAAC;YACd,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACtC,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK;QACH,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC;IACJ,CAAC;CACF"}