@ifc-lite/ifcx 1.2.1 → 1.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.
- package/dist/federated-composition.d.ts +69 -0
- package/dist/federated-composition.d.ts.map +1 -0
- package/dist/federated-composition.js +300 -0
- package/dist/federated-composition.js.map +1 -0
- package/dist/index.d.ts +65 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +168 -0
- package/dist/index.js.map +1 -1
- package/dist/layer-stack.d.ts +151 -0
- package/dist/layer-stack.d.ts.map +1 -0
- package/dist/layer-stack.js +248 -0
- package/dist/layer-stack.js.map +1 -0
- package/dist/path-resolver.d.ts +113 -0
- package/dist/path-resolver.d.ts.map +1 -0
- package/dist/path-resolver.js +211 -0
- package/dist/path-resolver.js.map +1 -0
- package/package.json +2 -2
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Layer Stack for Federated IFCX Composition
|
|
3
|
+
*
|
|
4
|
+
* Manages multiple IFCX files as ordered layers for USD-style composition.
|
|
5
|
+
* Higher layers (lower index) have stronger opinions and override lower layers.
|
|
6
|
+
*/
|
|
7
|
+
import type { IfcxFile, IfcxNode } from './types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Source information for a layer.
|
|
10
|
+
*/
|
|
11
|
+
export type LayerSource = {
|
|
12
|
+
type: 'file';
|
|
13
|
+
filename: string;
|
|
14
|
+
size: number;
|
|
15
|
+
} | {
|
|
16
|
+
type: 'url';
|
|
17
|
+
url: string;
|
|
18
|
+
} | {
|
|
19
|
+
type: 'buffer';
|
|
20
|
+
name: string;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* A single layer in the composition stack.
|
|
24
|
+
*/
|
|
25
|
+
export interface IfcxLayer {
|
|
26
|
+
/** Unique identifier for this layer */
|
|
27
|
+
id: string;
|
|
28
|
+
/** Display name */
|
|
29
|
+
name: string;
|
|
30
|
+
/** Parsed IFCX file data */
|
|
31
|
+
file: IfcxFile;
|
|
32
|
+
/** Original buffer (for re-parsing if needed) */
|
|
33
|
+
buffer: ArrayBuffer;
|
|
34
|
+
/** Position in stack (0 = strongest) */
|
|
35
|
+
strength: number;
|
|
36
|
+
/** Whether this layer is enabled for composition */
|
|
37
|
+
enabled: boolean;
|
|
38
|
+
/** Source information */
|
|
39
|
+
source: LayerSource;
|
|
40
|
+
/** Nodes indexed by path for this layer */
|
|
41
|
+
nodesByPath: Map<string, IfcxNode[]>;
|
|
42
|
+
/** Timestamp when layer was loaded */
|
|
43
|
+
loadedAt: number;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Layer Stack manages ordered IFCX layers for federated composition.
|
|
47
|
+
*/
|
|
48
|
+
export declare class LayerStack {
|
|
49
|
+
private layers;
|
|
50
|
+
private nextId;
|
|
51
|
+
/**
|
|
52
|
+
* Add a new layer to the stack.
|
|
53
|
+
* New layers are added at the top (strongest position).
|
|
54
|
+
*
|
|
55
|
+
* @param file - Parsed IFCX file
|
|
56
|
+
* @param buffer - Original buffer
|
|
57
|
+
* @param name - Display name for the layer
|
|
58
|
+
* @param source - Source information
|
|
59
|
+
* @returns Layer ID
|
|
60
|
+
*/
|
|
61
|
+
addLayer(file: IfcxFile, buffer: ArrayBuffer, name: string, source?: LayerSource): string;
|
|
62
|
+
/**
|
|
63
|
+
* Add a layer at a specific position.
|
|
64
|
+
*
|
|
65
|
+
* @param file - Parsed IFCX file
|
|
66
|
+
* @param buffer - Original buffer
|
|
67
|
+
* @param name - Display name
|
|
68
|
+
* @param position - Position in stack (0 = strongest)
|
|
69
|
+
* @param source - Source information
|
|
70
|
+
* @returns Layer ID
|
|
71
|
+
*/
|
|
72
|
+
addLayerAt(file: IfcxFile, buffer: ArrayBuffer, name: string, position: number, source?: LayerSource): string;
|
|
73
|
+
/**
|
|
74
|
+
* Remove a layer from the stack.
|
|
75
|
+
*/
|
|
76
|
+
removeLayer(layerId: string): boolean;
|
|
77
|
+
/**
|
|
78
|
+
* Reorder layers based on new order of IDs.
|
|
79
|
+
* IDs not in the list are removed. IDs not found are ignored.
|
|
80
|
+
*/
|
|
81
|
+
reorderLayers(orderedIds: string[]): void;
|
|
82
|
+
/**
|
|
83
|
+
* Move a layer to a new position.
|
|
84
|
+
*/
|
|
85
|
+
moveLayer(layerId: string, newPosition: number): boolean;
|
|
86
|
+
/**
|
|
87
|
+
* Toggle layer enabled state.
|
|
88
|
+
*/
|
|
89
|
+
setLayerEnabled(layerId: string, enabled: boolean): boolean;
|
|
90
|
+
/**
|
|
91
|
+
* Toggle layer enabled state.
|
|
92
|
+
*/
|
|
93
|
+
toggleLayer(layerId: string): boolean;
|
|
94
|
+
/**
|
|
95
|
+
* Get a layer by ID.
|
|
96
|
+
*/
|
|
97
|
+
getLayer(layerId: string): IfcxLayer | undefined;
|
|
98
|
+
/**
|
|
99
|
+
* Get all layers in order (strongest first).
|
|
100
|
+
*/
|
|
101
|
+
getLayers(): readonly IfcxLayer[];
|
|
102
|
+
/**
|
|
103
|
+
* Get only enabled layers in order (strongest first).
|
|
104
|
+
*/
|
|
105
|
+
getEnabledLayers(): IfcxLayer[];
|
|
106
|
+
/**
|
|
107
|
+
* Get layer count.
|
|
108
|
+
*/
|
|
109
|
+
get count(): number;
|
|
110
|
+
/**
|
|
111
|
+
* Check if stack is empty.
|
|
112
|
+
*/
|
|
113
|
+
get isEmpty(): boolean;
|
|
114
|
+
/**
|
|
115
|
+
* Clear all layers.
|
|
116
|
+
*/
|
|
117
|
+
clear(): void;
|
|
118
|
+
/**
|
|
119
|
+
* Get all unique paths across all enabled layers.
|
|
120
|
+
*/
|
|
121
|
+
getAllPaths(): Set<string>;
|
|
122
|
+
/**
|
|
123
|
+
* Get nodes for a path from all enabled layers, ordered by strength.
|
|
124
|
+
*/
|
|
125
|
+
getNodesForPath(path: string): Array<{
|
|
126
|
+
layer: IfcxLayer;
|
|
127
|
+
nodes: IfcxNode[];
|
|
128
|
+
}>;
|
|
129
|
+
/**
|
|
130
|
+
* Check if a path exists in any enabled layer.
|
|
131
|
+
*/
|
|
132
|
+
hasPath(path: string): boolean;
|
|
133
|
+
/**
|
|
134
|
+
* Get summary statistics.
|
|
135
|
+
*/
|
|
136
|
+
getStats(): {
|
|
137
|
+
layerCount: number;
|
|
138
|
+
enabledCount: number;
|
|
139
|
+
totalNodes: number;
|
|
140
|
+
uniquePaths: number;
|
|
141
|
+
};
|
|
142
|
+
/**
|
|
143
|
+
* Update strength values based on current order.
|
|
144
|
+
*/
|
|
145
|
+
private updateStrengths;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Create a new empty layer stack.
|
|
149
|
+
*/
|
|
150
|
+
export declare function createLayerStack(): LayerStack;
|
|
151
|
+
//# sourceMappingURL=layer-stack.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layer-stack.d.ts","sourceRoot":"","sources":["../src/layer-stack.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
2
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
3
|
+
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
4
|
+
/**
|
|
5
|
+
* Layer Stack manages ordered IFCX layers for federated composition.
|
|
6
|
+
*/
|
|
7
|
+
export class LayerStack {
|
|
8
|
+
layers = [];
|
|
9
|
+
nextId = 1;
|
|
10
|
+
/**
|
|
11
|
+
* Add a new layer to the stack.
|
|
12
|
+
* New layers are added at the top (strongest position).
|
|
13
|
+
*
|
|
14
|
+
* @param file - Parsed IFCX file
|
|
15
|
+
* @param buffer - Original buffer
|
|
16
|
+
* @param name - Display name for the layer
|
|
17
|
+
* @param source - Source information
|
|
18
|
+
* @returns Layer ID
|
|
19
|
+
*/
|
|
20
|
+
addLayer(file, buffer, name, source) {
|
|
21
|
+
const id = `layer-${this.nextId++}`;
|
|
22
|
+
// Index nodes by path
|
|
23
|
+
const nodesByPath = new Map();
|
|
24
|
+
for (const node of file.data) {
|
|
25
|
+
const existing = nodesByPath.get(node.path) || [];
|
|
26
|
+
existing.push(node);
|
|
27
|
+
nodesByPath.set(node.path, existing);
|
|
28
|
+
}
|
|
29
|
+
const layer = {
|
|
30
|
+
id,
|
|
31
|
+
name,
|
|
32
|
+
file,
|
|
33
|
+
buffer,
|
|
34
|
+
strength: 0, // Will be updated
|
|
35
|
+
enabled: true,
|
|
36
|
+
source: source || { type: 'buffer', name },
|
|
37
|
+
nodesByPath,
|
|
38
|
+
loadedAt: Date.now(),
|
|
39
|
+
};
|
|
40
|
+
// Insert at top (strongest position)
|
|
41
|
+
this.layers.unshift(layer);
|
|
42
|
+
// Update all strengths
|
|
43
|
+
this.updateStrengths();
|
|
44
|
+
return id;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Add a layer at a specific position.
|
|
48
|
+
*
|
|
49
|
+
* @param file - Parsed IFCX file
|
|
50
|
+
* @param buffer - Original buffer
|
|
51
|
+
* @param name - Display name
|
|
52
|
+
* @param position - Position in stack (0 = strongest)
|
|
53
|
+
* @param source - Source information
|
|
54
|
+
* @returns Layer ID
|
|
55
|
+
*/
|
|
56
|
+
addLayerAt(file, buffer, name, position, source) {
|
|
57
|
+
const id = `layer-${this.nextId++}`;
|
|
58
|
+
const nodesByPath = new Map();
|
|
59
|
+
for (const node of file.data) {
|
|
60
|
+
const existing = nodesByPath.get(node.path) || [];
|
|
61
|
+
existing.push(node);
|
|
62
|
+
nodesByPath.set(node.path, existing);
|
|
63
|
+
}
|
|
64
|
+
const layer = {
|
|
65
|
+
id,
|
|
66
|
+
name,
|
|
67
|
+
file,
|
|
68
|
+
buffer,
|
|
69
|
+
strength: position,
|
|
70
|
+
enabled: true,
|
|
71
|
+
source: source || { type: 'buffer', name },
|
|
72
|
+
nodesByPath,
|
|
73
|
+
loadedAt: Date.now(),
|
|
74
|
+
};
|
|
75
|
+
// Insert at specified position
|
|
76
|
+
const clampedPos = Math.max(0, Math.min(position, this.layers.length));
|
|
77
|
+
this.layers.splice(clampedPos, 0, layer);
|
|
78
|
+
this.updateStrengths();
|
|
79
|
+
return id;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Remove a layer from the stack.
|
|
83
|
+
*/
|
|
84
|
+
removeLayer(layerId) {
|
|
85
|
+
const index = this.layers.findIndex((l) => l.id === layerId);
|
|
86
|
+
if (index === -1)
|
|
87
|
+
return false;
|
|
88
|
+
this.layers.splice(index, 1);
|
|
89
|
+
this.updateStrengths();
|
|
90
|
+
return true;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Reorder layers based on new order of IDs.
|
|
94
|
+
* IDs not in the list are removed. IDs not found are ignored.
|
|
95
|
+
*/
|
|
96
|
+
reorderLayers(orderedIds) {
|
|
97
|
+
const layerMap = new Map(this.layers.map((l) => [l.id, l]));
|
|
98
|
+
const newLayers = [];
|
|
99
|
+
for (const id of orderedIds) {
|
|
100
|
+
const layer = layerMap.get(id);
|
|
101
|
+
if (layer) {
|
|
102
|
+
newLayers.push(layer);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
this.layers = newLayers;
|
|
106
|
+
this.updateStrengths();
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Move a layer to a new position.
|
|
110
|
+
*/
|
|
111
|
+
moveLayer(layerId, newPosition) {
|
|
112
|
+
const currentIndex = this.layers.findIndex((l) => l.id === layerId);
|
|
113
|
+
if (currentIndex === -1)
|
|
114
|
+
return false;
|
|
115
|
+
const [layer] = this.layers.splice(currentIndex, 1);
|
|
116
|
+
const clampedPos = Math.max(0, Math.min(newPosition, this.layers.length));
|
|
117
|
+
this.layers.splice(clampedPos, 0, layer);
|
|
118
|
+
this.updateStrengths();
|
|
119
|
+
return true;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Toggle layer enabled state.
|
|
123
|
+
*/
|
|
124
|
+
setLayerEnabled(layerId, enabled) {
|
|
125
|
+
const layer = this.layers.find((l) => l.id === layerId);
|
|
126
|
+
if (!layer)
|
|
127
|
+
return false;
|
|
128
|
+
layer.enabled = enabled;
|
|
129
|
+
return true;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Toggle layer enabled state.
|
|
133
|
+
*/
|
|
134
|
+
toggleLayer(layerId) {
|
|
135
|
+
const layer = this.layers.find((l) => l.id === layerId);
|
|
136
|
+
if (!layer)
|
|
137
|
+
return false;
|
|
138
|
+
layer.enabled = !layer.enabled;
|
|
139
|
+
return true;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Get a layer by ID.
|
|
143
|
+
*/
|
|
144
|
+
getLayer(layerId) {
|
|
145
|
+
return this.layers.find((l) => l.id === layerId);
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Get all layers in order (strongest first).
|
|
149
|
+
*/
|
|
150
|
+
getLayers() {
|
|
151
|
+
return this.layers;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Get only enabled layers in order (strongest first).
|
|
155
|
+
*/
|
|
156
|
+
getEnabledLayers() {
|
|
157
|
+
return this.layers.filter((l) => l.enabled);
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Get layer count.
|
|
161
|
+
*/
|
|
162
|
+
get count() {
|
|
163
|
+
return this.layers.length;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Check if stack is empty.
|
|
167
|
+
*/
|
|
168
|
+
get isEmpty() {
|
|
169
|
+
return this.layers.length === 0;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Clear all layers.
|
|
173
|
+
*/
|
|
174
|
+
clear() {
|
|
175
|
+
this.layers = [];
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Get all unique paths across all enabled layers.
|
|
179
|
+
*/
|
|
180
|
+
getAllPaths() {
|
|
181
|
+
const paths = new Set();
|
|
182
|
+
for (const layer of this.getEnabledLayers()) {
|
|
183
|
+
for (const path of layer.nodesByPath.keys()) {
|
|
184
|
+
paths.add(path);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
return paths;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Get nodes for a path from all enabled layers, ordered by strength.
|
|
191
|
+
*/
|
|
192
|
+
getNodesForPath(path) {
|
|
193
|
+
const results = [];
|
|
194
|
+
for (const layer of this.getEnabledLayers()) {
|
|
195
|
+
const nodes = layer.nodesByPath.get(path);
|
|
196
|
+
if (nodes && nodes.length > 0) {
|
|
197
|
+
results.push({ layer, nodes });
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
return results;
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Check if a path exists in any enabled layer.
|
|
204
|
+
*/
|
|
205
|
+
hasPath(path) {
|
|
206
|
+
for (const layer of this.getEnabledLayers()) {
|
|
207
|
+
if (layer.nodesByPath.has(path)) {
|
|
208
|
+
return true;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
return false;
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Get summary statistics.
|
|
215
|
+
*/
|
|
216
|
+
getStats() {
|
|
217
|
+
const enabledLayers = this.getEnabledLayers();
|
|
218
|
+
let totalNodes = 0;
|
|
219
|
+
const uniquePaths = new Set();
|
|
220
|
+
for (const layer of enabledLayers) {
|
|
221
|
+
for (const [path, nodes] of layer.nodesByPath) {
|
|
222
|
+
uniquePaths.add(path);
|
|
223
|
+
totalNodes += nodes.length;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
return {
|
|
227
|
+
layerCount: this.layers.length,
|
|
228
|
+
enabledCount: enabledLayers.length,
|
|
229
|
+
totalNodes,
|
|
230
|
+
uniquePaths: uniquePaths.size,
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Update strength values based on current order.
|
|
235
|
+
*/
|
|
236
|
+
updateStrengths() {
|
|
237
|
+
for (let i = 0; i < this.layers.length; i++) {
|
|
238
|
+
this.layers[i].strength = i;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Create a new empty layer stack.
|
|
244
|
+
*/
|
|
245
|
+
export function createLayerStack() {
|
|
246
|
+
return new LayerStack();
|
|
247
|
+
}
|
|
248
|
+
//# sourceMappingURL=layer-stack.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layer-stack.js","sourceRoot":"","sources":["../src/layer-stack.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Path Resolver for Federated IFCX
|
|
3
|
+
*
|
|
4
|
+
* Handles resolution of IFCX paths including:
|
|
5
|
+
* - Direct UUID references: "93791d5d-5beb-437b-b8ec-2f1f0ba4bf3b"
|
|
6
|
+
* - Hierarchical paths: "uuid/ChildName/GrandchildName"
|
|
7
|
+
*/
|
|
8
|
+
import type { ComposedNode } from './types.js';
|
|
9
|
+
import type { IfcxLayer } from './layer-stack.js';
|
|
10
|
+
/**
|
|
11
|
+
* Parsed path components.
|
|
12
|
+
*/
|
|
13
|
+
export interface ParsedPath {
|
|
14
|
+
/** Root UUID or path segment */
|
|
15
|
+
root: string;
|
|
16
|
+
/** Child path segments (empty for direct UUID) */
|
|
17
|
+
segments: string[];
|
|
18
|
+
/** Whether root looks like a UUID */
|
|
19
|
+
isUuid: boolean;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Entry in the path index.
|
|
23
|
+
*/
|
|
24
|
+
export interface PathEntry {
|
|
25
|
+
/** Canonical UUID for this path */
|
|
26
|
+
uuid: string;
|
|
27
|
+
/** All known hierarchical paths to this node */
|
|
28
|
+
hierarchicalPaths: string[];
|
|
29
|
+
/** Layer IDs where this path is defined */
|
|
30
|
+
definedInLayers: string[];
|
|
31
|
+
/** Strongest (lowest index) layer ID */
|
|
32
|
+
primaryLayer: string;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Index for fast path lookups across layers.
|
|
36
|
+
*/
|
|
37
|
+
export declare class PathIndex {
|
|
38
|
+
/** Direct UUID lookup */
|
|
39
|
+
private byUuid;
|
|
40
|
+
/** Hierarchical path string lookup */
|
|
41
|
+
private byHierarchy;
|
|
42
|
+
/** Parent UUID -> (child name -> child UUID) */
|
|
43
|
+
private childNameIndex;
|
|
44
|
+
/**
|
|
45
|
+
* Build index from layers.
|
|
46
|
+
*/
|
|
47
|
+
buildIndex(layers: IfcxLayer[]): void;
|
|
48
|
+
/**
|
|
49
|
+
* Build hierarchical path index by walking children relationships.
|
|
50
|
+
*/
|
|
51
|
+
private buildHierarchicalIndex;
|
|
52
|
+
/**
|
|
53
|
+
* Recursively index hierarchical paths for a node.
|
|
54
|
+
*/
|
|
55
|
+
private indexHierarchicalPaths;
|
|
56
|
+
/**
|
|
57
|
+
* Resolve a path to its canonical UUID.
|
|
58
|
+
* Accepts both direct UUIDs and hierarchical paths.
|
|
59
|
+
*/
|
|
60
|
+
resolvePath(path: string): string | null;
|
|
61
|
+
/**
|
|
62
|
+
* Walk a path through children relationships.
|
|
63
|
+
*/
|
|
64
|
+
private walkPath;
|
|
65
|
+
/**
|
|
66
|
+
* Get entry for a UUID.
|
|
67
|
+
*/
|
|
68
|
+
getEntry(uuid: string): PathEntry | undefined;
|
|
69
|
+
/**
|
|
70
|
+
* Get all UUIDs in the index.
|
|
71
|
+
*/
|
|
72
|
+
getAllUuids(): string[];
|
|
73
|
+
/**
|
|
74
|
+
* Get children of a node.
|
|
75
|
+
*/
|
|
76
|
+
getChildren(uuid: string): Map<string, string> | undefined;
|
|
77
|
+
/**
|
|
78
|
+
* Check if a path exists.
|
|
79
|
+
*/
|
|
80
|
+
hasPath(path: string): boolean;
|
|
81
|
+
/**
|
|
82
|
+
* Clear the index.
|
|
83
|
+
*/
|
|
84
|
+
clear(): void;
|
|
85
|
+
/**
|
|
86
|
+
* Get index statistics.
|
|
87
|
+
*/
|
|
88
|
+
getStats(): {
|
|
89
|
+
uuidCount: number;
|
|
90
|
+
hierarchicalCount: number;
|
|
91
|
+
childRelationships: number;
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Parse an IFCX path into components.
|
|
96
|
+
*
|
|
97
|
+
* Examples:
|
|
98
|
+
* "93791d5d-5beb-437b-b8ec-2f1f0ba4bf3b"
|
|
99
|
+
* -> { root: "93791d5d-...", segments: [], isUuid: true }
|
|
100
|
+
*
|
|
101
|
+
* "93791d5d-5beb-437b-b8ec-2f1f0ba4bf3b/My_Wall/Window"
|
|
102
|
+
* -> { root: "93791d5d-...", segments: ["My_Wall", "Window"], isUuid: true }
|
|
103
|
+
*/
|
|
104
|
+
export declare function parsePath(path: string): ParsedPath;
|
|
105
|
+
/**
|
|
106
|
+
* Walk a path through composed nodes.
|
|
107
|
+
*/
|
|
108
|
+
export declare function walkComposedPath(root: ComposedNode, segments: string[]): ComposedNode | null;
|
|
109
|
+
/**
|
|
110
|
+
* Create a new path index.
|
|
111
|
+
*/
|
|
112
|
+
export declare function createPathIndex(): PathIndex;
|
|
113
|
+
//# sourceMappingURL=path-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path-resolver.d.ts","sourceRoot":"","sources":["../src/path-resolver.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAY,MAAM,YAAY,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,qCAAqC;IACrC,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,mCAAmC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,2CAA2C;IAC3C,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,wCAAwC;IACxC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,qBAAa,SAAS;IACpB,yBAAyB;IACzB,OAAO,CAAC,MAAM,CAAgC;IAE9C,sCAAsC;IACtC,OAAO,CAAC,WAAW,CAA6B;IAEhD,gDAAgD;IAChD,OAAO,CAAC,cAAc,CAA0C;IAEhE;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI;IA2CrC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAO9B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA0B9B;;;OAGG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAqBxC;;OAEG;IACH,OAAO,CAAC,QAAQ;IAgBhB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAI7C;;OAEG;IACH,WAAW,IAAI,MAAM,EAAE;IAIvB;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS;IAI1D;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI9B;;OAEG;IACH,KAAK,IAAI,IAAI;IAMb;;OAEG;IACH,QAAQ,IAAI;QACV,SAAS,EAAE,MAAM,CAAC;QAClB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,kBAAkB,EAAE,MAAM,CAAC;KAC5B;CAYF;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAalD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,MAAM,EAAE,GACjB,YAAY,GAAG,IAAI,CAUrB;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,SAAS,CAE3C"}
|