@loaders.gl/3d-tiles 4.0.0-alpha.20 → 4.0.0-alpha.21

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/es5/index.js CHANGED
@@ -16,6 +16,12 @@ Object.defineProperty(exports, "TILE3D_TYPE", {
16
16
  return _constants.TILE3D_TYPE;
17
17
  }
18
18
  });
19
+ Object.defineProperty(exports, "TZ3Loader", {
20
+ enumerable: true,
21
+ get: function get() {
22
+ return _tz3Loader.TZ3Loader;
23
+ }
24
+ });
19
25
  Object.defineProperty(exports, "Tile3DBatchTable", {
20
26
  enumerable: true,
21
27
  get: function get() {
@@ -55,6 +61,7 @@ Object.defineProperty(exports, "_getIonTilesetMetadata", {
55
61
  var _tiles3dLoader = require("./tiles-3d-loader");
56
62
  var _cesiumIonLoader = require("./cesium-ion-loader");
57
63
  var _tile3dSubtreeLoader = require("./tile-3d-subtree-loader");
64
+ var _tz3Loader = require("./tz3-loader");
58
65
  var _tile3dWriter = require("./tile-3d-writer");
59
66
  var _tile3dFeatureTable = _interopRequireDefault(require("./lib/classes/tile-3d-feature-table"));
60
67
  var _tile3dBatchTable = _interopRequireDefault(require("./lib/classes/tile-3d-batch-table"));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_tiles3dLoader","require","_cesiumIonLoader","_tile3dSubtreeLoader","_tile3dWriter","_tile3dFeatureTable","_interopRequireDefault","_tile3dBatchTable","_constants","_ion"],"sources":["../../src/index.ts"],"sourcesContent":["// LOADERS\nexport {Tiles3DLoader} from './tiles-3d-loader';\nexport {CesiumIonLoader} from './cesium-ion-loader';\nexport {Tile3DSubtreeLoader} from './tile-3d-subtree-loader';\n\n// WRITERS\nexport {Tile3DWriter} from './tile-3d-writer';\n\n// CLASSES\nexport {default as Tile3DFeatureTable} from './lib/classes/tile-3d-feature-table';\nexport {default as Tile3DBatchTable} from './lib/classes/tile-3d-batch-table';\n\n// EXPERIMENTAL\nexport {TILE3D_TYPE} from './lib/constants';\nexport {getIonTilesetMetadata as _getIonTilesetMetadata} from './lib/ion/ion';\nexport type {\n FeatureTableJson,\n B3DMContent,\n Tile3DBoundingVolume,\n Tiles3DTileJSON,\n Tiles3DTileJSONPostprocessed,\n Tiles3DTilesetJSON,\n Tiles3DTilesetJSONPostprocessed,\n Tiles3DTileContent,\n ImplicitTilingExensionData\n} from './types';\nexport type {Tiles3DLoaderOptions} from './tiles-3d-loader';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,IAAAA,cAAA,GAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAD,OAAA;AACA,IAAAE,oBAAA,GAAAF,OAAA;AAGA,IAAAG,aAAA,GAAAH,OAAA;AAGA,IAAAI,mBAAA,GAAAC,sBAAA,CAAAL,OAAA;AACA,IAAAM,iBAAA,GAAAD,sBAAA,CAAAL,OAAA;AAGA,IAAAO,UAAA,GAAAP,OAAA;AACA,IAAAQ,IAAA,GAAAR,OAAA"}
1
+ {"version":3,"file":"index.js","names":["_tiles3dLoader","require","_cesiumIonLoader","_tile3dSubtreeLoader","_tz3Loader","_tile3dWriter","_tile3dFeatureTable","_interopRequireDefault","_tile3dBatchTable","_constants","_ion"],"sources":["../../src/index.ts"],"sourcesContent":["// LOADERS\nexport {Tiles3DLoader} from './tiles-3d-loader';\nexport {CesiumIonLoader} from './cesium-ion-loader';\nexport {Tile3DSubtreeLoader} from './tile-3d-subtree-loader';\nexport type {TZ3LoaderOptions} from './tz3-loader';\nexport {TZ3Loader} from './tz3-loader';\n\n// WRITERS\nexport {Tile3DWriter} from './tile-3d-writer';\n\n// CLASSES\nexport {default as Tile3DFeatureTable} from './lib/classes/tile-3d-feature-table';\nexport {default as Tile3DBatchTable} from './lib/classes/tile-3d-batch-table';\n\n// EXPERIMENTAL\nexport {TILE3D_TYPE} from './lib/constants';\nexport {getIonTilesetMetadata as _getIonTilesetMetadata} from './lib/ion/ion';\nexport type {\n FeatureTableJson,\n B3DMContent,\n Tile3DBoundingVolume,\n Tiles3DTileJSON,\n Tiles3DTileJSONPostprocessed,\n Tiles3DTilesetJSON,\n Tiles3DTilesetJSONPostprocessed,\n Tiles3DTileContent,\n ImplicitTilingExensionData\n} from './types';\nexport type {Tiles3DLoaderOptions} from './tiles-3d-loader';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,IAAAA,cAAA,GAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAD,OAAA;AACA,IAAAE,oBAAA,GAAAF,OAAA;AAEA,IAAAG,UAAA,GAAAH,OAAA;AAGA,IAAAI,aAAA,GAAAJ,OAAA;AAGA,IAAAK,mBAAA,GAAAC,sBAAA,CAAAN,OAAA;AACA,IAAAO,iBAAA,GAAAD,sBAAA,CAAAN,OAAA;AAGA,IAAAQ,UAAA,GAAAR,OAAA;AACA,IAAAS,IAAA,GAAAT,OAAA"}
@@ -4,6 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.VERSION = void 0;
7
- var VERSION = typeof "4.0.0-alpha.20" !== 'undefined' ? "4.0.0-alpha.20" : 'latest';
7
+ var VERSION = typeof "4.0.0-alpha.21" !== 'undefined' ? "4.0.0-alpha.21" : 'latest';
8
8
  exports.VERSION = VERSION;
9
9
  //# sourceMappingURL=version.js.map
@@ -0,0 +1,161 @@
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
@@ -0,0 +1 @@
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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"}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.parse3tz = 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 _tz3Archive = require("./tz3-archive");
12
+ var parse3tz = function () {
13
+ var _ref = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(fileProvider, cb) {
14
+ var hashCDOffset, cdFileHeader, hashData, localFileHeader, fileDataOffset, hashFile;
15
+ return _regenerator.default.wrap(function _callee$(_context) {
16
+ while (1) switch (_context.prev = _context.next) {
17
+ case 0:
18
+ _context.next = 2;
19
+ return (0, _zip.searchFromTheEnd)(fileProvider, _zip.cdSignature);
20
+ case 2:
21
+ hashCDOffset = _context.sent;
22
+ _context.next = 5;
23
+ return (0, _zip.parseZipCDFileHeader)(hashCDOffset, fileProvider);
24
+ case 5:
25
+ cdFileHeader = _context.sent;
26
+ if (!((cdFileHeader === null || cdFileHeader === void 0 ? void 0 : cdFileHeader.fileName) !== '@3dtilesIndex1@')) {
27
+ _context.next = 14;
28
+ break;
29
+ }
30
+ cb === null || cb === void 0 ? void 0 : cb('3tz doesnt contain hash file');
31
+ _context.next = 10;
32
+ return (0, _zip.generateHashInfo)(fileProvider);
33
+ case 10:
34
+ hashData = _context.sent;
35
+ cb === null || cb === void 0 ? void 0 : cb('hash info has been composed according to central directory records');
36
+ _context.next = 25;
37
+ break;
38
+ case 14:
39
+ cb === null || cb === void 0 ? void 0 : cb('3tz contains hash file');
40
+ _context.next = 17;
41
+ return (0, _zip.parseZipLocalFileHeader)(cdFileHeader.localHeaderOffset, fileProvider);
42
+ case 17:
43
+ localFileHeader = _context.sent;
44
+ if (localFileHeader) {
45
+ _context.next = 20;
46
+ break;
47
+ }
48
+ throw new Error('corrupted 3tz');
49
+ case 20:
50
+ fileDataOffset = localFileHeader.fileDataOffset;
51
+ _context.next = 23;
52
+ return fileProvider.slice(fileDataOffset, fileDataOffset + localFileHeader.compressedSize);
53
+ case 23:
54
+ hashFile = _context.sent;
55
+ hashData = (0, _zip.parseHashFile)(hashFile);
56
+ case 25:
57
+ return _context.abrupt("return", new _tz3Archive.TZ3Archive(fileProvider, hashData));
58
+ case 26:
59
+ case "end":
60
+ return _context.stop();
61
+ }
62
+ }, _callee);
63
+ }));
64
+ return function parse3tz(_x, _x2) {
65
+ return _ref.apply(this, arguments);
66
+ };
67
+ }();
68
+ exports.parse3tz = parse3tz;
69
+ //# sourceMappingURL=tz3-parser.js.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,48 @@
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
@@ -0,0 +1 @@
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"}
package/dist/esm/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  export { Tiles3DLoader } from './tiles-3d-loader';
2
2
  export { CesiumIonLoader } from './cesium-ion-loader';
3
3
  export { Tile3DSubtreeLoader } from './tile-3d-subtree-loader';
4
+ export { TZ3Loader } from './tz3-loader';
4
5
  export { Tile3DWriter } from './tile-3d-writer';
5
6
  export { default as Tile3DFeatureTable } from './lib/classes/tile-3d-feature-table';
6
7
  export { default as Tile3DBatchTable } from './lib/classes/tile-3d-batch-table';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Tiles3DLoader","CesiumIonLoader","Tile3DSubtreeLoader","Tile3DWriter","default","Tile3DFeatureTable","Tile3DBatchTable","TILE3D_TYPE","getIonTilesetMetadata","_getIonTilesetMetadata"],"sources":["../../src/index.ts"],"sourcesContent":["// LOADERS\nexport {Tiles3DLoader} from './tiles-3d-loader';\nexport {CesiumIonLoader} from './cesium-ion-loader';\nexport {Tile3DSubtreeLoader} from './tile-3d-subtree-loader';\n\n// WRITERS\nexport {Tile3DWriter} from './tile-3d-writer';\n\n// CLASSES\nexport {default as Tile3DFeatureTable} from './lib/classes/tile-3d-feature-table';\nexport {default as Tile3DBatchTable} from './lib/classes/tile-3d-batch-table';\n\n// EXPERIMENTAL\nexport {TILE3D_TYPE} from './lib/constants';\nexport {getIonTilesetMetadata as _getIonTilesetMetadata} from './lib/ion/ion';\nexport type {\n FeatureTableJson,\n B3DMContent,\n Tile3DBoundingVolume,\n Tiles3DTileJSON,\n Tiles3DTileJSONPostprocessed,\n Tiles3DTilesetJSON,\n Tiles3DTilesetJSONPostprocessed,\n Tiles3DTileContent,\n ImplicitTilingExensionData\n} from './types';\nexport type {Tiles3DLoaderOptions} from './tiles-3d-loader';\n"],"mappings":"AACA,SAAQA,aAAa,QAAO,mBAAmB;AAC/C,SAAQC,eAAe,QAAO,qBAAqB;AACnD,SAAQC,mBAAmB,QAAO,0BAA0B;AAG5D,SAAQC,YAAY,QAAO,kBAAkB;AAG7C,SAAQC,OAAO,IAAIC,kBAAkB,QAAO,qCAAqC;AACjF,SAAQD,OAAO,IAAIE,gBAAgB,QAAO,mCAAmC;AAG7E,SAAQC,WAAW,QAAO,iBAAiB;AAC3C,SAAQC,qBAAqB,IAAIC,sBAAsB,QAAO,eAAe"}
1
+ {"version":3,"file":"index.js","names":["Tiles3DLoader","CesiumIonLoader","Tile3DSubtreeLoader","TZ3Loader","Tile3DWriter","default","Tile3DFeatureTable","Tile3DBatchTable","TILE3D_TYPE","getIonTilesetMetadata","_getIonTilesetMetadata"],"sources":["../../src/index.ts"],"sourcesContent":["// LOADERS\nexport {Tiles3DLoader} from './tiles-3d-loader';\nexport {CesiumIonLoader} from './cesium-ion-loader';\nexport {Tile3DSubtreeLoader} from './tile-3d-subtree-loader';\nexport type {TZ3LoaderOptions} from './tz3-loader';\nexport {TZ3Loader} from './tz3-loader';\n\n// WRITERS\nexport {Tile3DWriter} from './tile-3d-writer';\n\n// CLASSES\nexport {default as Tile3DFeatureTable} from './lib/classes/tile-3d-feature-table';\nexport {default as Tile3DBatchTable} from './lib/classes/tile-3d-batch-table';\n\n// EXPERIMENTAL\nexport {TILE3D_TYPE} from './lib/constants';\nexport {getIonTilesetMetadata as _getIonTilesetMetadata} from './lib/ion/ion';\nexport type {\n FeatureTableJson,\n B3DMContent,\n Tile3DBoundingVolume,\n Tiles3DTileJSON,\n Tiles3DTileJSONPostprocessed,\n Tiles3DTilesetJSON,\n Tiles3DTilesetJSONPostprocessed,\n Tiles3DTileContent,\n ImplicitTilingExensionData\n} from './types';\nexport type {Tiles3DLoaderOptions} from './tiles-3d-loader';\n"],"mappings":"AACA,SAAQA,aAAa,QAAO,mBAAmB;AAC/C,SAAQC,eAAe,QAAO,qBAAqB;AACnD,SAAQC,mBAAmB,QAAO,0BAA0B;AAE5D,SAAQC,SAAS,QAAO,cAAc;AAGtC,SAAQC,YAAY,QAAO,kBAAkB;AAG7C,SAAQC,OAAO,IAAIC,kBAAkB,QAAO,qCAAqC;AACjF,SAAQD,OAAO,IAAIE,gBAAgB,QAAO,mCAAmC;AAG7E,SAAQC,WAAW,QAAO,iBAAiB;AAC3C,SAAQC,qBAAqB,IAAIC,sBAAsB,QAAO,eAAe"}
@@ -1,2 +1,2 @@
1
- export const VERSION = typeof "4.0.0-alpha.20" !== 'undefined' ? "4.0.0-alpha.20" : 'latest';
1
+ export const VERSION = typeof "4.0.0-alpha.21" !== 'undefined' ? "4.0.0-alpha.21" : 'latest';
2
2
  //# sourceMappingURL=version.js.map
@@ -0,0 +1,51 @@
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+ import md5 from 'md5';
3
+ import { parseZipLocalFileHeader, findBin } from '@loaders.gl/zip';
4
+ import { DeflateCompression } from '@loaders.gl/compression';
5
+ const COMPRESSION_METHODS = {
6
+ 0: async compressedFile => compressedFile,
7
+ 8: async compressedFile => {
8
+ const compression = new DeflateCompression({
9
+ raw: true
10
+ });
11
+ const decompressedData = await compression.decompress(compressedFile);
12
+ return decompressedData;
13
+ }
14
+ };
15
+ export class TZ3Archive {
16
+ constructor(tz3Archive, hashFile) {
17
+ _defineProperty(this, "tz3Archive", void 0);
18
+ _defineProperty(this, "hashArray", void 0);
19
+ this.tz3Archive = tz3Archive;
20
+ this.hashArray = hashFile;
21
+ }
22
+ async getFile(path) {
23
+ let data = await this.getFileBytes(path.toLocaleLowerCase());
24
+ if (!data) {
25
+ data = await this.getFileBytes(path);
26
+ }
27
+ if (!data) {
28
+ throw new Error('No such file in the archieve');
29
+ }
30
+ const decompressedFile = Buffer.from(data);
31
+ return decompressedFile;
32
+ }
33
+ async getFileBytes(path) {
34
+ const nameHash = Buffer.from(md5(path), 'hex');
35
+ const fileInfo = findBin(nameHash, this.hashArray);
36
+ if (!fileInfo) {
37
+ return null;
38
+ }
39
+ const localFileHeader = await parseZipLocalFileHeader(fileInfo.offset, this.tz3Archive);
40
+ if (!localFileHeader) {
41
+ return null;
42
+ }
43
+ const compressedFile = await this.tz3Archive.slice(localFileHeader.fileDataOffset, localFileHeader.fileDataOffset + localFileHeader.compressedSize);
44
+ const compressionMethod = COMPRESSION_METHODS[localFileHeader.compressionMethod];
45
+ if (!compressionMethod) {
46
+ throw Error('Only Deflation compression is supported');
47
+ }
48
+ return compressionMethod(compressedFile);
49
+ }
50
+ }
51
+ //# sourceMappingURL=tz3-archive.js.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,23 @@
1
+ import { cdSignature as cdHeaderSignature, generateHashInfo, parseHashFile, parseZipCDFileHeader, parseZipLocalFileHeader, searchFromTheEnd } from '@loaders.gl/zip';
2
+ import { TZ3Archive } from './tz3-archive';
3
+ export const parse3tz = async (fileProvider, cb) => {
4
+ const hashCDOffset = await searchFromTheEnd(fileProvider, cdHeaderSignature);
5
+ const cdFileHeader = await parseZipCDFileHeader(hashCDOffset, fileProvider);
6
+ let hashData;
7
+ if ((cdFileHeader === null || cdFileHeader === void 0 ? void 0 : cdFileHeader.fileName) !== '@3dtilesIndex1@') {
8
+ cb === null || cb === void 0 ? void 0 : cb('3tz doesnt contain hash file');
9
+ hashData = await generateHashInfo(fileProvider);
10
+ cb === null || cb === void 0 ? void 0 : cb('hash info has been composed according to central directory records');
11
+ } else {
12
+ cb === null || cb === void 0 ? void 0 : cb('3tz contains hash file');
13
+ const localFileHeader = await parseZipLocalFileHeader(cdFileHeader.localHeaderOffset, fileProvider);
14
+ if (!localFileHeader) {
15
+ throw new Error('corrupted 3tz');
16
+ }
17
+ const fileDataOffset = localFileHeader.fileDataOffset;
18
+ const hashFile = await fileProvider.slice(fileDataOffset, fileDataOffset + localFileHeader.compressedSize);
19
+ hashData = parseHashFile(hashFile);
20
+ }
21
+ return new TZ3Archive(fileProvider, hashData);
22
+ };
23
+ //# sourceMappingURL=tz3-parser.js.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,19 @@
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
@@ -0,0 +1 @@
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"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,8 @@
1
1
  export { Tiles3DLoader } from './tiles-3d-loader';
2
2
  export { CesiumIonLoader } from './cesium-ion-loader';
3
3
  export { Tile3DSubtreeLoader } from './tile-3d-subtree-loader';
4
+ export type { TZ3LoaderOptions } from './tz3-loader';
5
+ export { TZ3Loader } from './tz3-loader';
4
6
  export { Tile3DWriter } from './tile-3d-writer';
5
7
  export { default as Tile3DFeatureTable } from './lib/classes/tile-3d-feature-table';
6
8
  export { default as Tile3DBatchTable } from './lib/classes/tile-3d-batch-table';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAC,eAAe,EAAC,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAC,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AAG7D,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAG9C,OAAO,EAAC,OAAO,IAAI,kBAAkB,EAAC,MAAM,qCAAqC,CAAC;AAClF,OAAO,EAAC,OAAO,IAAI,gBAAgB,EAAC,MAAM,mCAAmC,CAAC;AAG9E,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAC,qBAAqB,IAAI,sBAAsB,EAAC,MAAM,eAAe,CAAC;AAC9E,YAAY,EACV,gBAAgB,EAChB,WAAW,EACX,oBAAoB,EACpB,eAAe,EACf,4BAA4B,EAC5B,kBAAkB,EAClB,+BAA+B,EAC/B,kBAAkB,EAClB,0BAA0B,EAC3B,MAAM,SAAS,CAAC;AACjB,YAAY,EAAC,oBAAoB,EAAC,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAC,eAAe,EAAC,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAC,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AAC7D,YAAY,EAAC,gBAAgB,EAAC,MAAM,cAAc,CAAC;AACnD,OAAO,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAGvC,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAG9C,OAAO,EAAC,OAAO,IAAI,kBAAkB,EAAC,MAAM,qCAAqC,CAAC;AAClF,OAAO,EAAC,OAAO,IAAI,gBAAgB,EAAC,MAAM,mCAAmC,CAAC;AAG9E,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAC,qBAAqB,IAAI,sBAAsB,EAAC,MAAM,eAAe,CAAC;AAC9E,YAAY,EACV,gBAAgB,EAChB,WAAW,EACX,oBAAoB,EACpB,eAAe,EACf,4BAA4B,EAC5B,kBAAkB,EAClB,+BAA+B,EAC/B,kBAAkB,EAClB,0BAA0B,EAC3B,MAAM,SAAS,CAAC;AACjB,YAAY,EAAC,oBAAoB,EAAC,MAAM,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports._getIonTilesetMetadata = exports.TILE3D_TYPE = exports.Tile3DBatchTable = exports.Tile3DFeatureTable = exports.Tile3DWriter = exports.Tile3DSubtreeLoader = exports.CesiumIonLoader = exports.Tiles3DLoader = void 0;
6
+ exports._getIonTilesetMetadata = exports.TILE3D_TYPE = exports.Tile3DBatchTable = exports.Tile3DFeatureTable = exports.Tile3DWriter = exports.TZ3Loader = exports.Tile3DSubtreeLoader = exports.CesiumIonLoader = exports.Tiles3DLoader = void 0;
7
7
  // LOADERS
8
8
  var tiles_3d_loader_1 = require("./tiles-3d-loader");
9
9
  Object.defineProperty(exports, "Tiles3DLoader", { enumerable: true, get: function () { return tiles_3d_loader_1.Tiles3DLoader; } });
@@ -11,6 +11,8 @@ var cesium_ion_loader_1 = require("./cesium-ion-loader");
11
11
  Object.defineProperty(exports, "CesiumIonLoader", { enumerable: true, get: function () { return cesium_ion_loader_1.CesiumIonLoader; } });
12
12
  var tile_3d_subtree_loader_1 = require("./tile-3d-subtree-loader");
13
13
  Object.defineProperty(exports, "Tile3DSubtreeLoader", { enumerable: true, get: function () { return tile_3d_subtree_loader_1.Tile3DSubtreeLoader; } });
14
+ var tz3_loader_1 = require("./tz3-loader");
15
+ Object.defineProperty(exports, "TZ3Loader", { enumerable: true, get: function () { return tz3_loader_1.TZ3Loader; } });
14
16
  // WRITERS
15
17
  var tile_3d_writer_1 = require("./tile-3d-writer");
16
18
  Object.defineProperty(exports, "Tile3DWriter", { enumerable: true, get: function () { return tile_3d_writer_1.Tile3DWriter; } });
@@ -0,0 +1,23 @@
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
@@ -0,0 +1 @@
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"}