@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.
Files changed (123) hide show
  1. package/dist/3d-tiles-archive/3d-tiles-archive-archive.d.ts +30 -0
  2. package/dist/3d-tiles-archive/3d-tiles-archive-archive.d.ts.map +1 -0
  3. package/dist/{tz3/tz3-archive.js → 3d-tiles-archive/3d-tiles-archive-archive.js} +16 -16
  4. package/dist/3d-tiles-archive/3d-tiles-archive-parser.d.ts +10 -0
  5. package/dist/3d-tiles-archive/3d-tiles-archive-parser.d.ts.map +1 -0
  6. package/dist/{tz3/tz3-parser.js → 3d-tiles-archive/3d-tiles-archive-parser.js} +5 -5
  7. package/dist/3d-tiles-archive-loader.d.ts +13 -0
  8. package/dist/3d-tiles-archive-loader.d.ts.map +1 -0
  9. package/dist/3d-tiles-archive-loader.js +31 -0
  10. package/dist/cesium-ion-loader.d.ts.map +1 -1
  11. package/dist/cesium-ion-loader.js +0 -1
  12. package/dist/dist.min.js +2218 -1370
  13. package/dist/es5/3d-tiles-archive/3d-tiles-archive-archive.js +126 -0
  14. package/dist/es5/3d-tiles-archive/3d-tiles-archive-archive.js.map +1 -0
  15. package/dist/es5/{tz3/tz3-parser.js → 3d-tiles-archive/3d-tiles-archive-parser.js} +7 -7
  16. package/dist/es5/3d-tiles-archive/3d-tiles-archive-parser.js.map +1 -0
  17. package/dist/es5/3d-tiles-archive-loader.js +50 -0
  18. package/dist/es5/3d-tiles-archive-loader.js.map +1 -0
  19. package/dist/es5/cesium-ion-loader.js.map +1 -1
  20. package/dist/es5/index.js +14 -7
  21. package/dist/es5/index.js.map +1 -1
  22. package/dist/es5/lib/filesystems/tiles-3d-archive-file-system.js +151 -0
  23. package/dist/es5/lib/filesystems/tiles-3d-archive-file-system.js.map +1 -0
  24. package/dist/es5/lib/parsers/helpers/parse-3d-tile-gltf-view.js +3 -3
  25. package/dist/es5/lib/parsers/helpers/parse-3d-tile-gltf-view.js.map +1 -1
  26. package/dist/es5/lib/parsers/parse-3d-tile-composite.js +3 -1
  27. package/dist/es5/lib/parsers/parse-3d-tile-composite.js.map +1 -1
  28. package/dist/es5/lib/parsers/parse-3d-tile-gltf.js +14 -12
  29. package/dist/es5/lib/parsers/parse-3d-tile-gltf.js.map +1 -1
  30. package/dist/es5/lib/parsers/parse-3d-tile-header.js +2 -1
  31. package/dist/es5/lib/parsers/parse-3d-tile-header.js.map +1 -1
  32. package/dist/es5/lib/parsers/parse-3d-tile-point-cloud.js +6 -6
  33. package/dist/es5/lib/parsers/parse-3d-tile-point-cloud.js.map +1 -1
  34. package/dist/es5/lib/parsers/parse-3d-tile.js +3 -1
  35. package/dist/es5/lib/parsers/parse-3d-tile.js.map +1 -1
  36. package/dist/es5/lib/utils/version.js +1 -1
  37. package/dist/es5/tiles-3d-loader.js +2 -0
  38. package/dist/es5/tiles-3d-loader.js.map +1 -1
  39. package/dist/es5/types.js.map +1 -1
  40. package/dist/esm/{tz3/tz3-archive.js → 3d-tiles-archive/3d-tiles-archive-archive.js} +14 -19
  41. package/dist/esm/3d-tiles-archive/3d-tiles-archive-archive.js.map +1 -0
  42. package/dist/esm/{tz3/tz3-parser.js → 3d-tiles-archive/3d-tiles-archive-parser.js} +4 -4
  43. package/dist/esm/3d-tiles-archive/3d-tiles-archive-parser.js.map +1 -0
  44. package/dist/esm/3d-tiles-archive-loader.js +20 -0
  45. package/dist/esm/3d-tiles-archive-loader.js.map +1 -0
  46. package/dist/esm/cesium-ion-loader.js.map +1 -1
  47. package/dist/esm/index.js +2 -1
  48. package/dist/esm/index.js.map +1 -1
  49. package/dist/esm/lib/filesystems/tiles-3d-archive-file-system.js +49 -0
  50. package/dist/esm/lib/filesystems/tiles-3d-archive-file-system.js.map +1 -0
  51. package/dist/esm/lib/parsers/helpers/parse-3d-tile-gltf-view.js +5 -6
  52. package/dist/esm/lib/parsers/helpers/parse-3d-tile-gltf-view.js.map +1 -1
  53. package/dist/esm/lib/parsers/parse-3d-tile-composite.js +3 -1
  54. package/dist/esm/lib/parsers/parse-3d-tile-composite.js.map +1 -1
  55. package/dist/esm/lib/parsers/parse-3d-tile-gltf.js +7 -8
  56. package/dist/esm/lib/parsers/parse-3d-tile-gltf.js.map +1 -1
  57. package/dist/esm/lib/parsers/parse-3d-tile-header.js +2 -1
  58. package/dist/esm/lib/parsers/parse-3d-tile-header.js.map +1 -1
  59. package/dist/esm/lib/parsers/parse-3d-tile-point-cloud.js +2 -4
  60. package/dist/esm/lib/parsers/parse-3d-tile-point-cloud.js.map +1 -1
  61. package/dist/esm/lib/parsers/parse-3d-tile.js +3 -1
  62. package/dist/esm/lib/parsers/parse-3d-tile.js.map +1 -1
  63. package/dist/esm/lib/utils/version.js +1 -1
  64. package/dist/esm/tiles-3d-loader.js +2 -0
  65. package/dist/esm/tiles-3d-loader.js.map +1 -1
  66. package/dist/esm/types.js.map +1 -1
  67. package/dist/index.d.ts +3 -2
  68. package/dist/index.d.ts.map +1 -1
  69. package/dist/index.js +5 -3
  70. package/dist/lib/filesystems/tiles-3d-archive-file-system.d.ts +32 -0
  71. package/dist/lib/filesystems/tiles-3d-archive-file-system.d.ts.map +1 -0
  72. package/dist/lib/filesystems/tiles-3d-archive-file-system.js +75 -0
  73. package/dist/lib/parsers/helpers/parse-3d-tile-gltf-view.d.ts.map +1 -1
  74. package/dist/lib/parsers/helpers/parse-3d-tile-gltf-view.js +2 -2
  75. package/dist/lib/parsers/parse-3d-tile-composite.js +1 -1
  76. package/dist/lib/parsers/parse-3d-tile-gltf.d.ts +2 -2
  77. package/dist/lib/parsers/parse-3d-tile-gltf.d.ts.map +1 -1
  78. package/dist/lib/parsers/parse-3d-tile-gltf.js +8 -7
  79. package/dist/lib/parsers/parse-3d-tile-header.d.ts.map +1 -1
  80. package/dist/lib/parsers/parse-3d-tile-header.js +2 -1
  81. package/dist/lib/parsers/parse-3d-tile-point-cloud.d.ts +1 -1
  82. package/dist/lib/parsers/parse-3d-tile-point-cloud.d.ts.map +1 -1
  83. package/dist/lib/parsers/parse-3d-tile-point-cloud.js +10 -2
  84. package/dist/lib/parsers/parse-3d-tile.d.ts +1 -1
  85. package/dist/lib/parsers/parse-3d-tile.d.ts.map +1 -1
  86. package/dist/lib/parsers/parse-3d-tile.js +1 -1
  87. package/dist/tiles-3d-loader.d.ts +2 -1
  88. package/dist/tiles-3d-loader.d.ts.map +1 -1
  89. package/dist/tiles-3d-loader.js +4 -0
  90. package/dist/types.d.ts +2 -0
  91. package/dist/types.d.ts.map +1 -1
  92. package/package.json +8 -7
  93. package/src/{tz3/tz3-archive.ts → 3d-tiles-archive/3d-tiles-archive-archive.ts} +22 -19
  94. package/src/{tz3/tz3-parser.ts → 3d-tiles-archive/3d-tiles-archive-parser.ts} +5 -5
  95. package/src/3d-tiles-archive-loader.ts +47 -0
  96. package/src/cesium-ion-loader.ts +0 -1
  97. package/src/index.ts +3 -2
  98. package/src/lib/filesystems/tiles-3d-archive-file-system.ts +97 -0
  99. package/src/lib/parsers/helpers/parse-3d-tile-gltf-view.ts +8 -3
  100. package/src/lib/parsers/parse-3d-tile-composite.ts +1 -1
  101. package/src/lib/parsers/parse-3d-tile-gltf.ts +11 -10
  102. package/src/lib/parsers/parse-3d-tile-header.ts +2 -1
  103. package/src/lib/parsers/parse-3d-tile-point-cloud.ts +10 -3
  104. package/src/lib/parsers/parse-3d-tile.ts +2 -2
  105. package/src/tiles-3d-loader.ts +16 -4
  106. package/src/types.ts +3 -0
  107. package/dist/es5/tz3/tz3-archive.js +0 -161
  108. package/dist/es5/tz3/tz3-archive.js.map +0 -1
  109. package/dist/es5/tz3/tz3-parser.js.map +0 -1
  110. package/dist/es5/tz3-loader.js +0 -48
  111. package/dist/es5/tz3-loader.js.map +0 -1
  112. package/dist/esm/tz3/tz3-archive.js.map +0 -1
  113. package/dist/esm/tz3/tz3-parser.js.map +0 -1
  114. package/dist/esm/tz3-loader.js +0 -19
  115. package/dist/esm/tz3-loader.js.map +0 -1
  116. package/dist/tz3/tz3-archive.d.ts +0 -23
  117. package/dist/tz3/tz3-archive.d.ts.map +0 -1
  118. package/dist/tz3/tz3-parser.d.ts +0 -10
  119. package/dist/tz3/tz3-parser.d.ts.map +0 -1
  120. package/dist/tz3-loader.d.ts +0 -14
  121. package/dist/tz3-loader.d.ts.map +0 -1
  122. package/dist/tz3-loader.js +0 -30
  123. package/src/tz3-loader.ts +0 -41
@@ -1,6 +1,8 @@
1
- import type {LoaderContext} from '@loaders.gl/loader-utils';
2
- import type {Tiles3DLoaderOptions} from '../../tiles-3d-loader';
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<void> {
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
- options?.['3d-tiles'] && options['3d-tiles'].assetGltfUpAxis
19
- ? options['3d-tiles'].assetGltfUpAxis
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 {parse} = context;
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 `${basePath}/${uri}`;
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 parse(dracoData.buffer, DracoLoader, dracoOptions);
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
 
@@ -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(data, options: Tiles3DLoaderOptions = {}, context?: LoaderContext) {
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"}
@@ -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"}
@@ -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"}
@@ -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"}
@@ -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
@@ -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"}
@@ -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
- }