@loaders.gl/3d-tiles 4.0.0-alpha.8 → 4.0.0-beta.1

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 (170) 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/3d-tiles-archive/3d-tiles-archive-parser.d.ts +10 -0
  4. package/dist/3d-tiles-archive/3d-tiles-archive-parser.d.ts.map +1 -0
  5. package/dist/3d-tiles-archive-loader.d.ts +13 -0
  6. package/dist/3d-tiles-archive-loader.d.ts.map +1 -0
  7. package/dist/cesium-ion-loader.d.ts +2 -2
  8. package/dist/cesium-ion-loader.d.ts.map +1 -1
  9. package/dist/dist.min.js +10981 -4462
  10. package/dist/es5/3d-tiles-archive/3d-tiles-archive-archive.js +126 -0
  11. package/dist/es5/3d-tiles-archive/3d-tiles-archive-archive.js.map +1 -0
  12. package/dist/es5/3d-tiles-archive/3d-tiles-archive-parser.js +69 -0
  13. package/dist/es5/3d-tiles-archive/3d-tiles-archive-parser.js.map +1 -0
  14. package/dist/es5/3d-tiles-archive-loader.js +50 -0
  15. package/dist/es5/3d-tiles-archive-loader.js.map +1 -0
  16. package/dist/es5/cesium-ion-loader.js.map +1 -1
  17. package/dist/es5/index.js +14 -0
  18. package/dist/es5/index.js.map +1 -1
  19. package/dist/es5/lib/filesystems/tiles-3d-archive-file-system.js +151 -0
  20. package/dist/es5/lib/filesystems/tiles-3d-archive-file-system.js.map +1 -0
  21. package/dist/es5/lib/ion/ion.js +3 -9
  22. package/dist/es5/lib/ion/ion.js.map +1 -1
  23. package/dist/es5/lib/parsers/helpers/parse-3d-implicit-tiles.js +63 -38
  24. package/dist/es5/lib/parsers/helpers/parse-3d-implicit-tiles.js.map +1 -1
  25. package/dist/es5/lib/parsers/helpers/parse-3d-tile-gltf-view.js +3 -3
  26. package/dist/es5/lib/parsers/helpers/parse-3d-tile-gltf-view.js.map +1 -1
  27. package/dist/es5/lib/parsers/helpers/parse-3d-tile-subtree.js +70 -55
  28. package/dist/es5/lib/parsers/helpers/parse-3d-tile-subtree.js.map +1 -1
  29. package/dist/es5/lib/parsers/parse-3d-tile-composite.js +3 -1
  30. package/dist/es5/lib/parsers/parse-3d-tile-composite.js.map +1 -1
  31. package/dist/es5/lib/parsers/parse-3d-tile-gltf.js +14 -12
  32. package/dist/es5/lib/parsers/parse-3d-tile-gltf.js.map +1 -1
  33. package/dist/es5/lib/parsers/parse-3d-tile-header.js +14 -12
  34. package/dist/es5/lib/parsers/parse-3d-tile-header.js.map +1 -1
  35. package/dist/es5/lib/parsers/parse-3d-tile-point-cloud.js +6 -6
  36. package/dist/es5/lib/parsers/parse-3d-tile-point-cloud.js.map +1 -1
  37. package/dist/es5/lib/parsers/parse-3d-tile.js +3 -1
  38. package/dist/es5/lib/parsers/parse-3d-tile.js.map +1 -1
  39. package/dist/es5/lib/utils/version.js +1 -1
  40. package/dist/es5/lib/utils/version.js.map +1 -1
  41. package/dist/es5/tile-3d-subtree-loader.js.map +1 -1
  42. package/dist/es5/tile-3d-writer.js.map +1 -1
  43. package/dist/es5/tiles-3d-loader.js +2 -0
  44. package/dist/es5/tiles-3d-loader.js.map +1 -1
  45. package/dist/es5/types.js.map +1 -1
  46. package/dist/esm/3d-tiles-archive/3d-tiles-archive-archive.js +46 -0
  47. package/dist/esm/3d-tiles-archive/3d-tiles-archive-archive.js.map +1 -0
  48. package/dist/esm/3d-tiles-archive/3d-tiles-archive-parser.js +23 -0
  49. package/dist/esm/3d-tiles-archive/3d-tiles-archive-parser.js.map +1 -0
  50. package/dist/esm/3d-tiles-archive-loader.js +20 -0
  51. package/dist/esm/3d-tiles-archive-loader.js.map +1 -0
  52. package/dist/esm/cesium-ion-loader.js.map +1 -1
  53. package/dist/esm/index.js +2 -0
  54. package/dist/esm/index.js.map +1 -1
  55. package/dist/esm/lib/filesystems/tiles-3d-archive-file-system.js +49 -0
  56. package/dist/esm/lib/filesystems/tiles-3d-archive-file-system.js.map +1 -0
  57. package/dist/esm/lib/ion/ion.js +3 -9
  58. package/dist/esm/lib/ion/ion.js.map +1 -1
  59. package/dist/esm/lib/parsers/helpers/parse-3d-implicit-tiles.js +45 -23
  60. package/dist/esm/lib/parsers/helpers/parse-3d-implicit-tiles.js.map +1 -1
  61. package/dist/esm/lib/parsers/helpers/parse-3d-tile-gltf-view.js +5 -6
  62. package/dist/esm/lib/parsers/helpers/parse-3d-tile-gltf-view.js.map +1 -1
  63. package/dist/esm/lib/parsers/helpers/parse-3d-tile-subtree.js +18 -24
  64. package/dist/esm/lib/parsers/helpers/parse-3d-tile-subtree.js.map +1 -1
  65. package/dist/esm/lib/parsers/parse-3d-tile-composite.js +3 -1
  66. package/dist/esm/lib/parsers/parse-3d-tile-composite.js.map +1 -1
  67. package/dist/esm/lib/parsers/parse-3d-tile-gltf.js +7 -8
  68. package/dist/esm/lib/parsers/parse-3d-tile-gltf.js.map +1 -1
  69. package/dist/esm/lib/parsers/parse-3d-tile-header.js +8 -5
  70. package/dist/esm/lib/parsers/parse-3d-tile-header.js.map +1 -1
  71. package/dist/esm/lib/parsers/parse-3d-tile-point-cloud.js +2 -4
  72. package/dist/esm/lib/parsers/parse-3d-tile-point-cloud.js.map +1 -1
  73. package/dist/esm/lib/parsers/parse-3d-tile.js +3 -1
  74. package/dist/esm/lib/parsers/parse-3d-tile.js.map +1 -1
  75. package/dist/esm/lib/utils/version.js +1 -1
  76. package/dist/esm/lib/utils/version.js.map +1 -1
  77. package/dist/esm/tile-3d-subtree-loader.js.map +1 -1
  78. package/dist/esm/tile-3d-writer.js.map +1 -1
  79. package/dist/esm/tiles-3d-loader.js +2 -0
  80. package/dist/esm/tiles-3d-loader.js.map +1 -1
  81. package/dist/esm/types.js.map +1 -1
  82. package/dist/index.d.ts +3 -0
  83. package/dist/index.d.ts.map +1 -1
  84. package/dist/lib/filesystems/tiles-3d-archive-file-system.d.ts +32 -0
  85. package/dist/lib/filesystems/tiles-3d-archive-file-system.d.ts.map +1 -0
  86. package/dist/lib/parsers/helpers/parse-3d-implicit-tiles.d.ts +4 -1
  87. package/dist/lib/parsers/helpers/parse-3d-implicit-tiles.d.ts.map +1 -1
  88. package/dist/lib/parsers/helpers/parse-3d-tile-gltf-view.d.ts.map +1 -1
  89. package/dist/lib/parsers/helpers/parse-3d-tile-subtree.d.ts.map +1 -1
  90. package/dist/lib/parsers/parse-3d-tile-gltf.d.ts +2 -2
  91. package/dist/lib/parsers/parse-3d-tile-gltf.d.ts.map +1 -1
  92. package/dist/lib/parsers/parse-3d-tile-header.d.ts +30 -2
  93. package/dist/lib/parsers/parse-3d-tile-header.d.ts.map +1 -1
  94. package/dist/lib/parsers/parse-3d-tile-point-cloud.d.ts +1 -1
  95. package/dist/lib/parsers/parse-3d-tile-point-cloud.d.ts.map +1 -1
  96. package/dist/lib/parsers/parse-3d-tile.d.ts +1 -1
  97. package/dist/lib/parsers/parse-3d-tile.d.ts.map +1 -1
  98. package/dist/tile-3d-subtree-loader.d.ts +3 -3
  99. package/dist/tile-3d-subtree-loader.d.ts.map +1 -1
  100. package/dist/tile-3d-writer.d.ts +2 -2
  101. package/dist/tile-3d-writer.d.ts.map +1 -1
  102. package/dist/tiles-3d-loader.d.ts +2 -1
  103. package/dist/tiles-3d-loader.d.ts.map +1 -1
  104. package/dist/types.d.ts +49 -8
  105. package/dist/types.d.ts.map +1 -1
  106. package/package.json +10 -8
  107. package/src/3d-tiles-archive/3d-tiles-archive-archive.ts +85 -0
  108. package/src/3d-tiles-archive/3d-tiles-archive-parser.ts +52 -0
  109. package/src/3d-tiles-archive-loader.ts +47 -0
  110. package/src/cesium-ion-loader.ts +2 -3
  111. package/src/index.ts +3 -0
  112. package/src/lib/filesystems/tiles-3d-archive-file-system.ts +97 -0
  113. package/src/lib/ion/ion.ts +3 -3
  114. package/src/lib/parsers/helpers/parse-3d-implicit-tiles.ts +76 -32
  115. package/src/lib/parsers/helpers/parse-3d-tile-gltf-view.ts +8 -3
  116. package/src/lib/parsers/helpers/parse-3d-tile-subtree.ts +44 -62
  117. package/src/lib/parsers/parse-3d-tile-composite.ts +1 -1
  118. package/src/lib/parsers/parse-3d-tile-gltf.ts +11 -10
  119. package/src/lib/parsers/parse-3d-tile-header.ts +39 -6
  120. package/src/lib/parsers/parse-3d-tile-point-cloud.ts +10 -3
  121. package/src/lib/parsers/parse-3d-tile.ts +2 -2
  122. package/src/tile-3d-subtree-loader.ts +3 -3
  123. package/src/tile-3d-writer.ts +2 -2
  124. package/src/tiles-3d-loader.ts +16 -4
  125. package/src/types.ts +52 -9
  126. package/dist/bundle.js +0 -5
  127. package/dist/cesium-ion-loader.js +0 -41
  128. package/dist/index.js +0 -26
  129. package/dist/lib/classes/helpers/tile-3d-accessor-utils.js +0 -113
  130. package/dist/lib/classes/tile-3d-batch-table-hierarchy.js +0 -197
  131. package/dist/lib/classes/tile-3d-batch-table.js +0 -245
  132. package/dist/lib/classes/tile-3d-feature-table.js +0 -72
  133. package/dist/lib/constants.js +0 -26
  134. package/dist/lib/encoders/encode-3d-tile-batched-model.js +0 -46
  135. package/dist/lib/encoders/encode-3d-tile-composite.js +0 -24
  136. package/dist/lib/encoders/encode-3d-tile-instanced-model.js +0 -38
  137. package/dist/lib/encoders/encode-3d-tile-point-cloud.js +0 -39
  138. package/dist/lib/encoders/encode-3d-tile.js +0 -33
  139. package/dist/lib/encoders/helpers/encode-3d-tile-header.js +0 -30
  140. package/dist/lib/ion/ion.js +0 -68
  141. package/dist/lib/parsers/helpers/normalize-3d-tile-colors.js +0 -65
  142. package/dist/lib/parsers/helpers/normalize-3d-tile-normals.js +0 -30
  143. package/dist/lib/parsers/helpers/normalize-3d-tile-positions.js +0 -42
  144. package/dist/lib/parsers/helpers/parse-3d-implicit-tiles.js +0 -266
  145. package/dist/lib/parsers/helpers/parse-3d-tile-gltf-view.js +0 -96
  146. package/dist/lib/parsers/helpers/parse-3d-tile-header.js +0 -28
  147. package/dist/lib/parsers/helpers/parse-3d-tile-subtree.js +0 -104
  148. package/dist/lib/parsers/helpers/parse-3d-tile-tables.js +0 -93
  149. package/dist/lib/parsers/helpers/parse-utils.js +0 -32
  150. package/dist/lib/parsers/parse-3d-tile-batched-model.js +0 -33
  151. package/dist/lib/parsers/parse-3d-tile-composite.js +0 -24
  152. package/dist/lib/parsers/parse-3d-tile-gltf.js +0 -28
  153. package/dist/lib/parsers/parse-3d-tile-header.js +0 -192
  154. package/dist/lib/parsers/parse-3d-tile-instanced-model.js +0 -172
  155. package/dist/lib/parsers/parse-3d-tile-point-cloud.js +0 -433
  156. package/dist/lib/parsers/parse-3d-tile.js +0 -33
  157. package/dist/lib/utils/obb/s2-corners-to-obb.js +0 -37
  158. package/dist/lib/utils/s2/converters/s2-to-boundary.js +0 -61
  159. package/dist/lib/utils/s2/converters/s2-to-obb-points.js +0 -36
  160. package/dist/lib/utils/s2/converters/s2-to-region.js +0 -59
  161. package/dist/lib/utils/s2/index.js +0 -23
  162. package/dist/lib/utils/s2/s2-geometry-functions.js +0 -29
  163. package/dist/lib/utils/s2/s2-token-functions.js +0 -68
  164. package/dist/lib/utils/s2/s2geometry/s2-cell-utils.js +0 -32
  165. package/dist/lib/utils/s2/s2geometry/s2-geometry.js +0 -260
  166. package/dist/lib/utils/version.js +0 -7
  167. package/dist/tile-3d-subtree-loader.js +0 -23
  168. package/dist/tile-3d-writer.js +0 -27
  169. package/dist/tiles-3d-loader.js +0 -76
  170. package/dist/types.js +0 -2
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.Tiles3DArchive = void 0;
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
12
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
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 _(data) {
18
+ return new _compression.NoCompression().decompress(data);
19
+ },
20
+ 8: function _(data) {
21
+ return new _compression.DeflateCompression({
22
+ raw: true
23
+ }).decompress(data);
24
+ }
25
+ };
26
+ var Tiles3DArchive = function () {
27
+ function Tiles3DArchive(fileProvider, hashFile) {
28
+ (0, _classCallCheck2.default)(this, Tiles3DArchive);
29
+ (0, _defineProperty2.default)(this, "fileProvider", void 0);
30
+ (0, _defineProperty2.default)(this, "hashArray", void 0);
31
+ this.fileProvider = fileProvider;
32
+ this.hashArray = hashFile;
33
+ }
34
+ (0, _createClass2.default)(Tiles3DArchive, [{
35
+ key: "getFile",
36
+ value: function () {
37
+ var _getFile = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(path) {
38
+ var data;
39
+ return _regenerator.default.wrap(function _callee$(_context) {
40
+ while (1) switch (_context.prev = _context.next) {
41
+ case 0:
42
+ _context.next = 2;
43
+ return this.getFileBytes(path.toLocaleLowerCase());
44
+ case 2:
45
+ data = _context.sent;
46
+ if (data) {
47
+ _context.next = 7;
48
+ break;
49
+ }
50
+ _context.next = 6;
51
+ return this.getFileBytes(path);
52
+ case 6:
53
+ data = _context.sent;
54
+ case 7:
55
+ if (data) {
56
+ _context.next = 9;
57
+ break;
58
+ }
59
+ throw new Error('No such file in the archive');
60
+ case 9:
61
+ return _context.abrupt("return", data);
62
+ case 10:
63
+ case "end":
64
+ return _context.stop();
65
+ }
66
+ }, _callee, this);
67
+ }));
68
+ function getFile(_x) {
69
+ return _getFile.apply(this, arguments);
70
+ }
71
+ return getFile;
72
+ }()
73
+ }, {
74
+ key: "getFileBytes",
75
+ value: function () {
76
+ var _getFileBytes = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(path) {
77
+ var nameHash, fileInfo, localFileHeader, compressedFile, compressionMethod;
78
+ return _regenerator.default.wrap(function _callee2$(_context2) {
79
+ while (1) switch (_context2.prev = _context2.next) {
80
+ case 0:
81
+ nameHash = Buffer.from((0, _md.default)(path), 'hex');
82
+ fileInfo = (0, _zip.findBin)(nameHash, this.hashArray);
83
+ if (fileInfo) {
84
+ _context2.next = 4;
85
+ break;
86
+ }
87
+ return _context2.abrupt("return", null);
88
+ case 4:
89
+ _context2.next = 6;
90
+ return (0, _zip.parseZipLocalFileHeader)(fileInfo.offset, this.fileProvider);
91
+ case 6:
92
+ localFileHeader = _context2.sent;
93
+ if (localFileHeader) {
94
+ _context2.next = 9;
95
+ break;
96
+ }
97
+ return _context2.abrupt("return", null);
98
+ case 9:
99
+ _context2.next = 11;
100
+ return this.fileProvider.slice(localFileHeader.fileDataOffset, localFileHeader.fileDataOffset + localFileHeader.compressedSize);
101
+ case 11:
102
+ compressedFile = _context2.sent;
103
+ compressionMethod = COMPRESSION_METHODS[localFileHeader.compressionMethod];
104
+ if (compressionMethod) {
105
+ _context2.next = 15;
106
+ break;
107
+ }
108
+ throw Error('Only Deflation compression is supported');
109
+ case 15:
110
+ return _context2.abrupt("return", compressionMethod(compressedFile));
111
+ case 16:
112
+ case "end":
113
+ return _context2.stop();
114
+ }
115
+ }, _callee2, this);
116
+ }));
117
+ function getFileBytes(_x2) {
118
+ return _getFileBytes.apply(this, arguments);
119
+ }
120
+ return getFileBytes;
121
+ }()
122
+ }]);
123
+ return Tiles3DArchive;
124
+ }();
125
+ exports.Tiles3DArchive = Tiles3DArchive;
126
+ //# sourceMappingURL=3d-tiles-archive-archive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"3d-tiles-archive-archive.js","names":["_md","_interopRequireDefault","require","_zip","_compression","COMPRESSION_METHODS","_","data","NoCompression","decompress","DeflateCompression","raw","Tiles3DArchive","fileProvider","hashFile","_classCallCheck2","default","_defineProperty2","hashArray","_createClass2","key","value","_getFile","_asyncToGenerator2","_regenerator","mark","_callee","path","wrap","_callee$","_context","prev","next","getFileBytes","toLocaleLowerCase","sent","Error","abrupt","stop","getFile","_x","apply","arguments","_getFileBytes","_callee2","nameHash","fileInfo","localFileHeader","compressedFile","compressionMethod","_callee2$","_context2","Buffer","from","md5","findBin","parseZipLocalFileHeader","offset","slice","fileDataOffset","compressedSize","_x2","exports"],"sources":["../../../src/3d-tiles-archive/3d-tiles-archive-archive.ts"],"sourcesContent":["import md5 from 'md5';\nimport {FileProvider} from '@loaders.gl/loader-utils';\nimport {parseZipLocalFileHeader, HashElement, findBin} from '@loaders.gl/zip';\nimport {DeflateCompression, NoCompression} 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: (data) => new NoCompression().decompress(data),\n /** Deflation */\n 8: (data) => new DeflateCompression({raw: true}).decompress(data)\n};\n\n/**\n * Class for handling information about 3tz file\n */\nexport class Tiles3DArchive {\n /** FileProvider with whe whole file */\n private fileProvider: FileProvider;\n /** hash info */\n private hashArray: HashElement[];\n\n /**\n * creates Tiles3DArchive handler\n * @param fileProvider - FileProvider with the whole file\n * @param hashFile - hash info\n */\n constructor(fileProvider: FileProvider, hashFile: HashElement[]) {\n this.fileProvider = fileProvider;\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<ArrayBuffer> {\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 archive');\n }\n\n return data;\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.fileProvider);\n if (!localFileHeader) {\n return null;\n }\n\n const compressedFile = await this.fileProvider.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,IAAAA,GAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,IAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AAOA,IAAMG,mBAAwD,GAAG;EAE/D,CAAC,EAAE,SAAAC,EAACC,IAAI;IAAA,OAAK,IAAIC,0BAAa,CAAC,CAAC,CAACC,UAAU,CAACF,IAAI,CAAC;EAAA;EAEjD,CAAC,EAAE,SAAAD,EAACC,IAAI;IAAA,OAAK,IAAIG,+BAAkB,CAAC;MAACC,GAAG,EAAE;IAAI,CAAC,CAAC,CAACF,UAAU,CAACF,IAAI,CAAC;EAAA;AACnE,CAAC;AAAC,IAKWK,cAAc;EAWzB,SAAAA,eAAYC,YAA0B,EAAEC,QAAuB,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA,QAAAJ,cAAA;IAAA,IAAAK,gBAAA,CAAAD,OAAA;IAAA,IAAAC,gBAAA,CAAAD,OAAA;IAC/D,IAAI,CAACH,YAAY,GAAGA,YAAY;IAChC,IAAI,CAACK,SAAS,GAAGJ,QAAQ;EAC3B;EAAC,IAAAK,aAAA,CAAAH,OAAA,EAAAJ,cAAA;IAAAQ,GAAA;IAAAC,KAAA;MAAA,IAAAC,QAAA,OAAAC,kBAAA,CAAAP,OAAA,EAAAQ,YAAA,CAAAR,OAAA,CAAAS,IAAA,CAOD,SAAAC,QAAcC,IAAY;QAAA,IAAApB,IAAA;QAAA,OAAAiB,YAAA,CAAAR,OAAA,CAAAY,IAAA,UAAAC,SAAAC,QAAA;UAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;YAAA;cAAAF,QAAA,CAAAE,IAAA;cAAA,OAGP,IAAI,CAACC,YAAY,CAACN,IAAI,CAACO,iBAAiB,CAAC,CAAC,CAAC;YAAA;cAAxD3B,IAAI,GAAAuB,QAAA,CAAAK,IAAA;cAAA,IACH5B,IAAI;gBAAAuB,QAAA,CAAAE,IAAA;gBAAA;cAAA;cAAAF,QAAA,CAAAE,IAAA;cAAA,OACM,IAAI,CAACC,YAAY,CAACN,IAAI,CAAC;YAAA;cAApCpB,IAAI,GAAAuB,QAAA,CAAAK,IAAA;YAAA;cAAA,IAED5B,IAAI;gBAAAuB,QAAA,CAAAE,IAAA;gBAAA;cAAA;cAAA,MACD,IAAII,KAAK,CAAC,6BAA6B,CAAC;YAAA;cAAA,OAAAN,QAAA,CAAAO,MAAA,WAGzC9B,IAAI;YAAA;YAAA;cAAA,OAAAuB,QAAA,CAAAQ,IAAA;UAAA;QAAA,GAAAZ,OAAA;MAAA,CACZ;MAAA,SAAAa,QAAAC,EAAA;QAAA,OAAAlB,QAAA,CAAAmB,KAAA,OAAAC,SAAA;MAAA;MAAA,OAAAH,OAAA;IAAA;EAAA;IAAAnB,GAAA;IAAAC,KAAA;MAAA,IAAAsB,aAAA,OAAApB,kBAAA,CAAAP,OAAA,EAAAQ,YAAA,CAAAR,OAAA,CAAAS,IAAA,CAOD,SAAAmB,SAA2BjB,IAAY;QAAA,IAAAkB,QAAA,EAAAC,QAAA,EAAAC,eAAA,EAAAC,cAAA,EAAAC,iBAAA;QAAA,OAAAzB,YAAA,CAAAR,OAAA,CAAAY,IAAA,UAAAsB,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAApB,IAAA,GAAAoB,SAAA,CAAAnB,IAAA;YAAA;cAC/Ba,QAAQ,GAAGO,MAAM,CAACC,IAAI,CAAC,IAAAC,WAAG,EAAC3B,IAAI,CAAC,EAAE,KAAK,CAAC;cACxCmB,QAAQ,GAAG,IAAAS,YAAO,EAACV,QAAQ,EAAE,IAAI,CAAC3B,SAAS,CAAC;cAAA,IAC7C4B,QAAQ;gBAAAK,SAAA,CAAAnB,IAAA;gBAAA;cAAA;cAAA,OAAAmB,SAAA,CAAAd,MAAA,WACJ,IAAI;YAAA;cAAAc,SAAA,CAAAnB,IAAA;cAAA,OAGiB,IAAAwB,4BAAuB,EAACV,QAAQ,CAACW,MAAM,EAAE,IAAI,CAAC5C,YAAY,CAAC;YAAA;cAAnFkC,eAAe,GAAAI,SAAA,CAAAhB,IAAA;cAAA,IAChBY,eAAe;gBAAAI,SAAA,CAAAnB,IAAA;gBAAA;cAAA;cAAA,OAAAmB,SAAA,CAAAd,MAAA,WACX,IAAI;YAAA;cAAAc,SAAA,CAAAnB,IAAA;cAAA,OAGgB,IAAI,CAACnB,YAAY,CAAC6C,KAAK,CAClDX,eAAe,CAACY,cAAc,EAC9BZ,eAAe,CAACY,cAAc,GAAGZ,eAAe,CAACa,cACnD,CAAC;YAAA;cAHKZ,cAAc,GAAAG,SAAA,CAAAhB,IAAA;cAKdc,iBAAiB,GAAG5C,mBAAmB,CAAC0C,eAAe,CAACE,iBAAiB,CAAC;cAAA,IAC3EA,iBAAiB;gBAAAE,SAAA,CAAAnB,IAAA;gBAAA;cAAA;cAAA,MACdI,KAAK,CAAC,yCAAyC,CAAC;YAAA;cAAA,OAAAe,SAAA,CAAAd,MAAA,WAGjDY,iBAAiB,CAACD,cAAc,CAAC;YAAA;YAAA;cAAA,OAAAG,SAAA,CAAAb,IAAA;UAAA;QAAA,GAAAM,QAAA;MAAA,CACzC;MAAA,SAAAX,aAAA4B,GAAA;QAAA,OAAAlB,aAAA,CAAAF,KAAA,OAAAC,SAAA;MAAA;MAAA,OAAAT,YAAA;IAAA;EAAA;EAAA,OAAArB,cAAA;AAAA;AAAAkD,OAAA,CAAAlD,cAAA,GAAAA,cAAA"}
@@ -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.parse3DTilesArchive = 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 _dTilesArchiveArchive = require("./3d-tiles-archive-archive");
12
+ var parse3DTilesArchive = 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 _dTilesArchiveArchive.Tiles3DArchive(fileProvider, hashData));
58
+ case 26:
59
+ case "end":
60
+ return _context.stop();
61
+ }
62
+ }, _callee);
63
+ }));
64
+ return function parse3DTilesArchive(_x, _x2) {
65
+ return _ref.apply(this, arguments);
66
+ };
67
+ }();
68
+ exports.parse3DTilesArchive = parse3DTilesArchive;
69
+ //# sourceMappingURL=3d-tiles-archive-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"3d-tiles-archive-parser.js","names":["_zip","require","_dTilesArchiveArchive","parse3DTilesArchive","_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","Tiles3DArchive","stop","_x","_x2","apply","arguments","exports"],"sources":["../../../src/3d-tiles-archive/3d-tiles-archive-parser.ts"],"sourcesContent":["import {FileProvider} from '@loaders.gl/loader-utils';\nimport {\n HashElement,\n cdSignature as cdHeaderSignature,\n generateHashInfo,\n parseHashFile,\n parseZipCDFileHeader,\n parseZipLocalFileHeader,\n searchFromTheEnd\n} from '@loaders.gl/zip';\nimport {Tiles3DArchive} from './3d-tiles-archive-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 parse3DTilesArchive = async (\n fileProvider: FileProvider,\n cb?: (msg: string) => void\n): Promise<Tiles3DArchive> => {\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 Tiles3DArchive(fileProvider, hashData);\n};\n"],"mappings":";;;;;;;;;AACA,IAAAA,IAAA,GAAAC,OAAA;AASA,IAAAC,qBAAA,GAAAD,OAAA;AAQO,IAAME,mBAAmB;EAAA,IAAAC,IAAA,OAAAC,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAG,SAAAC,QACjCC,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,oCAAc,CAAC1B,YAAY,EAAEI,QAAQ,CAAC;QAAA;QAAA;UAAA,OAAAM,QAAA,CAAAiB,IAAA;MAAA;IAAA,GAAA5B,OAAA;EAAA,CAClD;EAAA,gBAjCYN,mBAAmBA,CAAAmC,EAAA,EAAAC,GAAA;IAAA,OAAAnC,IAAA,CAAAoC,KAAA,OAAAC,SAAA;EAAA;AAAA,GAiC/B;AAACC,OAAA,CAAAvC,mBAAA,GAAAA,mBAAA"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.Tiles3DArchiveFileLoader = void 0;
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
+ var _loaderUtils = require("@loaders.gl/loader-utils");
11
+ var _dTilesArchiveParser = require("./3d-tiles-archive/3d-tiles-archive-parser");
12
+ var VERSION = typeof "4.0.0-beta.1" !== 'undefined' ? "4.0.0-beta.1" : 'latest';
13
+ var Tiles3DArchiveFileLoader = {
14
+ name: '3tz',
15
+ id: '3tz',
16
+ module: '3d-tiles',
17
+ version: VERSION,
18
+ mimeTypes: ['application/octet-stream', 'application/vnd.maxar.archive.3tz+zip'],
19
+ parse: parse3DTilesArchive,
20
+ extensions: ['3tz'],
21
+ options: {}
22
+ };
23
+ exports.Tiles3DArchiveFileLoader = Tiles3DArchiveFileLoader;
24
+ function parse3DTilesArchive(_x) {
25
+ return _parse3DTilesArchive.apply(this, arguments);
26
+ }
27
+ function _parse3DTilesArchive() {
28
+ _parse3DTilesArchive = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(data) {
29
+ var _options$3dTilesArc, _options$3dTilesArc2;
30
+ var options,
31
+ archive,
32
+ _args = arguments;
33
+ return _regenerator.default.wrap(function _callee$(_context) {
34
+ while (1) switch (_context.prev = _context.next) {
35
+ case 0:
36
+ options = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};
37
+ _context.next = 3;
38
+ return (0, _dTilesArchiveParser.parse3DTilesArchive)(new _loaderUtils.DataViewFile(new DataView(data)));
39
+ case 3:
40
+ archive = _context.sent;
41
+ return _context.abrupt("return", archive.getFile((_options$3dTilesArc = (_options$3dTilesArc2 = options['3d-tiles-archive']) === null || _options$3dTilesArc2 === void 0 ? void 0 : _options$3dTilesArc2.path) !== null && _options$3dTilesArc !== void 0 ? _options$3dTilesArc : ''));
42
+ case 5:
43
+ case "end":
44
+ return _context.stop();
45
+ }
46
+ }, _callee);
47
+ }));
48
+ return _parse3DTilesArchive.apply(this, arguments);
49
+ }
50
+ //# sourceMappingURL=3d-tiles-archive-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"3d-tiles-archive-loader.js","names":["_loaderUtils","require","_dTilesArchiveParser","VERSION","Tiles3DArchiveFileLoader","name","id","module","version","mimeTypes","parse","parse3DTilesArchive","extensions","options","exports","_x","_parse3DTilesArchive","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","data","_options$3dTilesArc","_options$3dTilesArc2","archive","_args","wrap","_callee$","_context","prev","next","length","undefined","parse3DTilesArchiveFromProvider","DataViewFile","DataView","sent","abrupt","getFile","path","stop"],"sources":["../../src/3d-tiles-archive-loader.ts"],"sourcesContent":["import type {LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {DataViewFile} from '@loaders.gl/loader-utils';\nimport {parse3DTilesArchive as parse3DTilesArchiveFromProvider} from './3d-tiles-archive/3d-tiles-archive-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 Tiles3DArchiveFileLoaderOptions = LoaderOptions & {\n '3d-tiles-archive'?: {\n /** path inside the 3tz archive */\n path?: string;\n };\n};\n\n/**\n * Loader for 3tz packages\n */\nexport const Tiles3DArchiveFileLoader: LoaderWithParser<\n ArrayBuffer,\n never,\n Tiles3DArchiveFileLoaderOptions\n> = {\n name: '3tz',\n id: '3tz',\n module: '3d-tiles',\n version: VERSION,\n mimeTypes: ['application/octet-stream', 'application/vnd.maxar.archive.3tz+zip'],\n parse: parse3DTilesArchive,\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 parse3DTilesArchive(\n data: ArrayBuffer,\n options: Tiles3DArchiveFileLoaderOptions = {}\n): Promise<ArrayBuffer> {\n const archive = await parse3DTilesArchiveFromProvider(new DataViewFile(new DataView(data)));\n return archive.getFile(options['3d-tiles-archive']?.path ?? '');\n}\n"],"mappings":";;;;;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,oBAAA,GAAAD,OAAA;AAIA,IAAME,OAAO,GAAG,qBAAkB,KAAK,WAAW,oBAAiB,QAAQ;AAapE,IAAMC,wBAIZ,GAAG;EACFC,IAAI,EAAE,KAAK;EACXC,EAAE,EAAE,KAAK;EACTC,MAAM,EAAE,UAAU;EAClBC,OAAO,EAAEL,OAAO;EAChBM,SAAS,EAAE,CAAC,0BAA0B,EAAE,uCAAuC,CAAC;EAChFC,KAAK,EAAEC,mBAAmB;EAC1BC,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,OAAO,EAAE,CAAC;AACZ,CAAC;AAACC,OAAA,CAAAV,wBAAA,GAAAA,wBAAA;AAAA,SAQaO,mBAAmBA,CAAAI,EAAA;EAAA,OAAAC,oBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAF,qBAAA;EAAAA,oBAAA,OAAAG,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAlC,SAAAC,QACEC,IAAiB;IAAA,IAAAC,mBAAA,EAAAC,oBAAA;IAAA,IAAAb,OAAA;MAAAc,OAAA;MAAAC,KAAA,GAAAV,SAAA;IAAA,OAAAG,YAAA,CAAAD,OAAA,CAAAS,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UACjBpB,OAAwC,GAAAe,KAAA,CAAAM,MAAA,QAAAN,KAAA,QAAAO,SAAA,GAAAP,KAAA,MAAG,CAAC,CAAC;UAAAG,QAAA,CAAAE,IAAA;UAAA,OAEvB,IAAAG,wCAA+B,EAAC,IAAIC,yBAAY,CAAC,IAAIC,QAAQ,CAACd,IAAI,CAAC,CAAC,CAAC;QAAA;UAArFG,OAAO,GAAAI,QAAA,CAAAQ,IAAA;UAAA,OAAAR,QAAA,CAAAS,MAAA,WACNb,OAAO,CAACc,OAAO,EAAAhB,mBAAA,IAAAC,oBAAA,GAACb,OAAO,CAAC,kBAAkB,CAAC,cAAAa,oBAAA,uBAA3BA,oBAAA,CAA6BgB,IAAI,cAAAjB,mBAAA,cAAAA,mBAAA,GAAI,EAAE,CAAC;QAAA;QAAA;UAAA,OAAAM,QAAA,CAAAY,IAAA;MAAA;IAAA,GAAApB,OAAA;EAAA,CAChE;EAAA,OAAAP,oBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"cesium-ion-loader.js","names":["_tiles3dLoader","require","_ion","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","preload","_x","_preload","_asyncToGenerator2","_regenerator","mark","_callee2","url","options","_options","accessToken","assetId","matched","_args2","wrap","_callee2$","_context2","prev","next","undefined","Number","isFinite","match","abrupt","getIonTilesetMetadata","stop","CesiumIonLoader","Tiles3DLoader","id","name","parse","_parse","_callee","data","context","_callee$","_context","loader","_x2","_x3","_x4","exports"],"sources":["../../src/cesium-ion-loader.ts"],"sourcesContent":["import type {LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {Tiles3DLoader} from './tiles-3d-loader';\nimport {getIonTilesetMetadata} from './lib/ion/ion';\n\nasync function preload(url, options = {}) {\n options = options['cesium-ion'] || {};\n // @ts-ignore\n const {accessToken} = options;\n // @ts-ignore\n let assetId = options.assetId;\n if (!Number.isFinite(assetId)) {\n const matched = url.match(/\\/([0-9]+)\\/tileset.json/);\n assetId = matched && matched[1];\n }\n return getIonTilesetMetadata(accessToken, assetId);\n}\n\n/**\n * Loader for 3D tiles from Cesium ION\n */\nexport const CesiumIonLoader: LoaderWithParser = {\n ...Tiles3DLoader,\n id: 'cesium-ion',\n name: 'Cesium Ion',\n // @ts-ignore\n preload,\n parse: async (data, options?, context?) => {\n options = {...options};\n options['3d-tiles'] = options['cesium-ion'];\n // @ts-ignore\n options.loader = CesiumIonLoader;\n return Tiles3DLoader.parse(data, options, context); // , loader);\n },\n options: {\n 'cesium-ion': {\n // @ts-expect-error\n ...Tiles3DLoader.options['3d-tiles'],\n accessToken: null\n }\n }\n};\n"],"mappings":";;;;;;;;;;AACA,IAAAA,cAAA,GAAAC,OAAA;AACA,IAAAC,IAAA,GAAAD,OAAA;AAAoD,SAAAE,QAAAC,MAAA,EAAAC,cAAA,QAAAC,IAAA,GAAAC,MAAA,CAAAD,IAAA,CAAAF,MAAA,OAAAG,MAAA,CAAAC,qBAAA,QAAAC,OAAA,GAAAF,MAAA,CAAAC,qBAAA,CAAAJ,MAAA,GAAAC,cAAA,KAAAI,OAAA,GAAAA,OAAA,CAAAC,MAAA,WAAAC,GAAA,WAAAJ,MAAA,CAAAK,wBAAA,CAAAR,MAAA,EAAAO,GAAA,EAAAE,UAAA,OAAAP,IAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,IAAA,EAAAG,OAAA,YAAAH,IAAA;AAAA,SAAAU,cAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,WAAAF,SAAA,CAAAD,CAAA,IAAAC,SAAA,CAAAD,CAAA,QAAAA,CAAA,OAAAf,OAAA,CAAAI,MAAA,CAAAc,MAAA,OAAAC,OAAA,WAAAC,GAAA,QAAAC,gBAAA,CAAAC,OAAA,EAAAR,MAAA,EAAAM,GAAA,EAAAF,MAAA,CAAAE,GAAA,SAAAhB,MAAA,CAAAmB,yBAAA,GAAAnB,MAAA,CAAAoB,gBAAA,CAAAV,MAAA,EAAAV,MAAA,CAAAmB,yBAAA,CAAAL,MAAA,KAAAlB,OAAA,CAAAI,MAAA,CAAAc,MAAA,GAAAC,OAAA,WAAAC,GAAA,IAAAhB,MAAA,CAAAqB,cAAA,CAAAX,MAAA,EAAAM,GAAA,EAAAhB,MAAA,CAAAK,wBAAA,CAAAS,MAAA,EAAAE,GAAA,iBAAAN,MAAA;AAAA,SAErCY,OAAOA,CAAAC,EAAA;EAAA,OAAAC,QAAA,CAAAhB,KAAA,OAAAI,SAAA;AAAA;AAAA,SAAAY,SAAA;EAAAA,QAAA,OAAAC,kBAAA,CAAAP,OAAA,EAAAQ,YAAA,CAAAR,OAAA,CAAAS,IAAA,CAAtB,SAAAC,SAAuBC,GAAG;IAAA,IAAAC,OAAA;MAAAC,QAAA;MAAAC,WAAA;MAAAC,OAAA;MAAAC,OAAA;MAAAC,MAAA,GAAAvB,SAAA;IAAA,OAAAc,YAAA,CAAAR,OAAA,CAAAkB,IAAA,UAAAC,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAAC,IAAA,GAAAD,SAAA,CAAAE,IAAA;QAAA;UAAEV,OAAO,GAAAK,MAAA,CAAAtB,MAAA,QAAAsB,MAAA,QAAAM,SAAA,GAAAN,MAAA,MAAG,CAAC,CAAC;UACtCL,OAAO,GAAGA,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;UAACC,QAAA,GAEhBD,OAAO,EAAtBE,WAAW,GAAAD,QAAA,CAAXC,WAAW;UAEdC,OAAO,GAAGH,OAAO,CAACG,OAAO;UAC7B,IAAI,CAACS,MAAM,CAACC,QAAQ,CAACV,OAAO,CAAC,EAAE;YACvBC,OAAO,GAAGL,GAAG,CAACe,KAAK,CAAC,0BAA0B,CAAC;YACrDX,OAAO,GAAGC,OAAO,IAAIA,OAAO,CAAC,CAAC,CAAC;UACjC;UAAC,OAAAI,SAAA,CAAAO,MAAA,WACM,IAAAC,0BAAqB,EAACd,WAAW,EAAEC,OAAO,CAAC;QAAA;QAAA;UAAA,OAAAK,SAAA,CAAAS,IAAA;MAAA;IAAA,GAAAnB,QAAA;EAAA,CACnD;EAAA,OAAAJ,QAAA,CAAAhB,KAAA,OAAAI,SAAA;AAAA;AAKM,IAAMoC,eAAiC,GAAAvC,aAAA,CAAAA,aAAA,KACzCwC,4BAAa;EAChBC,EAAE,EAAE,YAAY;EAChBC,IAAI,EAAE,YAAY;EAElB7B,OAAO,EAAPA,OAAO;EACP8B,KAAK;IAAA,IAAAC,MAAA,OAAA5B,kBAAA,CAAAP,OAAA,EAAAQ,YAAA,CAAAR,OAAA,CAAAS,IAAA,CAAE,SAAA2B,QAAOC,IAAI,EAAEzB,OAAQ,EAAE0B,OAAQ;MAAA,OAAA9B,YAAA,CAAAR,OAAA,CAAAkB,IAAA,UAAAqB,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAnB,IAAA,GAAAmB,QAAA,CAAAlB,IAAA;UAAA;YACpCV,OAAO,GAAArB,aAAA,KAAOqB,OAAO,CAAC;YACtBA,OAAO,CAAC,UAAU,CAAC,GAAGA,OAAO,CAAC,YAAY,CAAC;YAE3CA,OAAO,CAAC6B,MAAM,GAAGX,eAAe;YAAC,OAAAU,QAAA,CAAAb,MAAA,WAC1BI,4BAAa,CAACG,KAAK,CAACG,IAAI,EAAEzB,OAAO,EAAE0B,OAAO,CAAC;UAAA;UAAA;YAAA,OAAAE,QAAA,CAAAX,IAAA;QAAA;MAAA,GAAAO,OAAA;IAAA,CACnD;IAAA,SAAAF,MAAAQ,GAAA,EAAAC,GAAA,EAAAC,GAAA;MAAA,OAAAT,MAAA,CAAA7C,KAAA,OAAAI,SAAA;IAAA;IAAA,OAAAwC,KAAA;EAAA;EACDtB,OAAO,EAAE;IACP,YAAY,EAAArB,aAAA,CAAAA,aAAA,KAEPwC,4BAAa,CAACnB,OAAO,CAAC,UAAU,CAAC;MACpCE,WAAW,EAAE;IAAI;EAErB;AAAC,EACF;AAAC+B,OAAA,CAAAf,eAAA,GAAAA,eAAA"}
1
+ {"version":3,"file":"cesium-ion-loader.js","names":["_tiles3dLoader","require","_ion","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","preload","_x","_preload","_asyncToGenerator2","_regenerator","mark","_callee2","url","options","_options","accessToken","assetId","matched","_args2","wrap","_callee2$","_context2","prev","next","undefined","Number","isFinite","match","abrupt","getIonTilesetMetadata","stop","CesiumIonLoader","Tiles3DLoader","id","name","parse","_parse","_callee","data","context","_callee$","_context","loader","_x2","_x3","_x4","exports"],"sources":["../../src/cesium-ion-loader.ts"],"sourcesContent":["import type {LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {Tiles3DLoader} from './tiles-3d-loader';\nimport {getIonTilesetMetadata} from './lib/ion/ion';\n\nasync function preload(url, options = {}) {\n options = options['cesium-ion'] || {};\n // @ts-ignore\n const {accessToken} = options;\n // @ts-ignore\n let assetId = options.assetId;\n if (!Number.isFinite(assetId)) {\n const matched = url.match(/\\/([0-9]+)\\/tileset.json/);\n assetId = matched && matched[1];\n }\n return getIonTilesetMetadata(accessToken, assetId);\n}\n\n/**\n * Loader for 3D tiles from Cesium ION\n */\nexport const CesiumIonLoader: LoaderWithParser<unknown, never, LoaderOptions> = {\n ...Tiles3DLoader,\n id: 'cesium-ion',\n name: 'Cesium Ion',\n // @ts-ignore\n preload,\n parse: async (data, options?, context?) => {\n options = {...options};\n options['3d-tiles'] = options['cesium-ion'];\n // @ts-ignore\n options.loader = CesiumIonLoader;\n return Tiles3DLoader.parse(data, options, context); // , loader);\n },\n options: {\n 'cesium-ion': {\n ...Tiles3DLoader.options['3d-tiles'],\n accessToken: null\n }\n }\n};\n"],"mappings":"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"}
package/dist/es5/index.js CHANGED
@@ -40,6 +40,18 @@ Object.defineProperty(exports, "Tile3DWriter", {
40
40
  return _tile3dWriter.Tile3DWriter;
41
41
  }
42
42
  });
43
+ Object.defineProperty(exports, "Tiles3DArchiveFileLoader", {
44
+ enumerable: true,
45
+ get: function get() {
46
+ return _dTilesArchiveLoader.Tiles3DArchiveFileLoader;
47
+ }
48
+ });
49
+ Object.defineProperty(exports, "Tiles3DArchiveFileSystem", {
50
+ enumerable: true,
51
+ get: function get() {
52
+ return _tiles3dArchiveFileSystem.Tiles3DArchiveFileSystem;
53
+ }
54
+ });
43
55
  Object.defineProperty(exports, "Tiles3DLoader", {
44
56
  enumerable: true,
45
57
  get: function get() {
@@ -55,6 +67,8 @@ Object.defineProperty(exports, "_getIonTilesetMetadata", {
55
67
  var _tiles3dLoader = require("./tiles-3d-loader");
56
68
  var _cesiumIonLoader = require("./cesium-ion-loader");
57
69
  var _tile3dSubtreeLoader = require("./tile-3d-subtree-loader");
70
+ var _dTilesArchiveLoader = require("./3d-tiles-archive-loader");
71
+ var _tiles3dArchiveFileSystem = require("./lib/filesystems/tiles-3d-archive-file-system");
58
72
  var _tile3dWriter = require("./tile-3d-writer");
59
73
  var _tile3dFeatureTable = _interopRequireDefault(require("./lib/classes/tile-3d-feature-table"));
60
74
  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","_dTilesArchiveLoader","_tiles3dArchiveFileSystem","_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 {Tiles3DArchiveFileLoaderOptions} from './3d-tiles-archive-loader';\nexport {Tiles3DArchiveFileLoader} from './3d-tiles-archive-loader';\nexport {Tiles3DArchiveFileSystem} from './lib/filesystems/tiles-3d-archive-file-system';\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,oBAAA,GAAAH,OAAA;AACA,IAAAI,yBAAA,GAAAJ,OAAA;AAGA,IAAAK,aAAA,GAAAL,OAAA;AAGA,IAAAM,mBAAA,GAAAC,sBAAA,CAAAP,OAAA;AACA,IAAAQ,iBAAA,GAAAD,sBAAA,CAAAP,OAAA;AAGA,IAAAS,UAAA,GAAAT,OAAA;AACA,IAAAU,IAAA,GAAAV,OAAA"}
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.Tiles3DArchiveFileSystem = void 0;
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
12
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
13
+ var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
14
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
16
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
17
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
18
+ var _zip = require("@loaders.gl/zip");
19
+ var _dTilesArchiveArchive = require("../../3d-tiles-archive/3d-tiles-archive-archive");
20
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
21
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
22
+ var Tiles3DArchiveFileSystem = function (_ZipFileSystem) {
23
+ (0, _inherits2.default)(Tiles3DArchiveFileSystem, _ZipFileSystem);
24
+ var _super = _createSuper(Tiles3DArchiveFileSystem);
25
+ function Tiles3DArchiveFileSystem(file) {
26
+ var _this;
27
+ (0, _classCallCheck2.default)(this, Tiles3DArchiveFileSystem);
28
+ _this = _super.call(this, file);
29
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "hashData", void 0);
30
+ return _this;
31
+ }
32
+ (0, _createClass2.default)(Tiles3DArchiveFileSystem, [{
33
+ key: "fetch",
34
+ value: function () {
35
+ var _fetch = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(filename) {
36
+ var fileProvider, archive, fileData, response;
37
+ return _regenerator.default.wrap(function _callee$(_context) {
38
+ while (1) switch (_context.prev = _context.next) {
39
+ case 0:
40
+ _context.next = 2;
41
+ return this.fileProvider;
42
+ case 2:
43
+ fileProvider = _context.sent;
44
+ if (fileProvider) {
45
+ _context.next = 5;
46
+ break;
47
+ }
48
+ throw new Error('No data detected in the zip archive');
49
+ case 5:
50
+ _context.next = 7;
51
+ return this.parseHashFile();
52
+ case 7:
53
+ if (!this.hashData) {
54
+ _context.next = 15;
55
+ break;
56
+ }
57
+ archive = new _dTilesArchiveArchive.Tiles3DArchive(fileProvider, this.hashData);
58
+ _context.next = 11;
59
+ return archive.getFile(filename);
60
+ case 11:
61
+ fileData = _context.sent;
62
+ response = new Response(fileData);
63
+ Object.defineProperty(response, 'url', {
64
+ value: "".concat(this.fileName || '', "/").concat(filename)
65
+ });
66
+ return _context.abrupt("return", response);
67
+ case 15:
68
+ return _context.abrupt("return", (0, _get2.default)((0, _getPrototypeOf2.default)(Tiles3DArchiveFileSystem.prototype), "fetch", this).call(this, filename));
69
+ case 16:
70
+ case "end":
71
+ return _context.stop();
72
+ }
73
+ }, _callee, this);
74
+ }));
75
+ function fetch(_x) {
76
+ return _fetch.apply(this, arguments);
77
+ }
78
+ return fetch;
79
+ }()
80
+ }, {
81
+ key: "parseHashFile",
82
+ value: function () {
83
+ var _parseHashFile2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2() {
84
+ var fileProvider, hashCDOffset, cdFileHeader, localFileHeader, fileDataOffset, hashFile;
85
+ return _regenerator.default.wrap(function _callee2$(_context2) {
86
+ while (1) switch (_context2.prev = _context2.next) {
87
+ case 0:
88
+ if (!(this.hashData !== undefined)) {
89
+ _context2.next = 2;
90
+ break;
91
+ }
92
+ return _context2.abrupt("return");
93
+ case 2:
94
+ _context2.next = 4;
95
+ return this.fileProvider;
96
+ case 4:
97
+ fileProvider = _context2.sent;
98
+ if (fileProvider) {
99
+ _context2.next = 7;
100
+ break;
101
+ }
102
+ throw new Error('No data detected in the zip archive');
103
+ case 7:
104
+ _context2.next = 9;
105
+ return (0, _zip.searchFromTheEnd)(fileProvider, _zip.cdSignature);
106
+ case 9:
107
+ hashCDOffset = _context2.sent;
108
+ _context2.next = 12;
109
+ return (0, _zip.parseZipCDFileHeader)(hashCDOffset, fileProvider);
110
+ case 12:
111
+ cdFileHeader = _context2.sent;
112
+ if (!((cdFileHeader === null || cdFileHeader === void 0 ? void 0 : cdFileHeader.fileName) === '@3dtilesIndex1@')) {
113
+ _context2.next = 26;
114
+ break;
115
+ }
116
+ _context2.next = 16;
117
+ return (0, _zip.parseZipLocalFileHeader)(cdFileHeader.localHeaderOffset, fileProvider);
118
+ case 16:
119
+ localFileHeader = _context2.sent;
120
+ if (localFileHeader) {
121
+ _context2.next = 19;
122
+ break;
123
+ }
124
+ throw new Error('corrupted 3tz');
125
+ case 19:
126
+ fileDataOffset = localFileHeader.fileDataOffset;
127
+ _context2.next = 22;
128
+ return fileProvider.slice(fileDataOffset, fileDataOffset + localFileHeader.compressedSize);
129
+ case 22:
130
+ hashFile = _context2.sent;
131
+ this.hashData = (0, _zip.parseHashFile)(hashFile);
132
+ _context2.next = 27;
133
+ break;
134
+ case 26:
135
+ this.hashData = null;
136
+ case 27:
137
+ case "end":
138
+ return _context2.stop();
139
+ }
140
+ }, _callee2, this);
141
+ }));
142
+ function parseHashFile() {
143
+ return _parseHashFile2.apply(this, arguments);
144
+ }
145
+ return parseHashFile;
146
+ }()
147
+ }]);
148
+ return Tiles3DArchiveFileSystem;
149
+ }(_zip.ZipFileSystem);
150
+ exports.Tiles3DArchiveFileSystem = Tiles3DArchiveFileSystem;
151
+ //# sourceMappingURL=tiles-3d-archive-file-system.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tiles-3d-archive-file-system.js","names":["_zip","require","_dTilesArchiveArchive","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","Tiles3DArchiveFileSystem","_ZipFileSystem","_inherits2","_super","file","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","_createClass2","key","value","_fetch","_asyncToGenerator2","_regenerator","mark","_callee","filename","fileProvider","archive","fileData","response","wrap","_callee$","_context","prev","next","sent","Error","parseHashFile","hashData","Tiles3DArchive","getFile","Response","Object","defineProperty","concat","fileName","abrupt","_get2","stop","fetch","_x","_parseHashFile2","_callee2","hashCDOffset","cdFileHeader","localFileHeader","fileDataOffset","hashFile","_callee2$","_context2","undefined","searchFromTheEnd","cdHeaderSignature","parseZipCDFileHeader","parseZipLocalFileHeader","localHeaderOffset","slice","compressedSize","ZipFileSystem","exports"],"sources":["../../../../src/lib/filesystems/tiles-3d-archive-file-system.ts"],"sourcesContent":["import {FileProvider} from '@loaders.gl/loader-utils';\nimport {\n ZipFileSystem,\n cdSignature as cdHeaderSignature,\n searchFromTheEnd,\n parseZipCDFileHeader,\n HashElement,\n parseHashFile,\n parseZipLocalFileHeader\n} from '@loaders.gl/zip';\nimport {Tiles3DArchive} from '../../3d-tiles-archive/3d-tiles-archive-archive';\n\n/**\n * FileSystem adapter for a 3tz (3D tiles archive format) file\n * Holds FileProvider object that provides random access to archived files.\n * The difference from ZipFileSystem is usage of `@3dtilesIndex1@` index file that increases\n * access speed to archived files\n * @see https://github.com/erikdahlstrom/3tz-specification/blob/master/Specification.md\n */\nexport class Tiles3DArchiveFileSystem extends ZipFileSystem {\n hashData?: HashElement[] | null;\n\n /**\n * Constructor\n * @param file - instance of FileProvider or file path string\n */\n constructor(file: FileProvider | string) {\n super(file);\n }\n\n /**\n * Implementation of fetch against this file system.\n * It tries to take `@3dtilesIndex1@` file from the archive and use it\n * for faster access to archived files\n * @param filename - name of a file\n * @returns - Response with file data\n */\n async fetch(filename: string): Promise<Response> {\n const fileProvider = await this.fileProvider;\n if (!fileProvider) {\n throw new Error('No data detected in the zip archive');\n }\n await this.parseHashFile();\n if (this.hashData) {\n const archive = new Tiles3DArchive(fileProvider, this.hashData);\n\n const fileData = await archive.getFile(filename);\n const response = new Response(fileData);\n Object.defineProperty(response, 'url', {value: `${this.fileName || ''}/${filename}`});\n return response;\n }\n return super.fetch(filename);\n }\n\n /**\n * Try to get and parse '@3dtilesIndex1@' file, that allows to get direct access\n * to files inside the archive\n * @returns void\n */\n private async parseHashFile(): Promise<void> {\n if (this.hashData !== undefined) {\n return;\n }\n\n const fileProvider = await this.fileProvider;\n if (!fileProvider) {\n throw new Error('No data detected in the zip archive');\n }\n\n const hashCDOffset = await searchFromTheEnd(fileProvider, cdHeaderSignature);\n\n const cdFileHeader = await parseZipCDFileHeader(hashCDOffset, fileProvider);\n\n // '@3dtilesIndex1@' is index file that must be the last in the archive. It allows\n // to improve load and read performance when the archive contains a very large number\n // of files.\n if (cdFileHeader?.fileName === '@3dtilesIndex1@') {\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 this.hashData = parseHashFile(hashFile);\n } else {\n this.hashData = null;\n }\n }\n}\n"],"mappings":"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"}
@@ -83,9 +83,7 @@ function _getIonAssets() {
83
83
  };
84
84
  _context2.next = 5;
85
85
  return (0, _core.fetchFile)(url, {
86
- fetch: {
87
- headers: headers
88
- }
86
+ headers: headers
89
87
  });
90
88
  case 5:
91
89
  response = _context2.sent;
@@ -123,9 +121,7 @@ function _getIonAssetMetadata() {
123
121
  url = "".concat(CESIUM_ION_URL, "/").concat(assetId);
124
122
  _context3.next = 5;
125
123
  return (0, _core.fetchFile)("".concat(url), {
126
- fetch: {
127
- headers: headers
128
- }
124
+ headers: headers
129
125
  });
130
126
  case 5:
131
127
  response = _context3.sent;
@@ -141,9 +137,7 @@ function _getIonAssetMetadata() {
141
137
  metadata = _context3.sent;
142
138
  _context3.next = 13;
143
139
  return (0, _core.fetchFile)("".concat(url, "/endpoint"), {
144
- fetch: {
145
- headers: headers
146
- }
140
+ headers: headers
147
141
  });
148
142
  case 13:
149
143
  response = _context3.sent;
@@ -1 +1 @@
1
- {"version":3,"file":"ion.js","names":["_core","require","_loaderUtils","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","CESIUM_ION_URL","getIonTilesetMetadata","_x","_x2","_getIonTilesetMetadata","_asyncToGenerator2","_regenerator","mark","_callee","accessToken","assetId","assets","_iterator","_step","item","ionAssetMetadata","type","url","wrap","_callee$","_context","prev","getIonAssets","sent","items","id","getIonAssetMetadata","assert","headers","Authorization","concat","abrupt","stop","_x3","_getIonAssets","_callee2","response","_callee2$","_context2","fetchFile","fetch","ok","Error","statusText","json","_x4","_x5","_getIonAssetMetadata","_callee3","metadata","tilesetInfo","_callee3$","_context3"],"sources":["../../../../src/lib/ion/ion.ts"],"sourcesContent":["// Minimal support to load tilsets from the Cesium ION services\n\nimport {fetchFile} from '@loaders.gl/core';\nimport {assert} from '@loaders.gl/loader-utils';\n\nconst CESIUM_ION_URL = 'https://api.cesium.com/v1/assets';\n\n// Returns `{url, headers, type, attributions}` for an ion tileset\nexport async function getIonTilesetMetadata(accessToken, assetId) {\n // Step 1, if no asset id, look for first 3DTILES asset associated with this token.\n if (!assetId) {\n const assets = await getIonAssets(accessToken);\n for (const item of assets.items) {\n if (item.type === '3DTILES') {\n assetId = item.id;\n }\n }\n }\n\n // Step 2: Query metdatadata for this asset.\n const ionAssetMetadata = await getIonAssetMetadata(accessToken, assetId);\n const {type, url} = ionAssetMetadata;\n assert(type === '3DTILES' && url);\n\n // Prepare a headers object for fetch\n ionAssetMetadata.headers = {\n Authorization: `Bearer ${ionAssetMetadata.accessToken}`\n };\n return ionAssetMetadata;\n}\n\n// Return a list of all assets associated with accessToken\nexport async function getIonAssets(accessToken) {\n assert(accessToken);\n const url = CESIUM_ION_URL;\n const headers = {Authorization: `Bearer ${accessToken}`};\n const response = await fetchFile(url, {fetch: {headers}});\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n return await response.json();\n}\n\n// Return metadata for a specific asset associated with token\nexport async function getIonAssetMetadata(accessToken, assetId) {\n assert(accessToken, assetId);\n const headers = {Authorization: `Bearer ${accessToken}`};\n\n const url = `${CESIUM_ION_URL}/${assetId}`;\n // https://cesium.com/docs/rest-api/#operation/getAsset\n // Retrieves metadata information about a specific asset.\n let response = await fetchFile(`${url}`, {fetch: {headers}});\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n let metadata = await response.json();\n\n // https://cesium.com/docs/rest-api/#operation/getAssetEndpoint\n // Retrieves information and credentials that allow you to access the tiled asset data for visualization and analysis.\n response = await fetchFile(`${url}/endpoint`, {fetch: {headers}});\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n const tilesetInfo = await response.json();\n\n // extract dataset description\n metadata = {\n ...metadata,\n ...tilesetInfo\n };\n\n return metadata;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ion.js","names":["_core","require","_loaderUtils","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","CESIUM_ION_URL","getIonTilesetMetadata","_x","_x2","_getIonTilesetMetadata","_asyncToGenerator2","_regenerator","mark","_callee","accessToken","assetId","assets","_iterator","_step","item","ionAssetMetadata","type","url","wrap","_callee$","_context","prev","getIonAssets","sent","items","id","getIonAssetMetadata","assert","headers","Authorization","concat","abrupt","stop","_x3","_getIonAssets","_callee2","response","_callee2$","_context2","fetchFile","ok","Error","statusText","json","_x4","_x5","_getIonAssetMetadata","_callee3","metadata","tilesetInfo","_callee3$","_context3"],"sources":["../../../../src/lib/ion/ion.ts"],"sourcesContent":["// Minimal support to load tilsets from the Cesium ION services\n\nimport {fetchFile} from '@loaders.gl/core';\nimport {assert} from '@loaders.gl/loader-utils';\n\nconst CESIUM_ION_URL = 'https://api.cesium.com/v1/assets';\n\n// Returns `{url, headers, type, attributions}` for an ion tileset\nexport async function getIonTilesetMetadata(accessToken, assetId) {\n // Step 1, if no asset id, look for first 3DTILES asset associated with this token.\n if (!assetId) {\n const assets = await getIonAssets(accessToken);\n for (const item of assets.items) {\n if (item.type === '3DTILES') {\n assetId = item.id;\n }\n }\n }\n\n // Step 2: Query metdatadata for this asset.\n const ionAssetMetadata = await getIonAssetMetadata(accessToken, assetId);\n const {type, url} = ionAssetMetadata;\n assert(type === '3DTILES' && url);\n\n // Prepare a headers object for fetch\n ionAssetMetadata.headers = {\n Authorization: `Bearer ${ionAssetMetadata.accessToken}`\n };\n return ionAssetMetadata;\n}\n\n// Return a list of all assets associated with accessToken\nexport async function getIonAssets(accessToken) {\n assert(accessToken);\n const url = CESIUM_ION_URL;\n const headers = {Authorization: `Bearer ${accessToken}`};\n const response = await fetchFile(url, {headers});\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n return await response.json();\n}\n\n// Return metadata for a specific asset associated with token\nexport async function getIonAssetMetadata(accessToken, assetId) {\n assert(accessToken, assetId);\n const headers = {Authorization: `Bearer ${accessToken}`};\n\n const url = `${CESIUM_ION_URL}/${assetId}`;\n // https://cesium.com/docs/rest-api/#operation/getAsset\n // Retrieves metadata information about a specific asset.\n let response = await fetchFile(`${url}`, {headers});\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n let metadata = await response.json();\n\n // https://cesium.com/docs/rest-api/#operation/getAssetEndpoint\n // Retrieves information and credentials that allow you to access the tiled asset data for visualization and analysis.\n response = await fetchFile(`${url}/endpoint`, {headers});\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n const tilesetInfo = await response.json();\n\n // extract dataset description\n metadata = {\n ...metadata,\n ...tilesetInfo\n };\n\n return metadata;\n}\n"],"mappings":";;;;;;;;;;;;AAEA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAAgD,SAAAE,QAAAC,MAAA,EAAAC,cAAA,QAAAC,IAAA,GAAAC,MAAA,CAAAD,IAAA,CAAAF,MAAA,OAAAG,MAAA,CAAAC,qBAAA,QAAAC,OAAA,GAAAF,MAAA,CAAAC,qBAAA,CAAAJ,MAAA,GAAAC,cAAA,KAAAI,OAAA,GAAAA,OAAA,CAAAC,MAAA,WAAAC,GAAA,WAAAJ,MAAA,CAAAK,wBAAA,CAAAR,MAAA,EAAAO,GAAA,EAAAE,UAAA,OAAAP,IAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,IAAA,EAAAG,OAAA,YAAAH,IAAA;AAAA,SAAAU,cAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,WAAAF,SAAA,CAAAD,CAAA,IAAAC,SAAA,CAAAD,CAAA,QAAAA,CAAA,OAAAf,OAAA,CAAAI,MAAA,CAAAc,MAAA,OAAAC,OAAA,WAAAC,GAAA,QAAAC,gBAAA,CAAAC,OAAA,EAAAR,MAAA,EAAAM,GAAA,EAAAF,MAAA,CAAAE,GAAA,SAAAhB,MAAA,CAAAmB,yBAAA,GAAAnB,MAAA,CAAAoB,gBAAA,CAAAV,MAAA,EAAAV,MAAA,CAAAmB,yBAAA,CAAAL,MAAA,KAAAlB,OAAA,CAAAI,MAAA,CAAAc,MAAA,GAAAC,OAAA,WAAAC,GAAA,IAAAhB,MAAA,CAAAqB,cAAA,CAAAX,MAAA,EAAAM,GAAA,EAAAhB,MAAA,CAAAK,wBAAA,CAAAS,MAAA,EAAAE,GAAA,iBAAAN,MAAA;AAAA,SAAAY,2BAAAC,CAAA,EAAAC,cAAA,QAAAC,EAAA,UAAAC,MAAA,oBAAAH,CAAA,CAAAG,MAAA,CAAAC,QAAA,KAAAJ,CAAA,qBAAAE,EAAA,QAAAG,KAAA,CAAAC,OAAA,CAAAN,CAAA,MAAAE,EAAA,GAAAK,2BAAA,CAAAP,CAAA,MAAAC,cAAA,IAAAD,CAAA,WAAAA,CAAA,CAAAV,MAAA,qBAAAY,EAAA,EAAAF,CAAA,GAAAE,EAAA,MAAAd,CAAA,UAAAoB,CAAA,YAAAA,EAAA,eAAAC,CAAA,EAAAD,CAAA,EAAAE,CAAA,WAAAA,EAAA,QAAAtB,CAAA,IAAAY,CAAA,CAAAV,MAAA,WAAAqB,IAAA,mBAAAA,IAAA,SAAAC,KAAA,EAAAZ,CAAA,CAAAZ,CAAA,UAAAyB,CAAA,WAAAA,EAAAC,EAAA,UAAAA,EAAA,KAAAC,CAAA,EAAAP,CAAA,gBAAAQ,SAAA,iJAAAC,gBAAA,SAAAC,MAAA,UAAAC,GAAA,WAAAV,CAAA,WAAAA,EAAA,IAAAP,EAAA,GAAAA,EAAA,CAAAkB,IAAA,CAAApB,CAAA,MAAAU,CAAA,WAAAA,EAAA,QAAAW,IAAA,GAAAnB,EAAA,CAAAoB,IAAA,IAAAL,gBAAA,GAAAI,IAAA,CAAAV,IAAA,SAAAU,IAAA,KAAAR,CAAA,WAAAA,EAAAU,GAAA,IAAAL,MAAA,SAAAC,GAAA,GAAAI,GAAA,KAAAR,CAAA,WAAAA,EAAA,eAAAE,gBAAA,IAAAf,EAAA,CAAAsB,MAAA,UAAAtB,EAAA,CAAAsB,MAAA,oBAAAN,MAAA,QAAAC,GAAA;AAAA,SAAAZ,4BAAAP,CAAA,EAAAyB,MAAA,SAAAzB,CAAA,qBAAAA,CAAA,sBAAA0B,iBAAA,CAAA1B,CAAA,EAAAyB,MAAA,OAAAf,CAAA,GAAAjC,MAAA,CAAAkD,SAAA,CAAAC,QAAA,CAAAR,IAAA,CAAApB,CAAA,EAAA6B,KAAA,aAAAnB,CAAA,iBAAAV,CAAA,CAAA8B,WAAA,EAAApB,CAAA,GAAAV,CAAA,CAAA8B,WAAA,CAAAC,IAAA,MAAArB,CAAA,cAAAA,CAAA,mBAAAL,KAAA,CAAA2B,IAAA,CAAAhC,CAAA,OAAAU,CAAA,+DAAAuB,IAAA,CAAAvB,CAAA,UAAAgB,iBAAA,CAAA1B,CAAA,EAAAyB,MAAA;AAAA,SAAAC,kBAAAQ,GAAA,EAAAC,GAAA,QAAAA,GAAA,YAAAA,GAAA,GAAAD,GAAA,CAAA5C,MAAA,EAAA6C,GAAA,GAAAD,GAAA,CAAA5C,MAAA,WAAAF,CAAA,MAAAgD,IAAA,OAAA/B,KAAA,CAAA8B,GAAA,GAAA/C,CAAA,GAAA+C,GAAA,EAAA/C,CAAA,IAAAgD,IAAA,CAAAhD,CAAA,IAAA8C,GAAA,CAAA9C,CAAA,UAAAgD,IAAA;AAEhD,IAAMC,cAAc,GAAG,kCAAkC;AAAC,SAGpCC,qBAAqBA,CAAAC,EAAA,EAAAC,GAAA;EAAA,OAAAC,sBAAA,CAAAxD,KAAA,OAAAI,SAAA;AAAA;AAAA,SAAAoD,uBAAA;EAAAA,sBAAA,OAAAC,kBAAA,CAAA/C,OAAA,EAAAgD,YAAA,CAAAhD,OAAA,CAAAiD,IAAA,CAApC,SAAAC,QAAqCC,WAAW,EAAEC,OAAO;IAAA,IAAAC,MAAA,EAAAC,SAAA,EAAAC,KAAA,EAAAC,IAAA,EAAAC,gBAAA,EAAAC,IAAA,EAAAC,GAAA;IAAA,OAAAX,YAAA,CAAAhD,OAAA,CAAA4D,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAnC,IAAA;QAAA;UAAA,IAEzDyB,OAAO;YAAAU,QAAA,CAAAnC,IAAA;YAAA;UAAA;UAAAmC,QAAA,CAAAnC,IAAA;UAAA,OACWqC,YAAY,CAACb,WAAW,CAAC;QAAA;UAAxCE,MAAM,GAAAS,QAAA,CAAAG,IAAA;UAAAX,SAAA,GAAAlD,0BAAA,CACOiD,MAAM,CAACa,KAAK;UAAA;YAA/B,KAAAZ,SAAA,CAAAxC,CAAA,MAAAyC,KAAA,GAAAD,SAAA,CAAAvC,CAAA,IAAAC,IAAA,GAAiC;cAAtBwC,IAAI,GAAAD,KAAA,CAAAtC,KAAA;cACb,IAAIuC,IAAI,CAACE,IAAI,KAAK,SAAS,EAAE;gBAC3BN,OAAO,GAAGI,IAAI,CAACW,EAAE;cACnB;YACF;UAAC,SAAA3C,GAAA;YAAA8B,SAAA,CAAApC,CAAA,CAAAM,GAAA;UAAA;YAAA8B,SAAA,CAAAlC,CAAA;UAAA;QAAA;UAAA0C,QAAA,CAAAnC,IAAA;UAAA,OAI4ByC,mBAAmB,CAACjB,WAAW,EAAEC,OAAO,CAAC;QAAA;UAAlEK,gBAAgB,GAAAK,QAAA,CAAAG,IAAA;UACfP,IAAI,GAASD,gBAAgB,CAA7BC,IAAI,EAAEC,GAAG,GAAIF,gBAAgB,CAAvBE,GAAG;UAChB,IAAAU,mBAAM,EAACX,IAAI,KAAK,SAAS,IAAIC,GAAG,CAAC;UAGjCF,gBAAgB,CAACa,OAAO,GAAG;YACzBC,aAAa,YAAAC,MAAA,CAAYf,gBAAgB,CAACN,WAAW;UACvD,CAAC;UAAC,OAAAW,QAAA,CAAAW,MAAA,WACKhB,gBAAgB;QAAA;QAAA;UAAA,OAAAK,QAAA,CAAAY,IAAA;MAAA;IAAA,GAAAxB,OAAA;EAAA,CACxB;EAAA,OAAAJ,sBAAA,CAAAxD,KAAA,OAAAI,SAAA;AAAA;AAAA,SAGqBsE,YAAYA,CAAAW,GAAA;EAAA,OAAAC,aAAA,CAAAtF,KAAA,OAAAI,SAAA;AAAA;AAAA,SAAAkF,cAAA;EAAAA,aAAA,OAAA7B,kBAAA,CAAA/C,OAAA,EAAAgD,YAAA,CAAAhD,OAAA,CAAAiD,IAAA,CAA3B,SAAA4B,SAA4B1B,WAAW;IAAA,IAAAQ,GAAA,EAAAW,OAAA,EAAAQ,QAAA;IAAA,OAAA9B,YAAA,CAAAhD,OAAA,CAAA4D,IAAA,UAAAmB,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAAjB,IAAA,GAAAiB,SAAA,CAAArD,IAAA;QAAA;UAC5C,IAAA0C,mBAAM,EAAClB,WAAW,CAAC;UACbQ,GAAG,GAAGjB,cAAc;UACpB4B,OAAO,GAAG;YAACC,aAAa,YAAAC,MAAA,CAAYrB,WAAW;UAAE,CAAC;UAAA6B,SAAA,CAAArD,IAAA;UAAA,OACjC,IAAAsD,eAAS,EAACtB,GAAG,EAAE;YAACW,OAAO,EAAPA;UAAO,CAAC,CAAC;QAAA;UAA1CQ,QAAQ,GAAAE,SAAA,CAAAf,IAAA;UAAA,IACTa,QAAQ,CAACI,EAAE;YAAAF,SAAA,CAAArD,IAAA;YAAA;UAAA;UAAA,MACR,IAAIwD,KAAK,CAACL,QAAQ,CAACM,UAAU,CAAC;QAAA;UAAAJ,SAAA,CAAArD,IAAA;UAAA,OAEzBmD,QAAQ,CAACO,IAAI,CAAC,CAAC;QAAA;UAAA,OAAAL,SAAA,CAAAP,MAAA,WAAAO,SAAA,CAAAf,IAAA;QAAA;QAAA;UAAA,OAAAe,SAAA,CAAAN,IAAA;MAAA;IAAA,GAAAG,QAAA;EAAA,CAC7B;EAAA,OAAAD,aAAA,CAAAtF,KAAA,OAAAI,SAAA;AAAA;AAAA,SAGqB0E,mBAAmBA,CAAAkB,GAAA,EAAAC,GAAA;EAAA,OAAAC,oBAAA,CAAAlG,KAAA,OAAAI,SAAA;AAAA;AAAA,SAAA8F,qBAAA;EAAAA,oBAAA,OAAAzC,kBAAA,CAAA/C,OAAA,EAAAgD,YAAA,CAAAhD,OAAA,CAAAiD,IAAA,CAAlC,SAAAwC,SAAmCtC,WAAW,EAAEC,OAAO;IAAA,IAAAkB,OAAA,EAAAX,GAAA,EAAAmB,QAAA,EAAAY,QAAA,EAAAC,WAAA;IAAA,OAAA3C,YAAA,CAAAhD,OAAA,CAAA4D,IAAA,UAAAgC,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAA9B,IAAA,GAAA8B,SAAA,CAAAlE,IAAA;QAAA;UAC5D,IAAA0C,mBAAM,EAAClB,WAAW,EAAEC,OAAO,CAAC;UACtBkB,OAAO,GAAG;YAACC,aAAa,YAAAC,MAAA,CAAYrB,WAAW;UAAE,CAAC;UAElDQ,GAAG,MAAAa,MAAA,CAAM9B,cAAc,OAAA8B,MAAA,CAAIpB,OAAO;UAAAyC,SAAA,CAAAlE,IAAA;UAAA,OAGnB,IAAAsD,eAAS,KAAAT,MAAA,CAAIb,GAAG,GAAI;YAACW,OAAO,EAAPA;UAAO,CAAC,CAAC;QAAA;UAA/CQ,QAAQ,GAAAe,SAAA,CAAA5B,IAAA;UAAA,IACPa,QAAQ,CAACI,EAAE;YAAAW,SAAA,CAAAlE,IAAA;YAAA;UAAA;UAAA,MACR,IAAIwD,KAAK,CAACL,QAAQ,CAACM,UAAU,CAAC;QAAA;UAAAS,SAAA,CAAAlE,IAAA;UAAA,OAEjBmD,QAAQ,CAACO,IAAI,CAAC,CAAC;QAAA;UAAhCK,QAAQ,GAAAG,SAAA,CAAA5B,IAAA;UAAA4B,SAAA,CAAAlE,IAAA;UAAA,OAIK,IAAAsD,eAAS,KAAAT,MAAA,CAAIb,GAAG,gBAAa;YAACW,OAAO,EAAPA;UAAO,CAAC,CAAC;QAAA;UAAxDQ,QAAQ,GAAAe,SAAA,CAAA5B,IAAA;UAAA,IACHa,QAAQ,CAACI,EAAE;YAAAW,SAAA,CAAAlE,IAAA;YAAA;UAAA;UAAA,MACR,IAAIwD,KAAK,CAACL,QAAQ,CAACM,UAAU,CAAC;QAAA;UAAAS,SAAA,CAAAlE,IAAA;UAAA,OAEZmD,QAAQ,CAACO,IAAI,CAAC,CAAC;QAAA;UAAnCM,WAAW,GAAAE,SAAA,CAAA5B,IAAA;UAGjByB,QAAQ,GAAAnG,aAAA,CAAAA,aAAA,KACHmG,QAAQ,GACRC,WAAW,CACf;UAAC,OAAAE,SAAA,CAAApB,MAAA,WAEKiB,QAAQ;QAAA;QAAA;UAAA,OAAAG,SAAA,CAAAnB,IAAA;MAAA;IAAA,GAAAe,QAAA;EAAA,CAChB;EAAA,OAAAD,oBAAA,CAAAlG,KAAA,OAAAI,SAAA;AAAA"}