@loaders.gl/3d-tiles 4.0.0-alpha.21 → 4.0.0-alpha.23
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/dist/3d-tiles-archive/3d-tiles-archive-archive.d.ts +30 -0
- package/dist/3d-tiles-archive/3d-tiles-archive-archive.d.ts.map +1 -0
- package/dist/{tz3/tz3-archive.js → 3d-tiles-archive/3d-tiles-archive-archive.js} +16 -16
- package/dist/3d-tiles-archive/3d-tiles-archive-parser.d.ts +10 -0
- package/dist/3d-tiles-archive/3d-tiles-archive-parser.d.ts.map +1 -0
- package/dist/{tz3/tz3-parser.js → 3d-tiles-archive/3d-tiles-archive-parser.js} +5 -5
- package/dist/3d-tiles-archive-loader.d.ts +13 -0
- package/dist/3d-tiles-archive-loader.d.ts.map +1 -0
- package/dist/3d-tiles-archive-loader.js +31 -0
- package/dist/cesium-ion-loader.d.ts.map +1 -1
- package/dist/cesium-ion-loader.js +0 -1
- package/dist/dist.min.js +2218 -1370
- package/dist/es5/3d-tiles-archive/3d-tiles-archive-archive.js +126 -0
- package/dist/es5/3d-tiles-archive/3d-tiles-archive-archive.js.map +1 -0
- package/dist/es5/{tz3/tz3-parser.js → 3d-tiles-archive/3d-tiles-archive-parser.js} +7 -7
- package/dist/es5/3d-tiles-archive/3d-tiles-archive-parser.js.map +1 -0
- package/dist/es5/3d-tiles-archive-loader.js +50 -0
- package/dist/es5/3d-tiles-archive-loader.js.map +1 -0
- package/dist/es5/cesium-ion-loader.js.map +1 -1
- package/dist/es5/index.js +14 -7
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/lib/filesystems/tiles-3d-archive-file-system.js +151 -0
- package/dist/es5/lib/filesystems/tiles-3d-archive-file-system.js.map +1 -0
- package/dist/es5/lib/parsers/helpers/parse-3d-tile-gltf-view.js +3 -3
- package/dist/es5/lib/parsers/helpers/parse-3d-tile-gltf-view.js.map +1 -1
- package/dist/es5/lib/parsers/parse-3d-tile-composite.js +3 -1
- package/dist/es5/lib/parsers/parse-3d-tile-composite.js.map +1 -1
- package/dist/es5/lib/parsers/parse-3d-tile-gltf.js +14 -12
- package/dist/es5/lib/parsers/parse-3d-tile-gltf.js.map +1 -1
- package/dist/es5/lib/parsers/parse-3d-tile-header.js +2 -1
- package/dist/es5/lib/parsers/parse-3d-tile-header.js.map +1 -1
- package/dist/es5/lib/parsers/parse-3d-tile-point-cloud.js +6 -6
- package/dist/es5/lib/parsers/parse-3d-tile-point-cloud.js.map +1 -1
- package/dist/es5/lib/parsers/parse-3d-tile.js +3 -1
- package/dist/es5/lib/parsers/parse-3d-tile.js.map +1 -1
- package/dist/es5/lib/utils/version.js +1 -1
- package/dist/es5/tiles-3d-loader.js +2 -0
- package/dist/es5/tiles-3d-loader.js.map +1 -1
- package/dist/es5/types.js.map +1 -1
- package/dist/esm/{tz3/tz3-archive.js → 3d-tiles-archive/3d-tiles-archive-archive.js} +14 -19
- package/dist/esm/3d-tiles-archive/3d-tiles-archive-archive.js.map +1 -0
- package/dist/esm/{tz3/tz3-parser.js → 3d-tiles-archive/3d-tiles-archive-parser.js} +4 -4
- package/dist/esm/3d-tiles-archive/3d-tiles-archive-parser.js.map +1 -0
- package/dist/esm/3d-tiles-archive-loader.js +20 -0
- package/dist/esm/3d-tiles-archive-loader.js.map +1 -0
- package/dist/esm/cesium-ion-loader.js.map +1 -1
- package/dist/esm/index.js +2 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/filesystems/tiles-3d-archive-file-system.js +49 -0
- package/dist/esm/lib/filesystems/tiles-3d-archive-file-system.js.map +1 -0
- package/dist/esm/lib/parsers/helpers/parse-3d-tile-gltf-view.js +5 -6
- package/dist/esm/lib/parsers/helpers/parse-3d-tile-gltf-view.js.map +1 -1
- package/dist/esm/lib/parsers/parse-3d-tile-composite.js +3 -1
- package/dist/esm/lib/parsers/parse-3d-tile-composite.js.map +1 -1
- package/dist/esm/lib/parsers/parse-3d-tile-gltf.js +7 -8
- package/dist/esm/lib/parsers/parse-3d-tile-gltf.js.map +1 -1
- package/dist/esm/lib/parsers/parse-3d-tile-header.js +2 -1
- package/dist/esm/lib/parsers/parse-3d-tile-header.js.map +1 -1
- package/dist/esm/lib/parsers/parse-3d-tile-point-cloud.js +2 -4
- package/dist/esm/lib/parsers/parse-3d-tile-point-cloud.js.map +1 -1
- package/dist/esm/lib/parsers/parse-3d-tile.js +3 -1
- package/dist/esm/lib/parsers/parse-3d-tile.js.map +1 -1
- package/dist/esm/lib/utils/version.js +1 -1
- package/dist/esm/tiles-3d-loader.js +2 -0
- package/dist/esm/tiles-3d-loader.js.map +1 -1
- package/dist/esm/types.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -3
- package/dist/lib/filesystems/tiles-3d-archive-file-system.d.ts +32 -0
- package/dist/lib/filesystems/tiles-3d-archive-file-system.d.ts.map +1 -0
- package/dist/lib/filesystems/tiles-3d-archive-file-system.js +75 -0
- package/dist/lib/parsers/helpers/parse-3d-tile-gltf-view.d.ts.map +1 -1
- package/dist/lib/parsers/helpers/parse-3d-tile-gltf-view.js +2 -2
- package/dist/lib/parsers/parse-3d-tile-composite.js +1 -1
- package/dist/lib/parsers/parse-3d-tile-gltf.d.ts +2 -2
- package/dist/lib/parsers/parse-3d-tile-gltf.d.ts.map +1 -1
- package/dist/lib/parsers/parse-3d-tile-gltf.js +8 -7
- package/dist/lib/parsers/parse-3d-tile-header.d.ts.map +1 -1
- package/dist/lib/parsers/parse-3d-tile-header.js +2 -1
- package/dist/lib/parsers/parse-3d-tile-point-cloud.d.ts +1 -1
- package/dist/lib/parsers/parse-3d-tile-point-cloud.d.ts.map +1 -1
- package/dist/lib/parsers/parse-3d-tile-point-cloud.js +10 -2
- package/dist/lib/parsers/parse-3d-tile.d.ts +1 -1
- package/dist/lib/parsers/parse-3d-tile.d.ts.map +1 -1
- package/dist/lib/parsers/parse-3d-tile.js +1 -1
- package/dist/tiles-3d-loader.d.ts +2 -1
- package/dist/tiles-3d-loader.d.ts.map +1 -1
- package/dist/tiles-3d-loader.js +4 -0
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +8 -7
- package/src/{tz3/tz3-archive.ts → 3d-tiles-archive/3d-tiles-archive-archive.ts} +22 -19
- package/src/{tz3/tz3-parser.ts → 3d-tiles-archive/3d-tiles-archive-parser.ts} +5 -5
- package/src/3d-tiles-archive-loader.ts +47 -0
- package/src/cesium-ion-loader.ts +0 -1
- package/src/index.ts +3 -2
- package/src/lib/filesystems/tiles-3d-archive-file-system.ts +97 -0
- package/src/lib/parsers/helpers/parse-3d-tile-gltf-view.ts +8 -3
- package/src/lib/parsers/parse-3d-tile-composite.ts +1 -1
- package/src/lib/parsers/parse-3d-tile-gltf.ts +11 -10
- package/src/lib/parsers/parse-3d-tile-header.ts +2 -1
- package/src/lib/parsers/parse-3d-tile-point-cloud.ts +10 -3
- package/src/lib/parsers/parse-3d-tile.ts +2 -2
- package/src/tiles-3d-loader.ts +16 -4
- package/src/types.ts +3 -0
- package/dist/es5/tz3/tz3-archive.js +0 -161
- package/dist/es5/tz3/tz3-archive.js.map +0 -1
- package/dist/es5/tz3/tz3-parser.js.map +0 -1
- package/dist/es5/tz3-loader.js +0 -48
- package/dist/es5/tz3-loader.js.map +0 -1
- package/dist/esm/tz3/tz3-archive.js.map +0 -1
- package/dist/esm/tz3/tz3-parser.js.map +0 -1
- package/dist/esm/tz3-loader.js +0 -19
- package/dist/esm/tz3-loader.js.map +0 -1
- package/dist/tz3/tz3-archive.d.ts +0 -23
- package/dist/tz3/tz3-archive.d.ts.map +0 -1
- package/dist/tz3/tz3-parser.d.ts +0 -10
- package/dist/tz3/tz3-parser.d.ts.map +0 -1
- package/dist/tz3-loader.d.ts +0 -14
- package/dist/tz3-loader.d.ts.map +0 -1
- package/dist/tz3-loader.js +0 -30
- package/src/tz3-loader.ts +0 -41
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
// loaders.gl, MIT license
|
|
2
|
+
|
|
3
|
+
import {parseFromContext, LoaderContext} from '@loaders.gl/loader-utils';
|
|
3
4
|
import {_getMemoryUsageGLTF, GLTFLoader, postProcessGLTF} from '@loaders.gl/gltf';
|
|
5
|
+
import type {Tiles3DLoaderOptions} from '../../tiles-3d-loader';
|
|
4
6
|
import {Tiles3DTileContent} from '../../types';
|
|
5
7
|
|
|
6
8
|
export async function parseGltf3DTile(
|
|
@@ -8,26 +10,25 @@ export async function parseGltf3DTile(
|
|
|
8
10
|
arrayBuffer: ArrayBuffer,
|
|
9
11
|
options?: Tiles3DLoaderOptions,
|
|
10
12
|
context?: LoaderContext
|
|
11
|
-
): Promise<
|
|
13
|
+
): Promise<number> {
|
|
12
14
|
// Set flags
|
|
13
15
|
// glTF models need to be rotated from Y to Z up
|
|
14
16
|
// https://github.com/AnalyticalGraphicsInc/3d-tiles/tree/master/specification#y-up-to-z-up
|
|
15
17
|
tile.rotateYtoZ = true;
|
|
16
18
|
// Save gltf up axis
|
|
17
|
-
tile.gltfUpAxis =
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
: 'Y';
|
|
19
|
+
tile.gltfUpAxis = options?.['3d-tiles']?.assetGltfUpAxis
|
|
20
|
+
? options['3d-tiles'].assetGltfUpAxis
|
|
21
|
+
: 'Y';
|
|
21
22
|
|
|
22
23
|
if (options?.['3d-tiles']?.loadGLTF) {
|
|
23
24
|
if (!context) {
|
|
24
|
-
return;
|
|
25
|
+
return arrayBuffer.byteLength;
|
|
25
26
|
}
|
|
26
|
-
const
|
|
27
|
-
const gltfWithBuffers = await parse(arrayBuffer, GLTFLoader, options, context);
|
|
27
|
+
const gltfWithBuffers = await parseFromContext(arrayBuffer, GLTFLoader, options, context);
|
|
28
28
|
tile.gltf = postProcessGLTF(gltfWithBuffers);
|
|
29
29
|
tile.gpuMemoryUsageInBytes = _getMemoryUsageGLTF(tile.gltf);
|
|
30
30
|
} else {
|
|
31
31
|
tile.gltfArrayBuffer = arrayBuffer;
|
|
32
32
|
}
|
|
33
|
+
return arrayBuffer.byteLength;
|
|
33
34
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type {Tiles3DLoaderOptions} from '../../tiles-3d-loader';
|
|
2
2
|
import type {LoaderOptions} from '@loaders.gl/loader-utils';
|
|
3
|
+
import {path} from '@loaders.gl/loader-utils';
|
|
3
4
|
import {Tile3DSubtreeLoader} from '../../tile-3d-subtree-loader';
|
|
4
5
|
import {load} from '@loaders.gl/core';
|
|
5
6
|
import {LOD_METRIC_TYPE, TILE_REFINEMENT, TILE_TYPE} from '@loaders.gl/tiles';
|
|
@@ -89,7 +90,7 @@ function resolveUri(uri: string = '', basePath: string): string {
|
|
|
89
90
|
return uri;
|
|
90
91
|
}
|
|
91
92
|
|
|
92
|
-
return
|
|
93
|
+
return path.resolve(basePath, uri);
|
|
93
94
|
}
|
|
94
95
|
|
|
95
96
|
export function normalizeTileData(
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
// See LICENSE.md and https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md
|
|
3
3
|
|
|
4
4
|
import {DracoLoader} from '@loaders.gl/draco';
|
|
5
|
+
import {LoaderContext, parseFromContext} from '@loaders.gl/loader-utils';
|
|
5
6
|
import {GL} from '@loaders.gl/math';
|
|
6
7
|
import {Vector3} from '@math.gl/core';
|
|
7
8
|
|
|
@@ -13,7 +14,6 @@ import {normalize3DTileColorAttribute} from './helpers/normalize-3d-tile-colors'
|
|
|
13
14
|
import {normalize3DTileNormalAttribute} from './helpers/normalize-3d-tile-normals';
|
|
14
15
|
import {normalize3DTilePositionAttribute} from './helpers/normalize-3d-tile-positions';
|
|
15
16
|
import {Tiles3DLoaderOptions} from '../../tiles-3d-loader';
|
|
16
|
-
import {LoaderContext} from '@loaders.gl/loader-utils';
|
|
17
17
|
import {Tiles3DTileContent} from '../../types';
|
|
18
18
|
|
|
19
19
|
export async function parsePointCloud3DTile(
|
|
@@ -262,7 +262,6 @@ export async function loadDraco(
|
|
|
262
262
|
if (!context) {
|
|
263
263
|
return;
|
|
264
264
|
}
|
|
265
|
-
const {parse} = context;
|
|
266
265
|
const dracoOptions = {
|
|
267
266
|
...options,
|
|
268
267
|
draco: {
|
|
@@ -274,17 +273,20 @@ export async function loadDraco(
|
|
|
274
273
|
// The entire tileset might be included, too expensive to serialize
|
|
275
274
|
delete dracoOptions['3d-tiles'];
|
|
276
275
|
|
|
277
|
-
const data = await
|
|
276
|
+
const data = await parseFromContext(dracoData.buffer, DracoLoader, dracoOptions, context);
|
|
278
277
|
|
|
279
278
|
const decodedPositions = data.attributes.POSITION && data.attributes.POSITION.value;
|
|
280
279
|
const decodedColors = data.attributes.COLOR_0 && data.attributes.COLOR_0.value;
|
|
281
280
|
const decodedNormals = data.attributes.NORMAL && data.attributes.NORMAL.value;
|
|
282
281
|
const decodedBatchIds = data.attributes.BATCH_ID && data.attributes.BATCH_ID.value;
|
|
282
|
+
// @ts-expect-error
|
|
283
283
|
const isQuantizedDraco = decodedPositions && data.attributes.POSITION.value.quantization;
|
|
284
|
+
// @ts-expect-error
|
|
284
285
|
const isOctEncodedDraco = decodedNormals && data.attributes.NORMAL.value.quantization;
|
|
285
286
|
if (isQuantizedDraco) {
|
|
286
287
|
// Draco quantization range == quantized volume scale - size in meters of the quantized volume
|
|
287
288
|
// Internal quantized range is the range of values of the quantized data, e.g. 255 for 8-bit, 1023 for 10-bit, etc
|
|
289
|
+
// @ts-expect-error This doesn't look right
|
|
288
290
|
const quantization = data.POSITION.data.quantization;
|
|
289
291
|
const range = quantization.range;
|
|
290
292
|
tile.quantizedVolumeScale = new Vector3(range, range, range);
|
|
@@ -293,6 +295,7 @@ export async function loadDraco(
|
|
|
293
295
|
tile.isQuantizedDraco = true;
|
|
294
296
|
}
|
|
295
297
|
if (isOctEncodedDraco) {
|
|
298
|
+
// @ts-expect-error This doesn't look right
|
|
296
299
|
tile.octEncodedRange = (1 << data.NORMAL.data.quantization.quantizationBits) - 1.0;
|
|
297
300
|
tile.isOctEncodedDraco = true;
|
|
298
301
|
}
|
|
@@ -308,9 +311,13 @@ export async function loadDraco(
|
|
|
308
311
|
}
|
|
309
312
|
|
|
310
313
|
tile.attributes = {
|
|
314
|
+
// @ts-expect-error
|
|
311
315
|
positions: decodedPositions,
|
|
316
|
+
// @ts-expect-error
|
|
312
317
|
colors: normalize3DTileColorAttribute(tile, decodedColors, undefined),
|
|
318
|
+
// @ts-expect-error
|
|
313
319
|
normals: decodedNormals,
|
|
320
|
+
// @ts-expect-error
|
|
314
321
|
batchIds: decodedBatchIds,
|
|
315
322
|
...batchTableAttributes
|
|
316
323
|
};
|
|
@@ -19,8 +19,8 @@ export async function parse3DTile(
|
|
|
19
19
|
byteOffset = 0,
|
|
20
20
|
options: Tiles3DLoaderOptions | undefined,
|
|
21
21
|
context: LoaderContext | undefined,
|
|
22
|
-
tile: Tiles3DTileContent = {}
|
|
23
|
-
) {
|
|
22
|
+
tile: Tiles3DTileContent = {shape: 'tile3d'}
|
|
23
|
+
): Promise<number> {
|
|
24
24
|
tile.byteOffset = byteOffset;
|
|
25
25
|
tile.type = getMagicString(arrayBuffer, byteOffset);
|
|
26
26
|
|
package/src/tiles-3d-loader.ts
CHANGED
|
@@ -8,7 +8,7 @@ import {TILESET_TYPE, LOD_METRIC_TYPE} from '@loaders.gl/tiles';
|
|
|
8
8
|
import {VERSION} from './lib/utils/version';
|
|
9
9
|
import {parse3DTile} from './lib/parsers/parse-3d-tile';
|
|
10
10
|
import {normalizeTileHeaders} from './lib/parsers/parse-3d-tile-header';
|
|
11
|
-
import {Tiles3DTilesetJSON, Tiles3DTilesetJSONPostprocessed} from './types';
|
|
11
|
+
import {Tiles3DTilesetJSON, Tiles3DTileContent, Tiles3DTilesetJSONPostprocessed} from './types';
|
|
12
12
|
|
|
13
13
|
export type Tiles3DLoaderOptions = LoaderOptions &
|
|
14
14
|
// GLTFLoaderOptions & - TODO not yet exported
|
|
@@ -29,7 +29,11 @@ export type Tiles3DLoaderOptions = LoaderOptions &
|
|
|
29
29
|
/**
|
|
30
30
|
* Loader for 3D Tiles
|
|
31
31
|
*/
|
|
32
|
-
export const Tiles3DLoader: LoaderWithParser
|
|
32
|
+
export const Tiles3DLoader: LoaderWithParser<
|
|
33
|
+
any, // Tiles3DTileContent | Tiles3DTilesetJSONPostprocessed,
|
|
34
|
+
never,
|
|
35
|
+
Tiles3DLoaderOptions
|
|
36
|
+
> = {
|
|
33
37
|
id: '3d-tiles',
|
|
34
38
|
name: '3D Tiles',
|
|
35
39
|
module: '3d-tiles',
|
|
@@ -49,7 +53,11 @@ export const Tiles3DLoader: LoaderWithParser = {
|
|
|
49
53
|
};
|
|
50
54
|
|
|
51
55
|
/** Parses a tileset or tile */
|
|
52
|
-
async function parse(
|
|
56
|
+
async function parse(
|
|
57
|
+
data,
|
|
58
|
+
options: Tiles3DLoaderOptions = {},
|
|
59
|
+
context?: LoaderContext
|
|
60
|
+
): Promise<Tiles3DTileContent | Tiles3DTilesetJSONPostprocessed> {
|
|
53
61
|
// auto detect file type
|
|
54
62
|
const loaderOptions = options['3d-tiles'] || {};
|
|
55
63
|
let isTileset;
|
|
@@ -75,6 +83,7 @@ async function parseTileset(
|
|
|
75
83
|
const normalizedRoot = await normalizeTileHeaders(tilesetJson, basePath, options || {});
|
|
76
84
|
const tilesetJsonPostprocessed: Tiles3DTilesetJSONPostprocessed = {
|
|
77
85
|
...tilesetJson,
|
|
86
|
+
shape: 'tileset3d',
|
|
78
87
|
loader: Tiles3DLoader,
|
|
79
88
|
url: tilesetUrl,
|
|
80
89
|
queryString: context?.queryString || '',
|
|
@@ -92,14 +101,17 @@ async function parseTile(
|
|
|
92
101
|
arrayBuffer: ArrayBuffer,
|
|
93
102
|
options?: Tiles3DLoaderOptions,
|
|
94
103
|
context?: LoaderContext
|
|
95
|
-
) {
|
|
104
|
+
): Promise<Tiles3DTileContent> {
|
|
96
105
|
const tile = {
|
|
97
106
|
content: {
|
|
107
|
+
shape: 'tile3d',
|
|
98
108
|
featureIds: null
|
|
99
109
|
}
|
|
100
110
|
};
|
|
101
111
|
const byteOffset = 0;
|
|
112
|
+
// @ts-expect-error
|
|
102
113
|
await parse3DTile(arrayBuffer, byteOffset, options, context, tile.content);
|
|
114
|
+
// @ts-expect-error
|
|
103
115
|
return tile.content;
|
|
104
116
|
}
|
|
105
117
|
|
package/src/types.ts
CHANGED
|
@@ -42,6 +42,7 @@ export type GLTFHeader = {
|
|
|
42
42
|
* https://github.com/CesiumGS/3d-tiles/tree/main/specification#property-reference
|
|
43
43
|
*/
|
|
44
44
|
export type Tiles3DTilesetJSON = {
|
|
45
|
+
shape: 'tileset3d';
|
|
45
46
|
/** Metadata about the entire tileset.
|
|
46
47
|
* https://github.com/CesiumGS/3d-tiles/tree/main/specification#asset
|
|
47
48
|
*/
|
|
@@ -202,6 +203,8 @@ export type TilesetProperty = {
|
|
|
202
203
|
};
|
|
203
204
|
|
|
204
205
|
export type Tiles3DTileContent = {
|
|
206
|
+
shape: 'tile3d';
|
|
207
|
+
|
|
205
208
|
/** Common properties */
|
|
206
209
|
byteOffset?: number;
|
|
207
210
|
type?: string;
|
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.TZ3Archive = void 0;
|
|
8
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
10
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
11
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
12
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
13
|
-
var _md = _interopRequireDefault(require("md5"));
|
|
14
|
-
var _zip = require("@loaders.gl/zip");
|
|
15
|
-
var _compression = require("@loaders.gl/compression");
|
|
16
|
-
var COMPRESSION_METHODS = {
|
|
17
|
-
0: function () {
|
|
18
|
-
var _2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(compressedFile) {
|
|
19
|
-
return _regenerator.default.wrap(function _callee$(_context) {
|
|
20
|
-
while (1) switch (_context.prev = _context.next) {
|
|
21
|
-
case 0:
|
|
22
|
-
return _context.abrupt("return", compressedFile);
|
|
23
|
-
case 1:
|
|
24
|
-
case "end":
|
|
25
|
-
return _context.stop();
|
|
26
|
-
}
|
|
27
|
-
}, _callee);
|
|
28
|
-
}));
|
|
29
|
-
function _(_x) {
|
|
30
|
-
return _2.apply(this, arguments);
|
|
31
|
-
}
|
|
32
|
-
return _;
|
|
33
|
-
}(),
|
|
34
|
-
8: function () {
|
|
35
|
-
var _3 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(compressedFile) {
|
|
36
|
-
var compression, decompressedData;
|
|
37
|
-
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
38
|
-
while (1) switch (_context2.prev = _context2.next) {
|
|
39
|
-
case 0:
|
|
40
|
-
compression = new _compression.DeflateCompression({
|
|
41
|
-
raw: true
|
|
42
|
-
});
|
|
43
|
-
_context2.next = 3;
|
|
44
|
-
return compression.decompress(compressedFile);
|
|
45
|
-
case 3:
|
|
46
|
-
decompressedData = _context2.sent;
|
|
47
|
-
return _context2.abrupt("return", decompressedData);
|
|
48
|
-
case 5:
|
|
49
|
-
case "end":
|
|
50
|
-
return _context2.stop();
|
|
51
|
-
}
|
|
52
|
-
}, _callee2);
|
|
53
|
-
}));
|
|
54
|
-
function _(_x2) {
|
|
55
|
-
return _3.apply(this, arguments);
|
|
56
|
-
}
|
|
57
|
-
return _;
|
|
58
|
-
}()
|
|
59
|
-
};
|
|
60
|
-
var TZ3Archive = function () {
|
|
61
|
-
function TZ3Archive(tz3Archive, hashFile) {
|
|
62
|
-
(0, _classCallCheck2.default)(this, TZ3Archive);
|
|
63
|
-
(0, _defineProperty2.default)(this, "tz3Archive", void 0);
|
|
64
|
-
(0, _defineProperty2.default)(this, "hashArray", void 0);
|
|
65
|
-
this.tz3Archive = tz3Archive;
|
|
66
|
-
this.hashArray = hashFile;
|
|
67
|
-
}
|
|
68
|
-
(0, _createClass2.default)(TZ3Archive, [{
|
|
69
|
-
key: "getFile",
|
|
70
|
-
value: function () {
|
|
71
|
-
var _getFile = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3(path) {
|
|
72
|
-
var data, decompressedFile;
|
|
73
|
-
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
74
|
-
while (1) switch (_context3.prev = _context3.next) {
|
|
75
|
-
case 0:
|
|
76
|
-
_context3.next = 2;
|
|
77
|
-
return this.getFileBytes(path.toLocaleLowerCase());
|
|
78
|
-
case 2:
|
|
79
|
-
data = _context3.sent;
|
|
80
|
-
if (data) {
|
|
81
|
-
_context3.next = 7;
|
|
82
|
-
break;
|
|
83
|
-
}
|
|
84
|
-
_context3.next = 6;
|
|
85
|
-
return this.getFileBytes(path);
|
|
86
|
-
case 6:
|
|
87
|
-
data = _context3.sent;
|
|
88
|
-
case 7:
|
|
89
|
-
if (data) {
|
|
90
|
-
_context3.next = 9;
|
|
91
|
-
break;
|
|
92
|
-
}
|
|
93
|
-
throw new Error('No such file in the archieve');
|
|
94
|
-
case 9:
|
|
95
|
-
decompressedFile = Buffer.from(data);
|
|
96
|
-
return _context3.abrupt("return", decompressedFile);
|
|
97
|
-
case 11:
|
|
98
|
-
case "end":
|
|
99
|
-
return _context3.stop();
|
|
100
|
-
}
|
|
101
|
-
}, _callee3, this);
|
|
102
|
-
}));
|
|
103
|
-
function getFile(_x3) {
|
|
104
|
-
return _getFile.apply(this, arguments);
|
|
105
|
-
}
|
|
106
|
-
return getFile;
|
|
107
|
-
}()
|
|
108
|
-
}, {
|
|
109
|
-
key: "getFileBytes",
|
|
110
|
-
value: function () {
|
|
111
|
-
var _getFileBytes = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee4(path) {
|
|
112
|
-
var nameHash, fileInfo, localFileHeader, compressedFile, compressionMethod;
|
|
113
|
-
return _regenerator.default.wrap(function _callee4$(_context4) {
|
|
114
|
-
while (1) switch (_context4.prev = _context4.next) {
|
|
115
|
-
case 0:
|
|
116
|
-
nameHash = Buffer.from((0, _md.default)(path), 'hex');
|
|
117
|
-
fileInfo = (0, _zip.findBin)(nameHash, this.hashArray);
|
|
118
|
-
if (fileInfo) {
|
|
119
|
-
_context4.next = 4;
|
|
120
|
-
break;
|
|
121
|
-
}
|
|
122
|
-
return _context4.abrupt("return", null);
|
|
123
|
-
case 4:
|
|
124
|
-
_context4.next = 6;
|
|
125
|
-
return (0, _zip.parseZipLocalFileHeader)(fileInfo.offset, this.tz3Archive);
|
|
126
|
-
case 6:
|
|
127
|
-
localFileHeader = _context4.sent;
|
|
128
|
-
if (localFileHeader) {
|
|
129
|
-
_context4.next = 9;
|
|
130
|
-
break;
|
|
131
|
-
}
|
|
132
|
-
return _context4.abrupt("return", null);
|
|
133
|
-
case 9:
|
|
134
|
-
_context4.next = 11;
|
|
135
|
-
return this.tz3Archive.slice(localFileHeader.fileDataOffset, localFileHeader.fileDataOffset + localFileHeader.compressedSize);
|
|
136
|
-
case 11:
|
|
137
|
-
compressedFile = _context4.sent;
|
|
138
|
-
compressionMethod = COMPRESSION_METHODS[localFileHeader.compressionMethod];
|
|
139
|
-
if (compressionMethod) {
|
|
140
|
-
_context4.next = 15;
|
|
141
|
-
break;
|
|
142
|
-
}
|
|
143
|
-
throw Error('Only Deflation compression is supported');
|
|
144
|
-
case 15:
|
|
145
|
-
return _context4.abrupt("return", compressionMethod(compressedFile));
|
|
146
|
-
case 16:
|
|
147
|
-
case "end":
|
|
148
|
-
return _context4.stop();
|
|
149
|
-
}
|
|
150
|
-
}, _callee4, this);
|
|
151
|
-
}));
|
|
152
|
-
function getFileBytes(_x4) {
|
|
153
|
-
return _getFileBytes.apply(this, arguments);
|
|
154
|
-
}
|
|
155
|
-
return getFileBytes;
|
|
156
|
-
}()
|
|
157
|
-
}]);
|
|
158
|
-
return TZ3Archive;
|
|
159
|
-
}();
|
|
160
|
-
exports.TZ3Archive = TZ3Archive;
|
|
161
|
-
//# sourceMappingURL=tz3-archive.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tz3-archive.js","names":["_md","_interopRequireDefault","require","_zip","_compression","COMPRESSION_METHODS","_2","_asyncToGenerator2","default","_regenerator","mark","_callee","compressedFile","wrap","_callee$","_context","prev","next","abrupt","stop","_","_x","apply","arguments","_3","_callee2","compression","decompressedData","_callee2$","_context2","DeflateCompression","raw","decompress","sent","_x2","TZ3Archive","tz3Archive","hashFile","_classCallCheck2","_defineProperty2","hashArray","_createClass2","key","value","_getFile","_callee3","path","data","decompressedFile","_callee3$","_context3","getFileBytes","toLocaleLowerCase","Error","Buffer","from","getFile","_x3","_getFileBytes","_callee4","nameHash","fileInfo","localFileHeader","compressionMethod","_callee4$","_context4","md5","findBin","parseZipLocalFileHeader","offset","slice","fileDataOffset","compressedSize","_x4","exports"],"sources":["../../../src/tz3/tz3-archive.ts"],"sourcesContent":["import md5 from 'md5';\nimport {FileProvider, parseZipLocalFileHeader, HashElement, findBin} from '@loaders.gl/zip';\nimport {DeflateCompression} from '@loaders.gl/compression';\n\ntype CompressionHandler = (compressedFile: ArrayBuffer) => Promise<ArrayBuffer>;\n\n/**\n * Handling different compression types in zip\n */\nconst COMPRESSION_METHODS: {[key: number]: CompressionHandler} = {\n /** No compression */\n 0: async (compressedFile) => compressedFile,\n\n /** Deflation */\n 8: async (compressedFile) => {\n const compression = new DeflateCompression({raw: true});\n const decompressedData = await compression.decompress(compressedFile);\n return decompressedData;\n }\n};\n\n/**\n * Class for handling information about 3tz file\n */\nexport class TZ3Archive {\n private tz3Archive: FileProvider;\n private hashArray: HashElement[];\n constructor(tz3Archive: FileProvider, hashFile: HashElement[]) {\n this.tz3Archive = tz3Archive;\n this.hashArray = hashFile;\n }\n\n /**\n * Returns file with the given path from 3tz archive\n * @param path - path inside the 3tz\n * @returns buffer with ready to use file\n */\n async getFile(path: string): Promise<Buffer> {\n // sometimes paths are not in lower case when hash file is created,\n // so first we're looking for lower case file name and then for original one\n let data = await this.getFileBytes(path.toLocaleLowerCase());\n if (!data) {\n data = await this.getFileBytes(path);\n }\n if (!data) {\n throw new Error('No such file in the archieve');\n }\n const decompressedFile = Buffer.from(data);\n\n return decompressedFile;\n }\n\n /**\n * Trying to get raw file data by adress\n * @param path - path inside the archive\n * @returns buffer with the raw file data\n */\n private async getFileBytes(path: string): Promise<ArrayBuffer | null> {\n const nameHash = Buffer.from(md5(path), 'hex');\n const fileInfo = findBin(nameHash, this.hashArray); // implement binary search\n if (!fileInfo) {\n return null;\n }\n\n const localFileHeader = await parseZipLocalFileHeader(fileInfo.offset, this.tz3Archive);\n if (!localFileHeader) {\n return null;\n }\n\n const compressedFile = await this.tz3Archive.slice(\n localFileHeader.fileDataOffset,\n localFileHeader.fileDataOffset + localFileHeader.compressedSize\n );\n\n const compressionMethod = COMPRESSION_METHODS[localFileHeader.compressionMethod];\n if (!compressionMethod) {\n throw Error('Only Deflation compression is supported');\n }\n\n return compressionMethod(compressedFile);\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tz3-parser.js","names":["_zip","require","_tz3Archive","parse3tz","_ref","_asyncToGenerator2","default","_regenerator","mark","_callee","fileProvider","cb","hashCDOffset","cdFileHeader","hashData","localFileHeader","fileDataOffset","hashFile","wrap","_callee$","_context","prev","next","searchFromTheEnd","cdHeaderSignature","sent","parseZipCDFileHeader","fileName","generateHashInfo","parseZipLocalFileHeader","localHeaderOffset","Error","slice","compressedSize","parseHashFile","abrupt","TZ3Archive","stop","_x","_x2","apply","arguments","exports"],"sources":["../../../src/tz3/tz3-parser.ts"],"sourcesContent":["import {\n FileProvider,\n HashElement,\n cdSignature as cdHeaderSignature,\n generateHashInfo,\n parseHashFile,\n parseZipCDFileHeader,\n parseZipLocalFileHeader,\n searchFromTheEnd\n} from '@loaders.gl/zip';\nimport {TZ3Archive} from './tz3-archive';\n\n/**\n * Creates 3tz file handler from raw file\n * @param fileProvider raw file data\n * @param cb is called with information message during parsing\n * @returns 3tz file handler\n */\nexport const parse3tz = async (\n fileProvider: FileProvider,\n cb?: (msg: string) => void\n): Promise<TZ3Archive> => {\n const hashCDOffset = await searchFromTheEnd(fileProvider, cdHeaderSignature);\n\n const cdFileHeader = await parseZipCDFileHeader(hashCDOffset, fileProvider);\n\n let hashData: HashElement[];\n if (cdFileHeader?.fileName !== '@3dtilesIndex1@') {\n cb?.('3tz doesnt contain hash file');\n hashData = await generateHashInfo(fileProvider);\n cb?.('hash info has been composed according to central directory records');\n } else {\n cb?.('3tz contains hash file');\n const localFileHeader = await parseZipLocalFileHeader(\n cdFileHeader.localHeaderOffset,\n fileProvider\n );\n if (!localFileHeader) {\n throw new Error('corrupted 3tz');\n }\n\n const fileDataOffset = localFileHeader.fileDataOffset;\n const hashFile = await fileProvider.slice(\n fileDataOffset,\n fileDataOffset + localFileHeader.compressedSize\n );\n\n hashData = parseHashFile(hashFile);\n }\n\n return new TZ3Archive(fileProvider, hashData);\n};\n"],"mappings":";;;;;;;;;AAAA,IAAAA,IAAA,GAAAC,OAAA;AAUA,IAAAC,WAAA,GAAAD,OAAA;AAQO,IAAME,QAAQ;EAAA,IAAAC,IAAA,OAAAC,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAG,SAAAC,QACtBC,YAA0B,EAC1BC,EAA0B;IAAA,IAAAC,YAAA,EAAAC,YAAA,EAAAC,QAAA,EAAAC,eAAA,EAAAC,cAAA,EAAAC,QAAA;IAAA,OAAAV,YAAA,CAAAD,OAAA,CAAAY,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAAAF,QAAA,CAAAE,IAAA;UAAA,OAEC,IAAAC,qBAAgB,EAACb,YAAY,EAAEc,gBAAiB,CAAC;QAAA;UAAtEZ,YAAY,GAAAQ,QAAA,CAAAK,IAAA;UAAAL,QAAA,CAAAE,IAAA;UAAA,OAES,IAAAI,yBAAoB,EAACd,YAAY,EAAEF,YAAY,CAAC;QAAA;UAArEG,YAAY,GAAAO,QAAA,CAAAK,IAAA;UAAA,MAGd,CAAAZ,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEc,QAAQ,MAAK,iBAAiB;YAAAP,QAAA,CAAAE,IAAA;YAAA;UAAA;UAC9CX,EAAE,aAAFA,EAAE,uBAAFA,EAAE,CAAG,8BAA8B,CAAC;UAACS,QAAA,CAAAE,IAAA;UAAA,OACpB,IAAAM,qBAAgB,EAAClB,YAAY,CAAC;QAAA;UAA/CI,QAAQ,GAAAM,QAAA,CAAAK,IAAA;UACRd,EAAE,aAAFA,EAAE,uBAAFA,EAAE,CAAG,oEAAoE,CAAC;UAACS,QAAA,CAAAE,IAAA;UAAA;QAAA;UAE3EX,EAAE,aAAFA,EAAE,uBAAFA,EAAE,CAAG,wBAAwB,CAAC;UAACS,QAAA,CAAAE,IAAA;UAAA,OACD,IAAAO,4BAAuB,EACnDhB,YAAY,CAACiB,iBAAiB,EAC9BpB,YACF,CAAC;QAAA;UAHKK,eAAe,GAAAK,QAAA,CAAAK,IAAA;UAAA,IAIhBV,eAAe;YAAAK,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAA,MACZ,IAAIS,KAAK,CAAC,eAAe,CAAC;QAAA;UAG5Bf,cAAc,GAAGD,eAAe,CAACC,cAAc;UAAAI,QAAA,CAAAE,IAAA;UAAA,OAC9BZ,YAAY,CAACsB,KAAK,CACvChB,cAAc,EACdA,cAAc,GAAGD,eAAe,CAACkB,cACnC,CAAC;QAAA;UAHKhB,QAAQ,GAAAG,QAAA,CAAAK,IAAA;UAKdX,QAAQ,GAAG,IAAAoB,kBAAa,EAACjB,QAAQ,CAAC;QAAC;UAAA,OAAAG,QAAA,CAAAe,MAAA,WAG9B,IAAIC,sBAAU,CAAC1B,YAAY,EAAEI,QAAQ,CAAC;QAAA;QAAA;UAAA,OAAAM,QAAA,CAAAiB,IAAA;MAAA;IAAA,GAAA5B,OAAA;EAAA,CAC9C;EAAA,gBAjCYN,QAAQA,CAAAmC,EAAA,EAAAC,GAAA;IAAA,OAAAnC,IAAA,CAAAoC,KAAA,OAAAC,SAAA;EAAA;AAAA,GAiCpB;AAACC,OAAA,CAAAvC,QAAA,GAAAA,QAAA"}
|
package/dist/es5/tz3-loader.js
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.TZ3Loader = void 0;
|
|
8
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
|
-
var _zip = require("@loaders.gl/zip");
|
|
11
|
-
var _tz3Parser = require("./tz3/tz3-parser");
|
|
12
|
-
var VERSION = typeof "4.0.0-alpha.21" !== 'undefined' ? "4.0.0-alpha.21" : 'latest';
|
|
13
|
-
var TZ3Loader = {
|
|
14
|
-
name: '3tz',
|
|
15
|
-
id: '3tz',
|
|
16
|
-
module: 'i3s',
|
|
17
|
-
version: VERSION,
|
|
18
|
-
mimeTypes: ['application/octet-stream'],
|
|
19
|
-
parse: parse3tz,
|
|
20
|
-
extensions: ['3tz'],
|
|
21
|
-
options: {}
|
|
22
|
-
};
|
|
23
|
-
exports.TZ3Loader = TZ3Loader;
|
|
24
|
-
function parse3tz(_x) {
|
|
25
|
-
return _parse3tz.apply(this, arguments);
|
|
26
|
-
}
|
|
27
|
-
function _parse3tz() {
|
|
28
|
-
_parse3tz = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(data) {
|
|
29
|
-
var _options$tz3$path, _options$tz;
|
|
30
|
-
var options,
|
|
31
|
-
_args = arguments;
|
|
32
|
-
return _regenerator.default.wrap(function _callee$(_context) {
|
|
33
|
-
while (1) switch (_context.prev = _context.next) {
|
|
34
|
-
case 0:
|
|
35
|
-
options = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};
|
|
36
|
-
_context.next = 3;
|
|
37
|
-
return (0, _tz3Parser.parse3tz)(new _zip.DataViewFile(new DataView(data)));
|
|
38
|
-
case 3:
|
|
39
|
-
return _context.abrupt("return", _context.sent.getFile((_options$tz3$path = (_options$tz = options.tz3) === null || _options$tz === void 0 ? void 0 : _options$tz.path) !== null && _options$tz3$path !== void 0 ? _options$tz3$path : ''));
|
|
40
|
-
case 4:
|
|
41
|
-
case "end":
|
|
42
|
-
return _context.stop();
|
|
43
|
-
}
|
|
44
|
-
}, _callee);
|
|
45
|
-
}));
|
|
46
|
-
return _parse3tz.apply(this, arguments);
|
|
47
|
-
}
|
|
48
|
-
//# sourceMappingURL=tz3-loader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tz3-loader.js","names":["_zip","require","_tz3Parser","VERSION","TZ3Loader","name","id","module","version","mimeTypes","parse","parse3tz","extensions","options","exports","_x","_parse3tz","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","data","_options$tz3$path","_options$tz","_args","wrap","_callee$","_context","prev","next","length","undefined","parse3tzFromProvider","DataViewFile","DataView","abrupt","sent","getFile","tz3","path","stop"],"sources":["../../src/tz3-loader.ts"],"sourcesContent":["import {LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {DataViewFile} from '@loaders.gl/zip';\nimport {parse3tz as parse3tzFromProvider} from './tz3/tz3-parser';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\n/** options to load data from 3tz */\nexport type TZ3LoaderOptions = LoaderOptions & {\n tz3?: {\n /** path inside the 3tz archive */\n path?: string;\n };\n};\n\n/**\n * Loader for 3tz packages\n */\nexport const TZ3Loader: LoaderWithParser<Buffer, never, TZ3LoaderOptions> = {\n name: '3tz',\n id: '3tz',\n module: 'i3s',\n version: VERSION,\n mimeTypes: ['application/octet-stream'],\n parse: parse3tz,\n extensions: ['3tz'],\n options: {}\n};\n\n/**\n * returns a single file from the 3tz archive\n * @param data 3tz archive data\n * @param options options\n * @returns requested file\n */\nasync function parse3tz(data: ArrayBuffer, options: TZ3LoaderOptions = {}) {\n return (await parse3tzFromProvider(new DataViewFile(new DataView(data)))).getFile(\n options.tz3?.path ?? ''\n );\n}\n"],"mappings":";;;;;;;;;AACA,IAAAA,IAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAIA,IAAME,OAAO,GAAG,uBAAkB,KAAK,WAAW,sBAAiB,QAAQ;AAapE,IAAMC,SAA4D,GAAG;EAC1EC,IAAI,EAAE,KAAK;EACXC,EAAE,EAAE,KAAK;EACTC,MAAM,EAAE,KAAK;EACbC,OAAO,EAAEL,OAAO;EAChBM,SAAS,EAAE,CAAC,0BAA0B,CAAC;EACvCC,KAAK,EAAEC,QAAQ;EACfC,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,OAAO,EAAE,CAAC;AACZ,CAAC;AAACC,OAAA,CAAAV,SAAA,GAAAA,SAAA;AAAA,SAQaO,QAAQA,CAAAI,EAAA;EAAA,OAAAC,SAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAF,UAAA;EAAAA,SAAA,OAAAG,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAvB,SAAAC,QAAwBC,IAAiB;IAAA,IAAAC,iBAAA,EAAAC,WAAA;IAAA,IAAAb,OAAA;MAAAc,KAAA,GAAAT,SAAA;IAAA,OAAAG,YAAA,CAAAD,OAAA,CAAAQ,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAAEnB,OAAyB,GAAAc,KAAA,CAAAM,MAAA,QAAAN,KAAA,QAAAO,SAAA,GAAAP,KAAA,MAAG,CAAC,CAAC;UAAAG,QAAA,CAAAE,IAAA;UAAA,OACzD,IAAAG,mBAAoB,EAAC,IAAIC,iBAAY,CAAC,IAAIC,QAAQ,CAACb,IAAI,CAAC,CAAC,CAAC;QAAA;UAAA,OAAAM,QAAA,CAAAQ,MAAA,WAAAR,QAAA,CAAAS,IAAA,CAAEC,OAAO,EAAAf,iBAAA,IAAAC,WAAA,GAC/Eb,OAAO,CAAC4B,GAAG,cAAAf,WAAA,uBAAXA,WAAA,CAAagB,IAAI,cAAAjB,iBAAA,cAAAA,iBAAA,GAAI,EAAE;QAAA;QAAA;UAAA,OAAAK,QAAA,CAAAa,IAAA;MAAA;IAAA,GAAApB,OAAA;EAAA,CAE1B;EAAA,OAAAP,SAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tz3-archive.js","names":["md5","parseZipLocalFileHeader","findBin","DeflateCompression","COMPRESSION_METHODS","compressedFile","compression","raw","decompressedData","decompress","TZ3Archive","constructor","tz3Archive","hashFile","_defineProperty","hashArray","getFile","path","data","getFileBytes","toLocaleLowerCase","Error","decompressedFile","Buffer","from","nameHash","fileInfo","localFileHeader","offset","slice","fileDataOffset","compressedSize","compressionMethod"],"sources":["../../../src/tz3/tz3-archive.ts"],"sourcesContent":["import md5 from 'md5';\nimport {FileProvider, parseZipLocalFileHeader, HashElement, findBin} from '@loaders.gl/zip';\nimport {DeflateCompression} from '@loaders.gl/compression';\n\ntype CompressionHandler = (compressedFile: ArrayBuffer) => Promise<ArrayBuffer>;\n\n/**\n * Handling different compression types in zip\n */\nconst COMPRESSION_METHODS: {[key: number]: CompressionHandler} = {\n /** No compression */\n 0: async (compressedFile) => compressedFile,\n\n /** Deflation */\n 8: async (compressedFile) => {\n const compression = new DeflateCompression({raw: true});\n const decompressedData = await compression.decompress(compressedFile);\n return decompressedData;\n }\n};\n\n/**\n * Class for handling information about 3tz file\n */\nexport class TZ3Archive {\n private tz3Archive: FileProvider;\n private hashArray: HashElement[];\n constructor(tz3Archive: FileProvider, hashFile: HashElement[]) {\n this.tz3Archive = tz3Archive;\n this.hashArray = hashFile;\n }\n\n /**\n * Returns file with the given path from 3tz archive\n * @param path - path inside the 3tz\n * @returns buffer with ready to use file\n */\n async getFile(path: string): Promise<Buffer> {\n // sometimes paths are not in lower case when hash file is created,\n // so first we're looking for lower case file name and then for original one\n let data = await this.getFileBytes(path.toLocaleLowerCase());\n if (!data) {\n data = await this.getFileBytes(path);\n }\n if (!data) {\n throw new Error('No such file in the archieve');\n }\n const decompressedFile = Buffer.from(data);\n\n return decompressedFile;\n }\n\n /**\n * Trying to get raw file data by adress\n * @param path - path inside the archive\n * @returns buffer with the raw file data\n */\n private async getFileBytes(path: string): Promise<ArrayBuffer | null> {\n const nameHash = Buffer.from(md5(path), 'hex');\n const fileInfo = findBin(nameHash, this.hashArray); // implement binary search\n if (!fileInfo) {\n return null;\n }\n\n const localFileHeader = await parseZipLocalFileHeader(fileInfo.offset, this.tz3Archive);\n if (!localFileHeader) {\n return null;\n }\n\n const compressedFile = await this.tz3Archive.slice(\n localFileHeader.fileDataOffset,\n localFileHeader.fileDataOffset + localFileHeader.compressedSize\n );\n\n const compressionMethod = COMPRESSION_METHODS[localFileHeader.compressionMethod];\n if (!compressionMethod) {\n throw Error('Only Deflation compression is supported');\n }\n\n return compressionMethod(compressedFile);\n }\n}\n"],"mappings":";AAAA,OAAOA,GAAG,MAAM,KAAK;AACrB,SAAsBC,uBAAuB,EAAeC,OAAO,QAAO,iBAAiB;AAC3F,SAAQC,kBAAkB,QAAO,yBAAyB;AAO1D,MAAMC,mBAAwD,GAAG;EAE/D,CAAC,EAAE,MAAOC,cAAc,IAAKA,cAAc;EAG3C,CAAC,EAAE,MAAOA,cAAc,IAAK;IAC3B,MAAMC,WAAW,GAAG,IAAIH,kBAAkB,CAAC;MAACI,GAAG,EAAE;IAAI,CAAC,CAAC;IACvD,MAAMC,gBAAgB,GAAG,MAAMF,WAAW,CAACG,UAAU,CAACJ,cAAc,CAAC;IACrE,OAAOG,gBAAgB;EACzB;AACF,CAAC;AAKD,OAAO,MAAME,UAAU,CAAC;EAGtBC,WAAWA,CAACC,UAAwB,EAAEC,QAAuB,EAAE;IAAAC,eAAA;IAAAA,eAAA;IAC7D,IAAI,CAACF,UAAU,GAAGA,UAAU;IAC5B,IAAI,CAACG,SAAS,GAAGF,QAAQ;EAC3B;EAOA,MAAMG,OAAOA,CAACC,IAAY,EAAmB;IAG3C,IAAIC,IAAI,GAAG,MAAM,IAAI,CAACC,YAAY,CAACF,IAAI,CAACG,iBAAiB,CAAC,CAAC,CAAC;IAC5D,IAAI,CAACF,IAAI,EAAE;MACTA,IAAI,GAAG,MAAM,IAAI,CAACC,YAAY,CAACF,IAAI,CAAC;IACtC;IACA,IAAI,CAACC,IAAI,EAAE;MACT,MAAM,IAAIG,KAAK,CAAC,8BAA8B,CAAC;IACjD;IACA,MAAMC,gBAAgB,GAAGC,MAAM,CAACC,IAAI,CAACN,IAAI,CAAC;IAE1C,OAAOI,gBAAgB;EACzB;EAOA,MAAcH,YAAYA,CAACF,IAAY,EAA+B;IACpE,MAAMQ,QAAQ,GAAGF,MAAM,CAACC,IAAI,CAACxB,GAAG,CAACiB,IAAI,CAAC,EAAE,KAAK,CAAC;IAC9C,MAAMS,QAAQ,GAAGxB,OAAO,CAACuB,QAAQ,EAAE,IAAI,CAACV,SAAS,CAAC;IAClD,IAAI,CAACW,QAAQ,EAAE;MACb,OAAO,IAAI;IACb;IAEA,MAAMC,eAAe,GAAG,MAAM1B,uBAAuB,CAACyB,QAAQ,CAACE,MAAM,EAAE,IAAI,CAAChB,UAAU,CAAC;IACvF,IAAI,CAACe,eAAe,EAAE;MACpB,OAAO,IAAI;IACb;IAEA,MAAMtB,cAAc,GAAG,MAAM,IAAI,CAACO,UAAU,CAACiB,KAAK,CAChDF,eAAe,CAACG,cAAc,EAC9BH,eAAe,CAACG,cAAc,GAAGH,eAAe,CAACI,cACnD,CAAC;IAED,MAAMC,iBAAiB,GAAG5B,mBAAmB,CAACuB,eAAe,CAACK,iBAAiB,CAAC;IAChF,IAAI,CAACA,iBAAiB,EAAE;MACtB,MAAMX,KAAK,CAAC,yCAAyC,CAAC;IACxD;IAEA,OAAOW,iBAAiB,CAAC3B,cAAc,CAAC;EAC1C;AACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tz3-parser.js","names":["cdSignature","cdHeaderSignature","generateHashInfo","parseHashFile","parseZipCDFileHeader","parseZipLocalFileHeader","searchFromTheEnd","TZ3Archive","parse3tz","fileProvider","cb","hashCDOffset","cdFileHeader","hashData","fileName","localFileHeader","localHeaderOffset","Error","fileDataOffset","hashFile","slice","compressedSize"],"sources":["../../../src/tz3/tz3-parser.ts"],"sourcesContent":["import {\n FileProvider,\n HashElement,\n cdSignature as cdHeaderSignature,\n generateHashInfo,\n parseHashFile,\n parseZipCDFileHeader,\n parseZipLocalFileHeader,\n searchFromTheEnd\n} from '@loaders.gl/zip';\nimport {TZ3Archive} from './tz3-archive';\n\n/**\n * Creates 3tz file handler from raw file\n * @param fileProvider raw file data\n * @param cb is called with information message during parsing\n * @returns 3tz file handler\n */\nexport const parse3tz = async (\n fileProvider: FileProvider,\n cb?: (msg: string) => void\n): Promise<TZ3Archive> => {\n const hashCDOffset = await searchFromTheEnd(fileProvider, cdHeaderSignature);\n\n const cdFileHeader = await parseZipCDFileHeader(hashCDOffset, fileProvider);\n\n let hashData: HashElement[];\n if (cdFileHeader?.fileName !== '@3dtilesIndex1@') {\n cb?.('3tz doesnt contain hash file');\n hashData = await generateHashInfo(fileProvider);\n cb?.('hash info has been composed according to central directory records');\n } else {\n cb?.('3tz contains hash file');\n const localFileHeader = await parseZipLocalFileHeader(\n cdFileHeader.localHeaderOffset,\n fileProvider\n );\n if (!localFileHeader) {\n throw new Error('corrupted 3tz');\n }\n\n const fileDataOffset = localFileHeader.fileDataOffset;\n const hashFile = await fileProvider.slice(\n fileDataOffset,\n fileDataOffset + localFileHeader.compressedSize\n );\n\n hashData = parseHashFile(hashFile);\n }\n\n return new TZ3Archive(fileProvider, hashData);\n};\n"],"mappings":"AAAA,SAGEA,WAAW,IAAIC,iBAAiB,EAChCC,gBAAgB,EAChBC,aAAa,EACbC,oBAAoB,EACpBC,uBAAuB,EACvBC,gBAAgB,QACX,iBAAiB;AACxB,SAAQC,UAAU,QAAO,eAAe;AAQxC,OAAO,MAAMC,QAAQ,GAAG,MAAAA,CACtBC,YAA0B,EAC1BC,EAA0B,KACF;EACxB,MAAMC,YAAY,GAAG,MAAML,gBAAgB,CAACG,YAAY,EAAER,iBAAiB,CAAC;EAE5E,MAAMW,YAAY,GAAG,MAAMR,oBAAoB,CAACO,YAAY,EAAEF,YAAY,CAAC;EAE3E,IAAII,QAAuB;EAC3B,IAAI,CAAAD,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEE,QAAQ,MAAK,iBAAiB,EAAE;IAChDJ,EAAE,aAAFA,EAAE,uBAAFA,EAAE,CAAG,8BAA8B,CAAC;IACpCG,QAAQ,GAAG,MAAMX,gBAAgB,CAACO,YAAY,CAAC;IAC/CC,EAAE,aAAFA,EAAE,uBAAFA,EAAE,CAAG,oEAAoE,CAAC;EAC5E,CAAC,MAAM;IACLA,EAAE,aAAFA,EAAE,uBAAFA,EAAE,CAAG,wBAAwB,CAAC;IAC9B,MAAMK,eAAe,GAAG,MAAMV,uBAAuB,CACnDO,YAAY,CAACI,iBAAiB,EAC9BP,YACF,CAAC;IACD,IAAI,CAACM,eAAe,EAAE;MACpB,MAAM,IAAIE,KAAK,CAAC,eAAe,CAAC;IAClC;IAEA,MAAMC,cAAc,GAAGH,eAAe,CAACG,cAAc;IACrD,MAAMC,QAAQ,GAAG,MAAMV,YAAY,CAACW,KAAK,CACvCF,cAAc,EACdA,cAAc,GAAGH,eAAe,CAACM,cACnC,CAAC;IAEDR,QAAQ,GAAGV,aAAa,CAACgB,QAAQ,CAAC;EACpC;EAEA,OAAO,IAAIZ,UAAU,CAACE,YAAY,EAAEI,QAAQ,CAAC;AAC/C,CAAC"}
|
package/dist/esm/tz3-loader.js
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { DataViewFile } from '@loaders.gl/zip';
|
|
2
|
-
import { parse3tz as parse3tzFromProvider } from './tz3/tz3-parser';
|
|
3
|
-
const VERSION = typeof "4.0.0-alpha.21" !== 'undefined' ? "4.0.0-alpha.21" : 'latest';
|
|
4
|
-
export const TZ3Loader = {
|
|
5
|
-
name: '3tz',
|
|
6
|
-
id: '3tz',
|
|
7
|
-
module: 'i3s',
|
|
8
|
-
version: VERSION,
|
|
9
|
-
mimeTypes: ['application/octet-stream'],
|
|
10
|
-
parse: parse3tz,
|
|
11
|
-
extensions: ['3tz'],
|
|
12
|
-
options: {}
|
|
13
|
-
};
|
|
14
|
-
async function parse3tz(data) {
|
|
15
|
-
var _options$tz3$path, _options$tz;
|
|
16
|
-
let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
17
|
-
return (await parse3tzFromProvider(new DataViewFile(new DataView(data)))).getFile((_options$tz3$path = (_options$tz = options.tz3) === null || _options$tz === void 0 ? void 0 : _options$tz.path) !== null && _options$tz3$path !== void 0 ? _options$tz3$path : '');
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=tz3-loader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tz3-loader.js","names":["DataViewFile","parse3tz","parse3tzFromProvider","VERSION","TZ3Loader","name","id","module","version","mimeTypes","parse","extensions","options","data","_options$tz3$path","_options$tz","arguments","length","undefined","DataView","getFile","tz3","path"],"sources":["../../src/tz3-loader.ts"],"sourcesContent":["import {LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {DataViewFile} from '@loaders.gl/zip';\nimport {parse3tz as parse3tzFromProvider} from './tz3/tz3-parser';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\n/** options to load data from 3tz */\nexport type TZ3LoaderOptions = LoaderOptions & {\n tz3?: {\n /** path inside the 3tz archive */\n path?: string;\n };\n};\n\n/**\n * Loader for 3tz packages\n */\nexport const TZ3Loader: LoaderWithParser<Buffer, never, TZ3LoaderOptions> = {\n name: '3tz',\n id: '3tz',\n module: 'i3s',\n version: VERSION,\n mimeTypes: ['application/octet-stream'],\n parse: parse3tz,\n extensions: ['3tz'],\n options: {}\n};\n\n/**\n * returns a single file from the 3tz archive\n * @param data 3tz archive data\n * @param options options\n * @returns requested file\n */\nasync function parse3tz(data: ArrayBuffer, options: TZ3LoaderOptions = {}) {\n return (await parse3tzFromProvider(new DataViewFile(new DataView(data)))).getFile(\n options.tz3?.path ?? ''\n );\n}\n"],"mappings":"AACA,SAAQA,YAAY,QAAO,iBAAiB;AAC5C,SAAQC,QAAQ,IAAIC,oBAAoB,QAAO,kBAAkB;AAIjE,MAAMC,OAAO,GAAG,uBAAkB,KAAK,WAAW,sBAAiB,QAAQ;AAa3E,OAAO,MAAMC,SAA4D,GAAG;EAC1EC,IAAI,EAAE,KAAK;EACXC,EAAE,EAAE,KAAK;EACTC,MAAM,EAAE,KAAK;EACbC,OAAO,EAAEL,OAAO;EAChBM,SAAS,EAAE,CAAC,0BAA0B,CAAC;EACvCC,KAAK,EAAET,QAAQ;EACfU,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,OAAO,EAAE,CAAC;AACZ,CAAC;AAQD,eAAeX,QAAQA,CAACY,IAAiB,EAAkC;EAAA,IAAAC,iBAAA,EAAAC,WAAA;EAAA,IAAhCH,OAAyB,GAAAI,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EACvE,OAAO,CAAC,MAAMd,oBAAoB,CAAC,IAAIF,YAAY,CAAC,IAAImB,QAAQ,CAACN,IAAI,CAAC,CAAC,CAAC,EAAEO,OAAO,EAAAN,iBAAA,IAAAC,WAAA,GAC/EH,OAAO,CAACS,GAAG,cAAAN,WAAA,uBAAXA,WAAA,CAAaO,IAAI,cAAAR,iBAAA,cAAAA,iBAAA,GAAI,EACvB,CAAC;AACH"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import { FileProvider, HashElement } from '@loaders.gl/zip';
|
|
3
|
-
/**
|
|
4
|
-
* Class for handling information about 3tz file
|
|
5
|
-
*/
|
|
6
|
-
export declare class TZ3Archive {
|
|
7
|
-
private tz3Archive;
|
|
8
|
-
private hashArray;
|
|
9
|
-
constructor(tz3Archive: FileProvider, hashFile: HashElement[]);
|
|
10
|
-
/**
|
|
11
|
-
* Returns file with the given path from 3tz archive
|
|
12
|
-
* @param path - path inside the 3tz
|
|
13
|
-
* @returns buffer with ready to use file
|
|
14
|
-
*/
|
|
15
|
-
getFile(path: string): Promise<Buffer>;
|
|
16
|
-
/**
|
|
17
|
-
* Trying to get raw file data by adress
|
|
18
|
-
* @param path - path inside the archive
|
|
19
|
-
* @returns buffer with the raw file data
|
|
20
|
-
*/
|
|
21
|
-
private getFileBytes;
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=tz3-archive.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tz3-archive.d.ts","sourceRoot":"","sources":["../../src/tz3/tz3-archive.ts"],"names":[],"mappings":";AACA,OAAO,EAAC,YAAY,EAA2B,WAAW,EAAU,MAAM,iBAAiB,CAAC;AAoB5F;;GAEG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,UAAU,CAAe;IACjC,OAAO,CAAC,SAAS,CAAgB;gBACrB,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE;IAK7D;;;;OAIG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAe5C;;;;OAIG;YACW,YAAY;CAwB3B"}
|
package/dist/tz3/tz3-parser.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { FileProvider } from '@loaders.gl/zip';
|
|
2
|
-
import { TZ3Archive } from './tz3-archive';
|
|
3
|
-
/**
|
|
4
|
-
* Creates 3tz file handler from raw file
|
|
5
|
-
* @param fileProvider raw file data
|
|
6
|
-
* @param cb is called with information message during parsing
|
|
7
|
-
* @returns 3tz file handler
|
|
8
|
-
*/
|
|
9
|
-
export declare const parse3tz: (fileProvider: FileProvider, cb?: ((msg: string) => void) | undefined) => Promise<TZ3Archive>;
|
|
10
|
-
//# sourceMappingURL=tz3-parser.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tz3-parser.d.ts","sourceRoot":"","sources":["../../src/tz3/tz3-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAQb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAEzC;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,iBACL,YAAY,cACf,MAAM,KAAK,IAAI,kBACzB,QAAQ,UAAU,CA8BpB,CAAC"}
|
package/dist/tz3-loader.d.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import { LoaderOptions, LoaderWithParser } from '@loaders.gl/loader-utils';
|
|
3
|
-
/** options to load data from 3tz */
|
|
4
|
-
export type TZ3LoaderOptions = LoaderOptions & {
|
|
5
|
-
tz3?: {
|
|
6
|
-
/** path inside the 3tz archive */
|
|
7
|
-
path?: string;
|
|
8
|
-
};
|
|
9
|
-
};
|
|
10
|
-
/**
|
|
11
|
-
* Loader for 3tz packages
|
|
12
|
-
*/
|
|
13
|
-
export declare const TZ3Loader: LoaderWithParser<Buffer, never, TZ3LoaderOptions>;
|
|
14
|
-
//# sourceMappingURL=tz3-loader.d.ts.map
|
package/dist/tz3-loader.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tz3-loader.d.ts","sourceRoot":"","sources":["../src/tz3-loader.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,aAAa,EAAE,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAQzE,oCAAoC;AACpC,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,GAAG,CAAC,EAAE;QACJ,kCAAkC;QAClC,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,gBAAgB,CASvE,CAAC"}
|
package/dist/tz3-loader.js
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TZ3Loader = void 0;
|
|
4
|
-
const zip_1 = require("@loaders.gl/zip");
|
|
5
|
-
const tz3_parser_1 = require("./tz3/tz3-parser");
|
|
6
|
-
// __VERSION__ is injected by babel-plugin-version-inline
|
|
7
|
-
// @ts-ignore TS2304: Cannot find name '__VERSION__'.
|
|
8
|
-
const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';
|
|
9
|
-
/**
|
|
10
|
-
* Loader for 3tz packages
|
|
11
|
-
*/
|
|
12
|
-
exports.TZ3Loader = {
|
|
13
|
-
name: '3tz',
|
|
14
|
-
id: '3tz',
|
|
15
|
-
module: 'i3s',
|
|
16
|
-
version: VERSION,
|
|
17
|
-
mimeTypes: ['application/octet-stream'],
|
|
18
|
-
parse: parse3tz,
|
|
19
|
-
extensions: ['3tz'],
|
|
20
|
-
options: {}
|
|
21
|
-
};
|
|
22
|
-
/**
|
|
23
|
-
* returns a single file from the 3tz archive
|
|
24
|
-
* @param data 3tz archive data
|
|
25
|
-
* @param options options
|
|
26
|
-
* @returns requested file
|
|
27
|
-
*/
|
|
28
|
-
async function parse3tz(data, options = {}) {
|
|
29
|
-
return (await (0, tz3_parser_1.parse3tz)(new zip_1.DataViewFile(new DataView(data)))).getFile(options.tz3?.path ?? '');
|
|
30
|
-
}
|