@pilotdev/pilot-bim-dataprovider 26.1.0 → 26.2.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 (48) hide show
  1. package/lib/__tests__/test_utils/BinaryCloudTestUtils.d.ts +21 -0
  2. package/lib/__tests__/test_utils/BinaryCloudTestUtils.js +231 -0
  3. package/lib/__tests__/test_utils/BinaryCloudTestUtils.js.map +1 -0
  4. package/lib/src/BimDataProviderApi.d.ts +1 -1
  5. package/lib/src/model/BimDataClasses.d.ts +22 -10
  6. package/lib/src/model/BimDataClasses.js +18 -1
  7. package/lib/src/model/BimDataClasses.js.map +1 -1
  8. package/lib/src/model/BimDataCloudPart.d.ts +1 -1
  9. package/lib/src/model/BimDataCloudPart.js +2 -2
  10. package/lib/src/model/BimDataCloudPart.js.map +1 -1
  11. package/lib/src/utils/Consts.d.ts +7 -0
  12. package/lib/src/utils/Consts.js +8 -1
  13. package/lib/src/utils/Consts.js.map +1 -1
  14. package/lib/src/utils/ViewerTools.d.ts +14 -7
  15. package/lib/src/utils/ViewerTools.js +67 -20
  16. package/lib/src/utils/ViewerTools.js.map +1 -1
  17. package/lib/src/wasm/WorkerApi.d.ts +1 -1
  18. package/lib/src/wasm/cloud_readers/BinaryCloudReader.d.ts +18 -5
  19. package/lib/src/wasm/cloud_readers/BinaryCloudReader.js +219 -202
  20. package/lib/src/wasm/cloud_readers/BinaryCloudReader.js.map +1 -1
  21. package/lib/src/wasm/cloud_readers/ICacheableBinaryCloud.d.ts +42 -0
  22. package/lib/src/wasm/cloud_readers/ICacheableBinaryCloud.js +229 -0
  23. package/lib/src/wasm/cloud_readers/ICacheableBinaryCloud.js.map +1 -0
  24. package/lib/src/wasm/cloud_readers/ICloudReader.d.ts +1 -1
  25. package/lib/src/wasm/cloud_readers/WasmCloudReader.d.ts +1 -1
  26. package/lib/src/wasm/cloud_readers/WasmCloudReader.js +4 -5
  27. package/lib/src/wasm/cloud_readers/WasmCloudReader.js.map +1 -1
  28. package/lib/src/wasm/data_accessors/CloudPartAccessor.d.ts +1 -1
  29. package/lib/src/wasm/data_accessors/CloudPartAccessor.js +6 -6
  30. package/lib/src/wasm/data_accessors/CloudPartAccessor.js.map +1 -1
  31. package/lib/src/wasm/data_accessors/FileAccessor.d.ts +1 -1
  32. package/lib/src/wasm/data_accessors/FileAccessor.js +50 -35
  33. package/lib/src/wasm/data_accessors/FileAccessor.js.map +1 -1
  34. package/lib/src/wasm/file-system/ChunkCacheFile.d.ts +34 -0
  35. package/lib/src/wasm/file-system/ChunkCacheFile.js +254 -0
  36. package/lib/src/wasm/file-system/ChunkCacheFile.js.map +1 -0
  37. package/lib/src/wasm/file-system/File.d.ts +4 -1
  38. package/lib/src/wasm/file-system/File.js +11 -3
  39. package/lib/src/wasm/file-system/File.js.map +1 -1
  40. package/lib/src/wasm/file-system/PartialFile.d.ts +3 -2
  41. package/lib/src/wasm/file-system/PartialFile.js +26 -32
  42. package/lib/src/wasm/file-system/PartialFile.js.map +1 -1
  43. package/lib/src/wasm/file-system/RemoteFile.d.ts +24 -0
  44. package/lib/src/wasm/file-system/RemoteFile.js +106 -0
  45. package/lib/src/wasm/file-system/RemoteFile.js.map +1 -0
  46. package/lib/src/wasm/wasm.worker-node.cjs +1 -1
  47. package/lib/src/wasm/wasm.worker-web.cjs +1 -1
  48. package/package.json +1 -1
@@ -0,0 +1,34 @@
1
+ import { IFile } from "./File.js";
2
+ import { FileInfo } from "./IFileSystem.js";
3
+ export declare class ChunkCacheFile implements IFile {
4
+ readonly id: string;
5
+ private _metaFile;
6
+ private _openSynchAccessCounter;
7
+ private _fileSize;
8
+ private _isInSynchMode;
9
+ private _cacheRoot?;
10
+ private _cachedChunks;
11
+ private _metadataUpdater?;
12
+ private constructor();
13
+ static fromFile(file: IFile): Promise<ChunkCacheFile>;
14
+ getFileSignature(): Promise<Uint8Array>;
15
+ write(buffer: ArrayBuffer, position: number): Promise<void>;
16
+ read(position: number, size: number): Promise<Uint8Array>;
17
+ copyTo(file: IFile): Promise<void>;
18
+ openSyncFileAccess(): Promise<void>;
19
+ closeSyncFileAccess(): Promise<void>;
20
+ getFileInfo(): FileInfo;
21
+ isValid(): Promise<boolean>;
22
+ remove(): Promise<void>;
23
+ removeCache(): Promise<void>;
24
+ close(): Promise<void>;
25
+ isValidChunk(path: string, desiredSize: number): Promise<boolean>;
26
+ readChunk(path: string, position?: number, bytesToRead?: number): Promise<Uint8Array>;
27
+ writeChunk(path: string, buffer: Uint8Array): Promise<void>;
28
+ private storeMetadata;
29
+ private readMetadata;
30
+ initCache(): Promise<void>;
31
+ private closeCache;
32
+ private getCachedChunk;
33
+ private updateMetadata;
34
+ }
@@ -0,0 +1,254 @@
1
+ import { CacheFileSignature, OPFS_BIM_CACHE_FOLDER } from "../../utils/Consts.js";
2
+ import { BinaryConverter, isOPFSEnabled } from "../../utils/ViewerTools.js";
3
+ export class ChunkCacheFile {
4
+ id;
5
+ _metaFile;
6
+ _openSynchAccessCounter;
7
+ _fileSize;
8
+ _isInSynchMode;
9
+ _cacheRoot;
10
+ _cachedChunks;
11
+ _metadataUpdater;
12
+ constructor(file) {
13
+ this._metaFile = file;
14
+ this.id = file.id;
15
+ this._cachedChunks = new Map();
16
+ this._openSynchAccessCounter = 0;
17
+ this._isInSynchMode = false;
18
+ this._fileSize = 0;
19
+ }
20
+ static async fromFile(file) {
21
+ const cloudCacheFile = new ChunkCacheFile(file);
22
+ await cloudCacheFile.readMetadata();
23
+ await cloudCacheFile.storeMetadata();
24
+ await cloudCacheFile.initCache();
25
+ return cloudCacheFile;
26
+ }
27
+ async getFileSignature() {
28
+ return CacheFileSignature;
29
+ }
30
+ async write(buffer, position) {
31
+ return this._metaFile.write(buffer, position);
32
+ }
33
+ async read(position, size) {
34
+ return this._metaFile.read(position, size);
35
+ }
36
+ async copyTo(file) {
37
+ return;
38
+ }
39
+ async openSyncFileAccess() {
40
+ this._openSynchAccessCounter++;
41
+ this._isInSynchMode = this._openSynchAccessCounter > 0;
42
+ return this._metaFile.openSyncFileAccess();
43
+ }
44
+ async closeSyncFileAccess() {
45
+ this._openSynchAccessCounter--;
46
+ this._isInSynchMode = this._openSynchAccessCounter > 0;
47
+ if (!this._isInSynchMode) {
48
+ this._openSynchAccessCounter = 0;
49
+ for (const [, chunk] of this._cachedChunks) {
50
+ chunk.lock.then(() => {
51
+ chunk.synchHandle?.close();
52
+ chunk.synchHandle = null;
53
+ });
54
+ }
55
+ }
56
+ return this._metaFile.closeSyncFileAccess();
57
+ }
58
+ getFileInfo() {
59
+ return {
60
+ path: this.id,
61
+ size: this._fileSize,
62
+ sizeOnDisk: this._fileSize,
63
+ lastModified: this._metaFile.getFileInfo().lastModified
64
+ };
65
+ }
66
+ async isValid() {
67
+ if (!(await this._metaFile.isValid()))
68
+ return false;
69
+ return true;
70
+ }
71
+ async remove() {
72
+ await this.removeCache();
73
+ await this._metaFile.remove();
74
+ }
75
+ async removeCache() {
76
+ this.closeCache();
77
+ if (isOPFSEnabled) {
78
+ try {
79
+ const rootDirectory = await navigator.storage.getDirectory();
80
+ const cacheDirectory = await rootDirectory.getDirectoryHandle(OPFS_BIM_CACHE_FOLDER);
81
+ await cacheDirectory.removeEntry(this.id, { recursive: true });
82
+ this._cacheRoot = undefined;
83
+ this._fileSize = 0;
84
+ await this.storeMetadata();
85
+ }
86
+ catch {
87
+ /**/
88
+ }
89
+ }
90
+ }
91
+ async close() {
92
+ this.closeCache();
93
+ await this._metaFile.close();
94
+ }
95
+ async isValidChunk(path, desiredSize) {
96
+ const cachedChunk = this.getCachedChunk(path);
97
+ if (!cachedChunk)
98
+ return false;
99
+ if (cachedChunk.isValid)
100
+ return true;
101
+ while (cachedChunk.isLocked)
102
+ await cachedChunk.lock;
103
+ cachedChunk.isValid = cachedChunk.size == desiredSize;
104
+ return cachedChunk.isValid;
105
+ }
106
+ async readChunk(path, position, bytesToRead) {
107
+ const cachedChunk = this.getCachedChunk(path);
108
+ if (!cachedChunk || !cachedChunk.isValid)
109
+ throw new Error("Trying to read invalid chunk.");
110
+ // ждем пока чанк освободится
111
+ while (cachedChunk.isLocked)
112
+ await cachedChunk.lock;
113
+ if (!cachedChunk.handle || !cachedChunk.isValid)
114
+ throw new Error("Trying to read invalid chunk.");
115
+ const pos = position ?? 0;
116
+ bytesToRead ??= cachedChunk.size;
117
+ const buffer = new Uint8Array(bytesToRead);
118
+ // пытаемся выполнить синхронное чтение
119
+ if (cachedChunk.synchHandle) {
120
+ cachedChunk.synchHandle.read(buffer, { at: pos });
121
+ return buffer;
122
+ }
123
+ // выполняем операцию асинхронно
124
+ const promise = async () => {
125
+ if (this._isInSynchMode && !cachedChunk.synchHandle) {
126
+ cachedChunk.synchHandle = await cachedChunk.handle.createSyncAccessHandle();
127
+ cachedChunk.synchHandle.read(buffer, { at: pos });
128
+ }
129
+ else {
130
+ const blob = await cachedChunk.handle.getFile();
131
+ const result = await blob.slice(pos, pos + buffer.byteLength).arrayBuffer();
132
+ buffer.set(new Uint8Array(result));
133
+ }
134
+ };
135
+ cachedChunk.isLocked = true;
136
+ cachedChunk.lock = promise()
137
+ .catch(() => { cachedChunk.isValid = false; })
138
+ .finally(() => { cachedChunk.isLocked = false; });
139
+ await cachedChunk.lock;
140
+ return buffer;
141
+ }
142
+ async writeChunk(path, buffer) {
143
+ const cachedChunk = this.getCachedChunk(path);
144
+ if (!cachedChunk)
145
+ return;
146
+ // ждем пока чанк освободится
147
+ while (cachedChunk.isLocked)
148
+ await cachedChunk.lock;
149
+ if (!cachedChunk.handle)
150
+ return;
151
+ // пытаемся выполнить синхронную запись в файл
152
+ if (cachedChunk.synchHandle) {
153
+ cachedChunk.synchHandle.truncate(0);
154
+ cachedChunk.synchHandle.write(buffer);
155
+ cachedChunk.size = cachedChunk.synchHandle.getSize();
156
+ cachedChunk.isValid = cachedChunk.size == buffer.byteLength;
157
+ this._fileSize += cachedChunk.size;
158
+ this.updateMetadata();
159
+ return;
160
+ }
161
+ // выполняем операцию асинхронно
162
+ const promise = async () => {
163
+ if (this._isInSynchMode && !cachedChunk.synchHandle) {
164
+ cachedChunk.synchHandle = await cachedChunk.handle.createSyncAccessHandle();
165
+ cachedChunk.synchHandle.truncate(0);
166
+ cachedChunk.synchHandle.write(buffer);
167
+ cachedChunk.size = cachedChunk.synchHandle.getSize();
168
+ }
169
+ else {
170
+ /* eslint-disable-next-line -- так как собираем и под node и под web, а createWritable определен только для web? (lib.dom) */
171
+ const stream = await cachedChunk.handle.createWritable();
172
+ await stream.truncate(0);
173
+ await stream.write({ type: "write", data: buffer });
174
+ await stream.close();
175
+ cachedChunk.size = (await cachedChunk.handle.getFile()).size;
176
+ }
177
+ };
178
+ cachedChunk.isLocked = true;
179
+ return cachedChunk.lock = promise()
180
+ .then(() => {
181
+ cachedChunk.isValid = cachedChunk.size == buffer.byteLength;
182
+ this._fileSize += cachedChunk.size;
183
+ this.updateMetadata();
184
+ })
185
+ .catch(() => { cachedChunk.isValid = false; })
186
+ .finally(() => { cachedChunk.isLocked = false; });
187
+ }
188
+ async storeMetadata() {
189
+ const metaFileSize = CacheFileSignature.byteLength + 4; // file signature + uint32 fileSize
190
+ const bytesArray = new Uint8Array(metaFileSize);
191
+ bytesArray.set(CacheFileSignature, 0);
192
+ BinaryConverter.toU32(bytesArray, this._fileSize, CacheFileSignature.byteLength);
193
+ await this._metaFile.write(bytesArray.buffer, 0);
194
+ }
195
+ async readMetadata() {
196
+ const metaFileSize = CacheFileSignature.byteLength + 4; // file signature + uint32 fileSize
197
+ const bufferView = await this._metaFile.read(0, metaFileSize);
198
+ this._fileSize = BinaryConverter.fromU32(bufferView, CacheFileSignature.byteLength);
199
+ }
200
+ async initCache() {
201
+ if (isOPFSEnabled) {
202
+ const rootDirectory = await navigator.storage.getDirectory();
203
+ const bimCacheDir = await rootDirectory.getDirectoryHandle(OPFS_BIM_CACHE_FOLDER, { create: true });
204
+ this._cacheRoot = await bimCacheDir.getDirectoryHandle(this.id, { create: true });
205
+ }
206
+ }
207
+ closeCache() {
208
+ for (const [, chunk] of this._cachedChunks) {
209
+ chunk.lock.then(() => {
210
+ chunk.synchHandle?.close();
211
+ chunk.synchHandle = null;
212
+ });
213
+ }
214
+ this._cachedChunks.clear();
215
+ }
216
+ getCachedChunk(path) {
217
+ if (!this._cacheRoot)
218
+ return;
219
+ const root = this._cacheRoot;
220
+ if (this._cachedChunks.has(path))
221
+ return this._cachedChunks.get(path);
222
+ const cache = this._cachedChunks;
223
+ const chunk = { isLocked: true, isValid: false, handle: null, synchHandle: null, lock: Promise.resolve(), size: 0 };
224
+ cache.set(path, chunk);
225
+ const getChunk = async () => {
226
+ try {
227
+ // пытаемся получить файл из OPFS
228
+ chunk.handle = await root.getFileHandle(path, { create: true });
229
+ chunk.size = (await chunk.handle.getFile()).size;
230
+ chunk.isValid = false;
231
+ chunk.isLocked = false;
232
+ }
233
+ catch {
234
+ chunk.isValid = false;
235
+ chunk.isLocked = false;
236
+ cache.delete(path);
237
+ }
238
+ };
239
+ chunk.lock = getChunk();
240
+ return chunk;
241
+ }
242
+ updateMetadata() {
243
+ if (this._metadataUpdater)
244
+ return;
245
+ this._metadataUpdater = new Promise(resolve => {
246
+ setTimeout(async () => {
247
+ this.storeMetadata();
248
+ this._metadataUpdater = undefined;
249
+ resolve();
250
+ }, 1000);
251
+ }).catch();
252
+ }
253
+ }
254
+ //# sourceMappingURL=ChunkCacheFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChunkCacheFile.js","sourceRoot":"","sources":["../../../../src/wasm/file-system/ChunkCacheFile.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { FileInfo, IFileSystem } from "./IFileSystem.js";
2
2
  export interface IFile {
3
3
  readonly id: string;
4
+ getFileSignature(): Promise<Uint8Array>;
4
5
  write(buffer: ArrayBuffer, position: number): Promise<void>;
5
6
  read(position: number, size: number): Promise<Uint8Array>;
6
7
  copyTo(file: IFile): Promise<void>;
@@ -14,10 +15,12 @@ export interface IFile {
14
15
  export declare class File implements IFile {
15
16
  private readonly _fs;
16
17
  readonly id: string;
18
+ private _signature;
17
19
  private constructor();
18
20
  static open(fs: IFileSystem, id: string, options?: {
19
21
  create: boolean;
20
- }): Promise<File>;
22
+ }, signature?: Uint8Array | null): Promise<File>;
23
+ getFileSignature(): Promise<Uint8Array>;
21
24
  write(buffer: ArrayBuffer, position: number): Promise<void>;
22
25
  read(position: number, size: number): Promise<Uint8Array>;
23
26
  copyTo(file: IFile): Promise<void>;
@@ -1,11 +1,14 @@
1
+ import { MaxBimFileSignatureByteLength } from "../../utils/Consts.js";
1
2
  export class File {
2
3
  _fs;
3
4
  id;
4
- constructor(_fs, id) {
5
+ _signature;
6
+ constructor(_fs, id, _signature = null) {
5
7
  this._fs = _fs;
6
8
  this.id = id;
9
+ this._signature = _signature;
7
10
  }
8
- static async open(fs, id, options = { create: false }) {
11
+ static async open(fs, id, options = { create: false }, signature = null) {
9
12
  if (!fs.isFileExists(id)) {
10
13
  if (options.create) {
11
14
  await fs.makeFile(id, new Uint8Array());
@@ -14,7 +17,12 @@ export class File {
14
17
  throw new Error("File is not exist.");
15
18
  }
16
19
  }
17
- return new File(fs, id);
20
+ return new File(fs, id, signature);
21
+ }
22
+ async getFileSignature() {
23
+ if (!this._signature)
24
+ this._signature = await this.read(0, MaxBimFileSignatureByteLength);
25
+ return this._signature;
18
26
  }
19
27
  async write(buffer, position) {
20
28
  return this._fs.writeFile(this.id, new Uint8Array(buffer), position);
@@ -1 +1 @@
1
- {"version":3,"file":"File.js","sourceRoot":"","sources":["../../../../src/wasm/file-system/File.ts"],"names":[],"mappings":"AAeA,MAAM,OAAO,IAAI;IACsB;IAA2B;IAAhE,YAAqC,GAAgB,EAAW,EAAU;QAArC,QAAG,GAAH,GAAG,CAAa;QAAW,OAAE,GAAF,EAAE,CAAQ;IAAI,CAAC;IAE/E,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAe,EAAE,EAAU,EAAE,UAA+B,EAAE,MAAM,EAAE,KAAK,EAAE;QAC7F,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE;YACxB,IAAI,OAAO,CAAC,MAAM,EAAE;gBAClB,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,UAAU,EAAE,CAAC,CAAC;aACzC;iBACI;gBACH,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;aACvC;SACF;QACD,OAAO,IAAI,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,MAAmB,EAAE,QAAgB;QAC/C,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,QAAgB,EAAE,IAAY;QACvC,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAW;QACtB,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,kBAAkB;QACtB,MAAM,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,QAAiB,KAAK;QAC9C,MAAM,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IACrD,CAAC;IAEA,WAAW;QACV,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI;YACF,uCAAuC;YACvC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjC,OAAO,KAAK,CAAC;YAEf,iDAAiD;YACjD,MAAM,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC3C,MAAM,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAC7C;QACD,MAAM;YACJ,OAAO,KAAK,CAAC;SACd;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,MAAM;QACV,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;CACF"}
1
+ {"version":3,"file":"File.js","sourceRoot":"","sources":["../../../../src/wasm/file-system/File.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,6 @@ type ChunkRwInfo = {
8
8
  rwByteLength: number;
9
9
  };
10
10
  export declare class PartialFile implements IFile {
11
- readonly fs: IFileSystem;
12
11
  readonly id: string;
13
12
  private _metaFile;
14
13
  private _url;
@@ -21,9 +20,11 @@ export declare class PartialFile implements IFile {
21
20
  private _cacheRoot?;
22
21
  private _cachedDirs;
23
22
  private _metadataUpdater?;
23
+ private _signature;
24
24
  private constructor();
25
25
  static fromUrl(fs: IFileSystem, id: string, url: string, fileSize: number): Promise<PartialFile>;
26
- static fromFile(fs: IFileSystem, id: string): Promise<PartialFile>;
26
+ static fromFile(file: IFile): Promise<PartialFile>;
27
+ getFileSignature(): Promise<Uint8Array>;
27
28
  write(buffer: ArrayBuffer, position: number): Promise<void>;
28
29
  read(position: number, size: number): Promise<Uint8Array>;
29
30
  copyTo(file: IFile): Promise<void>;
@@ -1,9 +1,8 @@
1
- import { OPFS_CACHE_CHUNK_SIZE, OPFS_BIM_CACHE_FOLDER, PartialFileSignature } from "../../utils/Consts.js";
1
+ import { OPFS_CACHE_CHUNK_SIZE, OPFS_BIM_CACHE_FOLDER, PartialFileSignature, MaxBimFileSignatureByteLength } from "../../utils/Consts.js";
2
2
  import { BinaryConverter, isOPFSEnabled } from "../../utils/ViewerTools.js";
3
3
  import { FetchStatus, FileLoader } from "./FileLoader.js";
4
4
  import { File } from "./File.js";
5
5
  export class PartialFile {
6
- fs;
7
6
  id;
8
7
  _metaFile;
9
8
  _url;
@@ -16,8 +15,8 @@ export class PartialFile {
16
15
  _cacheRoot;
17
16
  _cachedDirs;
18
17
  _metadataUpdater;
19
- constructor(fs, file, url, fileSize) {
20
- this.fs = fs;
18
+ _signature = null;
19
+ constructor(file, url, fileSize) {
21
20
  this._metaFile = file;
22
21
  this.id = file.id;
23
22
  this._cachedDirs = new Map();
@@ -31,18 +30,22 @@ export class PartialFile {
31
30
  }
32
31
  static async fromUrl(fs, id, url, fileSize) {
33
32
  const file = await File.open(fs, id, { create: true });
34
- const partialFile = new PartialFile(fs, file, url, fileSize);
33
+ const partialFile = new PartialFile(file, url, fileSize);
35
34
  await partialFile.storeMetadata();
36
35
  await partialFile.initCache();
37
36
  return partialFile;
38
37
  }
39
- static async fromFile(fs, id) {
40
- const file = await File.open(fs, id);
41
- const partialFile = new PartialFile(fs, file);
38
+ static async fromFile(file) {
39
+ const partialFile = new PartialFile(file);
42
40
  await partialFile.readMetadata();
43
41
  await partialFile.initCache();
44
42
  return partialFile;
45
43
  }
44
+ async getFileSignature() {
45
+ if (!this._signature)
46
+ this._signature = await this.read(0, MaxBimFileSignatureByteLength);
47
+ return this._signature;
48
+ }
46
49
  async write(buffer, position) {
47
50
  if (!this._cacheRoot)
48
51
  return;
@@ -165,46 +168,37 @@ export class PartialFile {
165
168
  const urlBytes = encoder.encode(this._url);
166
169
  const urlLength = urlBytes.length;
167
170
  const metaFileSize = PartialFileSignature.byteLength + metadataSize + urlLength;
168
- const buffer = new ArrayBuffer(metaFileSize);
169
- const bytes = new Uint8Array(buffer);
170
- const byteReprArray = new Uint8Array(4);
171
- const uintReprArray = new Uint32Array(byteReprArray.buffer);
171
+ const bytesArray = new Uint8Array(metaFileSize);
172
172
  let offset = 0;
173
- bytes.set(PartialFileSignature, offset);
173
+ bytesArray.set(PartialFileSignature, offset);
174
174
  offset += PartialFileSignature.byteLength;
175
- uintReprArray[0] = urlLength;
176
- bytes.set(byteReprArray, offset);
175
+ BinaryConverter.toU32(bytesArray, urlLength, offset);
177
176
  offset += 4;
178
- uintReprArray[0] = this._fileSize;
179
- bytes.set(byteReprArray, offset);
177
+ BinaryConverter.toU32(bytesArray, this._fileSize, offset);
180
178
  offset += 4;
181
- uintReprArray[0] = this._chunkSize;
182
- bytes.set(byteReprArray, offset);
179
+ BinaryConverter.toU32(bytesArray, this._chunkSize, offset);
183
180
  offset += 4;
184
- uintReprArray[0] = this._chunkCount;
185
- bytes.set(byteReprArray, offset);
181
+ BinaryConverter.toU32(bytesArray, this._chunkCount, offset);
186
182
  offset += 4;
187
- uintReprArray[0] = this._loadedChunks;
188
- bytes.set(byteReprArray, offset);
183
+ BinaryConverter.toU32(bytesArray, this._loadedChunks, offset);
189
184
  offset += 4;
190
- bytes.set(urlBytes, offset);
191
- await this._metaFile.write(buffer, 0);
185
+ bytesArray.set(urlBytes, offset);
186
+ await this._metaFile.write(bytesArray.buffer, 0);
192
187
  }
193
188
  async readMetadata() {
194
189
  const metadataSize = 20;
195
190
  const metadataLength = PartialFileSignature.byteLength + metadataSize;
196
- const bufferView = await this._metaFile.read(0, metadataLength);
197
- const byteView = new Uint8Array(bufferView.buffer);
191
+ const bytesArray = await this._metaFile.read(0, metadataLength);
198
192
  let offset = PartialFileSignature.byteLength;
199
- const urlLength = BinaryConverter.toU32(byteView, offset);
193
+ const urlLength = BinaryConverter.fromU32(bytesArray, offset);
200
194
  offset += 4;
201
- this._fileSize = BinaryConverter.toU32(byteView, offset);
195
+ this._fileSize = BinaryConverter.fromU32(bytesArray, offset);
202
196
  offset += 4;
203
- this._chunkSize = BinaryConverter.toU32(byteView, offset);
197
+ this._chunkSize = BinaryConverter.fromU32(bytesArray, offset);
204
198
  offset += 4;
205
- this._chunkCount = BinaryConverter.toU32(byteView, offset);
199
+ this._chunkCount = BinaryConverter.fromU32(bytesArray, offset);
206
200
  offset += 4;
207
- this._loadedChunks = BinaryConverter.toU32(byteView, offset);
201
+ this._loadedChunks = BinaryConverter.fromU32(bytesArray, offset);
208
202
  offset += 4;
209
203
  const urlBytes = await this._metaFile.read(offset, urlLength);
210
204
  const decoder = new TextDecoder();
@@ -1 +1 @@
1
- {"version":3,"file":"PartialFile.js","sourceRoot":"","sources":["../../../../src/wasm/file-system/PartialFile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PartialFile.js","sourceRoot":"","sources":["../../../../src/wasm/file-system/PartialFile.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { IFile } from "./File.js";
2
+ import { FileInfo, IFileSystem } from "./IFileSystem.js";
3
+ export declare class RemoteFile implements IFile {
4
+ private _signature;
5
+ readonly id: string;
6
+ private _metaFile;
7
+ private _url;
8
+ private _fileSize;
9
+ private constructor();
10
+ static fromUrl(fs: IFileSystem, id: string, url: string, fileSize: number, signature?: Uint8Array | null): Promise<RemoteFile>;
11
+ static fromFile(file: IFile): Promise<RemoteFile>;
12
+ getFileSignature(): Promise<Uint8Array>;
13
+ write(): Promise<void>;
14
+ read(position: number, size: number): Promise<Uint8Array>;
15
+ copyTo(file: IFile): Promise<void>;
16
+ openSyncFileAccess(): Promise<void>;
17
+ closeSyncFileAccess(): Promise<void>;
18
+ getFileInfo(): FileInfo;
19
+ isValid(): Promise<boolean>;
20
+ remove(): Promise<void>;
21
+ close(): Promise<void>;
22
+ private storeMetadata;
23
+ private readMetadata;
24
+ }