@loaders.gl/tile-converter 4.0.0-alpha.18 → 4.0.0-alpha.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/converter.js +1 -1
- package/dist/constants.d.ts +2 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +3 -1
- package/dist/converter-cli.js +10 -2
- package/dist/converter.min.js +172 -103
- package/dist/deps-installer/deps-installer.d.ts +3 -2
- package/dist/deps-installer/deps-installer.d.ts.map +1 -1
- package/dist/deps-installer/deps-installer.js +36 -10
- package/dist/dist.min.js +226 -151
- package/dist/es5/constants.js +5 -1
- package/dist/es5/constants.js.map +1 -1
- package/dist/es5/converter-cli.js +7 -2
- package/dist/es5/converter-cli.js.map +1 -1
- package/dist/es5/deps-installer/deps-installer.js +112 -38
- package/dist/es5/deps-installer/deps-installer.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js +21 -8
- package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/geometry-attributes.js +7 -6
- package/dist/es5/i3s-converter/helpers/geometry-attributes.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/geometry-converter.js +78 -67
- package/dist/es5/i3s-converter/helpers/geometry-converter.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/preprocess-3d-tiles.js +38 -9
- package/dist/es5/i3s-converter/helpers/preprocess-3d-tiles.js.map +1 -1
- package/dist/es5/i3s-converter/i3s-converter.js +86 -99
- package/dist/es5/i3s-converter/i3s-converter.js.map +1 -1
- package/dist/es5/i3s-converter/types.js +11 -11
- package/dist/es5/i3s-converter/types.js.map +1 -1
- package/dist/es5/i3s-server/controllers/slpk-controller.js +1 -1
- package/dist/es5/i3s-server/controllers/slpk-controller.js.map +1 -1
- package/dist/es5/index.js +3 -3
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/pgm-loader.js +1 -1
- package/dist/es5/slpk-extractor/helpers/{file-handle-provider.js → file-handle-file.js} +9 -9
- package/dist/es5/slpk-extractor/helpers/file-handle-file.js.map +1 -0
- package/dist/es5/slpk-extractor/slpk-extractor.js +5 -5
- package/dist/es5/slpk-extractor/slpk-extractor.js.map +1 -1
- package/dist/esm/constants.js +2 -0
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/converter-cli.js +7 -2
- package/dist/esm/converter-cli.js.map +1 -1
- package/dist/esm/deps-installer/deps-installer.js +37 -11
- package/dist/esm/deps-installer/deps-installer.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/batch-ids-extensions.js +18 -6
- package/dist/esm/i3s-converter/helpers/batch-ids-extensions.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/geometry-attributes.js +7 -6
- package/dist/esm/i3s-converter/helpers/geometry-attributes.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/geometry-converter.js +37 -25
- package/dist/esm/i3s-converter/helpers/geometry-converter.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/preprocess-3d-tiles.js +28 -9
- package/dist/esm/i3s-converter/helpers/preprocess-3d-tiles.js.map +1 -1
- package/dist/esm/i3s-converter/i3s-converter.js +49 -36
- package/dist/esm/i3s-converter/i3s-converter.js.map +1 -1
- package/dist/esm/i3s-converter/types.js +9 -9
- package/dist/esm/i3s-converter/types.js.map +1 -1
- package/dist/esm/i3s-server/bin/i3s-server.min.js +71 -71
- package/dist/esm/i3s-server/controllers/slpk-controller.js +2 -2
- package/dist/esm/i3s-server/controllers/slpk-controller.js.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/pgm-loader.js +1 -1
- package/dist/esm/slpk-extractor/helpers/{file-handle-provider.js → file-handle-file.js} +3 -3
- package/dist/esm/slpk-extractor/helpers/file-handle-file.js.map +1 -0
- package/dist/esm/slpk-extractor/slpk-extractor.js +3 -3
- package/dist/esm/slpk-extractor/slpk-extractor.js.map +1 -1
- package/dist/i3s-converter/helpers/batch-ids-extensions.d.ts +11 -1
- package/dist/i3s-converter/helpers/batch-ids-extensions.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/batch-ids-extensions.js +33 -13
- package/dist/i3s-converter/helpers/geometry-attributes.js +7 -6
- package/dist/i3s-converter/helpers/geometry-converter.d.ts +7 -6
- package/dist/i3s-converter/helpers/geometry-converter.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/geometry-converter.js +59 -47
- package/dist/i3s-converter/helpers/preprocess-3d-tiles.d.ts +2 -2
- package/dist/i3s-converter/helpers/preprocess-3d-tiles.d.ts.map +1 -1
- package/dist/i3s-converter/helpers/preprocess-3d-tiles.js +39 -14
- package/dist/i3s-converter/i3s-converter.d.ts +2 -1
- package/dist/i3s-converter/i3s-converter.d.ts.map +1 -1
- package/dist/i3s-converter/i3s-converter.js +49 -31
- package/dist/i3s-converter/types.d.ts +4 -2
- package/dist/i3s-converter/types.d.ts.map +1 -1
- package/dist/i3s-converter/types.js +11 -11
- package/dist/i3s-server/controllers/slpk-controller.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/slpk-extractor/helpers/{file-handle-provider.d.ts → file-handle-file.d.ts} +5 -5
- package/dist/slpk-extractor/helpers/file-handle-file.d.ts.map +1 -0
- package/dist/slpk-extractor/helpers/{file-handle-provider.js → file-handle-file.js} +5 -5
- package/dist/slpk-extractor/slpk-extractor.js +5 -5
- package/dist/slpk-extractor.min.js +32 -32
- package/package.json +15 -14
- package/src/constants.ts +3 -0
- package/src/converter-cli.ts +9 -2
- package/src/deps-installer/deps-installer.ts +55 -10
- package/src/i3s-converter/helpers/batch-ids-extensions.ts +39 -12
- package/src/i3s-converter/helpers/geometry-attributes.ts +15 -8
- package/src/i3s-converter/helpers/geometry-converter.ts +84 -48
- package/src/i3s-converter/helpers/preprocess-3d-tiles.ts +48 -18
- package/src/i3s-converter/i3s-converter.ts +65 -39
- package/src/i3s-converter/types.ts +4 -2
- package/src/i3s-server/controllers/slpk-controller.ts +2 -2
- package/src/index.ts +1 -1
- package/src/slpk-extractor/helpers/{file-handle-provider.ts → file-handle-file.ts} +5 -5
- package/src/slpk-extractor/slpk-extractor.ts +3 -3
- package/dist/es5/slpk-extractor/helpers/file-handle-provider.js.map +0 -1
- package/dist/esm/slpk-extractor/helpers/file-handle-provider.js.map +0 -1
- package/dist/slpk-extractor/helpers/file-handle-provider.d.ts.map +0 -1
|
@@ -14,7 +14,7 @@ import type {
|
|
|
14
14
|
MaxScreenThresholdSQ,
|
|
15
15
|
NodeInPage
|
|
16
16
|
} from '@loaders.gl/i3s';
|
|
17
|
-
import {load, encode,
|
|
17
|
+
import {load, encode, isBrowser} from '@loaders.gl/core';
|
|
18
18
|
import {CesiumIonLoader, Tiles3DLoader} from '@loaders.gl/3d-tiles';
|
|
19
19
|
import {Geoid} from '@math.gl/geoid';
|
|
20
20
|
import {join} from 'path';
|
|
@@ -51,13 +51,12 @@ import {I3SMaterialDefinition, TextureSetDefinitionFormats} from '@loaders.gl/i3
|
|
|
51
51
|
import {ImageWriter} from '@loaders.gl/images';
|
|
52
52
|
import {GLTFImagePostprocessed} from '@loaders.gl/gltf';
|
|
53
53
|
import {
|
|
54
|
-
|
|
54
|
+
GLTFPrimitiveModeString,
|
|
55
55
|
I3SConvertedResources,
|
|
56
56
|
PreprocessData,
|
|
57
57
|
SharedResourcesArrays
|
|
58
58
|
} from './types';
|
|
59
|
-
import {
|
|
60
|
-
import {DracoWriterWorker} from '@loaders.gl/draco';
|
|
59
|
+
import {WorkerFarm} from '@loaders.gl/worker-utils';
|
|
61
60
|
import WriteQueue from '../lib/utils/write-queue';
|
|
62
61
|
import {BROWSER_ERROR_MESSAGE} from '../constants';
|
|
63
62
|
import {
|
|
@@ -75,9 +74,7 @@ import {createBoundingVolume} from '@loaders.gl/tiles';
|
|
|
75
74
|
import {TraversalConversionProps, traverseDatasetWith} from './helpers/tileset-traversal';
|
|
76
75
|
import {analyzeTileContent, mergePreprocessData} from './helpers/preprocess-3d-tiles';
|
|
77
76
|
|
|
78
|
-
const ION_DEFAULT_TOKEN =
|
|
79
|
-
process.env?.IonToken || // eslint-disable-line
|
|
80
|
-
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJlYWMxMzcyYy0zZjJkLTQwODctODNlNi01MDRkZmMzMjIxOWIiLCJpZCI6OTYyMCwic2NvcGVzIjpbImFzbCIsImFzciIsImdjIl0sImlhdCI6MTU2Mjg2NjI3M30.1FNiClUyk00YH_nWfSGpiQAjR5V2OvREDq1PJ5QMjWQ'; // eslint-disable-line
|
|
77
|
+
const ION_DEFAULT_TOKEN = process.env?.IonToken;
|
|
81
78
|
const HARDCODED_NODES_PER_PAGE = 64;
|
|
82
79
|
const _3D_TILES = '3DTILES';
|
|
83
80
|
const _3D_OBJECT_LAYER_TYPE = '3DObject';
|
|
@@ -111,6 +108,7 @@ export default class I3SConverter {
|
|
|
111
108
|
loadOptions: Tiles3DLoaderOptions = {
|
|
112
109
|
_nodeWorkers: true,
|
|
113
110
|
reuseWorkers: true,
|
|
111
|
+
useLocalLibraries: true,
|
|
114
112
|
basis: {
|
|
115
113
|
format: 'rgba32',
|
|
116
114
|
// We need to load local fs workers because nodejs can't load workers from the Internet
|
|
@@ -118,7 +116,8 @@ export default class I3SConverter {
|
|
|
118
116
|
},
|
|
119
117
|
// We need to load local fs workers because nodejs can't load workers from the Internet
|
|
120
118
|
draco: {workerUrl: './modules/draco/dist/draco-worker-node.js'},
|
|
121
|
-
fetch: {}
|
|
119
|
+
fetch: {},
|
|
120
|
+
modules: {}
|
|
122
121
|
};
|
|
123
122
|
geoidHeightModel: Geoid | null = null;
|
|
124
123
|
Loader: LoaderWithParser = Tiles3DLoader;
|
|
@@ -129,7 +128,8 @@ export default class I3SConverter {
|
|
|
129
128
|
writeQueue: WriteQueue<WriteQueueItem> = new WriteQueue();
|
|
130
129
|
compressList: string[] | null = null;
|
|
131
130
|
preprocessData: PreprocessData = {
|
|
132
|
-
meshTopologyTypes: new Set()
|
|
131
|
+
meshTopologyTypes: new Set(),
|
|
132
|
+
metadataClasses: new Set()
|
|
133
133
|
};
|
|
134
134
|
|
|
135
135
|
constructor() {
|
|
@@ -186,6 +186,8 @@ export default class I3SConverter {
|
|
|
186
186
|
generateTextures?: boolean;
|
|
187
187
|
generateBoundingVolumes?: boolean;
|
|
188
188
|
instantNodeWriting?: boolean;
|
|
189
|
+
inquirer?: Promise<unknown>;
|
|
190
|
+
metadataClass?: string;
|
|
189
191
|
}): Promise<string> {
|
|
190
192
|
if (isBrowser) {
|
|
191
193
|
console.log(BROWSER_ERROR_MESSAGE);
|
|
@@ -206,7 +208,9 @@ export default class I3SConverter {
|
|
|
206
208
|
generateTextures,
|
|
207
209
|
generateBoundingVolumes,
|
|
208
210
|
instantNodeWriting = false,
|
|
209
|
-
mergeMaterials = true
|
|
211
|
+
mergeMaterials = true,
|
|
212
|
+
inquirer,
|
|
213
|
+
metadataClass
|
|
210
214
|
} = options;
|
|
211
215
|
this.options = {
|
|
212
216
|
maxDepth,
|
|
@@ -217,7 +221,9 @@ export default class I3SConverter {
|
|
|
217
221
|
token,
|
|
218
222
|
inputUrl,
|
|
219
223
|
instantNodeWriting,
|
|
220
|
-
mergeMaterials
|
|
224
|
+
mergeMaterials,
|
|
225
|
+
inquirer,
|
|
226
|
+
metadataClass
|
|
221
227
|
};
|
|
222
228
|
this.compressList = (this.options.instantNodeWriting && []) || null;
|
|
223
229
|
this.validate = Boolean(validate);
|
|
@@ -236,8 +242,6 @@ export default class I3SConverter {
|
|
|
236
242
|
this.nodePages.useWriteFunction(writeFileForSlpk);
|
|
237
243
|
}
|
|
238
244
|
|
|
239
|
-
await this.loadWorkers();
|
|
240
|
-
|
|
241
245
|
try {
|
|
242
246
|
const preloadOptions = await this._fetchPreloadOptions();
|
|
243
247
|
let tilesetUrl = inputUrl;
|
|
@@ -281,14 +285,24 @@ export default class I3SConverter {
|
|
|
281
285
|
undefined,
|
|
282
286
|
this.options.maxDepth
|
|
283
287
|
);
|
|
284
|
-
const {meshTopologyTypes} = this.preprocessData;
|
|
288
|
+
const {meshTopologyTypes, metadataClasses} = this.preprocessData;
|
|
289
|
+
|
|
285
290
|
console.log(`------------------------------------------------`);
|
|
286
291
|
console.log(`Preprocess results:`);
|
|
287
292
|
console.log(`glTF mesh topology types: ${Array.from(meshTopologyTypes).join(', ')}`);
|
|
293
|
+
|
|
294
|
+
if (metadataClasses.size) {
|
|
295
|
+
console.log(
|
|
296
|
+
`Feature metadata classes have been found: ${Array.from(metadataClasses).join(', ')}`
|
|
297
|
+
);
|
|
298
|
+
} else {
|
|
299
|
+
console.log('Feature metadata classes have not been found');
|
|
300
|
+
}
|
|
301
|
+
|
|
288
302
|
console.log(`------------------------------------------------`);
|
|
289
303
|
if (
|
|
290
|
-
!meshTopologyTypes.has(
|
|
291
|
-
!meshTopologyTypes.has(
|
|
304
|
+
!meshTopologyTypes.has(GLTFPrimitiveModeString.TRIANGLES) &&
|
|
305
|
+
!meshTopologyTypes.has(GLTFPrimitiveModeString.TRIANGLE_STRIP)
|
|
292
306
|
) {
|
|
293
307
|
console.log(
|
|
294
308
|
'The tileset is of unsupported mesh topology types. The conversion will be interrupted.'
|
|
@@ -296,6 +310,32 @@ export default class I3SConverter {
|
|
|
296
310
|
console.log(`------------------------------------------------`);
|
|
297
311
|
return false;
|
|
298
312
|
}
|
|
313
|
+
|
|
314
|
+
if (metadataClasses.size > 1) {
|
|
315
|
+
if (this.options.metadataClass?.length) {
|
|
316
|
+
console.log(`${this.options.metadataClass} has been selected`);
|
|
317
|
+
} else if (this.options.inquirer) {
|
|
318
|
+
const result = await this.options.inquirer.prompt([
|
|
319
|
+
{
|
|
320
|
+
name: 'metadataClass',
|
|
321
|
+
type: 'list',
|
|
322
|
+
message: 'Select feature metadata data class to convert...',
|
|
323
|
+
choices: Array.from(metadataClasses)
|
|
324
|
+
}
|
|
325
|
+
]);
|
|
326
|
+
this.options.metadataClass = result.metadataClass;
|
|
327
|
+
console.log(`${result.metadataClass} has been selected`);
|
|
328
|
+
} else {
|
|
329
|
+
console.log(
|
|
330
|
+
`A feature metadata class has not been selected. Start the converter with option "--metadata-class". For example, "npx tile-converter ... --metadata-class ${
|
|
331
|
+
Array.from(metadataClasses)[0]
|
|
332
|
+
}"`
|
|
333
|
+
);
|
|
334
|
+
console.log(`------------------------------------------------`);
|
|
335
|
+
return false;
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
|
|
299
339
|
return true;
|
|
300
340
|
}
|
|
301
341
|
|
|
@@ -600,7 +640,7 @@ export default class I3SConverter {
|
|
|
600
640
|
);
|
|
601
641
|
let boundingVolumes = createBoundingVolumes(sourceBoundingVolume, this.geoidHeightModel!);
|
|
602
642
|
|
|
603
|
-
const propertyTable = getPropertyTable(tileContent);
|
|
643
|
+
const propertyTable = getPropertyTable(tileContent, this.options.metadataClass);
|
|
604
644
|
|
|
605
645
|
if (propertyTable && !this.layers0?.attributeStorageInfo?.length) {
|
|
606
646
|
this._convertPropertyTableToNodeAttributes(propertyTable);
|
|
@@ -719,7 +759,8 @@ export default class I3SConverter {
|
|
|
719
759
|
this.generateBoundingVolumes,
|
|
720
760
|
this.options.mergeMaterials,
|
|
721
761
|
this.geoidHeightModel!,
|
|
722
|
-
this.
|
|
762
|
+
this.loadOptions.modules as Record<string, string>,
|
|
763
|
+
this.options.metadataClass
|
|
723
764
|
);
|
|
724
765
|
return resourcesData;
|
|
725
766
|
}
|
|
@@ -935,9 +976,13 @@ export default class I3SConverter {
|
|
|
935
976
|
KTX2BasisWriterWorker,
|
|
936
977
|
{
|
|
937
978
|
...KTX2BasisWriterWorker.options,
|
|
938
|
-
|
|
979
|
+
['ktx2-basis-writer']: {
|
|
980
|
+
// We need to load local fs workers because nodejs can't load workers from the Internet
|
|
981
|
+
workerUrl: './modules/textures/dist/ktx2-basis-writer-worker-node.js'
|
|
982
|
+
},
|
|
939
983
|
reuseWorkers: true,
|
|
940
|
-
_nodeWorkers: true
|
|
984
|
+
_nodeWorkers: true,
|
|
985
|
+
useLocalLibraries: true
|
|
941
986
|
}
|
|
942
987
|
);
|
|
943
988
|
|
|
@@ -1197,23 +1242,4 @@ export default class I3SConverter {
|
|
|
1197
1242
|
private isContentSupported(sourceTile: Tiles3DTileJSONPostprocessed): boolean {
|
|
1198
1243
|
return ['b3dm', 'glTF', 'scenegraph'].includes(sourceTile.type || '');
|
|
1199
1244
|
}
|
|
1200
|
-
|
|
1201
|
-
private async loadWorkers(): Promise<void> {
|
|
1202
|
-
console.log(`Loading workers source...`); // eslint-disable-line no-undef, no-console
|
|
1203
|
-
if (this.options.draco) {
|
|
1204
|
-
const url = getWorkerURL(DracoWriterWorker, {...getLoaderOptions()});
|
|
1205
|
-
const sourceResponse = await fetchFile(url);
|
|
1206
|
-
const source = await sourceResponse.text();
|
|
1207
|
-
this.workerSource.draco = source;
|
|
1208
|
-
}
|
|
1209
|
-
|
|
1210
|
-
if (this.generateTextures) {
|
|
1211
|
-
const url = getWorkerURL(KTX2BasisWriterWorker, {...getLoaderOptions()});
|
|
1212
|
-
const sourceResponse = await fetchFile(url);
|
|
1213
|
-
const source = await sourceResponse.text();
|
|
1214
|
-
this.workerSource.ktx2 = source;
|
|
1215
|
-
}
|
|
1216
|
-
|
|
1217
|
-
console.log(`Loading workers source completed!`); // eslint-disable-line no-undef, no-console
|
|
1218
|
-
}
|
|
1219
1245
|
}
|
|
@@ -169,7 +169,7 @@ export type TypedArrayConstructor =
|
|
|
169
169
|
* glTF primitive modes (mesh topology types)
|
|
170
170
|
* @see https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#_mesh_primitive_mode
|
|
171
171
|
*/
|
|
172
|
-
export enum
|
|
172
|
+
export enum GLTFPrimitiveModeString {
|
|
173
173
|
POINTS = 'POINTS',
|
|
174
174
|
LINES = 'LINES',
|
|
175
175
|
LINE_LOOP = 'LINE_LOOP',
|
|
@@ -182,7 +182,9 @@ export enum GltfPrimitiveModeString {
|
|
|
182
182
|
/** Preprocessed data gathered from child tiles binary content */
|
|
183
183
|
export type PreprocessData = {
|
|
184
184
|
/** Mesh topology types used in gltf primitives of the tileset */
|
|
185
|
-
meshTopologyTypes: Set<
|
|
185
|
+
meshTopologyTypes: Set<GLTFPrimitiveModeString>;
|
|
186
|
+
/** Featrue metadata classes found in glTF extensions */
|
|
187
|
+
metadataClasses: Set<string>;
|
|
186
188
|
};
|
|
187
189
|
|
|
188
190
|
/** Texture image properties required for conversion */
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import '@loaders.gl/polyfills';
|
|
2
2
|
import {parseSLPK} from '@loaders.gl/i3s';
|
|
3
|
-
import {
|
|
3
|
+
import {FileHandleFile} from '@loaders.gl/tile-converter';
|
|
4
4
|
|
|
5
5
|
let slpkArchive;
|
|
6
6
|
|
|
@@ -9,7 +9,7 @@ let slpkArchive;
|
|
|
9
9
|
* @param fullLayerPath - full path to SLPK file
|
|
10
10
|
*/
|
|
11
11
|
export const loadArchive = async (fullLayerPath: string): Promise<void> => {
|
|
12
|
-
slpkArchive = await parseSLPK(await
|
|
12
|
+
slpkArchive = await parseSLPK(await FileHandleFile.from(fullLayerPath), (msg) =>
|
|
13
13
|
console.log(msg)
|
|
14
14
|
);
|
|
15
15
|
console.log('The server is ready to use');
|
package/src/index.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export {default as I3SConverter} from './i3s-converter/i3s-converter';
|
|
2
2
|
export {default as Tiles3DConverter} from './3d-tiles-converter/3d-tiles-converter';
|
|
3
|
-
export {
|
|
3
|
+
export {FileHandleFile} from './slpk-extractor/helpers/file-handle-file';
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import {FileProvider} from '@loaders.gl/
|
|
1
|
+
import {FileProvider} from '@loaders.gl/zip';
|
|
2
2
|
import {FileHandle} from './fs-promises';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Provides file data using node fs library
|
|
6
6
|
*/
|
|
7
|
-
export class
|
|
7
|
+
export class FileHandleFile implements FileProvider {
|
|
8
8
|
/**
|
|
9
|
-
* Returns a new copy of
|
|
9
|
+
* Returns a new copy of FileHandleFile
|
|
10
10
|
* @param path The path to the file in file system
|
|
11
11
|
*/
|
|
12
|
-
static async from(path: string): Promise<
|
|
12
|
+
static async from(path: string): Promise<FileHandleFile> {
|
|
13
13
|
const fileDescriptor = await FileHandle.open(path);
|
|
14
|
-
return new
|
|
14
|
+
return new FileHandleFile(fileDescriptor, fileDescriptor.stat.size);
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
/**
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {isBrowser} from '@loaders.gl/core';
|
|
2
2
|
|
|
3
3
|
import {BROWSER_ERROR_MESSAGE} from '../constants';
|
|
4
|
-
import {
|
|
5
|
-
import {parseZipLocalFileHeader} from '@loaders.gl/i3s';
|
|
4
|
+
import {FileHandleFile} from './helpers/file-handle-file';
|
|
6
5
|
import {path} from '@loaders.gl/loader-utils';
|
|
6
|
+
import {parseZipLocalFileHeader} from '@loaders.gl/zip';
|
|
7
7
|
import {GZipCompression} from '@loaders.gl/compression';
|
|
8
8
|
import {writeFile} from '../lib/utils/file-utils';
|
|
9
9
|
|
|
@@ -38,7 +38,7 @@ export default class SLPKConverter {
|
|
|
38
38
|
}
|
|
39
39
|
const {inputUrl} = options;
|
|
40
40
|
|
|
41
|
-
const provider = await
|
|
41
|
+
const provider = await FileHandleFile.from(inputUrl);
|
|
42
42
|
|
|
43
43
|
let localHeader = await parseZipLocalFileHeader(0n, provider);
|
|
44
44
|
while (localHeader) {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file-handle-provider.js","names":["_fsPromises","require","FileHandleProvider","fileDescriptor","size","_classCallCheck2","default","_defineProperty2","_createClass2","key","value","_getUint","_asyncToGenerator2","_regenerator","mark","_callee","offset","val","wrap","_callee$","_context","prev","next","t0","Uint8Array","read","Buffer","alloc","t1","sent","buffer","at","undefined","Error","abrupt","stop","getUint8","_x","apply","arguments","_getUint2","_callee2","_callee2$","_context2","Uint16Array","getUint16","_x2","_getUint3","_callee3","_callee3$","_context3","Uint32Array","getUint32","_x3","_getBigUint","_callee4","_callee4$","_context4","BigInt64Array","getBigUint64","_x4","_slice","_callee5","startOffsset","endOffset","bigLength","length","_callee5$","_context5","Number","MAX_SAFE_INTEGER","slice","_x5","_x6","get","_from","_callee6","path","_callee6$","_context6","FileHandle","open","stat","from","_x7","exports"],"sources":["../../../../src/slpk-extractor/helpers/file-handle-provider.ts"],"sourcesContent":["import {FileProvider} from '@loaders.gl/i3s';\nimport {FileHandle} from './fs-promises';\n\n/**\n * Provides file data using node fs library\n */\nexport class FileHandleProvider implements FileProvider {\n /**\n * Returns a new copy of FileHandleProvider\n * @param path The path to the file in file system\n */\n static async from(path: string): Promise<FileHandleProvider> {\n const fileDescriptor = await FileHandle.open(path);\n return new FileHandleProvider(fileDescriptor, fileDescriptor.stat.size);\n }\n\n /**\n * The FileHandle from which data is provided\n */\n private fileDescriptor: FileHandle;\n\n /**\n * The file length in bytes\n */\n private size: bigint;\n\n private constructor(fileDescriptor: FileHandle, size: bigint) {\n this.fileDescriptor = fileDescriptor;\n this.size = size;\n }\n\n /**\n * Gets an unsigned 8-bit integer at the specified byte offset from the start of the file.\n * @param offset The offset, in bytes, from the start of the file where to read the data.\n */\n async getUint8(offset: bigint): Promise<number> {\n const val = new Uint8Array(\n (await this.fileDescriptor.read(Buffer.alloc(1), 0, 1, offset)).buffer.buffer\n ).at(0);\n if (val === undefined) {\n throw new Error('something went wrong');\n }\n return val;\n }\n\n /**\n * Gets an unsigned 16-bit integer at the specified byte offset from the start of the file.\n * @param offset The offset, in bytes, from the start of the file where to read the data.\n */\n async getUint16(offset: bigint): Promise<number> {\n const val = new Uint16Array(\n (await this.fileDescriptor.read(Buffer.alloc(2), 0, 2, offset)).buffer.buffer\n ).at(0);\n if (val === undefined) {\n throw new Error('something went wrong');\n }\n return val;\n }\n\n /**\n * Gets an unsigned 32-bit integer at the specified byte offset from the start of the file.\n * @param offset The offset, in bytes, from the start of the file where to read the data.\n */\n async getUint32(offset: bigint): Promise<number> {\n const val = new Uint32Array(\n (await this.fileDescriptor.read(Buffer.alloc(4), 0, 4, offset)).buffer.buffer\n ).at(0);\n if (val === undefined) {\n throw new Error('something went wrong');\n }\n return val;\n }\n\n /**\n * Gets an unsigned 32-bit integer at the specified byte offset from the start of the file.\n * @param offset The offset, in bytes, from the start of the file where to read the data.\n */\n async getBigUint64(offset: bigint): Promise<bigint> {\n const val = new BigInt64Array(\n (await this.fileDescriptor.read(Buffer.alloc(8), 0, 8, offset)).buffer.buffer\n ).at(0);\n if (val === undefined) {\n throw new Error('something went wrong');\n }\n return val;\n }\n\n /**\n * returns an ArrayBuffer whose contents are a copy of this file bytes from startOffset, inclusive, up to endOffset, exclusive.\n * @param startOffsset The offset, in byte, from the start of the file where to start reading the data.\n * @param endOffset The offset, in bytes, from the start of the file where to end reading the data.\n */\n async slice(startOffsset: bigint, endOffset: bigint): Promise<ArrayBuffer> {\n const bigLength = endOffset - startOffsset;\n if (bigLength > Number.MAX_SAFE_INTEGER) {\n throw new Error('too big slice');\n }\n const length = Number(bigLength);\n return (await this.fileDescriptor.read(Buffer.alloc(length), 0, length, startOffsset)).buffer\n .buffer;\n }\n\n /**\n * the length (in bytes) of the data.\n */\n get length(): bigint {\n return this.size;\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file-handle-provider.js","names":["FileHandle","FileHandleProvider","from","path","fileDescriptor","open","stat","size","constructor","_defineProperty","getUint8","offset","val","Uint8Array","read","Buffer","alloc","buffer","at","undefined","Error","getUint16","Uint16Array","getUint32","Uint32Array","getBigUint64","BigInt64Array","slice","startOffsset","endOffset","bigLength","Number","MAX_SAFE_INTEGER","length"],"sources":["../../../../src/slpk-extractor/helpers/file-handle-provider.ts"],"sourcesContent":["import {FileProvider} from '@loaders.gl/i3s';\nimport {FileHandle} from './fs-promises';\n\n/**\n * Provides file data using node fs library\n */\nexport class FileHandleProvider implements FileProvider {\n /**\n * Returns a new copy of FileHandleProvider\n * @param path The path to the file in file system\n */\n static async from(path: string): Promise<FileHandleProvider> {\n const fileDescriptor = await FileHandle.open(path);\n return new FileHandleProvider(fileDescriptor, fileDescriptor.stat.size);\n }\n\n /**\n * The FileHandle from which data is provided\n */\n private fileDescriptor: FileHandle;\n\n /**\n * The file length in bytes\n */\n private size: bigint;\n\n private constructor(fileDescriptor: FileHandle, size: bigint) {\n this.fileDescriptor = fileDescriptor;\n this.size = size;\n }\n\n /**\n * Gets an unsigned 8-bit integer at the specified byte offset from the start of the file.\n * @param offset The offset, in bytes, from the start of the file where to read the data.\n */\n async getUint8(offset: bigint): Promise<number> {\n const val = new Uint8Array(\n (await this.fileDescriptor.read(Buffer.alloc(1), 0, 1, offset)).buffer.buffer\n ).at(0);\n if (val === undefined) {\n throw new Error('something went wrong');\n }\n return val;\n }\n\n /**\n * Gets an unsigned 16-bit integer at the specified byte offset from the start of the file.\n * @param offset The offset, in bytes, from the start of the file where to read the data.\n */\n async getUint16(offset: bigint): Promise<number> {\n const val = new Uint16Array(\n (await this.fileDescriptor.read(Buffer.alloc(2), 0, 2, offset)).buffer.buffer\n ).at(0);\n if (val === undefined) {\n throw new Error('something went wrong');\n }\n return val;\n }\n\n /**\n * Gets an unsigned 32-bit integer at the specified byte offset from the start of the file.\n * @param offset The offset, in bytes, from the start of the file where to read the data.\n */\n async getUint32(offset: bigint): Promise<number> {\n const val = new Uint32Array(\n (await this.fileDescriptor.read(Buffer.alloc(4), 0, 4, offset)).buffer.buffer\n ).at(0);\n if (val === undefined) {\n throw new Error('something went wrong');\n }\n return val;\n }\n\n /**\n * Gets an unsigned 32-bit integer at the specified byte offset from the start of the file.\n * @param offset The offset, in bytes, from the start of the file where to read the data.\n */\n async getBigUint64(offset: bigint): Promise<bigint> {\n const val = new BigInt64Array(\n (await this.fileDescriptor.read(Buffer.alloc(8), 0, 8, offset)).buffer.buffer\n ).at(0);\n if (val === undefined) {\n throw new Error('something went wrong');\n }\n return val;\n }\n\n /**\n * returns an ArrayBuffer whose contents are a copy of this file bytes from startOffset, inclusive, up to endOffset, exclusive.\n * @param startOffsset The offset, in byte, from the start of the file where to start reading the data.\n * @param endOffset The offset, in bytes, from the start of the file where to end reading the data.\n */\n async slice(startOffsset: bigint, endOffset: bigint): Promise<ArrayBuffer> {\n const bigLength = endOffset - startOffsset;\n if (bigLength > Number.MAX_SAFE_INTEGER) {\n throw new Error('too big slice');\n }\n const length = Number(bigLength);\n return (await this.fileDescriptor.read(Buffer.alloc(length), 0, length, startOffsset)).buffer\n .buffer;\n }\n\n /**\n * the length (in bytes) of the data.\n */\n get length(): bigint {\n return this.size;\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"file-handle-provider.d.ts","sourceRoot":"","sources":["../../../src/slpk-extractor/helpers/file-handle-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAG7C;;GAEG;AACH,qBAAa,kBAAmB,YAAW,YAAY;IACrD;;;OAGG;WACU,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAK5D;;OAEG;IACH,OAAO,CAAC,cAAc,CAAa;IAEnC;;OAEG;IACH,OAAO,CAAC,IAAI,CAAS;IAErB,OAAO;IAKP;;;OAGG;IACG,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAU/C;;;OAGG;IACG,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUhD;;;OAGG;IACG,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUhD;;;OAGG;IACG,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUnD;;;;OAIG;IACG,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAU1E;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;CACF"}
|