@loaders.gl/i3s 4.0.0-alpha.13 → 4.0.0-alpha.15

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 (91) hide show
  1. package/dist/dist.min.js +139 -102
  2. package/dist/es5/arcgis-webscene-loader.js +1 -1
  3. package/dist/es5/i3s-attribute-loader.js +1 -1
  4. package/dist/es5/i3s-building-scene-layer-loader.js +1 -1
  5. package/dist/es5/i3s-content-loader.js +1 -1
  6. package/dist/es5/i3s-loader.js +1 -1
  7. package/dist/es5/i3s-node-page-loader.js +1 -1
  8. package/dist/es5/i3s-slpk-loader.js +30 -2
  9. package/dist/es5/i3s-slpk-loader.js.map +1 -1
  10. package/dist/es5/index.js +7 -7
  11. package/dist/es5/index.js.map +1 -1
  12. package/dist/es5/lib/parsers/parse-slpk/parse-slpk.js +30 -69
  13. package/dist/es5/lib/parsers/parse-slpk/parse-slpk.js.map +1 -1
  14. package/dist/es5/lib/parsers/parse-slpk/search-from-the-end.js +69 -0
  15. package/dist/es5/lib/parsers/parse-slpk/search-from-the-end.js.map +1 -0
  16. package/dist/es5/lib/parsers/parse-slpk/slpk-archieve.js +5 -6
  17. package/dist/es5/lib/parsers/parse-slpk/slpk-archieve.js.map +1 -1
  18. package/dist/es5/lib/parsers/parse-zip/cd-file-header.js +53 -35
  19. package/dist/es5/lib/parsers/parse-zip/cd-file-header.js.map +1 -1
  20. package/dist/es5/lib/parsers/parse-zip/data-view-file-provider.js +129 -0
  21. package/dist/es5/lib/parsers/parse-zip/data-view-file-provider.js.map +1 -0
  22. package/dist/es5/lib/parsers/parse-zip/file-provider.js.map +1 -1
  23. package/dist/es5/lib/parsers/parse-zip/local-file-header.js +54 -13
  24. package/dist/es5/lib/parsers/parse-zip/local-file-header.js.map +1 -1
  25. package/dist/esm/arcgis-webscene-loader.js +1 -1
  26. package/dist/esm/i3s-attribute-loader.js +1 -1
  27. package/dist/esm/i3s-building-scene-layer-loader.js +1 -1
  28. package/dist/esm/i3s-content-loader.js +1 -1
  29. package/dist/esm/i3s-loader.js +1 -1
  30. package/dist/esm/i3s-node-page-loader.js +1 -1
  31. package/dist/esm/i3s-slpk-loader.js +8 -2
  32. package/dist/esm/i3s-slpk-loader.js.map +1 -1
  33. package/dist/esm/index.js +1 -1
  34. package/dist/esm/index.js.map +1 -1
  35. package/dist/esm/lib/parsers/parse-slpk/parse-slpk.js +7 -25
  36. package/dist/esm/lib/parsers/parse-slpk/parse-slpk.js.map +1 -1
  37. package/dist/esm/lib/parsers/parse-slpk/search-from-the-end.js +16 -0
  38. package/dist/esm/lib/parsers/parse-slpk/search-from-the-end.js.map +1 -0
  39. package/dist/esm/lib/parsers/parse-slpk/slpk-archieve.js +5 -6
  40. package/dist/esm/lib/parsers/parse-slpk/slpk-archieve.js.map +1 -1
  41. package/dist/esm/lib/parsers/parse-zip/cd-file-header.js +22 -20
  42. package/dist/esm/lib/parsers/parse-zip/cd-file-header.js.map +1 -1
  43. package/dist/esm/lib/parsers/parse-zip/data-view-file-provider.js +32 -0
  44. package/dist/esm/lib/parsers/parse-zip/data-view-file-provider.js.map +1 -0
  45. package/dist/esm/lib/parsers/parse-zip/file-provider.js.map +1 -1
  46. package/dist/esm/lib/parsers/parse-zip/local-file-header.js +24 -9
  47. package/dist/esm/lib/parsers/parse-zip/local-file-header.js.map +1 -1
  48. package/dist/i3s-content-worker-node.js +2 -2
  49. package/dist/i3s-content-worker.js +8 -8
  50. package/dist/i3s-slpk-loader.d.ts +3 -0
  51. package/dist/i3s-slpk-loader.d.ts.map +1 -1
  52. package/dist/i3s-slpk-loader.js +11 -1
  53. package/dist/index.d.ts +2 -1
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.js +3 -1
  56. package/dist/lib/parsers/parse-slpk/parse-slpk.d.ts +8 -3
  57. package/dist/lib/parsers/parse-slpk/parse-slpk.d.ts.map +1 -1
  58. package/dist/lib/parsers/parse-slpk/parse-slpk.js +10 -33
  59. package/dist/lib/parsers/parse-slpk/search-from-the-end.d.ts +11 -0
  60. package/dist/lib/parsers/parse-slpk/search-from-the-end.d.ts.map +1 -0
  61. package/dist/lib/parsers/parse-slpk/search-from-the-end.js +31 -0
  62. package/dist/lib/parsers/parse-slpk/slpk-archieve.d.ts +4 -3
  63. package/dist/lib/parsers/parse-slpk/slpk-archieve.d.ts.map +1 -1
  64. package/dist/lib/parsers/parse-slpk/slpk-archieve.js +5 -6
  65. package/dist/lib/parsers/parse-zip/cd-file-header.d.ts +5 -5
  66. package/dist/lib/parsers/parse-zip/cd-file-header.d.ts.map +1 -1
  67. package/dist/lib/parsers/parse-zip/cd-file-header.js +23 -22
  68. package/dist/lib/parsers/parse-zip/{buffer-file-provider.d.ts → data-view-file-provider.d.ts} +15 -16
  69. package/dist/lib/parsers/parse-zip/data-view-file-provider.d.ts.map +1 -0
  70. package/dist/lib/parsers/parse-zip/{buffer-file-provider.js → data-view-file-provider.js} +28 -14
  71. package/dist/lib/parsers/parse-zip/file-provider.d.ts +10 -5
  72. package/dist/lib/parsers/parse-zip/file-provider.d.ts.map +1 -1
  73. package/dist/lib/parsers/parse-zip/local-file-header.d.ts +5 -3
  74. package/dist/lib/parsers/parse-zip/local-file-header.d.ts.map +1 -1
  75. package/dist/lib/parsers/parse-zip/local-file-header.js +29 -10
  76. package/package.json +9 -9
  77. package/src/i3s-slpk-loader.ts +19 -1
  78. package/src/index.ts +2 -1
  79. package/src/lib/parsers/parse-slpk/parse-slpk.ts +11 -40
  80. package/src/lib/parsers/parse-slpk/search-from-the-end.ts +38 -0
  81. package/src/lib/parsers/parse-slpk/slpk-archieve.ts +9 -12
  82. package/src/lib/parsers/parse-zip/cd-file-header.ts +31 -29
  83. package/src/lib/parsers/parse-zip/data-view-file-provider.ts +69 -0
  84. package/src/lib/parsers/parse-zip/file-provider.ts +11 -5
  85. package/src/lib/parsers/parse-zip/local-file-header.ts +43 -17
  86. package/dist/es5/lib/parsers/parse-zip/buffer-file-provider.js +0 -46
  87. package/dist/es5/lib/parsers/parse-zip/buffer-file-provider.js.map +0 -1
  88. package/dist/esm/lib/parsers/parse-zip/buffer-file-provider.js +0 -23
  89. package/dist/esm/lib/parsers/parse-zip/buffer-file-provider.js.map +0 -1
  90. package/dist/lib/parsers/parse-zip/buffer-file-provider.d.ts.map +0 -1
  91. package/src/lib/parsers/parse-zip/buffer-file-provider.ts +0 -55
package/dist/dist.min.js CHANGED
@@ -10491,62 +10491,37 @@
10491
10491
  }
10492
10492
  });
10493
10493
 
10494
- // src/lib/parsers/parse-zip/buffer-file-provider.ts
10495
- var DataViewFileProvider;
10496
- var init_buffer_file_provider = __esm({
10497
- "src/lib/parsers/parse-zip/buffer-file-provider.ts"() {
10498
- DataViewFileProvider = class {
10499
- constructor(file) {
10500
- this.file = file;
10501
- }
10502
- getUint8(offset) {
10503
- return Promise.resolve(this.file.getUint8(offset));
10504
- }
10505
- getUint16(offset) {
10506
- return Promise.resolve(this.file.getUint16(offset, true));
10507
- }
10508
- getUint32(offset) {
10509
- return Promise.resolve(this.file.getUint32(offset, true));
10510
- }
10511
- slice(startOffset, endOffset) {
10512
- return Promise.resolve(this.file.buffer.slice(startOffset, endOffset));
10513
- }
10514
- get length() {
10515
- return this.file.byteLength;
10516
- }
10517
- };
10518
- }
10519
- });
10520
-
10521
10494
  // src/lib/parsers/parse-zip/cd-file-header.ts
10522
10495
  var parseZipCDFileHeader;
10523
10496
  var init_cd_file_header = __esm({
10524
10497
  "src/lib/parsers/parse-zip/cd-file-header.ts"() {
10525
10498
  parseZipCDFileHeader = async (headerOffset, buffer) => {
10526
10499
  const offsets2 = {
10527
- CD_COMPRESSED_SIZE_OFFSET: 20,
10528
- CD_UNCOMPRESSED_SIZE_OFFSET: 24,
10529
- CD_FILE_NAME_LENGTH_OFFSET: 28,
10530
- CD_EXTRA_FIELD_LENGTH_OFFSET: 30,
10531
- CD_LOCAL_HEADER_OFFSET_OFFSET: 42,
10532
- CD_FILE_NAME_OFFSET: 46
10500
+ CD_COMPRESSED_SIZE_OFFSET: 20n,
10501
+ CD_UNCOMPRESSED_SIZE_OFFSET: 24n,
10502
+ CD_FILE_NAME_LENGTH_OFFSET: 28n,
10503
+ CD_EXTRA_FIELD_LENGTH_OFFSET: 30n,
10504
+ CD_LOCAL_HEADER_OFFSET_OFFSET: 42n,
10505
+ CD_FILE_NAME_OFFSET: 46n
10533
10506
  };
10534
- const compressedSize = await buffer.getUint32(headerOffset + offsets2.CD_COMPRESSED_SIZE_OFFSET);
10535
- const uncompressedSize = await buffer.getUint32(headerOffset + offsets2.CD_UNCOMPRESSED_SIZE_OFFSET);
10507
+ let compressedSize = BigInt(await buffer.getUint32(headerOffset + offsets2.CD_COMPRESSED_SIZE_OFFSET));
10508
+ let uncompressedSize = BigInt(await buffer.getUint32(headerOffset + offsets2.CD_UNCOMPRESSED_SIZE_OFFSET));
10536
10509
  const fileNameLength = await buffer.getUint16(headerOffset + offsets2.CD_FILE_NAME_LENGTH_OFFSET);
10537
- const fileName = new TextDecoder().decode(await buffer.slice(headerOffset + offsets2.CD_FILE_NAME_OFFSET, headerOffset + offsets2.CD_FILE_NAME_OFFSET + fileNameLength));
10538
- const extraOffset = headerOffset + offsets2.CD_FILE_NAME_OFFSET + fileNameLength;
10510
+ const fileName = new TextDecoder().decode(await buffer.slice(headerOffset + offsets2.CD_FILE_NAME_OFFSET, headerOffset + offsets2.CD_FILE_NAME_OFFSET + BigInt(fileNameLength)));
10511
+ const extraOffset = headerOffset + offsets2.CD_FILE_NAME_OFFSET + BigInt(fileNameLength);
10539
10512
  const oldFormatOffset = await buffer.getUint32(headerOffset + offsets2.CD_LOCAL_HEADER_OFFSET_OFFSET);
10540
- let fileDataOffset = oldFormatOffset;
10541
- if (fileDataOffset === 4294967295) {
10542
- let offsetInZip64Data = 4;
10543
- if (compressedSize === 4294967295) {
10544
- offsetInZip64Data += 8;
10545
- }
10546
- if (uncompressedSize === 4294967295) {
10547
- offsetInZip64Data += 8;
10548
- }
10549
- fileDataOffset = await buffer.getUint32(extraOffset + offsetInZip64Data);
10513
+ let fileDataOffset = BigInt(oldFormatOffset);
10514
+ let offsetInZip64Data = 4n;
10515
+ if (uncompressedSize === BigInt(4294967295)) {
10516
+ uncompressedSize = await buffer.getBigUint64(extraOffset + offsetInZip64Data);
10517
+ offsetInZip64Data += 8n;
10518
+ }
10519
+ if (compressedSize === BigInt(4294967295)) {
10520
+ compressedSize = await buffer.getBigUint64(extraOffset + offsetInZip64Data);
10521
+ offsetInZip64Data += 8n;
10522
+ }
10523
+ if (fileDataOffset === BigInt(4294967295)) {
10524
+ fileDataOffset = await buffer.getBigUint64(extraOffset + offsetInZip64Data);
10550
10525
  }
10551
10526
  const localHeaderOffset = fileDataOffset;
10552
10527
  return {
@@ -10566,21 +10541,36 @@
10566
10541
  var init_local_file_header = __esm({
10567
10542
  "src/lib/parsers/parse-zip/local-file-header.ts"() {
10568
10543
  offsets = {
10569
- COMPRESSED_SIZE_OFFSET: 18,
10570
- FILE_NAME_LENGTH_OFFSET: 26,
10571
- EXTRA_FIELD_LENGTH_OFFSET: 28,
10572
- FILE_NAME_OFFSET: 30
10544
+ COMPRESSED_SIZE_OFFSET: 18n,
10545
+ UNCOMPRESSED_SIZE_OFFSET: 22n,
10546
+ FILE_NAME_LENGTH_OFFSET: 26n,
10547
+ EXTRA_FIELD_LENGTH_OFFSET: 28n,
10548
+ FILE_NAME_OFFSET: 30n
10573
10549
  };
10574
10550
  signature = Buffer.from([80, 75, 3, 4]);
10575
10551
  parseZipLocalFileHeader = async (headerOffset, buffer) => {
10576
- if (Buffer.from(await buffer.slice(headerOffset, headerOffset + 4)).compare(signature) !== 0) {
10552
+ if (Buffer.from(await buffer.slice(headerOffset, headerOffset + 4n)).compare(signature) !== 0) {
10577
10553
  return Promise.resolve(void 0);
10578
10554
  }
10579
10555
  const fileNameLength = await buffer.getUint16(headerOffset + offsets.FILE_NAME_LENGTH_OFFSET);
10580
- const fileName = new TextDecoder().decode(await buffer.slice(headerOffset + offsets.FILE_NAME_OFFSET, headerOffset + offsets.FILE_NAME_OFFSET + fileNameLength));
10556
+ const fileName = new TextDecoder().decode(await buffer.slice(headerOffset + offsets.FILE_NAME_OFFSET, headerOffset + offsets.FILE_NAME_OFFSET + BigInt(fileNameLength))).split("\\").join("/");
10581
10557
  const extraFieldLength = await buffer.getUint16(headerOffset + offsets.EXTRA_FIELD_LENGTH_OFFSET);
10582
- const fileDataOffset = headerOffset + offsets.FILE_NAME_OFFSET + fileNameLength + extraFieldLength;
10583
- const compressedSize = await buffer.getUint32(headerOffset + offsets.COMPRESSED_SIZE_OFFSET);
10558
+ let fileDataOffset = headerOffset + offsets.FILE_NAME_OFFSET + BigInt(fileNameLength + extraFieldLength);
10559
+ let compressedSize = BigInt(await buffer.getUint32(headerOffset + offsets.COMPRESSED_SIZE_OFFSET));
10560
+ let uncompressedSize = BigInt(await buffer.getUint32(headerOffset + offsets.UNCOMPRESSED_SIZE_OFFSET));
10561
+ const extraOffset = headerOffset + offsets.FILE_NAME_OFFSET + BigInt(fileNameLength);
10562
+ let offsetInZip64Data = 4n;
10563
+ if (uncompressedSize === BigInt(4294967295)) {
10564
+ uncompressedSize = await buffer.getBigUint64(extraOffset + offsetInZip64Data);
10565
+ offsetInZip64Data += 8n;
10566
+ }
10567
+ if (compressedSize === BigInt(4294967295)) {
10568
+ compressedSize = await buffer.getBigUint64(extraOffset + offsetInZip64Data);
10569
+ offsetInZip64Data += 8n;
10570
+ }
10571
+ if (fileDataOffset === BigInt(4294967295)) {
10572
+ fileDataOffset = await buffer.getBigUint64(extraOffset + offsetInZip64Data);
10573
+ }
10584
10574
  return {
10585
10575
  fileNameLength,
10586
10576
  fileName,
@@ -10592,6 +10582,33 @@
10592
10582
  }
10593
10583
  });
10594
10584
 
10585
+ // src/lib/parsers/parse-slpk/search-from-the-end.ts
10586
+ var searchFromTheEnd;
10587
+ var init_search_from_the_end = __esm({
10588
+ "src/lib/parsers/parse-slpk/search-from-the-end.ts"() {
10589
+ searchFromTheEnd = async (file, target) => {
10590
+ const searchWindow = [
10591
+ await file.getUint8(file.length - 1n),
10592
+ await file.getUint8(file.length - 2n),
10593
+ await file.getUint8(file.length - 3n),
10594
+ void 0
10595
+ ];
10596
+ let targetOffset = 0n;
10597
+ for (let i2 = file.length - 4n; i2 > -1; i2--) {
10598
+ searchWindow[3] = searchWindow[2];
10599
+ searchWindow[2] = searchWindow[1];
10600
+ searchWindow[1] = searchWindow[0];
10601
+ searchWindow[0] = await file.getUint8(i2);
10602
+ if (searchWindow.every((val, index) => val === target[index])) {
10603
+ targetOffset = i2;
10604
+ break;
10605
+ }
10606
+ }
10607
+ return targetOffset;
10608
+ };
10609
+ }
10610
+ });
10611
+
10595
10612
  // ../../node_modules/crypt/crypt.js
10596
10613
  var require_crypt = __commonJS({
10597
10614
  "../../node_modules/crypt/crypt.js"(exports, module) {
@@ -15123,7 +15140,6 @@
15123
15140
  "src/lib/parsers/parse-slpk/slpk-archieve.ts"() {
15124
15141
  import_md5 = __toModule(require_md5());
15125
15142
  init_local_file_header();
15126
- init_buffer_file_provider();
15127
15143
  init_src9();
15128
15144
  PATH_DESCRIPTIONS = [
15129
15145
  {
@@ -15160,8 +15176,8 @@
15160
15176
  }
15161
15177
  ];
15162
15178
  SLPKArchive = class {
15163
- constructor(slpkArchiveBuffer, hashFile) {
15164
- this.slpkArchive = new DataView(slpkArchiveBuffer);
15179
+ constructor(slpkArchive, hashFile) {
15180
+ this.slpkArchive = slpkArchive;
15165
15181
  this.hashArray = this.parseHashFile(hashFile);
15166
15182
  }
15167
15183
  parseHashFile(hashFile) {
@@ -15169,7 +15185,7 @@
15169
15185
  const hashArray = [];
15170
15186
  for (let i2 = 0; i2 < hashFileBuffer.buffer.byteLength; i2 = i2 + 24) {
15171
15187
  const offsetBuffer = new DataView(hashFileBuffer.buffer.slice(hashFileBuffer.byteOffset + i2 + 16, hashFileBuffer.byteOffset + i2 + 24));
15172
- const offset = offsetBuffer.getUint32(offsetBuffer.byteOffset, true);
15188
+ const offset = offsetBuffer.getBigUint64(offsetBuffer.byteOffset, true);
15173
15189
  hashArray.push({
15174
15190
  hash: Buffer.from(hashFileBuffer.subarray(hashFileBuffer.byteOffset + i2, hashFileBuffer.byteOffset + i2 + 16)),
15175
15191
  offset
@@ -15223,11 +15239,11 @@
15223
15239
  if (!fileInfo) {
15224
15240
  return void 0;
15225
15241
  }
15226
- const localFileHeader = await parseZipLocalFileHeader(this.slpkArchive.byteOffset + fileInfo?.offset, new DataViewFileProvider(this.slpkArchive));
15242
+ const localFileHeader = await parseZipLocalFileHeader(fileInfo?.offset, this.slpkArchive);
15227
15243
  if (!localFileHeader) {
15228
15244
  return void 0;
15229
15245
  }
15230
- const compressedFile = this.slpkArchive.buffer.slice(localFileHeader.fileDataOffset, localFileHeader.fileDataOffset + localFileHeader.compressedSize);
15246
+ const compressedFile = this.slpkArchive.slice(localFileHeader.fileDataOffset, localFileHeader.fileDataOffset + localFileHeader.compressedSize);
15231
15247
  return compressedFile;
15232
15248
  }
15233
15249
  };
@@ -15235,60 +15251,79 @@
15235
15251
  });
15236
15252
 
15237
15253
  // src/lib/parsers/parse-slpk/parse-slpk.ts
15238
- async function parseSLPK(data, options = {}) {
15239
- const archive = new DataView(data);
15240
- const cdFileHeaderSignature = [80, 75, 1, 2];
15241
- const searchWindow = [
15242
- getByteAt(archive.byteLength - 1, archive),
15243
- getByteAt(archive.byteLength - 2, archive),
15244
- getByteAt(archive.byteLength - 3, archive),
15245
- void 0
15246
- ];
15247
- let hashCDOffset = 0;
15248
- for (let i2 = archive.byteLength - 4; i2 > -1; i2--) {
15249
- searchWindow[3] = searchWindow[2];
15250
- searchWindow[2] = searchWindow[1];
15251
- searchWindow[1] = searchWindow[0];
15252
- searchWindow[0] = getByteAt(i2, archive);
15253
- if (searchWindow.every((val, index) => val === cdFileHeaderSignature[index])) {
15254
- hashCDOffset = i2;
15255
- break;
15256
- }
15257
- }
15258
- const fileProvider = new DataViewFileProvider(archive);
15259
- const cdFileHeader = await parseZipCDFileHeader(hashCDOffset, fileProvider);
15260
- if (cdFileHeader.fileName !== "@specialIndexFileHASH128@") {
15261
- throw new Error("No hash file in slpk");
15262
- }
15263
- const localFileHeader = await parseZipLocalFileHeader(cdFileHeader.localHeaderOffset, fileProvider);
15264
- if (!localFileHeader) {
15265
- throw new Error("No hash file in slpk");
15266
- }
15267
- const fileDataOffset = localFileHeader.fileDataOffset;
15268
- const hashFile = archive.buffer.slice(fileDataOffset, fileDataOffset + localFileHeader.compressedSize);
15269
- if (!hashFile) {
15270
- throw new Error("No hash file in slpk");
15271
- }
15272
- return await new SLPKArchive(data, hashFile).getFile(options.slpk?.path ?? "", options.slpk?.pathMode);
15273
- }
15274
- var getByteAt;
15254
+ var parseSLPK;
15275
15255
  var init_parse_slpk = __esm({
15276
15256
  "src/lib/parsers/parse-slpk/parse-slpk.ts"() {
15277
- init_buffer_file_provider();
15278
15257
  init_cd_file_header();
15279
15258
  init_local_file_header();
15259
+ init_search_from_the_end();
15280
15260
  init_slpk_archieve();
15281
- getByteAt = (offset, buffer) => {
15282
- return buffer.getUint8(buffer.byteOffset + offset);
15261
+ parseSLPK = async (fileProvider) => {
15262
+ const cdFileHeaderSignature = [80, 75, 1, 2];
15263
+ const hashCDOffset = await searchFromTheEnd(fileProvider, cdFileHeaderSignature);
15264
+ const cdFileHeader = await parseZipCDFileHeader(hashCDOffset, fileProvider);
15265
+ if (cdFileHeader.fileName !== "@specialIndexFileHASH128@") {
15266
+ throw new Error("No hash file in slpk");
15267
+ }
15268
+ const localFileHeader = await parseZipLocalFileHeader(cdFileHeader.localHeaderOffset, fileProvider);
15269
+ if (!localFileHeader) {
15270
+ throw new Error("No hash file in slpk");
15271
+ }
15272
+ const fileDataOffset = localFileHeader.fileDataOffset;
15273
+ const hashFile = await fileProvider.slice(fileDataOffset, fileDataOffset + localFileHeader.compressedSize);
15274
+ if (!hashFile) {
15275
+ throw new Error("No hash file in slpk");
15276
+ }
15277
+ return new SLPKArchive(fileProvider, hashFile);
15278
+ };
15279
+ }
15280
+ });
15281
+
15282
+ // src/lib/parsers/parse-zip/data-view-file-provider.ts
15283
+ var toNumber, DataViewFileProvider;
15284
+ var init_data_view_file_provider = __esm({
15285
+ "src/lib/parsers/parse-zip/data-view-file-provider.ts"() {
15286
+ toNumber = (bigint) => {
15287
+ if (bigint > Number.MAX_SAFE_INTEGER) {
15288
+ throw new Error("Offset is out of bounds");
15289
+ }
15290
+ return Number(bigint);
15291
+ };
15292
+ DataViewFileProvider = class {
15293
+ constructor(file) {
15294
+ this.file = file;
15295
+ }
15296
+ async getUint8(offset) {
15297
+ return this.file.getUint8(toNumber(offset));
15298
+ }
15299
+ async getUint16(offset) {
15300
+ return this.file.getUint16(toNumber(offset), true);
15301
+ }
15302
+ async getUint32(offset) {
15303
+ return this.file.getUint32(toNumber(offset), true);
15304
+ }
15305
+ async getBigUint64(offset) {
15306
+ return this.file.getBigUint64(toNumber(offset), true);
15307
+ }
15308
+ async slice(startOffset, endOffset) {
15309
+ return this.file.buffer.slice(toNumber(startOffset), toNumber(endOffset));
15310
+ }
15311
+ get length() {
15312
+ return BigInt(this.file.byteLength);
15313
+ }
15283
15314
  };
15284
15315
  }
15285
15316
  });
15286
15317
 
15287
15318
  // src/i3s-slpk-loader.ts
15319
+ async function parseSLPK2(data, options = {}) {
15320
+ return (await parseSLPK(new DataViewFileProvider(new DataView(data)))).getFile(options.slpk?.path ?? "", options.slpk?.pathMode);
15321
+ }
15288
15322
  var VERSION13, SLPKLoader;
15289
15323
  var init_i3s_slpk_loader = __esm({
15290
15324
  "src/i3s-slpk-loader.ts"() {
15291
15325
  init_parse_slpk();
15326
+ init_data_view_file_provider();
15292
15327
  VERSION13 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
15293
15328
  SLPKLoader = {
15294
15329
  name: "I3S SLPK (Scene Layer Package)",
@@ -15296,7 +15331,7 @@
15296
15331
  module: "i3s",
15297
15332
  version: VERSION13,
15298
15333
  mimeTypes: ["application/octet-stream"],
15299
- parse: parseSLPK,
15334
+ parse: parseSLPK2,
15300
15335
  extensions: ["slpk"],
15301
15336
  options: {}
15302
15337
  };
@@ -15467,6 +15502,7 @@
15467
15502
  I3SNodePageLoader: () => I3SNodePageLoader,
15468
15503
  SLPKLoader: () => SLPKLoader,
15469
15504
  loadFeatureAttributes: () => loadFeatureAttributes,
15505
+ parseSLPK: () => parseSLPK,
15470
15506
  parseZipLocalFileHeader: () => parseZipLocalFileHeader
15471
15507
  });
15472
15508
  var init_src10 = __esm({
@@ -15480,6 +15516,7 @@
15480
15516
  init_i3s_node_page_loader();
15481
15517
  init_arcgis_webscene_loader();
15482
15518
  init_local_file_header();
15519
+ init_parse_slpk();
15483
15520
  }
15484
15521
  });
15485
15522
 
@@ -8,7 +8,7 @@ exports.ArcGisWebSceneLoader = void 0;
8
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
10
  var _parseArcgisWebscene = require("./lib/parsers/parse-arcgis-webscene");
11
- var VERSION = typeof "4.0.0-alpha.13" !== 'undefined' ? "4.0.0-alpha.13" : 'beta';
11
+ var VERSION = typeof "4.0.0-alpha.15" !== 'undefined' ? "4.0.0-alpha.15" : 'beta';
12
12
  var ArcGisWebSceneLoader = {
13
13
  name: 'ArcGIS Web Scene Loader',
14
14
  id: 'arcgis-web-scene',
@@ -15,7 +15,7 @@ var _parseI3sAttribute = require("./lib/parsers/parse-i3s-attribute");
15
15
  var _urlUtils = require("./lib/utils/url-utils");
16
16
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
17
17
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
18
- var VERSION = typeof "4.0.0-alpha.13" !== 'undefined' ? "4.0.0-alpha.13" : 'latest';
18
+ var VERSION = typeof "4.0.0-alpha.15" !== 'undefined' ? "4.0.0-alpha.15" : 'latest';
19
19
  var EMPTY_VALUE = '';
20
20
  var REJECTED_STATUS = 'rejected';
21
21
  var I3SAttributeLoader = {
@@ -8,7 +8,7 @@ exports.I3SBuildingSceneLayerLoader = void 0;
8
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
10
  var _parseI3sBuildingSceneLayer = require("./lib/parsers/parse-i3s-building-scene-layer");
11
- var VERSION = typeof "4.0.0-alpha.13" !== 'undefined' ? "4.0.0-alpha.13" : 'beta';
11
+ var VERSION = typeof "4.0.0-alpha.15" !== 'undefined' ? "4.0.0-alpha.15" : 'beta';
12
12
  var I3SBuildingSceneLayerLoader = {
13
13
  name: 'I3S Building Scene Layer',
14
14
  id: 'i3s-building-scene-layer',
@@ -8,7 +8,7 @@ exports.I3SContentLoader = void 0;
8
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
10
  var _parseI3sTileContent = require("./lib/parsers/parse-i3s-tile-content");
11
- var VERSION = typeof "4.0.0-alpha.13" !== 'undefined' ? "4.0.0-alpha.13" : 'beta';
11
+ var VERSION = typeof "4.0.0-alpha.15" !== 'undefined' ? "4.0.0-alpha.15" : 'beta';
12
12
  var I3SContentLoader = {
13
13
  name: 'I3S Content (Indexed Scene Layers)',
14
14
  id: 'i3s-content',
@@ -12,7 +12,7 @@ var _core = require("@loaders.gl/core");
12
12
  var _i3sContentLoader = require("./i3s-content-loader");
13
13
  var _parseI3s = require("./lib/parsers/parse-i3s");
14
14
  var _constants = require("./lib/parsers/constants");
15
- var VERSION = typeof "4.0.0-alpha.13" !== 'undefined' ? "4.0.0-alpha.13" : 'latest';
15
+ var VERSION = typeof "4.0.0-alpha.15" !== 'undefined' ? "4.0.0-alpha.15" : 'latest';
16
16
  var TILESET_REGEX = /layers\/[0-9]+$/;
17
17
  var TILE_HEADER_REGEX = /nodes\/([0-9-]+|root)$/;
18
18
  var SLPK_HEX = '504b0304';
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.I3SNodePageLoader = void 0;
8
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
- var VERSION = typeof "4.0.0-alpha.13" !== 'undefined' ? "4.0.0-alpha.13" : 'latest';
10
+ var VERSION = typeof "4.0.0-alpha.15" !== 'undefined' ? "4.0.0-alpha.15" : 'latest';
11
11
  function parseNodePage(_x, _x2) {
12
12
  return _parseNodePage.apply(this, arguments);
13
13
  }
@@ -1,20 +1,48 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
7
  exports.SLPKLoader = void 0;
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
7
10
  var _parseSlpk = require("./lib/parsers/parse-slpk/parse-slpk");
8
- var VERSION = typeof "4.0.0-alpha.13" !== 'undefined' ? "4.0.0-alpha.13" : 'latest';
11
+ var _dataViewFileProvider = require("./lib/parsers/parse-zip/data-view-file-provider");
12
+ var VERSION = typeof "4.0.0-alpha.15" !== 'undefined' ? "4.0.0-alpha.15" : 'latest';
9
13
  var SLPKLoader = {
10
14
  name: 'I3S SLPK (Scene Layer Package)',
11
15
  id: 'slpk',
12
16
  module: 'i3s',
13
17
  version: VERSION,
14
18
  mimeTypes: ['application/octet-stream'],
15
- parse: _parseSlpk.parseSLPK,
19
+ parse: parseSLPK,
16
20
  extensions: ['slpk'],
17
21
  options: {}
18
22
  };
19
23
  exports.SLPKLoader = SLPKLoader;
24
+ function parseSLPK(_x) {
25
+ return _parseSLPK.apply(this, arguments);
26
+ }
27
+ function _parseSLPK() {
28
+ _parseSLPK = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(data) {
29
+ var _options$slpk$path, _options$slpk, _options$slpk2;
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, _parseSlpk.parseSLPK)(new _dataViewFileProvider.DataViewFileProvider(new DataView(data)));
38
+ case 3:
39
+ return _context.abrupt("return", _context.sent.getFile((_options$slpk$path = (_options$slpk = options.slpk) === null || _options$slpk === void 0 ? void 0 : _options$slpk.path) !== null && _options$slpk$path !== void 0 ? _options$slpk$path : '', (_options$slpk2 = options.slpk) === null || _options$slpk2 === void 0 ? void 0 : _options$slpk2.pathMode));
40
+ case 4:
41
+ case "end":
42
+ return _context.stop();
43
+ }
44
+ }, _callee);
45
+ }));
46
+ return _parseSLPK.apply(this, arguments);
47
+ }
20
48
  //# sourceMappingURL=i3s-slpk-loader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"i3s-slpk-loader.js","names":["_parseSlpk","require","VERSION","SLPKLoader","name","id","module","version","mimeTypes","parse","parseSLPK","extensions","options","exports"],"sources":["../../src/i3s-slpk-loader.ts"],"sourcesContent":["import {LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {parseSLPK} from './lib/parsers/parse-slpk/parse-slpk';\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\nexport type SLPKLoaderOptions = LoaderOptions & {\n slpk?: {\n path?: string;\n pathMode?: 'http' | 'raw';\n };\n};\n\n/**\n * Loader for SLPK - Scene Layer Package\n */\nexport const SLPKLoader: LoaderWithParser<Buffer, never, SLPKLoaderOptions> = {\n name: 'I3S SLPK (Scene Layer Package)',\n id: 'slpk',\n module: 'i3s',\n version: VERSION,\n mimeTypes: ['application/octet-stream'],\n parse: parseSLPK,\n extensions: ['slpk'],\n options: {}\n};\n"],"mappings":";;;;;;AACA,IAAAA,UAAA,GAAAC,OAAA;AAIA,IAAMC,OAAO,GAAG,uBAAkB,KAAK,WAAW,sBAAiB,QAAQ;AAYpE,IAAMC,UAA8D,GAAG;EAC5EC,IAAI,EAAE,gCAAgC;EACtCC,EAAE,EAAE,MAAM;EACVC,MAAM,EAAE,KAAK;EACbC,OAAO,EAAEL,OAAO;EAChBM,SAAS,EAAE,CAAC,0BAA0B,CAAC;EACvCC,KAAK,EAAEC,oBAAS;EAChBC,UAAU,EAAE,CAAC,MAAM,CAAC;EACpBC,OAAO,EAAE,CAAC;AACZ,CAAC;AAACC,OAAA,CAAAV,UAAA,GAAAA,UAAA"}
1
+ {"version":3,"file":"i3s-slpk-loader.js","names":["_parseSlpk","require","_dataViewFileProvider","VERSION","SLPKLoader","name","id","module","version","mimeTypes","parse","parseSLPK","extensions","options","exports","_x","_parseSLPK","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","data","_options$slpk$path","_options$slpk","_options$slpk2","_args","wrap","_callee$","_context","prev","next","length","undefined","parseSLPKFromProvider","DataViewFileProvider","DataView","abrupt","sent","getFile","slpk","path","pathMode","stop"],"sources":["../../src/i3s-slpk-loader.ts"],"sourcesContent":["import {LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {parseSLPK as parseSLPKFromProvider} from './lib/parsers/parse-slpk/parse-slpk';\nimport {DataViewFileProvider} from './lib/parsers/parse-zip/data-view-file-provider';\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 SLPK */\nexport type SLPKLoaderOptions = LoaderOptions & {\n slpk?: {\n /** path inside the slpk archive */\n path?: string;\n /** mode of the path */\n pathMode?: 'http' | 'raw';\n };\n};\n\n/**\n * Loader for SLPK - Scene Layer Package\n */\nexport const SLPKLoader: LoaderWithParser<Buffer, never, SLPKLoaderOptions> = {\n name: 'I3S SLPK (Scene Layer Package)',\n id: 'slpk',\n module: 'i3s',\n version: VERSION,\n mimeTypes: ['application/octet-stream'],\n parse: parseSLPK,\n extensions: ['slpk'],\n options: {}\n};\n\n/**\n * returns a single file from the slpk archive\n * @param data slpk archive data\n * @param options options\n * @returns requested file\n */\n\nasync function parseSLPK(data: ArrayBuffer, options: SLPKLoaderOptions = {}) {\n return (await parseSLPKFromProvider(new DataViewFileProvider(new DataView(data)))).getFile(\n options.slpk?.path ?? '',\n options.slpk?.pathMode\n );\n}\n"],"mappings":";;;;;;;;;AACA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,qBAAA,GAAAD,OAAA;AAIA,IAAME,OAAO,GAAG,uBAAkB,KAAK,WAAW,sBAAiB,QAAQ;AAepE,IAAMC,UAA8D,GAAG;EAC5EC,IAAI,EAAE,gCAAgC;EACtCC,EAAE,EAAE,MAAM;EACVC,MAAM,EAAE,KAAK;EACbC,OAAO,EAAEL,OAAO;EAChBM,SAAS,EAAE,CAAC,0BAA0B,CAAC;EACvCC,KAAK,EAAEC,SAAS;EAChBC,UAAU,EAAE,CAAC,MAAM,CAAC;EACpBC,OAAO,EAAE,CAAC;AACZ,CAAC;AAACC,OAAA,CAAAV,UAAA,GAAAA,UAAA;AAAA,SASaO,SAASA,CAAAI,EAAA;EAAA,OAAAC,UAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAF,WAAA;EAAAA,UAAA,OAAAG,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAAxB,SAAAC,QAAyBC,IAAiB;IAAA,IAAAC,kBAAA,EAAAC,aAAA,EAAAC,cAAA;IAAA,IAAAd,OAAA;MAAAe,KAAA,GAAAV,SAAA;IAAA,OAAAG,YAAA,CAAAD,OAAA,CAAAS,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAAEpB,OAA0B,GAAAe,KAAA,CAAAM,MAAA,QAAAN,KAAA,QAAAO,SAAA,GAAAP,KAAA,MAAG,CAAC,CAAC;UAAAG,QAAA,CAAAE,IAAA;UAAA,OAC3D,IAAAG,oBAAqB,EAAC,IAAIC,0CAAoB,CAAC,IAAIC,QAAQ,CAACd,IAAI,CAAC,CAAC,CAAC;QAAA;UAAA,OAAAO,QAAA,CAAAQ,MAAA,WAAAR,QAAA,CAAAS,IAAA,CAAEC,OAAO,EAAAhB,kBAAA,IAAAC,aAAA,GACxFb,OAAO,CAAC6B,IAAI,cAAAhB,aAAA,uBAAZA,aAAA,CAAciB,IAAI,cAAAlB,kBAAA,cAAAA,kBAAA,GAAI,EAAE,GAAAE,cAAA,GACxBd,OAAO,CAAC6B,IAAI,cAAAf,cAAA,uBAAZA,cAAA,CAAciB,QAAQ;QAAA;QAAA;UAAA,OAAAb,QAAA,CAAAc,IAAA;MAAA;IAAA,GAAAtB,OAAA;EAAA,CAEzB;EAAA,OAAAP,UAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA"}
package/dist/es5/index.js CHANGED
@@ -15,12 +15,6 @@ Object.defineProperty(exports, "COORDINATE_SYSTEM", {
15
15
  return _constants.COORDINATE_SYSTEM;
16
16
  }
17
17
  });
18
- Object.defineProperty(exports, "FileProvider", {
19
- enumerable: true,
20
- get: function get() {
21
- return _fileProvider.FileProvider;
22
- }
23
- });
24
18
  Object.defineProperty(exports, "I3SAttributeLoader", {
25
19
  enumerable: true,
26
20
  get: function get() {
@@ -63,6 +57,12 @@ Object.defineProperty(exports, "loadFeatureAttributes", {
63
57
  return _i3sAttributeLoader.loadFeatureAttributes;
64
58
  }
65
59
  });
60
+ Object.defineProperty(exports, "parseSLPK", {
61
+ enumerable: true,
62
+ get: function get() {
63
+ return _parseSlpk.parseSLPK;
64
+ }
65
+ });
66
66
  Object.defineProperty(exports, "parseZipLocalFileHeader", {
67
67
  enumerable: true,
68
68
  get: function get() {
@@ -78,5 +78,5 @@ var _i3sBuildingSceneLayerLoader = require("./i3s-building-scene-layer-loader");
78
78
  var _i3sNodePageLoader = require("./i3s-node-page-loader");
79
79
  var _arcgisWebsceneLoader = require("./arcgis-webscene-loader");
80
80
  var _localFileHeader = require("./lib/parsers/parse-zip/local-file-header");
81
- var _fileProvider = require("./lib/parsers/parse-zip/file-provider");
81
+ var _parseSlpk = require("./lib/parsers/parse-slpk/parse-slpk");
82
82
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_constants","require","_i3sLoader","_i3sSlpkLoader","_i3sContentLoader","_i3sAttributeLoader","_i3sBuildingSceneLayerLoader","_i3sNodePageLoader","_arcgisWebsceneLoader","_localFileHeader","_fileProvider"],"sources":["../../src/index.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nexport type {\n BoundingVolumes,\n Mbs,\n Obb,\n SceneLayer3D,\n AttributeStorageInfo,\n Field,\n ESRIField,\n PopupInfo,\n Node3DIndexDocument,\n LodSelection,\n NodeReference,\n Resource,\n MaxScreenThresholdSQ,\n NodeInPage,\n SharedResources,\n Attribute,\n Extent,\n FeatureAttribute,\n FieldInfo,\n I3SMaterialDefinition,\n TextureDefinitionInfo,\n MaterialDefinitionInfo,\n FullExtent,\n StatisticsInfo,\n StatsInfo,\n Histogram,\n ValueCount,\n BuildingSceneSublayer,\n DATA_TYPE,\n OperationalLayer,\n TextureSetDefinitionFormats\n} from './types';\n\nexport {COORDINATE_SYSTEM} from './lib/parsers/constants';\n\nexport {I3SLoader} from './i3s-loader';\nexport {SLPKLoader} from './i3s-slpk-loader';\nexport {I3SContentLoader} from './i3s-content-loader';\nexport {I3SAttributeLoader, loadFeatureAttributes} from './i3s-attribute-loader';\nexport {I3SBuildingSceneLayerLoader} from './i3s-building-scene-layer-loader';\nexport {I3SNodePageLoader} from './i3s-node-page-loader';\nexport {ArcGisWebSceneLoader} from './arcgis-webscene-loader';\nexport {parseZipLocalFileHeader} from './lib/parsers/parse-zip/local-file-header';\nexport {FileProvider} from './lib/parsers/parse-zip/file-provider';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCA,IAAAA,UAAA,GAAAC,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AACA,IAAAG,iBAAA,GAAAH,OAAA;AACA,IAAAI,mBAAA,GAAAJ,OAAA;AACA,IAAAK,4BAAA,GAAAL,OAAA;AACA,IAAAM,kBAAA,GAAAN,OAAA;AACA,IAAAO,qBAAA,GAAAP,OAAA;AACA,IAAAQ,gBAAA,GAAAR,OAAA;AACA,IAAAS,aAAA,GAAAT,OAAA"}
1
+ {"version":3,"file":"index.js","names":["_constants","require","_i3sLoader","_i3sSlpkLoader","_i3sContentLoader","_i3sAttributeLoader","_i3sBuildingSceneLayerLoader","_i3sNodePageLoader","_arcgisWebsceneLoader","_localFileHeader","_parseSlpk"],"sources":["../../src/index.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nexport type {\n BoundingVolumes,\n Mbs,\n Obb,\n SceneLayer3D,\n AttributeStorageInfo,\n Field,\n ESRIField,\n PopupInfo,\n Node3DIndexDocument,\n LodSelection,\n NodeReference,\n Resource,\n MaxScreenThresholdSQ,\n NodeInPage,\n SharedResources,\n Attribute,\n Extent,\n FeatureAttribute,\n FieldInfo,\n I3SMaterialDefinition,\n TextureDefinitionInfo,\n MaterialDefinitionInfo,\n FullExtent,\n StatisticsInfo,\n StatsInfo,\n Histogram,\n ValueCount,\n BuildingSceneSublayer,\n DATA_TYPE,\n OperationalLayer,\n TextureSetDefinitionFormats\n} from './types';\nexport type {FileProvider} from './lib/parsers/parse-zip/file-provider';\n\nexport {COORDINATE_SYSTEM} from './lib/parsers/constants';\n\nexport {I3SLoader} from './i3s-loader';\nexport {SLPKLoader} from './i3s-slpk-loader';\nexport {I3SContentLoader} from './i3s-content-loader';\nexport {I3SAttributeLoader, loadFeatureAttributes} from './i3s-attribute-loader';\nexport {I3SBuildingSceneLayerLoader} from './i3s-building-scene-layer-loader';\nexport {I3SNodePageLoader} from './i3s-node-page-loader';\nexport {ArcGisWebSceneLoader} from './arcgis-webscene-loader';\nexport {parseZipLocalFileHeader} from './lib/parsers/parse-zip/local-file-header';\nexport {parseSLPK} from './lib/parsers/parse-slpk/parse-slpk';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCA,IAAAA,UAAA,GAAAC,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AACA,IAAAG,iBAAA,GAAAH,OAAA;AACA,IAAAI,mBAAA,GAAAJ,OAAA;AACA,IAAAK,4BAAA,GAAAL,OAAA;AACA,IAAAM,kBAAA,GAAAN,OAAA;AACA,IAAAO,qBAAA,GAAAP,OAAA;AACA,IAAAQ,gBAAA,GAAAR,OAAA;AACA,IAAAS,UAAA,GAAAT,OAAA"}