@pilotdev/pilot-bim-dataprovider 24.10.0 → 24.13.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 (51) 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 +65 -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 +183 -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 +5 -2
  19. package/lib/src/model/BimDataPart.js +58 -21
  20. package/lib/src/model/BimDataPart.js.map +1 -1
  21. package/lib/src/model/BimDataProvider.js +4 -6
  22. package/lib/src/model/BimDataProvider.js.map +1 -1
  23. package/lib/src/model/BimDataTessellation.d.ts +1 -0
  24. package/lib/src/model/BimDataTessellation.js.map +1 -1
  25. package/lib/src/model/Consts.d.ts +3 -0
  26. package/lib/src/model/Consts.js +3 -0
  27. package/lib/src/model/Consts.js.map +1 -1
  28. package/lib/src/utils/ViewerTools.d.ts +8 -4
  29. package/lib/src/utils/ViewerTools.js +65 -40
  30. package/lib/src/utils/ViewerTools.js.map +1 -1
  31. package/lib/src/utils/WasmTools.d.ts +0 -1
  32. package/lib/src/utils/WasmTools.js +10 -16
  33. package/lib/src/utils/WasmTools.js.map +1 -1
  34. package/lib/src/wasm/pilot_bim_dataprovider.d.ts +80 -3
  35. package/lib/src/wasm/pilot_bim_dataprovider.js +1 -1
  36. package/lib/src/wasm/pilot_bim_dataprovider.wasm +0 -0
  37. package/lib/src/wasm/wasm.worker-node.cjs +1 -0
  38. package/lib/src/wasm/wasm.worker-web.cjs +1 -0
  39. package/lib/src/wasm/wasm.worker.d.ts +41 -35
  40. package/lib/src/wasm/wasm.worker.js +194 -124
  41. package/lib/src/wasm/wasm.worker.js.map +1 -1
  42. package/lib/src/wasm/worker-node.d.ts +3 -0
  43. package/lib/src/wasm/worker-node.js +38 -0
  44. package/lib/src/wasm/worker-node.js.map +1 -0
  45. package/lib/src/wasm/worker-web.d.ts +2 -0
  46. package/lib/src/wasm/worker-web.js +15 -0
  47. package/lib/src/wasm/worker-web.js.map +1 -0
  48. package/lib/src/wasm/worker.d.ts +10 -0
  49. package/lib/src/wasm/worker.js +26 -0
  50. package/lib/src/wasm/worker.js.map +1 -0
  51. package/package.json +11 -4
@@ -3,47 +3,53 @@ 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, transmit: (map: BimDataTessellation[]) => Promise<void>): Promise<void>;
13
+ getTessellations(modelPartId: string, versionFrom: bigint, versionTo: bigint, transmit: (map: BimDataTessellation[]) => Promise<void>): Promise<void>;
14
+ getAllElements(modelPartId: string, transmit: (elements: BimDataElement[]) => Promise<void>): Promise<void>;
15
+ getElements(modelPartId: string, versionFrom: bigint, versionTo: bigint, transmit: (elements: BimDataElement[]) => Promise<void>): Promise<void>;
16
+ getDiffElements(modelPartId: string, versionFrom: bigint, versionTo: bigint, transmit: (elements: BimDataElement[]) => Promise<void>): Promise<void>;
17
+ getElementTessellations(modelPartId: string, versionFrom: bigint, versionTo: bigint): Promise<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 {
27
28
  private _module?;
29
+ private _cachedCloudReaders;
30
+ private _fs;
31
+ constructor();
28
32
  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;
33
+ open(id: string, buffer: ArrayBuffer): Promise<void>;
34
+ close(modelPartId: string): Promise<void>;
35
+ dispose(): Promise<void>;
47
36
  flushMemory(): Promise<void>;
37
+ auditModelPart(modelPartId: string): Promise<void>;
38
+ updateModelPart(modelPartId: string, buffer: ArrayBuffer): Promise<void>;
39
+ getAllTessellations(modelPartId: string, transmit: (map: BimDataTessellation[]) => Promise<void>): Promise<void>;
40
+ getTessellations(modelPartId: string, versionFrom: bigint, versionTo: bigint, transmit: (map: BimDataTessellation[]) => Promise<void>): Promise<void>;
41
+ getAllElements(modelPartId: string, transmit: (elements: BimDataElement[]) => Promise<void>): Promise<void>;
42
+ getElements(modelPartId: string, versionFrom: bigint, versionTo: bigint, transmit: (elements: BimDataElement[]) => Promise<void>): Promise<void>;
43
+ getDiffElements(modelPartId: string, versionFrom: bigint, versionTo: bigint, transmit: (elements: BimDataElement[]) => Promise<void>): Promise<void>;
44
+ getElementProperties(modelPartId: string, elementId: string, version: bigint): Promise<BimDataElementPropertySet[]>;
45
+ getElementTessellations(modelPartId: string, versionFrom: bigint, versionTo: bigint): Promise<BimDataTessellation[]>;
46
+ getAllVersions(modelPartId: string): Promise<bigint[]>;
47
+ getLatestVersion(modelPartId: string): Promise<bigint>;
48
+ cacheCloudPart(modelPartId: string): Promise<void>;
49
+ getCloudPoints(modelPartId: string, index: number): Promise<Float32Array>;
50
+ getCloudHierarchy(modelPartId: string): Promise<BimCloudHierarchyItem[]>;
51
+ getCloudParameters(modelPartId: string): Promise<Map<string, string>>;
52
+ getCloudMetadata(modelPartId: string): Promise<BimCloudMetadata>;
53
+ private runSyncFileOp;
48
54
  }
49
55
  export {};
@@ -1,183 +1,236 @@
1
- import * as comlink from "comlink";
2
1
  import BimDataProviderModule from "./pilot_bim_dataprovider.js";
3
2
  import { WasmTools } from "../utils/WasmTools.js";
4
- import { BimDataConverter } from "../utils/ViewerTools.js";
5
- const MODEL_DIR = '/bim-models';
3
+ import { BimDataConverter, transmitWasmData } from "../utils/ViewerTools.js";
4
+ import { DATA_ROOT_FOLDER } from "../model/Consts.js";
5
+ import { AsyncFileSystem, ProxyFileSystem } from "../file-system/IFileSystem.js";
6
+ import { isSecureContext, expose } from "./worker.js";
7
+ const TRANSMIT_STEP = 200;
6
8
  export class WasmWorker {
9
+ constructor() {
10
+ this._cachedCloudReaders = new Map();
11
+ this._fs = 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());
40
71
  }
41
- getAllTessellations(modelPartId) {
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 (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);
98
+ }
99
+ getAllTessellations(modelPartId, transmit) {
42
100
  const modelPart = new BimDataModelPartAccessor(modelPartId, this._module);
43
- return modelPart.getAllTessellations();
101
+ return this.runSyncFileOp(modelPartId, () => modelPart.getAllTessellations(transmit));
44
102
  }
45
- getTessellations(modelPartId, versionFrom, versionTo) {
103
+ getTessellations(modelPartId, versionFrom, versionTo, transmit) {
46
104
  const modelPart = new BimDataModelPartAccessor(modelPartId, this._module);
47
- return modelPart.getTessellations(versionFrom, versionTo);
105
+ return this.runSyncFileOp(modelPartId, () => modelPart.getTessellations(versionFrom, versionTo, transmit));
48
106
  }
49
- getAllElements(modelPartId) {
107
+ getAllElements(modelPartId, transmit) {
50
108
  const modelPart = new BimDataModelPartAccessor(modelPartId, this._module);
51
- return modelPart.getAllElements();
109
+ return this.runSyncFileOp(modelPartId, () => modelPart.getAllElements(transmit));
52
110
  }
53
- getElements(modelPartId, versionFrom, versionTo) {
111
+ getElements(modelPartId, versionFrom, versionTo, transmit) {
54
112
  const modelPart = new BimDataModelPartAccessor(modelPartId, this._module);
55
- return modelPart.getElements(versionFrom, versionTo);
113
+ return this.runSyncFileOp(modelPartId, () => modelPart.getElements(versionFrom, versionTo, transmit));
56
114
  }
57
- getDiffElements(modelPartId, versionFrom, versionTo) {
115
+ getDiffElements(modelPartId, versionFrom, versionTo, transmit) {
58
116
  const modelPart = new BimDataModelPartAccessor(modelPartId, this._module);
59
- return modelPart.getDiffElements(versionFrom, versionTo);
117
+ return this.runSyncFileOp(modelPartId, () => modelPart.getDiffElements(versionFrom, versionTo, transmit));
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
+ const result = await opFunc();
162
+ return result;
163
+ }
164
+ catch (e) {
165
+ console.error(e);
166
+ throw e;
167
+ }
168
+ finally {
169
+ this._fs.closeSyncFileAccess(path);
170
+ }
100
171
  }
101
172
  }
102
- comlink.expose(WasmWorker);
103
- class BimDataModelPartAccessor {
173
+ expose(WasmWorker);
174
+ class BimDataPartAccessor {
104
175
  constructor(id, module) {
105
176
  this.id = id;
106
177
  this._module = module;
107
178
  }
108
- dispose() {
109
- this.close();
110
- }
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
- }
179
+ get path() {
180
+ return '/' + DATA_ROOT_FOLDER + '/' + this.id;
125
181
  }
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);
182
+ }
183
+ class BimDataModelPartAccessor extends BimDataPartAccessor {
184
+ merge(targetPath, sourcePath) {
185
+ const targetVersion = this._module.getDatabaseVersion(targetPath);
186
+ const sourceVersion = this._module.getDatabaseVersion(sourcePath);
132
187
  if (sourceVersion < 2) {
133
- this._module.auditDatabase(tmpFileName);
188
+ this._module.auditDatabase(sourcePath);
134
189
  }
135
190
  if (sourceVersion != targetVersion) {
136
- this._module.manualMergeDatabases(this._path, tmpFileName);
191
+ this._module.manualMergeDatabases(targetPath, sourcePath);
137
192
  }
138
193
  else {
139
- this._module.mergeDatabases(this._path, tmpFileName);
140
- }
141
- if (WasmTools.isFileExists(tmpFileName, this._module)) {
142
- this._module.FS.unlink(tmpFileName);
194
+ this._module.mergeDatabases(targetPath, sourcePath);
143
195
  }
144
196
  }
145
- close() {
146
- if (WasmTools.isFileExists(this._path, this._module)) {
147
- this._module.FS.unlink(this._path);
197
+ auditModelDatabase() {
198
+ const databaseVersion = this._module.getDatabaseVersion(this.path);
199
+ if (databaseVersion < 2) {
200
+ this._module.auditDatabase(this.path);
148
201
  }
149
202
  }
150
- getAllTessellations() {
151
- const vts = this._module.getAllTessellations(this._path);
152
- return BimDataConverter.toBimDataTessellations(this._module, vts, true);
203
+ async getAllTessellations(transmit) {
204
+ const result = this._module.getAllTessellations(this.path);
205
+ return transmitWasmData(this._module, result, true, BimDataConverter.toBimDataTessellation, transmit, TRANSMIT_STEP);
153
206
  }
154
- getTessellations(versionFrom, versionTo) {
155
- const vts = this._module.getTessellations(this._path, versionFrom, versionTo);
156
- return BimDataConverter.toBimDataTessellations(this._module, vts, true);
207
+ async getTessellations(versionFrom, versionTo, transmit) {
208
+ const result = this._module.getTessellations(this.path, versionFrom, versionTo);
209
+ return transmitWasmData(this._module, result, true, BimDataConverter.toBimDataTessellation, transmit, TRANSMIT_STEP);
157
210
  }
158
- getAllElements() {
159
- const nds = this._module.getAllNodes(this._path);
160
- return BimDataConverter.toToBimDataElements(this._module, nds, true);
211
+ async getAllElements(transmit) {
212
+ const result = this._module.getAllNodes(this.path);
213
+ return transmitWasmData(this._module, result, true, BimDataConverter.toBimDataElement, transmit, TRANSMIT_STEP);
161
214
  }
162
- getElements(versionFrom, versionTo) {
163
- const nds = this._module.getNodes(this._path, versionFrom, versionTo);
164
- return BimDataConverter.toToBimDataElements(this._module, nds, true);
215
+ async getElements(versionFrom, versionTo, transmit) {
216
+ const result = this._module.getNodes(this.path, versionFrom, versionTo);
217
+ return transmitWasmData(this._module, result, true, BimDataConverter.toBimDataElement, transmit, TRANSMIT_STEP);
165
218
  }
166
- getDiffElements(versionFrom, versionTo) {
167
- const result = this._module.getComparedNodes(this._path, versionFrom, versionTo);
168
- return BimDataConverter.toToBimDataElements(this._module, result, true);
219
+ async getDiffElements(versionFrom, versionTo, transmit) {
220
+ const result = this._module.getComparedNodes(this.path, versionFrom, versionTo);
221
+ return transmitWasmData(this._module, result, true, BimDataConverter.toBimDataElement, transmit, TRANSMIT_STEP);
169
222
  }
170
223
  getElementTessellations(versionFrom, versionTo) {
171
- const vts = this._module.getNodesTessellations(this._path, versionFrom, versionTo);
224
+ const vts = this._module.getNodesTessellations(this.path, versionFrom, versionTo);
172
225
  return BimDataConverter.toBimDataTessellations(this._module, vts, true);
173
226
  }
174
227
  getElementProperties(elementId, version) {
175
- const set = this._module.getProperties(this._path, elementId, version);
228
+ const set = this._module.getProperties(this.path, elementId, version);
176
229
  return BimDataConverter.toModelElementPropertySet(set, true);
177
230
  }
178
231
  getAllVersions() {
179
232
  const versions = new Array();
180
- const bimVersions = this._module.getAllVersions(this._path);
233
+ const bimVersions = this._module.getAllVersions(this.path);
181
234
  for (let index = 0; index < bimVersions.size(); index++) {
182
235
  const version = bimVersions.get(index);
183
236
  versions.push(version);
@@ -186,26 +239,43 @@ class BimDataModelPartAccessor {
186
239
  return versions;
187
240
  }
188
241
  getLatestVersion() {
189
- return this._module.getLatestVersion(this._path);
242
+ return this._module.getLatestVersion(this.path);
190
243
  }
191
- getCloudPoints(index, interlive) {
192
- const pointsData = this._module.getCloudPoints(this._path, index, interlive);
244
+ }
245
+ class BimCloudPartAccessor extends BimDataPartAccessor {
246
+ constructor(id, module, openFileFunc, closeFileFunc) {
247
+ super(id, module);
248
+ this.openFileFunc = openFileFunc;
249
+ this.closeFileFunc = closeFileFunc;
250
+ }
251
+ async open() {
252
+ if (this.openFileFunc)
253
+ await this.openFileFunc();
254
+ this._cloudReader = this._module.getCloudReader();
255
+ this._cloudReader.open(this.path);
256
+ }
257
+ async close() {
258
+ this._cloudReader?.close();
259
+ this._cloudReader?.delete();
260
+ this._cloudReader = undefined;
261
+ if (this.closeFileFunc)
262
+ await this.closeFileFunc();
263
+ }
264
+ getCloudPoints(index) {
265
+ const pointsData = this._cloudReader ? this._cloudReader.getCloudPoints(index, true) : this._module.getCloudPoints(this.path, index);
193
266
  return BimDataConverter.toCloudPoints(this._module, pointsData, true);
194
267
  }
195
268
  getCloudHierarchy() {
196
- const result = this._module.getCloudHierarchy(this._path);
269
+ const result = this._cloudReader ? this._cloudReader.getCloudHierarchy() : this._module.getCloudHierarchy(this.path);
197
270
  return BimDataConverter.toBimCloudHierarchy(result, true);
198
271
  }
199
272
  getCloudParameters() {
200
- const result = this._module.getCloudParameters(this._path);
273
+ const result = this._cloudReader ? this._cloudReader.getCloudParameters() : this._module.getCloudParameters(this.path);
201
274
  return WasmTools.wasmMapToMap(result, true);
202
275
  }
203
276
  getCloudMetadata() {
204
- const result = this._module.getCloudMetadata(this._path);
277
+ const result = this._cloudReader ? this._cloudReader.getCloudMetadata() : this._module.getCloudMetadata(this.path);
205
278
  return BimDataConverter.toCloudMetadata(result, true);
206
279
  }
207
- get _path() {
208
- return MODEL_DIR + '/' + this.id;
209
- }
210
280
  }
211
281
  //# 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":"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"}
@@ -0,0 +1,3 @@
1
+ import * as comlink from "comlink";
2
+ export declare function createWorker(url: string | URL, options?: WorkerOptions): Promise<comlink.Endpoint>;
3
+ export declare function exposeWorker<T>(WasmWorker: T): void;
@@ -0,0 +1,38 @@
1
+ import * as comlink from "comlink";
2
+ import { Worker, parentPort } from 'worker_threads';
3
+ export async function createWorker(url, options) {
4
+ const worker = new Worker(url, options);
5
+ return nodeEndpoint(worker);
6
+ }
7
+ export function exposeWorker(WasmWorker) {
8
+ if (parentPort)
9
+ comlink.expose(WasmWorker, nodeEndpoint(parentPort));
10
+ }
11
+ function nodeEndpoint(port) {
12
+ const listeners = new WeakMap();
13
+ return {
14
+ postMessage: port.postMessage.bind(port),
15
+ addEventListener: (_, eh) => {
16
+ const l = (data) => {
17
+ if ("handleEvent" in eh) {
18
+ eh.handleEvent({ data });
19
+ }
20
+ else {
21
+ eh({ data });
22
+ }
23
+ };
24
+ port.on("message", l);
25
+ listeners.set(eh, l);
26
+ },
27
+ removeEventListener: (_, eh) => {
28
+ const l = listeners.get(eh);
29
+ if (!l) {
30
+ return;
31
+ }
32
+ port.off("message", l);
33
+ listeners.delete(eh);
34
+ },
35
+ start: port.start && port.start.bind(port)
36
+ };
37
+ }
38
+ //# sourceMappingURL=worker-node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-node.js","sourceRoot":"","sources":["../../../src/wasm/worker-node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAoB,MAAM,gBAAgB,CAAC;AAStE,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,GAAiB,EAAE,OAAuB;IAC3E,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACxC,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,YAAY,CAAI,UAAa;IAC3C,IAAI,UAAU;QACZ,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,YAAY,CAAC,IAAkB;IACtC,MAAM,SAAS,GAAG,IAAI,OAAO,EAAE,CAAC;IAChC,OAAO;QACL,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;QACxC,gBAAgB,EAAE,CAAC,CAAS,EAAE,EAAsC,EAAE,EAAE;YACtE,MAAM,CAAC,GAAG,CAAC,IAAW,EAAE,EAAE;gBACxB,IAAI,aAAa,IAAI,EAAE,EAAE;oBACvB,EAAE,CAAC,WAAW,CAAC,EAAE,IAAI,EAAkB,CAAC,CAAC;iBAC1C;qBACI;oBACH,EAAE,CAAC,EAAE,IAAI,EAAkB,CAAC,CAAC;iBAC9B;YACH,CAAC,CAAC;YACF,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YACtB,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACvB,CAAC;QACD,mBAAmB,EAAE,CAAC,CAAS,EAAE,EAAsC,EAAE,EAAE;YACzE,MAAM,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC5B,IAAI,CAAC,CAAC,EAAE;gBACN,OAAO;aACR;YACD,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YACvB,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACvB,CAAC;QACD,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;KAC3C,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function createWorker(url: string | URL, options?: WorkerOptions): Promise<Worker>;
2
+ export declare function exposeWorker<T>(WasmWorker: T): void;
@@ -0,0 +1,15 @@
1
+ import * as comlink from "comlink";
2
+ export async function createWorker(url, options) {
3
+ const f = await fetch(url);
4
+ const t = await f.text();
5
+ const b = new Blob([t], {
6
+ type: 'application/javascript',
7
+ });
8
+ const objUrl = URL.createObjectURL(b);
9
+ const worker = new Worker(objUrl, options);
10
+ return worker;
11
+ }
12
+ export function exposeWorker(WasmWorker) {
13
+ comlink.expose(WasmWorker);
14
+ }
15
+ //# sourceMappingURL=worker-web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-web.js","sourceRoot":"","sources":["../../../src/wasm/worker-web.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAEnC,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,GAAiB,EAAE,OAAuB;IAC3E,MAAM,CAAC,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IACzB,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;QACtB,IAAI,EAAE,wBAAwB;KAC/B,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,YAAY,CAAI,UAAa;IAC3C,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AAC7B,CAAC"}
@@ -0,0 +1,10 @@
1
+ import * as comlink from "comlink";
2
+ export declare const isSecureContext: boolean;
3
+ export declare const isCrossOriginIsolated: boolean;
4
+ export declare class CorsWorker {
5
+ private readonly url;
6
+ private readonly options?;
7
+ constructor(url: string | URL, options?: WorkerOptions);
8
+ getRemote<T>(): Promise<comlink.Remote<T>>;
9
+ }
10
+ export declare function expose<T>(worker: T): void;