@pilotdev/pilot-bim-dataprovider 25.9.0 → 25.11.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 (123) hide show
  1. package/lib/index.d.ts +4 -9
  2. package/lib/index.js +2 -5
  3. package/lib/index.js.map +1 -1
  4. package/lib/src/BimDataProviderApi.d.ts +52 -0
  5. package/lib/src/BimDataProviderApi.js +2 -0
  6. package/lib/src/BimDataProviderApi.js.map +1 -0
  7. package/lib/src/model/{BimDataIfcType.d.ts → BimDataClasses.d.ts} +159 -0
  8. package/lib/src/model/{BimDataIfcType.js → BimDataClasses.js} +203 -1
  9. package/lib/src/model/BimDataClasses.js.map +1 -0
  10. package/lib/src/model/BimDataCloudPart.d.ts +5 -9
  11. package/lib/src/model/BimDataCloudPart.js +11 -12
  12. package/lib/src/model/BimDataCloudPart.js.map +1 -1
  13. package/lib/src/model/BimDataModelPart.d.ts +4 -23
  14. package/lib/src/model/BimDataModelPart.js +22 -36
  15. package/lib/src/model/BimDataModelPart.js.map +1 -1
  16. package/lib/src/model/BimDataPart.d.ts +11 -21
  17. package/lib/src/model/BimDataPart.js +41 -67
  18. package/lib/src/model/BimDataPart.js.map +1 -1
  19. package/lib/src/model/BimDataProvider.d.ts +4 -17
  20. package/lib/src/model/BimDataProvider.js +18 -27
  21. package/lib/src/model/BimDataProvider.js.map +1 -1
  22. package/lib/src/utils/Consts.d.ts +17 -0
  23. package/lib/src/utils/Consts.js +20 -0
  24. package/lib/src/utils/Consts.js.map +1 -0
  25. package/lib/src/utils/ViewerTools.d.ts +17 -16
  26. package/lib/src/utils/ViewerTools.js +39 -21
  27. package/lib/src/utils/ViewerTools.js.map +1 -1
  28. package/lib/src/wasm/WasmWorker.d.ts +22 -70
  29. package/lib/src/wasm/WasmWorker.js +89 -180
  30. package/lib/src/wasm/WasmWorker.js.map +1 -1
  31. package/lib/src/wasm/{WasmWorkerThreadSafeWrapper.d.ts → WorkerApi.d.ts} +39 -21
  32. package/lib/src/wasm/WorkerApi.js +2 -0
  33. package/lib/src/wasm/WorkerApi.js.map +1 -0
  34. package/lib/src/wasm/cloud_readers/BinaryCloudReader.d.ts +18 -0
  35. package/lib/src/wasm/cloud_readers/BinaryCloudReader.js +228 -0
  36. package/lib/src/wasm/cloud_readers/BinaryCloudReader.js.map +1 -0
  37. package/lib/src/wasm/{DataAccessors → cloud_readers}/ICloudReader.d.ts +6 -6
  38. package/lib/src/wasm/cloud_readers/ICloudReader.js.map +1 -0
  39. package/lib/src/wasm/cloud_readers/WasmCloudReader.d.ts +20 -0
  40. package/lib/src/wasm/cloud_readers/WasmCloudReader.js +53 -0
  41. package/lib/src/wasm/cloud_readers/WasmCloudReader.js.map +1 -0
  42. package/lib/src/wasm/data_accessors/CloudPartAccessor.d.ts +20 -0
  43. package/lib/src/wasm/data_accessors/CloudPartAccessor.js +70 -0
  44. package/lib/src/wasm/data_accessors/CloudPartAccessor.js.map +1 -0
  45. package/lib/src/wasm/data_accessors/FileAccessor.d.ts +37 -0
  46. package/lib/src/wasm/data_accessors/FileAccessor.js +237 -0
  47. package/lib/src/wasm/data_accessors/FileAccessor.js.map +1 -0
  48. package/lib/src/wasm/data_accessors/ModelPartAccessor.d.ts +27 -0
  49. package/lib/src/wasm/data_accessors/ModelPartAccessor.js +142 -0
  50. package/lib/src/wasm/data_accessors/ModelPartAccessor.js.map +1 -0
  51. package/lib/src/wasm/file-system/File.d.ts +30 -0
  52. package/lib/src/wasm/file-system/File.js +58 -0
  53. package/lib/src/wasm/file-system/File.js.map +1 -0
  54. package/lib/src/wasm/file-system/FileAccessDispatcher.d.ts +12 -0
  55. package/lib/src/{model → wasm/file-system}/FileAccessDispatcher.js +59 -21
  56. package/lib/src/wasm/file-system/FileAccessDispatcher.js.map +1 -0
  57. package/lib/src/wasm/file-system/FileLoader.d.ts +41 -0
  58. package/lib/src/wasm/file-system/FileLoader.js +107 -0
  59. package/lib/src/wasm/file-system/FileLoader.js.map +1 -0
  60. package/lib/src/wasm/file-system/IFileSystem.d.ts +76 -0
  61. package/lib/src/wasm/file-system/IFileSystem.js +308 -0
  62. package/lib/src/wasm/file-system/IFileSystem.js.map +1 -0
  63. package/lib/src/{file-system → wasm/file-system}/IFileSystemCache.d.ts +10 -6
  64. package/lib/src/{file-system → wasm/file-system}/IFileSystemCache.js +11 -13
  65. package/lib/src/wasm/file-system/IFileSystemCache.js.map +1 -0
  66. package/lib/src/{file-system → wasm/file-system}/OPFS.d.ts +6 -6
  67. package/lib/src/{file-system → wasm/file-system}/OPFS.js +7 -3
  68. package/lib/src/wasm/file-system/OPFS.js.map +1 -0
  69. package/lib/src/wasm/file-system/PATH.js.map +1 -0
  70. package/lib/src/wasm/file-system/PartialFile.d.ts +48 -0
  71. package/lib/src/wasm/file-system/PartialFile.js +367 -0
  72. package/lib/src/wasm/file-system/PartialFile.js.map +1 -0
  73. package/lib/src/wasm/pilot_bim_dataprovider.d.ts +17 -1
  74. package/lib/src/wasm/wasm.worker-node.cjs +1 -1
  75. package/lib/src/wasm/wasm.worker-web.cjs +1 -1
  76. package/lib/src/wasm/worker.js +2 -0
  77. package/lib/src/wasm/worker.js.map +1 -1
  78. package/package.json +3 -4
  79. package/lib/src/file-system/IFileSystem.d.ts +0 -50
  80. package/lib/src/file-system/IFileSystem.js +0 -233
  81. package/lib/src/file-system/IFileSystem.js.map +0 -1
  82. package/lib/src/file-system/IFileSystemCache.js.map +0 -1
  83. package/lib/src/file-system/OPFS.js.map +0 -1
  84. package/lib/src/file-system/PATH.js.map +0 -1
  85. package/lib/src/model/BimDataElement.d.ts +0 -113
  86. package/lib/src/model/BimDataElement.js +0 -45
  87. package/lib/src/model/BimDataElement.js.map +0 -1
  88. package/lib/src/model/BimDataElementPropertySet.d.ts +0 -26
  89. package/lib/src/model/BimDataElementPropertySet.js +0 -90
  90. package/lib/src/model/BimDataElementPropertySet.js.map +0 -1
  91. package/lib/src/model/BimDataIfcRepresentationStatus.d.ts +0 -10
  92. package/lib/src/model/BimDataIfcRepresentationStatus.js +0 -12
  93. package/lib/src/model/BimDataIfcRepresentationStatus.js.map +0 -1
  94. package/lib/src/model/BimDataIfcType.js.map +0 -1
  95. package/lib/src/model/BimDataTessellation.d.ts +0 -13
  96. package/lib/src/model/BimDataTessellation.js +0 -16
  97. package/lib/src/model/BimDataTessellation.js.map +0 -1
  98. package/lib/src/model/Consts.d.ts +0 -7
  99. package/lib/src/model/Consts.js +0 -8
  100. package/lib/src/model/Consts.js.map +0 -1
  101. package/lib/src/model/FileAccessDispatcher.d.ts +0 -14
  102. package/lib/src/model/FileAccessDispatcher.js.map +0 -1
  103. package/lib/src/wasm/DataAccessors/BimCloudPartAccessor.d.ts +0 -17
  104. package/lib/src/wasm/DataAccessors/BimCloudPartAccessor.js +0 -60
  105. package/lib/src/wasm/DataAccessors/BimCloudPartAccessor.js.map +0 -1
  106. package/lib/src/wasm/DataAccessors/BimDataModelPartAccessor.d.ts +0 -20
  107. package/lib/src/wasm/DataAccessors/BimDataModelPartAccessor.js +0 -89
  108. package/lib/src/wasm/DataAccessors/BimDataModelPartAccessor.js.map +0 -1
  109. package/lib/src/wasm/DataAccessors/BimDataPartAccessor.d.ts +0 -8
  110. package/lib/src/wasm/DataAccessors/BimDataPartAccessor.js +0 -19
  111. package/lib/src/wasm/DataAccessors/BimDataPartAccessor.js.map +0 -1
  112. package/lib/src/wasm/DataAccessors/BinaryCloudReader.d.ts +0 -16
  113. package/lib/src/wasm/DataAccessors/BinaryCloudReader.js +0 -268
  114. package/lib/src/wasm/DataAccessors/BinaryCloudReader.js.map +0 -1
  115. package/lib/src/wasm/DataAccessors/ICloudReader.js.map +0 -1
  116. package/lib/src/wasm/DataAccessors/WasmCloudReader.d.ts +0 -16
  117. package/lib/src/wasm/DataAccessors/WasmCloudReader.js +0 -47
  118. package/lib/src/wasm/DataAccessors/WasmCloudReader.js.map +0 -1
  119. package/lib/src/wasm/WasmWorkerThreadSafeWrapper.js +0 -141
  120. package/lib/src/wasm/WasmWorkerThreadSafeWrapper.js.map +0 -1
  121. /package/lib/src/wasm/{DataAccessors → cloud_readers}/ICloudReader.js +0 -0
  122. /package/lib/src/{file-system → wasm/file-system}/PATH.d.ts +0 -0
  123. /package/lib/src/{file-system → wasm/file-system}/PATH.js +0 -0
@@ -0,0 +1,308 @@
1
+ import { FileSystemCache } from "./IFileSystemCache.js";
2
+ import { PATH } from "./PATH.js";
3
+ import { OPFS } from "./OPFS.js";
4
+ export class AsyncFileSystem {
5
+ _cache;
6
+ _root;
7
+ constructor() {
8
+ this._cache = new FileSystemCache();
9
+ }
10
+ mountTo(fs, mountpoint) {
11
+ const opfs = new OPFS(fs, this);
12
+ fs.mount(fs.filesystems.PROXYFS, {
13
+ root: "/",
14
+ fs: opfs
15
+ }, `/${mountpoint}`);
16
+ }
17
+ async init(opfsRoot) {
18
+ if (!this._root) {
19
+ let rootHandle = await navigator.storage.getDirectory();
20
+ const dirs = opfsRoot.split("/");
21
+ for (let i = 0; i < dirs.length; i++) {
22
+ rootHandle = await rootHandle?.getDirectoryHandle(dirs[i], { create: true });
23
+ }
24
+ this._root = this._cache.setDir("/", rootHandle);
25
+ }
26
+ }
27
+ async estimate() {
28
+ return navigator.storage.estimate();
29
+ }
30
+ async makeDir(path) {
31
+ const lpath = this.getLocalPath(path);
32
+ const parentPath = PATH.getParentPath(lpath);
33
+ const parent = this._cache.get(parentPath);
34
+ if (!parent)
35
+ throw new Error("Parent not found");
36
+ const name = PATH.getName(lpath);
37
+ const childHandle = await parent.handle.getDirectoryHandle(name, { create: true });
38
+ this._cache.setDir(lpath, childHandle);
39
+ }
40
+ async makeFile(path, data) {
41
+ const lpath = this.getLocalPath(path);
42
+ const parentPath = PATH.getParentPath(lpath);
43
+ const parent = this._cache.get(parentPath);
44
+ if (!parent)
45
+ throw new Error("Parent not found");
46
+ const name = PATH.getName(lpath);
47
+ const fileHandle = await parent.handle.getFileHandle(name, { create: true });
48
+ const fileNode = this._cache.setFile(lpath, fileHandle);
49
+ if (fileNode && data.byteLength > 0) {
50
+ await fileNode.stream_ops.open();
51
+ fileNode.stream_ops.write(data, 0, data.byteLength, 0);
52
+ fileNode.size = fileNode.stream_ops.getSize();
53
+ fileNode.stream_ops.close();
54
+ }
55
+ }
56
+ async writeFile(path, data, position) {
57
+ const lpath = this.getLocalPath(path);
58
+ const fileHandle = this._cache.get(lpath);
59
+ if (!fileHandle)
60
+ throw new Error('File does not exist.');
61
+ await fileHandle.stream_ops.open();
62
+ fileHandle.stream_ops.write(data, 0, data.byteLength, position);
63
+ fileHandle.size = fileHandle.stream_ops.getSize();
64
+ fileHandle.stream_ops.close();
65
+ }
66
+ async readFile(path, position, size, buffer, offset = 0) {
67
+ const lpath = this.getLocalPath(path);
68
+ const fileHandle = this._cache.get(lpath);
69
+ if (!fileHandle)
70
+ throw new Error('File does not exist.');
71
+ const result = buffer ?? new Uint8Array(size);
72
+ await fileHandle.stream_ops.open();
73
+ fileHandle.stream_ops.read(result, offset, size, position);
74
+ fileHandle.stream_ops.close();
75
+ return result;
76
+ }
77
+ async remove(path) {
78
+ const lpath = this.getLocalPath(path);
79
+ const node = this._cache.get(lpath);
80
+ this._cache.delete(lpath);
81
+ if (node) {
82
+ node.stream_ops?.close(undefined, true);
83
+ await node?.parent?.handle?.removeEntry(node.name, { recursive: true });
84
+ }
85
+ }
86
+ async copyFile(pathTarget, pathSource) {
87
+ const lpathSource = this.getLocalPath(pathSource);
88
+ const nodeSource = this._cache.get(lpathSource);
89
+ const lpathTarget = this.getLocalPath(pathTarget);
90
+ const nodeTarget = this._cache.get(lpathTarget);
91
+ if (!nodeSource || !nodeTarget) {
92
+ throw new Error("File not found.");
93
+ }
94
+ await nodeSource.stream_ops.open();
95
+ await nodeTarget.stream_ops.open();
96
+ const allBytes = nodeSource.stream_ops.getSize();
97
+ nodeTarget.stream_ops.truncate(allBytes);
98
+ const maxChunkBytes = 64 << 20; // 64 MB
99
+ const buffer = new Uint8Array(maxChunkBytes);
100
+ let readedBytes = 0;
101
+ let readedChunkBytes = 0;
102
+ do {
103
+ const chunkBytes = Math.min(allBytes - readedBytes, maxChunkBytes);
104
+ readedChunkBytes = nodeSource.stream_ops.read(buffer, 0, chunkBytes, readedBytes);
105
+ nodeTarget.stream_ops.write(buffer, 0, readedChunkBytes, readedBytes);
106
+ readedBytes += readedChunkBytes;
107
+ } while (readedBytes < allBytes && readedChunkBytes != 0);
108
+ nodeTarget.size = nodeTarget.stream_ops.getSize();
109
+ if (readedBytes != allBytes) {
110
+ console.warn("Unexpected file size during copy");
111
+ }
112
+ nodeTarget.stream_ops.close();
113
+ nodeSource.stream_ops.close();
114
+ }
115
+ async openSyncFileAccess(path) {
116
+ const lpath = this.getLocalPath(path);
117
+ const cachedFile = this.lookup(lpath);
118
+ if (!cachedFile)
119
+ throw new Error('File does not cached in OPFS.');
120
+ return cachedFile.stream_ops?.open();
121
+ }
122
+ closeSyncFileAccess(path, force = false) {
123
+ const lpath = this.getLocalPath(path);
124
+ const cachedFile = this.lookup(lpath);
125
+ cachedFile?.stream_ops?.close(undefined, force);
126
+ }
127
+ readdir(path) {
128
+ const node = this._cache.get(path);
129
+ if (!node || node.kind === "file")
130
+ return [];
131
+ return node.children.map(n => n.name);
132
+ }
133
+ lookup(path) {
134
+ const lpath = this.getLocalPath(path);
135
+ return this._cache.get(lpath);
136
+ }
137
+ async dispose() {
138
+ this._cache.clear();
139
+ this._root = undefined;
140
+ }
141
+ async actualizeFilePath(path) {
142
+ const lpath = this.getLocalPath(path);
143
+ const dirs = lpath.split("/");
144
+ let tmpPath = '/';
145
+ for (let i = 0; i < dirs.length - 1; i++) {
146
+ tmpPath = i == 0 ? tmpPath : dirs.slice(0, i + 1).join('/');
147
+ if (!this._cache.get(tmpPath)) {
148
+ await this.makeDir(tmpPath);
149
+ }
150
+ }
151
+ try {
152
+ const parent = this._cache.get(tmpPath);
153
+ let node = this._cache.get(lpath);
154
+ if (!node) {
155
+ const opfsFileHandle = await parent.handle.getFileHandle(dirs[dirs.length - 1]);
156
+ node = this._cache.setFile(lpath, opfsFileHandle);
157
+ }
158
+ if (node) {
159
+ const file = (await node.handle.getFile());
160
+ node.timestamp = file.lastModified;
161
+ node.size = file.size;
162
+ }
163
+ }
164
+ catch {
165
+ this._cache.delete(lpath);
166
+ }
167
+ }
168
+ async getCachedFiles() {
169
+ const result = [];
170
+ if (!this._root)
171
+ return result;
172
+ const queue = [{ handle: this._root.handle }];
173
+ while (queue.length > 0) {
174
+ const node = queue.shift();
175
+ if (!node)
176
+ return result;
177
+ for await (const [name, handle] of node.handle) {
178
+ const path = node.path ? `${node.path}/${name}` : name;
179
+ if (handle.kind === "file") {
180
+ const file = await handle.getFile();
181
+ result.push({
182
+ path,
183
+ size: file.size,
184
+ sizeOnDisk: file.size,
185
+ lastModified: file.lastModified
186
+ });
187
+ }
188
+ else {
189
+ queue.push({ handle: handle, path });
190
+ }
191
+ }
192
+ }
193
+ return result;
194
+ }
195
+ isFileExists(path) {
196
+ const lpath = this.getLocalPath(path);
197
+ return this._cache.get(lpath)?.kind == 'file';
198
+ }
199
+ getFileInfo(path) {
200
+ const lpath = this.getLocalPath(path);
201
+ const fileHandle = this._cache.get(lpath);
202
+ return {
203
+ path: path,
204
+ size: fileHandle.size,
205
+ sizeOnDisk: fileHandle.size,
206
+ lastModified: fileHandle.timestamp
207
+ };
208
+ }
209
+ getLocalPath(path) {
210
+ if (path.startsWith('/'))
211
+ return path;
212
+ else
213
+ return '/' + path;
214
+ }
215
+ }
216
+ export class ProxyFileSystem {
217
+ memoryGuard;
218
+ _fs;
219
+ _mountpoint;
220
+ constructor(memoryGuard) {
221
+ this.memoryGuard = memoryGuard;
222
+ }
223
+ init() {
224
+ return Promise.resolve();
225
+ }
226
+ estimate() {
227
+ return Promise.resolve(this.memoryGuard.estimate());
228
+ }
229
+ mountTo(fs, mountpoint) {
230
+ this._fs = fs;
231
+ this._mountpoint = mountpoint;
232
+ }
233
+ makeDir(path) {
234
+ const lpath = this.getLocalPath(path);
235
+ this._fs.mkdir(lpath);
236
+ return Promise.resolve();
237
+ }
238
+ makeFile(path, data) {
239
+ this._fs.createDataFile(this._mountpoint, path, data, true, true, true);
240
+ return Promise.resolve();
241
+ }
242
+ writeFile(path, data, position) {
243
+ const lpath = this.getLocalPath(path);
244
+ const stream = this._fs.open(lpath, 'a+');
245
+ this._fs.write(stream, data, 0, data.byteLength, position);
246
+ this._fs.close(stream);
247
+ return Promise.resolve();
248
+ }
249
+ readFile(path, position, size) {
250
+ const lpath = this.getLocalPath(path);
251
+ const stream = this._fs.open(lpath, 'r');
252
+ const result = new Uint8Array(size);
253
+ this._fs.read(stream, result, 0, result.byteLength, position);
254
+ this._fs.close(stream);
255
+ return Promise.resolve(result);
256
+ }
257
+ remove(path) {
258
+ const lpath = this.getLocalPath(path);
259
+ this._fs.unlink(lpath);
260
+ return Promise.resolve();
261
+ }
262
+ copyFile() {
263
+ return Promise.resolve();
264
+ }
265
+ openSyncFileAccess() {
266
+ return Promise.resolve();
267
+ }
268
+ closeSyncFileAccess() {
269
+ return;
270
+ }
271
+ dispose() {
272
+ return Promise.resolve();
273
+ }
274
+ actualizeFilePath() {
275
+ return Promise.resolve();
276
+ }
277
+ getCachedFiles() {
278
+ return Promise.resolve([]);
279
+ }
280
+ isFileExists(path) {
281
+ try {
282
+ const lpath = this.getLocalPath(path);
283
+ const mode = this._fs.lookupPath(lpath, {}).node?.mode;
284
+ return !!mode && this._fs.isFile(mode);
285
+ }
286
+ catch {
287
+ return false;
288
+ }
289
+ }
290
+ getSize(path) {
291
+ const lpath = this.getLocalPath(path);
292
+ return this._fs.lstat(lpath).size;
293
+ }
294
+ getFileInfo(path) {
295
+ const lpath = this.getLocalPath(path);
296
+ const lstat = this._fs.lstat(lpath);
297
+ return {
298
+ path: path,
299
+ size: lstat.size,
300
+ sizeOnDisk: lstat.blksize * lstat.blocks,
301
+ lastModified: lstat.mtime.getDate()
302
+ };
303
+ }
304
+ getLocalPath(path) {
305
+ return this._mountpoint + '/' + path;
306
+ }
307
+ }
308
+ //# sourceMappingURL=IFileSystem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IFileSystem.js","sourceRoot":"","sources":["../../../../src/wasm/file-system/IFileSystem.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,13 @@
1
1
  export interface InWorkerFileSystemFileHandle extends FileSystemFileHandle {
2
- createSyncAccessHandle(): Promise<FileSystemSyncAccessHandle>;
2
+ createSyncAccessHandle(options?: {
3
+ mode?: "read-only" | "readwrite" | "readwrite-unsafe";
4
+ }): Promise<FileSystemSyncAccessHandle>;
3
5
  }
4
6
  export interface FileSystemSyncAccessHandle {
5
- read(buffer: ArrayBufferView, options?: {
7
+ read(buffer: Uint8Array, options?: {
6
8
  at?: number;
7
9
  }): number;
8
- write(buffer: ArrayBufferView, options?: {
10
+ write(buffer: Uint8Array, options?: {
9
11
  at?: number;
10
12
  }): number;
11
13
  truncate(newSize: number): number;
@@ -25,9 +27,11 @@ export interface IOpfsNode<T extends FileSystemHandle> {
25
27
  }
26
28
  export interface IOpfsDirNode extends IOpfsNode<FileSystemDirectoryHandle> {
27
29
  children: (IOpfsDirNode | IOpfsFileNode)[];
30
+ kind: 'directory';
28
31
  }
29
32
  export interface IOpfsFileNode extends IOpfsNode<FileSystemFileHandle> {
30
33
  stream_ops: StreamOps;
34
+ kind: 'file';
31
35
  }
32
36
  export interface IFileSystemCache {
33
37
  setDir(path: string, handle: FileSystemDirectoryHandle): IOpfsDirNode | undefined;
@@ -55,9 +59,9 @@ export declare class StreamOps {
55
59
  private _syncHandlePromise?;
56
60
  private _openCounter;
57
61
  constructor(handle: FileSystemFileHandle);
58
- open(node: IOpfsFileNode): Promise<void>;
59
- read(buffer: ArrayBufferView, offset: number, length: number, position?: number): number;
60
- write(buffer: ArrayBufferView, offset: number, length: number, position?: number): number;
62
+ open(): Promise<void>;
63
+ read(array: Uint8Array, offset: number, length: number, position?: number): number;
64
+ write(array: Uint8Array, offset: number, length: number, position?: number): number;
61
65
  getSize(): number;
62
66
  truncate(size: number): void;
63
67
  close(stream?: object, force?: boolean): void;
@@ -1,9 +1,7 @@
1
1
  import { PATH } from "./PATH.js";
2
2
  export class FileSystemCache {
3
- constructor() {
4
- this._uniqueId = 1;
5
- this._cacheTable = new Map();
6
- }
3
+ _uniqueId = 1;
4
+ _cacheTable = new Map();
7
5
  setDir(path, handle) {
8
6
  if (path === "/") {
9
7
  return this.createDirNode(path, handle, undefined);
@@ -98,11 +96,14 @@ export class FileSystemCache {
98
96
  }
99
97
  }
100
98
  export class StreamOps {
99
+ _handle;
100
+ _syncHandle;
101
+ _syncHandlePromise;
102
+ _openCounter = 0;
101
103
  constructor(handle) {
102
- this._openCounter = 0;
103
104
  this._handle = handle;
104
105
  }
105
- open(node) {
106
+ open() {
106
107
  this._openCounter++;
107
108
  if (this._syncHandlePromise)
108
109
  return this._syncHandlePromise;
@@ -114,25 +115,22 @@ export class StreamOps {
114
115
  handle.close();
115
116
  else
116
117
  this._syncHandle = handle;
117
- })
118
- .then(x => {
119
- node.size = this._syncHandle?.getSize() ?? 0;
120
118
  });
121
119
  return this._syncHandlePromise;
122
120
  }
123
121
  return Promise.resolve();
124
122
  }
125
- read(buffer, offset, length, position) {
123
+ read(array, offset, length, position) {
126
124
  if (!this._syncHandle)
127
125
  throw new Error("File is not in synchronous mode.");
128
- const bufferToRead = new Uint8Array(buffer.buffer, offset, length);
126
+ const bufferToRead = new Uint8Array(array.buffer, offset + array.byteOffset, length);
129
127
  this._syncHandle.read(bufferToRead, { at: position ?? 0 });
130
128
  return length;
131
129
  }
132
- write(buffer, offset, length, position) {
130
+ write(array, offset, length, position) {
133
131
  if (!this._syncHandle)
134
132
  throw new Error("File is not in synchronous mode.");
135
- const bufferToWrite = new Uint8Array(buffer.buffer, offset, length);
133
+ const bufferToWrite = new Uint8Array(array.buffer, offset + array.byteOffset, length);
136
134
  this._syncHandle.write(bufferToWrite, { at: position ?? 0 });
137
135
  return length;
138
136
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IFileSystemCache.js","sourceRoot":"","sources":["../../../../src/wasm/file-system/IFileSystemCache.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { FS, FSNode, FSStream, Lookup, FileSystemType } from "../wasm/pilot_bim_dataprovider.js";
1
+ import { FS, FSNode, FSStream, Lookup, FileSystemType, FStat } from "../pilot_bim_dataprovider.js";
2
2
  import { IOpfsDirNode, IOpfsFileNode } from "./IFileSystemCache.js";
3
3
  interface OPFSStream extends FSStream {
4
4
  OPFSNode?: IOpfsDirNode | IOpfsFileNode;
@@ -19,20 +19,20 @@ export declare class OPFS implements FS {
19
19
  mkdir(path: string, mode?: number): void;
20
20
  readdir(path: string): string[];
21
21
  stat(path: string, dontFollow?: boolean): any;
22
- lstat(path: string): any;
22
+ lstat(path: string): FStat;
23
23
  truncate(path: string, len: number): void;
24
24
  utime(path: string, atime: number, mtime: number): void;
25
25
  open(path: string, flags: string, mode?: number, fd_start?: number, fd_end?: number): OPFSStream;
26
26
  close(stream: OPFSStream): void;
27
- read(stream: OPFSStream, buffer: ArrayBufferView, offset: number, length: number, position?: number): number;
28
- write(stream: OPFSStream, buffer: ArrayBufferView, offset: number, length: number, position?: number, canOwn?: boolean): number;
27
+ read(stream: OPFSStream, buffer: Uint8Array, offset: number, length: number, position?: number): number;
28
+ write(stream: OPFSStream, buffer: Uint8Array, offset: number, length: number, position?: number, canOwn?: boolean): number;
29
29
  readFile(path: string, opts?: unknown): Uint8Array;
30
- writeFile(path: string, data: ArrayBufferView, opts?: {
30
+ writeFile(path: string, data: Uint8Array, opts?: {
31
31
  flags?: string;
32
32
  }): void;
33
33
  mount(type: FileSystemType, opts: number, mountpoint: string): FSNode;
34
34
  createNode(parent: string | FSNode, name: string, mode: number, dev: number): FSNode;
35
35
  unlink(path: string): void;
36
- createDataFile(parent: string | FSNode, name: string, data: ArrayBufferView, canRead: boolean, canWrite: boolean, canOwn: boolean): FSNode;
36
+ createDataFile(parent: string | FSNode, name: string, data: Uint8Array, canRead: boolean, canWrite: boolean, canOwn: boolean): FSNode;
37
37
  }
38
38
  export {};
@@ -1,4 +1,4 @@
1
- import { S_IFDIR, S_IFREG } from "../model/Consts.js";
1
+ import { S_IFDIR, S_IFREG } from "../../utils/Consts.js";
2
2
  import { PATH } from "./PATH.js";
3
3
  var cDefs;
4
4
  (function (cDefs) {
@@ -7,17 +7,21 @@ var cDefs;
7
7
  cDefs[cDefs["ESPIPE"] = 70] = "ESPIPE";
8
8
  })(cDefs || (cDefs = {}));
9
9
  class ErrnoError {
10
+ name;
11
+ errno;
10
12
  constructor(errno) {
11
13
  this.name = 'ErrnoError';
12
14
  this.errno = errno;
13
15
  }
14
16
  }
15
17
  export class OPFS {
18
+ _fs;
19
+ _fsSync;
20
+ _mountpoint = "/";
21
+ filesystems = {};
16
22
  constructor(_fs, _fsSync) {
17
23
  this._fs = _fs;
18
24
  this._fsSync = _fsSync;
19
- this._mountpoint = "/";
20
- this.filesystems = {};
21
25
  }
22
26
  lookupPath(path, opts) {
23
27
  return {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OPFS.js","sourceRoot":"","sources":["../../../../src/wasm/file-system/OPFS.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PATH.js","sourceRoot":"","sources":["../../../../src/wasm/file-system/PATH.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,IAAI;IAEf,MAAM,CAAC,OAAO,CAAC,IAAY;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,CAAC,mBAAmB,CAAC,IAAY;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;YACnB,OAAO,GAAG,CAAC,CAAC,MAAM;QAEpB,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,IAAY;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,IAAY;QAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,SAAS,KAAK,CAAC;YACjB,OAAO,GAAG,CAAC;QAEb,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,UAAkB,EAAE,IAAY;QAC7C,OAAO,UAAU,GAAG,GAAG,GAAG,IAAI,CAAC;IACjC,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,IAAY;QAC/B,IAAI,IAAI,KAAK,GAAG;YACd,OAAO,CAAC,GAAG,CAAC,CAAC;QAEf,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAClB,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QAEjB,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
@@ -0,0 +1,48 @@
1
+ import { IFile } from "./File.js";
2
+ import { FileInfo, IFileSystem } from "./IFileSystem.js";
3
+ type ChunkRwInfo = {
4
+ index: number;
5
+ size: number;
6
+ chunkOffset: number;
7
+ rwOffsetLocal: number;
8
+ rwByteLength: number;
9
+ };
10
+ export declare class PartialFile implements IFile {
11
+ readonly fs: IFileSystem;
12
+ readonly id: string;
13
+ private _metaFile;
14
+ private _url;
15
+ private _fileSize;
16
+ private _chunkSize;
17
+ private _chunkCount;
18
+ private _loadedChunks;
19
+ private _openSynchAccessCounter;
20
+ private _isInSynchMode;
21
+ private _cacheRoot?;
22
+ private _cachedDirs;
23
+ private _metadataUpdater?;
24
+ private constructor();
25
+ static fromUrl(fs: IFileSystem, id: string, url: string, fileSize: number): Promise<PartialFile>;
26
+ static fromFile(fs: IFileSystem, id: string): Promise<PartialFile>;
27
+ write(buffer: ArrayBuffer, position: number): Promise<void>;
28
+ read(position: number, size: number): Promise<Uint8Array>;
29
+ copyTo(file: IFile): Promise<void>;
30
+ openSyncFileAccess(): Promise<void>;
31
+ closeSyncFileAccess(): Promise<void>;
32
+ getFileInfo(): FileInfo;
33
+ isValid(): Promise<boolean>;
34
+ remove(): Promise<void>;
35
+ close(): Promise<void>;
36
+ calcRwChunkInfo(offset: number, size: number): ChunkRwInfo[];
37
+ private storeMetadata;
38
+ private readMetadata;
39
+ private initCache;
40
+ private clearCache;
41
+ private getCached;
42
+ private readChunk;
43
+ private writeChunk;
44
+ private readCached;
45
+ private writeCached;
46
+ private updateMetadata;
47
+ }
48
+ export {};