@pilotdev/pilot-bim-dataprovider 24.10.0 → 24.12.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 (33) hide show
  1. package/lib/index.d.ts +1 -1
  2. package/lib/index.js +1 -1
  3. package/lib/index.js.map +1 -1
  4. package/lib/src/file-system/IFileSystem.d.ts +47 -0
  5. package/lib/src/file-system/IFileSystem.js +179 -0
  6. package/lib/src/file-system/IFileSystem.js.map +1 -0
  7. package/lib/src/file-system/IFileSystemCache.d.ts +62 -0
  8. package/lib/src/file-system/IFileSystemCache.js +154 -0
  9. package/lib/src/file-system/IFileSystemCache.js.map +1 -0
  10. package/lib/src/file-system/OPFS.d.ts +35 -0
  11. package/lib/src/file-system/OPFS.js +182 -0
  12. package/lib/src/file-system/OPFS.js.map +1 -0
  13. package/lib/src/file-system/PATH.d.ts +8 -0
  14. package/lib/src/file-system/PATH.js +34 -0
  15. package/lib/src/file-system/PATH.js.map +1 -0
  16. package/lib/src/model/BimDataElement.d.ts +14 -14
  17. package/lib/src/model/BimDataElement.js.map +1 -1
  18. package/lib/src/model/BimDataPart.d.ts +3 -2
  19. package/lib/src/model/BimDataPart.js +20 -15
  20. package/lib/src/model/BimDataPart.js.map +1 -1
  21. package/lib/src/model/BimDataProvider.js +1 -1
  22. package/lib/src/model/BimDataProvider.js.map +1 -1
  23. package/lib/src/model/Consts.d.ts +3 -0
  24. package/lib/src/model/Consts.js +3 -0
  25. package/lib/src/model/Consts.js.map +1 -1
  26. package/lib/src/utils/WasmTools.js.map +1 -1
  27. package/lib/src/wasm/pilot_bim_dataprovider.d.ts +78 -2
  28. package/lib/src/wasm/pilot_bim_dataprovider.js +1 -1
  29. package/lib/src/wasm/pilot_bim_dataprovider.wasm +0 -0
  30. package/lib/src/wasm/wasm.worker.d.ts +42 -35
  31. package/lib/src/wasm/wasm.worker.js +175 -106
  32. package/lib/src/wasm/wasm.worker.js.map +1 -1
  33. package/package.json +3 -2
@@ -3,47 +3,54 @@ import { BimCloudHierarchyItem, BimCloudMetadata, BimDataElement } from "../mode
3
3
  import { BimDataElementPropertySet } from "../model/BimDataElementPropertySet.js";
4
4
  interface IWasmWorker {
5
5
  init(): Promise<void>;
6
- open(modelPartId: string, buffer: ArrayBuffer): void;
7
- close(modelPartId: string): void;
8
- dispose(modelPartId: string): void;
6
+ open(modelPartId: string, buffer: ArrayBuffer): Promise<void>;
7
+ close(modelPartId: string): Promise<void>;
8
+ dispose(): void;
9
9
  flushMemory(): Promise<void>;
10
10
  auditModelPart(modelPartId: string): void;
11
- updateModelPart(modelPartId: string, buffer: ArrayBuffer): void;
12
- getAllTessellations(modelPartId: string): Map<string, BimDataTessellation>;
13
- getTessellations(modelPartId: string, versionFrom: bigint, versionTo: bigint): Map<string, BimDataTessellation>;
14
- getAllElements(modelPartId: string): BimDataElement[];
15
- getElements(modelPartId: string, versionFrom: bigint, versionTo: bigint): BimDataElement[];
16
- getDiffElements(modelPartId: string, versionFrom: bigint, versionTo: bigint): BimDataElement[];
17
- getElementTessellations(modelPartId: string, versionFrom: bigint, versionTo: bigint): Map<string, BimDataTessellation>;
18
- getElementProperties(modelPartId: string, elementId: string, version: bigint): BimDataElementPropertySet[];
19
- getAllVersions(modelPartId: string): bigint[];
20
- getLatestVersion(modelPartId: string): bigint;
21
- getCloudPoints(cloudPartId: string, index: number, interlive: number): Float32Array;
22
- getCloudHierarchy(cloudPartId: string): BimCloudHierarchyItem[];
23
- getCloudParameters(cloudPartId: string): Map<string, string>;
24
- getCloudMetadata(cloudPartId: string): BimCloudMetadata;
11
+ updateModelPart(modelPartId: string, buffer: ArrayBuffer): Promise<void>;
12
+ getAllTessellations(modelPartId: string): Promise<Map<string, BimDataTessellation>>;
13
+ getTessellations(modelPartId: string, versionFrom: bigint, versionTo: bigint): Promise<Map<string, BimDataTessellation>>;
14
+ getAllElements(modelPartId: string): Promise<BimDataElement[]>;
15
+ getElements(modelPartId: string, versionFrom: bigint, versionTo: bigint): Promise<BimDataElement[]>;
16
+ getDiffElements(modelPartId: string, versionFrom: bigint, versionTo: bigint): Promise<BimDataElement[]>;
17
+ getElementTessellations(modelPartId: string, versionFrom: bigint, versionTo: bigint): Promise<Map<string, BimDataTessellation>>;
18
+ getElementProperties(modelPartId: string, elementId: string, version: bigint): Promise<BimDataElementPropertySet[]>;
19
+ getAllVersions(modelPartId: string): Promise<bigint[]>;
20
+ getLatestVersion(modelPartId: string): Promise<bigint>;
21
+ cacheCloudPart(modelPartId: string): Promise<void>;
22
+ getCloudPoints(modelPartId: string, index: number): Promise<Float32Array>;
23
+ getCloudHierarchy(modelPartId: string): Promise<BimCloudHierarchyItem[]>;
24
+ getCloudParameters(modelPartId: string): Promise<Map<string, string>>;
25
+ getCloudMetadata(modelPartId: string): Promise<BimCloudMetadata>;
25
26
  }
26
27
  export declare class WasmWorker implements IWasmWorker {
28
+ private readonly _isSecureContext;
27
29
  private _module?;
30
+ private _cachedCloudReaders;
31
+ private _fs;
32
+ constructor();
28
33
  init(): Promise<void>;
29
- open(id: string, buffer: ArrayBuffer): void;
30
- close(modelPartId: string): void;
31
- dispose(modelPartId: string): void;
32
- auditModelPart(id: string): void;
33
- updateModelPart(modelPartId: string, buffer: ArrayBuffer): void;
34
- getAllTessellations(modelPartId: string): Map<string, BimDataTessellation>;
35
- getTessellations(modelPartId: string, versionFrom: bigint, versionTo: bigint): Map<string, BimDataTessellation>;
36
- getAllElements(modelPartId: string): BimDataElement[];
37
- getElements(modelPartId: string, versionFrom: bigint, versionTo: bigint): BimDataElement[];
38
- getDiffElements(modelPartId: string, versionFrom: bigint, versionTo: bigint): BimDataElement[];
39
- getElementProperties(modelPartId: string, elementId: string, version: bigint): BimDataElementPropertySet[];
40
- getElementTessellations(modelPartId: string, versionFrom: bigint, versionTo: bigint): Map<string, BimDataTessellation>;
41
- getAllVersions(modelPartId: string): bigint[];
42
- getLatestVersion(modelPartId: string): bigint;
43
- getCloudPoints(cloudPartId: string, index: number, interlive: number): Float32Array;
44
- getCloudHierarchy(cloudPartId: string): BimCloudHierarchyItem[];
45
- getCloudParameters(cloudPartId: string): Map<string, string>;
46
- getCloudMetadata(cloudPartId: string): BimCloudMetadata;
34
+ open(id: string, buffer: ArrayBuffer): Promise<void>;
35
+ close(modelPartId: string): Promise<void>;
36
+ dispose(): Promise<void>;
47
37
  flushMemory(): Promise<void>;
38
+ auditModelPart(modelPartId: string): Promise<void>;
39
+ updateModelPart(modelPartId: string, buffer: ArrayBuffer): Promise<void>;
40
+ getAllTessellations(modelPartId: string): Promise<Map<string, BimDataTessellation>>;
41
+ getTessellations(modelPartId: string, versionFrom: bigint, versionTo: bigint): Promise<Map<string, BimDataTessellation>>;
42
+ getAllElements(modelPartId: string): Promise<BimDataElement[]>;
43
+ getElements(modelPartId: string, versionFrom: bigint, versionTo: bigint): Promise<BimDataElement[]>;
44
+ getDiffElements(modelPartId: string, versionFrom: bigint, versionTo: bigint): Promise<BimDataElement[]>;
45
+ getElementProperties(modelPartId: string, elementId: string, version: bigint): Promise<BimDataElementPropertySet[]>;
46
+ getElementTessellations(modelPartId: string, versionFrom: bigint, versionTo: bigint): Promise<Map<string, BimDataTessellation>>;
47
+ getAllVersions(modelPartId: string): Promise<bigint[]>;
48
+ getLatestVersion(modelPartId: string): Promise<bigint>;
49
+ cacheCloudPart(modelPartId: string): Promise<void>;
50
+ getCloudPoints(modelPartId: string, index: number): Promise<Float32Array>;
51
+ getCloudHierarchy(modelPartId: string): Promise<BimCloudHierarchyItem[]>;
52
+ getCloudParameters(modelPartId: string): Promise<Map<string, string>>;
53
+ getCloudMetadata(modelPartId: string): Promise<BimCloudMetadata>;
54
+ private runSyncFileOp;
48
55
  }
49
56
  export {};
@@ -2,182 +2,234 @@ import * as comlink from "comlink";
2
2
  import BimDataProviderModule from "./pilot_bim_dataprovider.js";
3
3
  import { WasmTools } from "../utils/WasmTools.js";
4
4
  import { BimDataConverter } from "../utils/ViewerTools.js";
5
- const MODEL_DIR = '/bim-models';
5
+ import { DATA_ROOT_FOLDER } from "../model/Consts.js";
6
+ import { AsyncFileSystem, ProxyFileSystem } from "../file-system/IFileSystem.js";
6
7
  export class WasmWorker {
8
+ constructor() {
9
+ this._cachedCloudReaders = new Map();
10
+ this._isSecureContext = (self && Object.prototype.hasOwnProperty.call(self, 'isSecureContext ')) ? self.isSecureContext : false;
11
+ this._fs = this._isSecureContext ? new AsyncFileSystem() : new ProxyFileSystem();
12
+ }
7
13
  async init() {
8
14
  const moduleOverrides = {
9
- print: (s) => {
10
- console.log(s);
11
- },
12
- printErr: (e) => {
13
- console.error(e);
14
- },
15
+ print: (s) => console.log(s),
16
+ printErr: (e) => console.error(e)
15
17
  };
16
18
  this._module = await BimDataProviderModule(moduleOverrides);
17
- this._module.FS.mkdir(MODEL_DIR);
18
- }
19
- open(id, buffer) {
19
+ this._module.FS.mkdir(DATA_ROOT_FOLDER);
20
+ const moduleFS = this._module.FS;
21
+ await this._fs.init();
22
+ this._fs.mountTo(moduleFS, DATA_ROOT_FOLDER);
23
+ }
24
+ async open(id, buffer) {
25
+ this._cachedCloudReaders.get(id)?.close();
26
+ this._cachedCloudReaders.delete(id);
20
27
  if (!id)
21
28
  id = "id_" + (0xffffffff * Math.random() >>> 0);
22
- const mp = new BimDataModelPartAccessor(id, this._module);
23
- mp.open(buffer);
29
+ const data = new Uint8Array(buffer);
30
+ if (this._fs.isFileExists(id)) {
31
+ await this._fs.writeFile(id, data);
32
+ }
33
+ else {
34
+ await this._fs.makeFile(id, data);
35
+ }
24
36
  }
25
- close(modelPartId) {
26
- const modelPart = new BimDataModelPartAccessor(modelPartId, this._module);
27
- modelPart.close();
37
+ async close(modelPartId) {
38
+ this._cachedCloudReaders.get(modelPartId)?.close();
39
+ this._cachedCloudReaders.delete(modelPartId);
40
+ if (this._fs.isFileExists(modelPartId)) {
41
+ await this._fs.remove(modelPartId);
42
+ }
28
43
  }
29
- dispose(modelPartId) {
30
- const modelPart = new BimDataModelPartAccessor(modelPartId, this._module);
31
- modelPart.dispose();
44
+ async dispose() {
45
+ for (const [, reader] of this._cachedCloudReaders) {
46
+ await reader.close();
47
+ }
48
+ this._cachedCloudReaders.clear();
49
+ await this._fs.dispose();
32
50
  }
33
- auditModelPart(id) {
34
- const modelPart = new BimDataModelPartAccessor(id, this._module);
35
- modelPart.auditModelDatabase();
51
+ async flushMemory() {
52
+ if (!this._module)
53
+ return;
54
+ const cloudParts = Array.from(this._cachedCloudReaders.keys());
55
+ for (const [, reader] of this._cachedCloudReaders) {
56
+ await reader.close();
57
+ }
58
+ this._cachedCloudReaders.clear();
59
+ await this.init();
60
+ const newModule = this._module;
61
+ for (const cloudId of cloudParts) {
62
+ const reader = new BimCloudPartAccessor(cloudId, newModule);
63
+ await reader.open();
64
+ this._cachedCloudReaders.set(cloudId, reader);
65
+ }
36
66
  }
37
- updateModelPart(modelPartId, buffer) {
67
+ // ModelPart
68
+ auditModelPart(modelPartId) {
38
69
  const modelPart = new BimDataModelPartAccessor(modelPartId, this._module);
39
- modelPart.update(buffer);
70
+ return this.runSyncFileOp(modelPartId, () => modelPart.auditModelDatabase());
71
+ }
72
+ async updateModelPart(modelPartId, buffer) {
73
+ const module = this._module;
74
+ const modelPart = new BimDataModelPartAccessor(modelPartId, module);
75
+ const origin = modelPart.path;
76
+ const data = new Uint8Array(buffer);
77
+ const diff = "tmp_" + (0xffffffff * Math.random() >>> 0);
78
+ module.FS.createDataFile("/", diff, data, true, true, true);
79
+ if (this._isSecureContext) { // Workaround to merge in secure context:
80
+ // read origin file
81
+ const originData = await this.runSyncFileOp(modelPartId, () => module.FS.readFile(origin));
82
+ // create temp file in MEMFS
83
+ const tmpOrigin = "tmp_" + (0xffffffff * Math.random() >>> 0);
84
+ module.FS.createDataFile("/", tmpOrigin, originData, true, true, true);
85
+ // merge files in MEMFS
86
+ modelPart.merge(tmpOrigin, diff);
87
+ // read merged data
88
+ const mergedData = module.FS.readFile(tmpOrigin);
89
+ // store merged data
90
+ this.runSyncFileOp(modelPartId, () => this._fs.writeFile(modelPartId, mergedData));
91
+ // delete temp file
92
+ module.FS.unlink(tmpOrigin);
93
+ }
94
+ else {
95
+ modelPart.merge(origin, diff);
96
+ }
97
+ module.FS.unlink(diff);
40
98
  }
41
99
  getAllTessellations(modelPartId) {
42
100
  const modelPart = new BimDataModelPartAccessor(modelPartId, this._module);
43
- return modelPart.getAllTessellations();
101
+ return this.runSyncFileOp(modelPartId, () => modelPart.getAllTessellations());
44
102
  }
45
103
  getTessellations(modelPartId, versionFrom, versionTo) {
46
104
  const modelPart = new BimDataModelPartAccessor(modelPartId, this._module);
47
- return modelPart.getTessellations(versionFrom, versionTo);
105
+ return this.runSyncFileOp(modelPartId, () => modelPart.getTessellations(versionFrom, versionTo));
48
106
  }
49
107
  getAllElements(modelPartId) {
50
108
  const modelPart = new BimDataModelPartAccessor(modelPartId, this._module);
51
- return modelPart.getAllElements();
109
+ return this.runSyncFileOp(modelPartId, () => modelPart.getAllElements());
52
110
  }
53
111
  getElements(modelPartId, versionFrom, versionTo) {
54
112
  const modelPart = new BimDataModelPartAccessor(modelPartId, this._module);
55
- return modelPart.getElements(versionFrom, versionTo);
113
+ return this.runSyncFileOp(modelPartId, () => modelPart.getElements(versionFrom, versionTo));
56
114
  }
57
115
  getDiffElements(modelPartId, versionFrom, versionTo) {
58
116
  const modelPart = new BimDataModelPartAccessor(modelPartId, this._module);
59
- return modelPart.getDiffElements(versionFrom, versionTo);
117
+ return this.runSyncFileOp(modelPartId, () => modelPart.getDiffElements(versionFrom, versionTo));
60
118
  }
61
119
  getElementProperties(modelPartId, elementId, version) {
62
120
  const modelPart = new BimDataModelPartAccessor(modelPartId, this._module);
63
- return modelPart.getElementProperties(elementId, version);
121
+ return this.runSyncFileOp(modelPartId, () => modelPart.getElementProperties(elementId, version));
64
122
  }
65
123
  getElementTessellations(modelPartId, versionFrom, versionTo) {
66
124
  const modelPart = new BimDataModelPartAccessor(modelPartId, this._module);
67
- return modelPart.getElementTessellations(versionFrom, versionTo);
125
+ return this.runSyncFileOp(modelPartId, () => modelPart.getElementTessellations(versionFrom, versionTo));
68
126
  }
69
127
  getAllVersions(modelPartId) {
70
128
  const modelPart = new BimDataModelPartAccessor(modelPartId, this._module);
71
- return modelPart.getAllVersions();
129
+ return this.runSyncFileOp(modelPartId, () => modelPart.getAllVersions());
72
130
  }
73
131
  getLatestVersion(modelPartId) {
74
132
  const modelPart = new BimDataModelPartAccessor(modelPartId, this._module);
75
- return modelPart.getLatestVersion();
76
- }
77
- getCloudPoints(cloudPartId, index, interlive) {
78
- const modelPart = new BimDataModelPartAccessor(cloudPartId, this._module);
79
- return modelPart.getCloudPoints(index, interlive);
80
- }
81
- getCloudHierarchy(cloudPartId) {
82
- const modelPart = new BimDataModelPartAccessor(cloudPartId, this._module);
83
- return modelPart.getCloudHierarchy();
84
- }
85
- getCloudParameters(cloudPartId) {
86
- const modelPart = new BimDataModelPartAccessor(cloudPartId, this._module);
87
- return modelPart.getCloudParameters();
88
- }
89
- getCloudMetadata(cloudPartId) {
90
- const modelPart = new BimDataModelPartAccessor(cloudPartId, this._module);
91
- return modelPart.getCloudMetadata();
92
- }
93
- async flushMemory() {
94
- if (!this._module)
95
- return;
96
- const oldModule = this._module;
97
- await this.init();
98
- const newModule = this._module;
99
- WasmTools.fsMoveRecursive(MODEL_DIR, oldModule.FS, newModule.FS);
133
+ return this.runSyncFileOp(modelPartId, () => modelPart.getLatestVersion());
134
+ }
135
+ // CloudPart
136
+ async cacheCloudPart(modelPartId) {
137
+ const reader = new BimCloudPartAccessor(modelPartId, this._module, () => this._fs.openSyncFileAccess(modelPartId), () => Promise.resolve(this._fs.closeSyncFileAccess(modelPartId)));
138
+ await this._cachedCloudReaders.get(modelPartId)?.close();
139
+ await reader.open();
140
+ this._cachedCloudReaders.set(modelPartId, reader);
141
+ }
142
+ getCloudPoints(modelPartId, index) {
143
+ const modelPart = this._cachedCloudReaders.get(modelPartId) ?? new BimCloudPartAccessor(modelPartId, this._module);
144
+ return this.runSyncFileOp(modelPartId, () => modelPart.getCloudPoints(index));
145
+ }
146
+ getCloudHierarchy(modelPartId) {
147
+ const modelPart = this._cachedCloudReaders.get(modelPartId) ?? new BimCloudPartAccessor(modelPartId, this._module);
148
+ return this.runSyncFileOp(modelPartId, () => modelPart.getCloudHierarchy());
149
+ }
150
+ getCloudParameters(modelPartId) {
151
+ const modelPart = this._cachedCloudReaders.get(modelPartId) ?? new BimCloudPartAccessor(modelPartId, this._module);
152
+ return this.runSyncFileOp(modelPartId, () => modelPart.getCloudParameters());
153
+ }
154
+ getCloudMetadata(modelPartId) {
155
+ const modelPart = this._cachedCloudReaders.get(modelPartId) ?? new BimCloudPartAccessor(modelPartId, this._module);
156
+ return this.runSyncFileOp(modelPartId, () => modelPart.getCloudMetadata());
157
+ }
158
+ async runSyncFileOp(path, opFunc) {
159
+ try {
160
+ await this._fs.openSyncFileAccess(path);
161
+ return opFunc();
162
+ }
163
+ catch (e) {
164
+ console.error(e);
165
+ throw e;
166
+ }
167
+ finally {
168
+ this._fs.closeSyncFileAccess(path);
169
+ }
100
170
  }
101
171
  }
102
172
  comlink.expose(WasmWorker);
103
- class BimDataModelPartAccessor {
173
+ class BimDataPartAccessor {
104
174
  constructor(id, module) {
105
175
  this.id = id;
106
176
  this._module = module;
107
177
  }
108
- dispose() {
109
- this.close();
178
+ get path() {
179
+ return '/' + DATA_ROOT_FOLDER + '/' + this.id;
110
180
  }
111
- open(buffer) {
112
- const data = new Uint8Array(buffer);
113
- if (WasmTools.isFileExists(this._path, this._module)) {
114
- this._module.FS.writeFile(this._path, data);
115
- }
116
- else {
117
- this._module.FS.createDataFile(MODEL_DIR, this.id, data, true, true, true);
118
- }
119
- }
120
- auditModelDatabase() {
121
- const databaseVersion = this._module.getDatabaseVersion(this._path);
122
- if (databaseVersion < 2) {
123
- this._module.auditDatabase(this._path);
124
- }
125
- }
126
- update(buffer) {
127
- const data = new Uint8Array(buffer);
128
- const tmpFileName = "tmp_" + (0xffffffff * Math.random() >>> 0);
129
- this._module.FS.createDataFile("/", tmpFileName, data, true, true, true);
130
- const targetVersion = this._module.getDatabaseVersion(this._path);
131
- const sourceVersion = this._module.getDatabaseVersion(tmpFileName);
181
+ }
182
+ class BimDataModelPartAccessor extends BimDataPartAccessor {
183
+ merge(targetPath, sourcePath) {
184
+ const targetVersion = this._module.getDatabaseVersion(targetPath);
185
+ const sourceVersion = this._module.getDatabaseVersion(sourcePath);
132
186
  if (sourceVersion < 2) {
133
- this._module.auditDatabase(tmpFileName);
187
+ this._module.auditDatabase(sourcePath);
134
188
  }
135
189
  if (sourceVersion != targetVersion) {
136
- this._module.manualMergeDatabases(this._path, tmpFileName);
190
+ this._module.manualMergeDatabases(targetPath, sourcePath);
137
191
  }
138
192
  else {
139
- this._module.mergeDatabases(this._path, tmpFileName);
140
- }
141
- if (WasmTools.isFileExists(tmpFileName, this._module)) {
142
- this._module.FS.unlink(tmpFileName);
193
+ this._module.mergeDatabases(targetPath, sourcePath);
143
194
  }
144
195
  }
145
- close() {
146
- if (WasmTools.isFileExists(this._path, this._module)) {
147
- this._module.FS.unlink(this._path);
196
+ auditModelDatabase() {
197
+ const databaseVersion = this._module.getDatabaseVersion(this.path);
198
+ if (databaseVersion < 2) {
199
+ this._module.auditDatabase(this.path);
148
200
  }
149
201
  }
150
202
  getAllTessellations() {
151
- const vts = this._module.getAllTessellations(this._path);
203
+ const vts = this._module.getAllTessellations(this.path);
152
204
  return BimDataConverter.toBimDataTessellations(this._module, vts, true);
153
205
  }
154
206
  getTessellations(versionFrom, versionTo) {
155
- const vts = this._module.getTessellations(this._path, versionFrom, versionTo);
207
+ const vts = this._module.getTessellations(this.path, versionFrom, versionTo);
156
208
  return BimDataConverter.toBimDataTessellations(this._module, vts, true);
157
209
  }
158
210
  getAllElements() {
159
- const nds = this._module.getAllNodes(this._path);
211
+ const nds = this._module.getAllNodes(this.path);
160
212
  return BimDataConverter.toToBimDataElements(this._module, nds, true);
161
213
  }
162
214
  getElements(versionFrom, versionTo) {
163
- const nds = this._module.getNodes(this._path, versionFrom, versionTo);
215
+ const nds = this._module.getNodes(this.path, versionFrom, versionTo);
164
216
  return BimDataConverter.toToBimDataElements(this._module, nds, true);
165
217
  }
166
218
  getDiffElements(versionFrom, versionTo) {
167
- const result = this._module.getComparedNodes(this._path, versionFrom, versionTo);
219
+ const result = this._module.getComparedNodes(this.path, versionFrom, versionTo);
168
220
  return BimDataConverter.toToBimDataElements(this._module, result, true);
169
221
  }
170
222
  getElementTessellations(versionFrom, versionTo) {
171
- const vts = this._module.getNodesTessellations(this._path, versionFrom, versionTo);
223
+ const vts = this._module.getNodesTessellations(this.path, versionFrom, versionTo);
172
224
  return BimDataConverter.toBimDataTessellations(this._module, vts, true);
173
225
  }
174
226
  getElementProperties(elementId, version) {
175
- const set = this._module.getProperties(this._path, elementId, version);
227
+ const set = this._module.getProperties(this.path, elementId, version);
176
228
  return BimDataConverter.toModelElementPropertySet(set, true);
177
229
  }
178
230
  getAllVersions() {
179
231
  const versions = new Array();
180
- const bimVersions = this._module.getAllVersions(this._path);
232
+ const bimVersions = this._module.getAllVersions(this.path);
181
233
  for (let index = 0; index < bimVersions.size(); index++) {
182
234
  const version = bimVersions.get(index);
183
235
  versions.push(version);
@@ -186,26 +238,43 @@ class BimDataModelPartAccessor {
186
238
  return versions;
187
239
  }
188
240
  getLatestVersion() {
189
- return this._module.getLatestVersion(this._path);
241
+ return this._module.getLatestVersion(this.path);
190
242
  }
191
- getCloudPoints(index, interlive) {
192
- const pointsData = this._module.getCloudPoints(this._path, index, interlive);
243
+ }
244
+ class BimCloudPartAccessor extends BimDataPartAccessor {
245
+ constructor(id, module, openFileFunc, closeFileFunc) {
246
+ super(id, module);
247
+ this.openFileFunc = openFileFunc;
248
+ this.closeFileFunc = closeFileFunc;
249
+ }
250
+ async open() {
251
+ if (this.openFileFunc)
252
+ await this.openFileFunc();
253
+ this._cloudReader = this._module.getCloudReader();
254
+ this._cloudReader.open(this.path);
255
+ }
256
+ async close() {
257
+ this._cloudReader?.close();
258
+ this._cloudReader?.delete();
259
+ this._cloudReader = undefined;
260
+ if (this.closeFileFunc)
261
+ await this.closeFileFunc();
262
+ }
263
+ getCloudPoints(index) {
264
+ const pointsData = this._cloudReader ? this._cloudReader.getCloudPoints(index, true) : this._module.getCloudPoints(this.path, index);
193
265
  return BimDataConverter.toCloudPoints(this._module, pointsData, true);
194
266
  }
195
267
  getCloudHierarchy() {
196
- const result = this._module.getCloudHierarchy(this._path);
268
+ const result = this._cloudReader ? this._cloudReader.getCloudHierarchy() : this._module.getCloudHierarchy(this.path);
197
269
  return BimDataConverter.toBimCloudHierarchy(result, true);
198
270
  }
199
271
  getCloudParameters() {
200
- const result = this._module.getCloudParameters(this._path);
272
+ const result = this._cloudReader ? this._cloudReader.getCloudParameters() : this._module.getCloudParameters(this.path);
201
273
  return WasmTools.wasmMapToMap(result, true);
202
274
  }
203
275
  getCloudMetadata() {
204
- const result = this._module.getCloudMetadata(this._path);
276
+ const result = this._cloudReader ? this._cloudReader.getCloudMetadata() : this._module.getCloudMetadata(this.path);
205
277
  return BimDataConverter.toCloudMetadata(result, true);
206
278
  }
207
- get _path() {
208
- return MODEL_DIR + '/' + this.id;
209
- }
210
279
  }
211
280
  //# sourceMappingURL=wasm.worker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wasm.worker.js","sourceRoot":"","sources":["../../../src/wasm/wasm.worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wasm.worker.js","sourceRoot":"","sources":["../../../src/wasm/wasm.worker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAEnC,OAAO,qBAAqB,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAG3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAe,eAAe,EAAE,MAAM,+BAA+B,CAAC;AA4B9F,MAAM,OAAO,UAAU;IAMrB;QAHQ,wBAAmB,GAAsC,IAAI,GAAG,EAAE,CAAC;QAIzE,IAAI,CAAC,gBAAgB,GAAG,CAAC,IAAI,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC;QAChI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC,CAAC,IAAI,eAAe,EAAE,CAAC;IACnF,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,eAAe,GAA8B;YACjD,KAAK,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YACpC,QAAQ,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;SAC1C,CAAC;QAEF,IAAI,CAAC,OAAO,GAAG,MAAM,qBAAqB,CAAC,eAAe,CAAC,CAAC;QAC5D,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACxC,MAAM,QAAQ,GAAQ,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAEtC,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACtB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IAE/C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAU,EAAE,MAAmB;QACxC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;QAC1C,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAEpC,IAAI,CAAC,EAAE;YACL,EAAE,GAAG,KAAK,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QAElD,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;QAEpC,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE;YAC7B,MAAM,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;SACpC;aACI;YACH,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;SACnC;IACH,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,WAAmB;QAC7B,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,CAAC;QACnD,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAE7C,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE;YACtC,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;SACpC;IACH,CAAC;IAED,KAAK,CAAC,OAAO;QACX,KAAK,MAAM,CAAC,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,mBAAmB,EAAE;YACjD,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;SACtB;QACD,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;QACjC,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,WAAW;QACf,IAAI,CAAC,IAAI,CAAC,OAAO;YACf,OAAO;QAET,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/D,KAAK,MAAM,CAAC,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,mBAAmB,EAAE;YACjD,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;SACtB;QACD,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;QAEjC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC;QAE/B,KAAK,MAAM,OAAO,IAAI,UAAU,EAAE;YAChC,MAAM,MAAM,GAAG,IAAI,oBAAoB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAC5D,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;SAC/C;IACH,CAAC;IAED,YAAY;IACZ,cAAc,CAAC,WAAmB;QAChC,MAAM,SAAS,GAAG,IAAI,wBAAwB,CAAC,WAAW,EAAkB,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1F,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAC/E,CAAC;IACD,KAAK,CAAC,eAAe,CAAC,WAAmB,EAAE,MAAmB;QAC5D,MAAM,MAAM,GAAmB,IAAI,CAAC,OAAO,CAAC;QAC5C,MAAM,SAAS,GAAG,IAAI,wBAAwB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACpE,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC;QAE9B,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QACzD,MAAM,CAAC,EAAE,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAE5D,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE,yCAAyC;YACpE,mBAAmB;YACnB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;YAC3F,4BAA4B;YAC5B,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;YAC9D,MAAM,CAAC,EAAE,CAAC,cAAc,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YACvE,uBAAuB;YACvB,SAAS,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACjC,mBAAmB;YACnB,MAAM,UAAU,GAAG,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACjD,oBAAoB;YACpB,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;YACnF,mBAAmB;YACnB,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SAC7B;aACI;YACH,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;SAC/B;QACD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IACD,mBAAmB,CAAC,WAAmB;QACrC,MAAM,SAAS,GAAG,IAAI,wBAAwB,CAAC,WAAW,EAAkB,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1F,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAChF,CAAC;IACD,gBAAgB,CAAC,WAAmB,EAAE,WAAmB,EAAE,SAAiB;QAC1E,MAAM,SAAS,GAAG,IAAI,wBAAwB,CAAC,WAAW,EAAkB,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1F,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,gBAAgB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;IACnG,CAAC;IACD,cAAc,CAAC,WAAmB;QAChC,MAAM,SAAS,GAAG,IAAI,wBAAwB,CAAC,WAAW,EAAkB,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1F,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC,CAAC;IAC3E,CAAC;IACD,WAAW,CAAC,WAAmB,EAAE,WAAmB,EAAE,SAAiB;QACrE,MAAM,SAAS,GAAG,IAAI,wBAAwB,CAAC,WAAW,EAAkB,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1F,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;IAC9F,CAAC;IACD,eAAe,CAAC,WAAmB,EAAE,WAAmB,EAAE,SAAiB;QACzE,MAAM,SAAS,GAAG,IAAI,wBAAwB,CAAC,WAAW,EAAkB,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1F,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,eAAe,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;IAClG,CAAC;IACD,oBAAoB,CAAC,WAAmB,EAAE,SAAiB,EAAE,OAAe;QAC1E,MAAM,SAAS,GAAG,IAAI,wBAAwB,CAAC,WAAW,EAAkB,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1F,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,oBAAoB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;IACnG,CAAC;IACD,uBAAuB,CAAC,WAAmB,EAAE,WAAmB,EAAE,SAAiB;QACjF,MAAM,SAAS,GAAG,IAAI,wBAAwB,CAAC,WAAW,EAAkB,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1F,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,uBAAuB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;IAC1G,CAAC;IACD,cAAc,CAAC,WAAmB;QAChC,MAAM,SAAS,GAAG,IAAI,wBAAwB,CAAC,WAAW,EAAkB,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1F,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC,CAAC;IAC3E,CAAC;IACD,gBAAgB,CAAC,WAAmB;QAClC,MAAM,SAAS,GAAG,IAAI,wBAAwB,CAAC,WAAW,EAAkB,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1F,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,YAAY;IACZ,KAAK,CAAC,cAAc,CAAC,WAAmB;QACtC,MAAM,MAAM,GAAG,IAAI,oBAAoB,CAAC,WAAW,EAAkB,IAAI,CAAC,OAAO,EAC/E,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,WAAW,CAAC,EAC9C,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,CACjE,CAAC;QAEF,MAAM,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,CAAC;QACzD,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACpD,CAAC;IACD,cAAc,CAAC,WAAmB,EAAE,KAAa;QAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI,oBAAoB,CAAC,WAAW,EAAkB,IAAI,CAAC,OAAO,CAAC,CAAC;QACnI,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;IAChF,CAAC;IACD,iBAAiB,CAAC,WAAmB;QACnC,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI,oBAAoB,CAAC,WAAW,EAAkB,IAAI,CAAC,OAAO,CAAC,CAAC;QACnI,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAC9E,CAAC;IACD,kBAAkB,CAAC,WAAmB;QACpC,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI,oBAAoB,CAAC,WAAW,EAAkB,IAAI,CAAC,OAAO,CAAC,CAAC;QACnI,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAC/E,CAAC;IACD,gBAAgB,CAAC,WAAmB;QAClC,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI,oBAAoB,CAAC,WAAW,EAAkB,IAAI,CAAC,OAAO,CAAC,CAAC;QACnI,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAC7E,CAAC;IAEO,KAAK,CAAC,aAAa,CAAI,IAAY,EAAE,MAAe;QAC1D,IAAI;YACF,MAAM,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YACxC,OAAO,MAAM,EAAE,CAAC;SACjB;QACD,OAAO,CAAC,EAAE;YACR,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACjB,MAAM,CAAC,CAAC;SACT;gBACO;YACN,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;SACpC;IACH,CAAC;CACF;AACD,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AAE3B,MAAe,mBAAmB;IAGhC,YAA4B,EAAU,EAAE,MAAsB;QAAlC,OAAE,GAAF,EAAE,CAAQ;QACpC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,GAAG,GAAG,gBAAgB,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC;IAChD,CAAC;CACF;AAED,MAAM,wBAAyB,SAAQ,mBAAmB;IAExD,KAAK,CAAC,UAAkB,EAAE,UAAkB;QAC1C,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAClE,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAElE,IAAI,aAAa,GAAG,CAAC,EAAE;YACrB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;SACxC;QAED,IAAI,aAAa,IAAI,aAAa,EAAE;YAClC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;SAC3D;aACI;YACH,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;SACrD;IACH,CAAC;IAED,kBAAkB;QAChB,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnE,IAAI,eAAe,GAAG,CAAC,EAAE;YACvB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACvC;IACH,CAAC;IAED,mBAAmB;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxD,OAAO,gBAAgB,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,gBAAgB,CAAC,WAAmB,EAAE,SAAiB;QACrD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QAC7E,OAAO,gBAAgB,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,cAAc;QACZ,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,OAAO,gBAAgB,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACvE,CAAC;IAED,WAAW,CAAC,WAAmB,EAAE,SAAiB;QAChD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QACrE,OAAO,gBAAgB,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACvE,CAAC;IAED,eAAe,CAAC,WAAmB,EAAE,SAAiB;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QAChF,OAAO,gBAAgB,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,uBAAuB,CAAC,WAAmB,EAAE,SAAiB;QAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QAClF,OAAO,gBAAgB,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,oBAAoB,CAAC,SAAiB,EAAE,OAAe;QACrD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QACtE,OAAO,gBAAgB,CAAC,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC/D,CAAC;IAED,cAAc;QACZ,MAAM,QAAQ,GAAG,IAAI,KAAK,EAAU,CAAC;QACrC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE3D,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE;YACvD,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACvC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACxB;QACD,WAAW,CAAC,MAAM,EAAE,CAAC;QACrB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;CACF;AAED,MAAM,oBAAqB,SAAQ,mBAAmB;IAGpD,YAAY,EAAU,EAAE,MAAsB,EAAW,YAAkC,EAAW,aAAmC;QACvI,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QADqC,iBAAY,GAAZ,YAAY,CAAsB;QAAW,kBAAa,GAAb,aAAa,CAAsB;IAEzI,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,YAAY;YACnB,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC5B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QAClD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;QAC5B,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAC9B,IAAI,IAAI,CAAC,aAAa;YACpB,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAED,cAAc,CAAC,KAAa;QAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACrI,OAAO,gBAAgB,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IACxE,CAAC;IAED,iBAAiB;QACf,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrH,OAAO,gBAAgB,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5D,CAAC;IAED,kBAAkB;QAChB,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvH,OAAO,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,gBAAgB;QACd,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnH,OAAO,gBAAgB,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACxD,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pilotdev/pilot-bim-dataprovider",
3
- "version": "24.10.0",
3
+ "version": "24.12.0",
4
4
  "description": "The package for reading data from a information model data container.",
5
5
  "main": "lib/index.js",
6
6
  "type": "module",
@@ -28,6 +28,7 @@
28
28
  "exclude": [
29
29
  "node_modules",
30
30
  "lib",
31
- "build.js"
31
+ "build.js",
32
+ "__tests__"
32
33
  ]
33
34
  }