@loaders.gl/i3s 4.0.0-alpha.18 → 4.0.0-alpha.20

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 (107) hide show
  1. package/dist/dist.min.js +338 -307
  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 +3 -3
  9. package/dist/es5/i3s-slpk-loader.js.map +1 -1
  10. package/dist/es5/index.js +0 -7
  11. package/dist/es5/index.js.map +1 -1
  12. package/dist/es5/lib/parsers/parse-i3s.js +1 -0
  13. package/dist/es5/lib/parsers/parse-i3s.js.map +1 -1
  14. package/dist/es5/lib/parsers/parse-slpk/parse-slpk.js +9 -25
  15. package/dist/es5/lib/parsers/parse-slpk/parse-slpk.js.map +1 -1
  16. package/dist/es5/lib/parsers/parse-slpk/slpk-archieve.js +9 -33
  17. package/dist/es5/lib/parsers/parse-slpk/slpk-archieve.js.map +1 -1
  18. package/dist/es5/types.js.map +1 -1
  19. package/dist/esm/arcgis-webscene-loader.js +1 -1
  20. package/dist/esm/i3s-attribute-loader.js +1 -1
  21. package/dist/esm/i3s-building-scene-layer-loader.js +1 -1
  22. package/dist/esm/i3s-content-loader.js +1 -1
  23. package/dist/esm/i3s-loader.js +1 -1
  24. package/dist/esm/i3s-node-page-loader.js +1 -1
  25. package/dist/esm/i3s-slpk-loader.js +3 -3
  26. package/dist/esm/i3s-slpk-loader.js.map +1 -1
  27. package/dist/esm/index.js +0 -1
  28. package/dist/esm/index.js.map +1 -1
  29. package/dist/esm/lib/parsers/parse-i3s.js +1 -0
  30. package/dist/esm/lib/parsers/parse-i3s.js.map +1 -1
  31. package/dist/esm/lib/parsers/parse-slpk/parse-slpk.js +2 -18
  32. package/dist/esm/lib/parsers/parse-slpk/parse-slpk.js.map +1 -1
  33. package/dist/esm/lib/parsers/parse-slpk/slpk-archieve.js +5 -29
  34. package/dist/esm/lib/parsers/parse-slpk/slpk-archieve.js.map +1 -1
  35. package/dist/esm/types.js.map +1 -1
  36. package/dist/i3s-content-worker-node.js +47 -47
  37. package/dist/i3s-content-worker-node.js.map +2 -2
  38. package/dist/i3s-content-worker.js +51 -38
  39. package/dist/i3s-slpk-loader.js +2 -2
  40. package/dist/index.d.ts +0 -2
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +1 -3
  43. package/dist/lib/parsers/parse-i3s.d.ts.map +1 -1
  44. package/dist/lib/parsers/parse-i3s.js +1 -0
  45. package/dist/lib/parsers/parse-slpk/parse-slpk.d.ts +1 -1
  46. package/dist/lib/parsers/parse-slpk/parse-slpk.d.ts.map +1 -1
  47. package/dist/lib/parsers/parse-slpk/parse-slpk.js +9 -30
  48. package/dist/lib/parsers/parse-slpk/slpk-archieve.d.ts +2 -21
  49. package/dist/lib/parsers/parse-slpk/slpk-archieve.d.ts.map +1 -1
  50. package/dist/lib/parsers/parse-slpk/slpk-archieve.js +7 -46
  51. package/dist/types.d.ts +3 -0
  52. package/dist/types.d.ts.map +1 -1
  53. package/package.json +9 -9
  54. package/src/i3s-slpk-loader.ts +2 -2
  55. package/src/index.ts +0 -2
  56. package/src/lib/parsers/parse-i3s.ts +1 -0
  57. package/src/lib/parsers/parse-slpk/parse-slpk.ts +12 -32
  58. package/src/lib/parsers/parse-slpk/slpk-archieve.ts +5 -54
  59. package/src/types.ts +3 -0
  60. package/dist/es5/lib/parsers/parse-zip/cd-file-header.js +0 -121
  61. package/dist/es5/lib/parsers/parse-zip/cd-file-header.js.map +0 -1
  62. package/dist/es5/lib/parsers/parse-zip/data-view-file-provider.js +0 -129
  63. package/dist/es5/lib/parsers/parse-zip/data-view-file-provider.js.map +0 -1
  64. package/dist/es5/lib/parsers/parse-zip/end-of-central-directory.js +0 -100
  65. package/dist/es5/lib/parsers/parse-zip/end-of-central-directory.js.map +0 -1
  66. package/dist/es5/lib/parsers/parse-zip/file-provider.js +0 -2
  67. package/dist/es5/lib/parsers/parse-zip/file-provider.js.map +0 -1
  68. package/dist/es5/lib/parsers/parse-zip/local-file-header.js +0 -113
  69. package/dist/es5/lib/parsers/parse-zip/local-file-header.js.map +0 -1
  70. package/dist/es5/lib/parsers/parse-zip/search-from-the-end.js +0 -69
  71. package/dist/es5/lib/parsers/parse-zip/search-from-the-end.js.map +0 -1
  72. package/dist/esm/lib/parsers/parse-zip/cd-file-header.js +0 -45
  73. package/dist/esm/lib/parsers/parse-zip/cd-file-header.js.map +0 -1
  74. package/dist/esm/lib/parsers/parse-zip/data-view-file-provider.js +0 -32
  75. package/dist/esm/lib/parsers/parse-zip/data-view-file-provider.js.map +0 -1
  76. package/dist/esm/lib/parsers/parse-zip/end-of-central-directory.js +0 -33
  77. package/dist/esm/lib/parsers/parse-zip/end-of-central-directory.js.map +0 -1
  78. package/dist/esm/lib/parsers/parse-zip/file-provider.js +0 -2
  79. package/dist/esm/lib/parsers/parse-zip/file-provider.js.map +0 -1
  80. package/dist/esm/lib/parsers/parse-zip/local-file-header.js +0 -40
  81. package/dist/esm/lib/parsers/parse-zip/local-file-header.js.map +0 -1
  82. package/dist/esm/lib/parsers/parse-zip/search-from-the-end.js +0 -16
  83. package/dist/esm/lib/parsers/parse-zip/search-from-the-end.js.map +0 -1
  84. package/dist/lib/parsers/parse-zip/cd-file-header.d.ts +0 -31
  85. package/dist/lib/parsers/parse-zip/cd-file-header.d.ts.map +0 -1
  86. package/dist/lib/parsers/parse-zip/cd-file-header.js +0 -55
  87. package/dist/lib/parsers/parse-zip/data-view-file-provider.d.ts +0 -36
  88. package/dist/lib/parsers/parse-zip/data-view-file-provider.d.ts.map +0 -1
  89. package/dist/lib/parsers/parse-zip/data-view-file-provider.js +0 -61
  90. package/dist/lib/parsers/parse-zip/end-of-central-directory.d.ts +0 -18
  91. package/dist/lib/parsers/parse-zip/end-of-central-directory.d.ts.map +0 -1
  92. package/dist/lib/parsers/parse-zip/end-of-central-directory.js +0 -41
  93. package/dist/lib/parsers/parse-zip/file-provider.d.ts +0 -36
  94. package/dist/lib/parsers/parse-zip/file-provider.d.ts.map +0 -1
  95. package/dist/lib/parsers/parse-zip/file-provider.js +0 -2
  96. package/dist/lib/parsers/parse-zip/local-file-header.d.ts +0 -27
  97. package/dist/lib/parsers/parse-zip/local-file-header.d.ts.map +0 -1
  98. package/dist/lib/parsers/parse-zip/local-file-header.js +0 -53
  99. package/dist/lib/parsers/parse-zip/search-from-the-end.d.ts +0 -11
  100. package/dist/lib/parsers/parse-zip/search-from-the-end.d.ts.map +0 -1
  101. package/dist/lib/parsers/parse-zip/search-from-the-end.js +0 -31
  102. package/src/lib/parsers/parse-zip/cd-file-header.ts +0 -106
  103. package/src/lib/parsers/parse-zip/data-view-file-provider.ts +0 -69
  104. package/src/lib/parsers/parse-zip/end-of-central-directory.ts +0 -78
  105. package/src/lib/parsers/parse-zip/file-provider.ts +0 -40
  106. package/src/lib/parsers/parse-zip/local-file-header.ts +0 -91
  107. package/src/lib/parsers/parse-zip/search-from-the-end.ts +0 -38
package/dist/dist.min.js CHANGED
@@ -1250,32 +1250,33 @@
1250
1250
  });
1251
1251
 
1252
1252
  // ../worker-utils/src/lib/library-utils/library-utils.ts
1253
- async function loadLibrary(libraryUrl, moduleName = null, options = {}) {
1253
+ async function loadLibrary(libraryUrl, moduleName = null, options = {}, libraryName = null) {
1254
1254
  if (moduleName) {
1255
- libraryUrl = getLibraryUrl(libraryUrl, moduleName, options);
1255
+ libraryUrl = getLibraryUrl(libraryUrl, moduleName, options, libraryName);
1256
1256
  }
1257
1257
  loadLibraryPromises[libraryUrl] = loadLibraryPromises[libraryUrl] || loadLibraryFromFile(libraryUrl);
1258
1258
  return await loadLibraryPromises[libraryUrl];
1259
1259
  }
1260
- function getLibraryUrl(library, moduleName, options) {
1261
- if (library.startsWith("http")) {
1260
+ function getLibraryUrl(library, moduleName, options = {}, libraryName = null) {
1261
+ if (!options.useLocalLibraries && library.startsWith("http")) {
1262
1262
  return library;
1263
1263
  }
1264
+ libraryName = libraryName || library;
1264
1265
  const modules = options.modules || {};
1265
- if (modules[library]) {
1266
- return modules[library];
1266
+ if (modules[libraryName]) {
1267
+ return modules[libraryName];
1267
1268
  }
1268
1269
  if (!isBrowser2) {
1269
- return `modules/${moduleName}/dist/libs/${library}`;
1270
+ return `modules/${moduleName}/dist/libs/${libraryName}`;
1270
1271
  }
1271
1272
  if (options.CDN) {
1272
1273
  assert2(options.CDN.startsWith("http"));
1273
- return `${options.CDN}/${moduleName}@${VERSION2}/dist/libs/${library}`;
1274
+ return `${options.CDN}/${moduleName}@${VERSION2}/dist/libs/${libraryName}`;
1274
1275
  }
1275
1276
  if (isWorker) {
1276
- return `../src/libs/${library}`;
1277
+ return `../src/libs/${libraryName}`;
1277
1278
  }
1278
- return `modules/${moduleName}/src/libs/${library}`;
1279
+ return `modules/${moduleName}/src/libs/${libraryName}`;
1279
1280
  }
1280
1281
  async function loadLibraryFromFile(libraryUrl) {
1281
1282
  if (libraryUrl.endsWith("wasm")) {
@@ -2672,6 +2673,7 @@
2672
2673
  mimeType: void 0,
2673
2674
  nothrow: false,
2674
2675
  log: new ConsoleLog(),
2676
+ useLocalLibraries: false,
2675
2677
  CDN: "https://unpkg.com/@loaders.gl",
2676
2678
  worker: true,
2677
2679
  maxConcurrency: 3,
@@ -3252,12 +3254,12 @@
3252
3254
  // ../core/src/lib/loader-utils/get-fetch-function.ts
3253
3255
  function getFetchFunction(options, context) {
3254
3256
  const globalOptions = getGlobalLoaderOptions();
3255
- const fetchOptions = options || globalOptions;
3256
- if (typeof fetchOptions.fetch === "function") {
3257
- return fetchOptions.fetch;
3257
+ const loaderOptions = options || globalOptions;
3258
+ if (typeof loaderOptions.fetch === "function") {
3259
+ return loaderOptions.fetch;
3258
3260
  }
3259
- if (isObject(fetchOptions.fetch)) {
3260
- return (url) => fetchFile(url, fetchOptions);
3261
+ if (isObject(loaderOptions.fetch)) {
3262
+ return (url) => fetchFile(url, loaderOptions.fetch);
3261
3263
  }
3262
3264
  if (context?.fetch) {
3263
3265
  return context?.fetch;
@@ -7741,13 +7743,13 @@
7741
7743
  let wasmBinary;
7742
7744
  switch (options.draco && options.draco.decoderType) {
7743
7745
  case "js":
7744
- DracoDecoderModule = await loadLibrary(DRACO_JS_DECODER_URL, "draco", options);
7746
+ DracoDecoderModule = await loadLibrary(DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER], "draco", options, DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER);
7745
7747
  break;
7746
7748
  case "wasm":
7747
7749
  default:
7748
7750
  [DracoDecoderModule, wasmBinary] = await Promise.all([
7749
- await loadLibrary(DRACO_WASM_WRAPPER_URL, "draco", options),
7750
- await loadLibrary(DRACO_WASM_DECODER_URL, "draco", options)
7751
+ await loadLibrary(DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.DECODER], "draco", options, DRACO_EXTERNAL_LIBRARIES.DECODER),
7752
+ await loadLibrary(DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.DECODER_WASM], "draco", options, DRACO_EXTERNAL_LIBRARIES.DECODER_WASM)
7751
7753
  ]);
7752
7754
  }
7753
7755
  DracoDecoderModule = DracoDecoderModule || globalThis.DracoDecoderModule;
@@ -7765,17 +7767,25 @@
7765
7767
  });
7766
7768
  });
7767
7769
  }
7768
- var DRACO_DECODER_VERSION, DRACO_ENCODER_VERSION, STATIC_DECODER_URL, DRACO_JS_DECODER_URL, DRACO_WASM_WRAPPER_URL, DRACO_WASM_DECODER_URL, DRACO_ENCODER_URL, loadDecoderPromise;
7770
+ var DRACO_DECODER_VERSION, DRACO_ENCODER_VERSION, STATIC_DECODER_URL, DRACO_EXTERNAL_LIBRARIES, DRACO_EXTERNAL_LIBRARY_URLS, loadDecoderPromise;
7769
7771
  var init_draco_module_loader = __esm({
7770
7772
  "../draco/src/lib/draco-module-loader.ts"() {
7771
7773
  init_src();
7772
7774
  DRACO_DECODER_VERSION = "1.5.5";
7773
7775
  DRACO_ENCODER_VERSION = "1.4.1";
7774
7776
  STATIC_DECODER_URL = `https://www.gstatic.com/draco/versioned/decoders/${DRACO_DECODER_VERSION}`;
7775
- DRACO_JS_DECODER_URL = `${STATIC_DECODER_URL}/draco_decoder.js`;
7776
- DRACO_WASM_WRAPPER_URL = `${STATIC_DECODER_URL}/draco_wasm_wrapper.js`;
7777
- DRACO_WASM_DECODER_URL = `${STATIC_DECODER_URL}/draco_decoder.wasm`;
7778
- DRACO_ENCODER_URL = `https://raw.githubusercontent.com/google/draco/${DRACO_ENCODER_VERSION}/javascript/draco_encoder.js`;
7777
+ DRACO_EXTERNAL_LIBRARIES = {
7778
+ DECODER: "draco_wasm_wrapper.js",
7779
+ DECODER_WASM: "draco_decoder.wasm",
7780
+ FALLBACK_DECODER: "draco_decoder.js",
7781
+ ENCODER: "draco_encoder.js"
7782
+ };
7783
+ DRACO_EXTERNAL_LIBRARY_URLS = {
7784
+ [DRACO_EXTERNAL_LIBRARIES.DECODER]: `${STATIC_DECODER_URL}/${DRACO_EXTERNAL_LIBRARIES.DECODER}`,
7785
+ [DRACO_EXTERNAL_LIBRARIES.DECODER_WASM]: `${STATIC_DECODER_URL}/${DRACO_EXTERNAL_LIBRARIES.DECODER_WASM}`,
7786
+ [DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER]: `${STATIC_DECODER_URL}/${DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER}`,
7787
+ [DRACO_EXTERNAL_LIBRARIES.ENCODER]: `https://raw.githubusercontent.com/google/draco/${DRACO_ENCODER_VERSION}/javascript/${DRACO_EXTERNAL_LIBRARIES.ENCODER}`
7788
+ };
7779
7789
  }
7780
7790
  });
7781
7791
 
@@ -7823,8 +7833,8 @@
7823
7833
  let BASIS = null;
7824
7834
  let wasmBinary = null;
7825
7835
  [BASIS, wasmBinary] = await Promise.all([
7826
- await loadLibrary("basis_transcoder.js", "textures", options),
7827
- await loadLibrary("basis_transcoder.wasm", "textures", options)
7836
+ await loadLibrary(BASIS_EXTERNAL_LIBRARIES.TRANSCODER, "textures", options),
7837
+ await loadLibrary(BASIS_EXTERNAL_LIBRARIES.TRANSCODER_WASM, "textures", options)
7828
7838
  ]);
7829
7839
  BASIS = BASIS || globalThis.BASIS;
7830
7840
  return await initializeBasisTranscoderModule(BASIS, wasmBinary);
@@ -7854,8 +7864,8 @@
7854
7864
  let BASIS_ENCODER = null;
7855
7865
  let wasmBinary = null;
7856
7866
  [BASIS_ENCODER, wasmBinary] = await Promise.all([
7857
- await loadLibrary(BASIS_CDN_ENCODER_JS, "textures", options),
7858
- await loadLibrary(BASIS_CDN_ENCODER_WASM, "textures", options)
7867
+ await loadLibrary(BASIS_EXTERNAL_LIBRARIES.ENCODER, "textures", options),
7868
+ await loadLibrary(BASIS_EXTERNAL_LIBRARIES.ENCODER_WASM, "textures", options)
7859
7869
  ]);
7860
7870
  BASIS_ENCODER = BASIS_ENCODER || globalThis.BASIS;
7861
7871
  return await initializeBasisEncoderModule(BASIS_ENCODER, wasmBinary);
@@ -7873,13 +7883,16 @@
7873
7883
  });
7874
7884
  });
7875
7885
  }
7876
- var VERSION8, BASIS_CDN_ENCODER_WASM, BASIS_CDN_ENCODER_JS, loadBasisTranscoderPromise, loadBasisEncoderPromise;
7886
+ var BASIS_EXTERNAL_LIBRARIES, loadBasisTranscoderPromise, loadBasisEncoderPromise;
7877
7887
  var init_basis_module_loader = __esm({
7878
7888
  "../textures/src/lib/parsers/basis-module-loader.ts"() {
7879
7889
  init_src();
7880
- VERSION8 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "beta";
7881
- BASIS_CDN_ENCODER_WASM = `https://unpkg.com/@loaders.gl/textures@${VERSION8}/dist/libs/basis_encoder.wasm`;
7882
- BASIS_CDN_ENCODER_JS = `https://unpkg.com/@loaders.gl/textures@${VERSION8}/dist/libs/basis_encoder.js`;
7890
+ BASIS_EXTERNAL_LIBRARIES = {
7891
+ TRANSCODER: "basis_transcoder.js",
7892
+ TRANSCODER_WASM: "basis_transcoder.wasm",
7893
+ ENCODER: "basis_encoder.js",
7894
+ ENCODER_WASM: "basis_encoder.wasm"
7895
+ };
7883
7896
  }
7884
7897
  });
7885
7898
 
@@ -9025,20 +9038,20 @@
9025
9038
  }
9026
9039
  return value;
9027
9040
  }
9028
- var VERSION9, EMPTY_VALUE, REJECTED_STATUS, I3SAttributeLoader;
9041
+ var VERSION8, EMPTY_VALUE, REJECTED_STATUS, I3SAttributeLoader;
9029
9042
  var init_i3s_attribute_loader = __esm({
9030
9043
  "src/i3s-attribute-loader.ts"() {
9031
9044
  init_src3();
9032
9045
  init_parse_i3s_attribute();
9033
9046
  init_url_utils2();
9034
- VERSION9 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
9047
+ VERSION8 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
9035
9048
  EMPTY_VALUE = "";
9036
9049
  REJECTED_STATUS = "rejected";
9037
9050
  I3SAttributeLoader = {
9038
9051
  name: "I3S Attribute",
9039
9052
  id: "i3s-attribute",
9040
9053
  module: "i3s",
9041
- version: VERSION9,
9054
+ version: VERSION8,
9042
9055
  mimeTypes: ["application/binary"],
9043
9056
  parse: async (arrayBuffer, options) => parseI3STileAttribute(arrayBuffer, options),
9044
9057
  extensions: ["bin"],
@@ -9521,17 +9534,17 @@
9521
9534
  }
9522
9535
  return await parseI3STileContent(data, tileOptions, tilesetOptions, options, context);
9523
9536
  }
9524
- var VERSION10, I3SContentLoader;
9537
+ var VERSION9, I3SContentLoader;
9525
9538
  var init_i3s_content_loader = __esm({
9526
9539
  "src/i3s-content-loader.ts"() {
9527
9540
  init_parse_i3s_tile_content();
9528
- VERSION10 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "beta";
9541
+ VERSION9 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "beta";
9529
9542
  I3SContentLoader = {
9530
9543
  name: "I3S Content (Indexed Scene Layers)",
9531
9544
  id: "i3s-content",
9532
9545
  module: "i3s",
9533
9546
  worker: true,
9534
- version: VERSION10,
9547
+ version: VERSION9,
9535
9548
  mimeTypes: ["application/octet-stream"],
9536
9549
  parse: parse3,
9537
9550
  extensions: ["bin"],
@@ -10135,15 +10148,15 @@
10135
10148
  async function parseNodePage(data, options) {
10136
10149
  return JSON.parse(new TextDecoder().decode(data));
10137
10150
  }
10138
- var VERSION11, I3SNodePageLoader;
10151
+ var VERSION10, I3SNodePageLoader;
10139
10152
  var init_i3s_node_page_loader = __esm({
10140
10153
  "src/i3s-node-page-loader.ts"() {
10141
- VERSION11 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
10154
+ VERSION10 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
10142
10155
  I3SNodePageLoader = {
10143
10156
  name: "I3S Node Page",
10144
10157
  id: "i3s-node-page",
10145
10158
  module: "i3s",
10146
- version: VERSION11,
10159
+ version: VERSION10,
10147
10160
  mimeTypes: ["application/json"],
10148
10161
  parse: parseNodePage,
10149
10162
  extensions: ["json"],
@@ -10407,6 +10420,7 @@
10407
10420
  }
10408
10421
  return {
10409
10422
  ...tileset,
10423
+ loader: I3SLoader,
10410
10424
  url,
10411
10425
  basePath: url,
10412
10426
  type: TILESET_TYPE.I3S,
@@ -10478,14 +10492,14 @@
10478
10492
  }
10479
10493
  return null;
10480
10494
  }
10481
- var VERSION12, TILESET_REGEX, TILE_HEADER_REGEX, SLPK_HEX, POINT_CLOUD, I3SLoader;
10495
+ var VERSION11, TILESET_REGEX, TILE_HEADER_REGEX, SLPK_HEX, POINT_CLOUD, I3SLoader;
10482
10496
  var init_i3s_loader = __esm({
10483
10497
  "src/i3s-loader.ts"() {
10484
10498
  init_src3();
10485
10499
  init_i3s_content_loader();
10486
10500
  init_parse_i3s();
10487
10501
  init_constants();
10488
- VERSION12 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
10502
+ VERSION11 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
10489
10503
  TILESET_REGEX = /layers\/[0-9]+$/;
10490
10504
  TILE_HEADER_REGEX = /nodes\/([0-9-]+|root)$/;
10491
10505
  SLPK_HEX = "504b0304";
@@ -10494,7 +10508,7 @@
10494
10508
  name: "I3S (Indexed Scene Layers)",
10495
10509
  id: "i3s",
10496
10510
  module: "i3s",
10497
- version: VERSION12,
10511
+ version: VERSION11,
10498
10512
  mimeTypes: ["application/octet-stream"],
10499
10513
  parse: parseI3S,
10500
10514
  extensions: ["bin"],
@@ -10518,6 +10532,264 @@
10518
10532
  }
10519
10533
  });
10520
10534
 
10535
+ // ../zip/src/parse-zip/cd-file-header.ts
10536
+ var offsets, signature, parseZipCDFileHeader;
10537
+ var init_cd_file_header = __esm({
10538
+ "../zip/src/parse-zip/cd-file-header.ts"() {
10539
+ offsets = {
10540
+ CD_COMPRESSED_SIZE_OFFSET: 20n,
10541
+ CD_UNCOMPRESSED_SIZE_OFFSET: 24n,
10542
+ CD_FILE_NAME_LENGTH_OFFSET: 28n,
10543
+ CD_EXTRA_FIELD_LENGTH_OFFSET: 30n,
10544
+ CD_LOCAL_HEADER_OFFSET_OFFSET: 42n,
10545
+ CD_FILE_NAME_OFFSET: 46n
10546
+ };
10547
+ signature = [80, 75, 1, 2];
10548
+ parseZipCDFileHeader = async (headerOffset, buffer) => {
10549
+ if (Buffer.from(await buffer.slice(headerOffset, headerOffset + 4n)).compare(Buffer.from(signature)) !== 0) {
10550
+ return null;
10551
+ }
10552
+ let compressedSize = BigInt(await buffer.getUint32(headerOffset + offsets.CD_COMPRESSED_SIZE_OFFSET));
10553
+ let uncompressedSize = BigInt(await buffer.getUint32(headerOffset + offsets.CD_UNCOMPRESSED_SIZE_OFFSET));
10554
+ const extraFieldLength = await buffer.getUint16(headerOffset + offsets.CD_EXTRA_FIELD_LENGTH_OFFSET);
10555
+ const fileNameLength = await buffer.getUint16(headerOffset + offsets.CD_FILE_NAME_LENGTH_OFFSET);
10556
+ const fileName = new TextDecoder().decode(await buffer.slice(headerOffset + offsets.CD_FILE_NAME_OFFSET, headerOffset + offsets.CD_FILE_NAME_OFFSET + BigInt(fileNameLength)));
10557
+ const extraOffset = headerOffset + offsets.CD_FILE_NAME_OFFSET + BigInt(fileNameLength);
10558
+ const oldFormatOffset = await buffer.getUint32(headerOffset + offsets.CD_LOCAL_HEADER_OFFSET_OFFSET);
10559
+ let fileDataOffset = BigInt(oldFormatOffset);
10560
+ let offsetInZip64Data = 4n;
10561
+ if (uncompressedSize === BigInt(4294967295)) {
10562
+ uncompressedSize = await buffer.getBigUint64(extraOffset + offsetInZip64Data);
10563
+ offsetInZip64Data += 8n;
10564
+ }
10565
+ if (compressedSize === BigInt(4294967295)) {
10566
+ compressedSize = await buffer.getBigUint64(extraOffset + offsetInZip64Data);
10567
+ offsetInZip64Data += 8n;
10568
+ }
10569
+ if (fileDataOffset === BigInt(4294967295)) {
10570
+ fileDataOffset = await buffer.getBigUint64(extraOffset + offsetInZip64Data);
10571
+ }
10572
+ const localHeaderOffset = fileDataOffset;
10573
+ return {
10574
+ compressedSize,
10575
+ uncompressedSize,
10576
+ extraFieldLength,
10577
+ fileNameLength,
10578
+ fileName,
10579
+ extraOffset,
10580
+ localHeaderOffset
10581
+ };
10582
+ };
10583
+ }
10584
+ });
10585
+
10586
+ // ../zip/src/parse-zip/local-file-header.ts
10587
+ var offsets2, signature2, parseZipLocalFileHeader;
10588
+ var init_local_file_header = __esm({
10589
+ "../zip/src/parse-zip/local-file-header.ts"() {
10590
+ offsets2 = {
10591
+ COMPRESSED_SIZE_OFFSET: 18n,
10592
+ UNCOMPRESSED_SIZE_OFFSET: 22n,
10593
+ FILE_NAME_LENGTH_OFFSET: 26n,
10594
+ EXTRA_FIELD_LENGTH_OFFSET: 28n,
10595
+ FILE_NAME_OFFSET: 30n
10596
+ };
10597
+ signature2 = Buffer.from([80, 75, 3, 4]);
10598
+ parseZipLocalFileHeader = async (headerOffset, buffer) => {
10599
+ if (Buffer.from(await buffer.slice(headerOffset, headerOffset + 4n)).compare(signature2) !== 0) {
10600
+ return null;
10601
+ }
10602
+ const fileNameLength = await buffer.getUint16(headerOffset + offsets2.FILE_NAME_LENGTH_OFFSET);
10603
+ const fileName = new TextDecoder().decode(await buffer.slice(headerOffset + offsets2.FILE_NAME_OFFSET, headerOffset + offsets2.FILE_NAME_OFFSET + BigInt(fileNameLength))).split("\\").join("/");
10604
+ const extraFieldLength = await buffer.getUint16(headerOffset + offsets2.EXTRA_FIELD_LENGTH_OFFSET);
10605
+ let fileDataOffset = headerOffset + offsets2.FILE_NAME_OFFSET + BigInt(fileNameLength + extraFieldLength);
10606
+ let compressedSize = BigInt(await buffer.getUint32(headerOffset + offsets2.COMPRESSED_SIZE_OFFSET));
10607
+ let uncompressedSize = BigInt(await buffer.getUint32(headerOffset + offsets2.UNCOMPRESSED_SIZE_OFFSET));
10608
+ const extraOffset = headerOffset + offsets2.FILE_NAME_OFFSET + BigInt(fileNameLength);
10609
+ let offsetInZip64Data = 4n;
10610
+ if (uncompressedSize === BigInt(4294967295)) {
10611
+ uncompressedSize = await buffer.getBigUint64(extraOffset + offsetInZip64Data);
10612
+ offsetInZip64Data += 8n;
10613
+ }
10614
+ if (compressedSize === BigInt(4294967295)) {
10615
+ compressedSize = await buffer.getBigUint64(extraOffset + offsetInZip64Data);
10616
+ offsetInZip64Data += 8n;
10617
+ }
10618
+ if (fileDataOffset === BigInt(4294967295)) {
10619
+ fileDataOffset = await buffer.getBigUint64(extraOffset + offsetInZip64Data);
10620
+ }
10621
+ return {
10622
+ fileNameLength,
10623
+ fileName,
10624
+ extraFieldLength,
10625
+ fileDataOffset,
10626
+ compressedSize
10627
+ };
10628
+ };
10629
+ }
10630
+ });
10631
+
10632
+ // ../zip/src/parse-zip/search-from-the-end.ts
10633
+ var searchFromTheEnd;
10634
+ var init_search_from_the_end = __esm({
10635
+ "../zip/src/parse-zip/search-from-the-end.ts"() {
10636
+ searchFromTheEnd = async (file, target) => {
10637
+ const searchWindow = [
10638
+ await file.getUint8(file.length - 1n),
10639
+ await file.getUint8(file.length - 2n),
10640
+ await file.getUint8(file.length - 3n),
10641
+ void 0
10642
+ ];
10643
+ let targetOffset = 0n;
10644
+ for (let i2 = file.length - 4n; i2 > -1; i2--) {
10645
+ searchWindow[3] = searchWindow[2];
10646
+ searchWindow[2] = searchWindow[1];
10647
+ searchWindow[1] = searchWindow[0];
10648
+ searchWindow[0] = await file.getUint8(i2);
10649
+ if (searchWindow.every((val, index) => val === target[index])) {
10650
+ targetOffset = i2;
10651
+ break;
10652
+ }
10653
+ }
10654
+ return targetOffset;
10655
+ };
10656
+ }
10657
+ });
10658
+
10659
+ // ../zip/src/parse-zip/end-of-central-directory.ts
10660
+ var eoCDSignature, zip64EoCDLocatorSignature, zip64EoCDSignature, offsets3, parseEoCDRecord;
10661
+ var init_end_of_central_directory = __esm({
10662
+ "../zip/src/parse-zip/end-of-central-directory.ts"() {
10663
+ init_search_from_the_end();
10664
+ eoCDSignature = [80, 75, 5, 6];
10665
+ zip64EoCDLocatorSignature = Buffer.from([80, 75, 6, 7]);
10666
+ zip64EoCDSignature = Buffer.from([80, 75, 6, 6]);
10667
+ offsets3 = {
10668
+ CD_RECORDS_NUMBER_OFFSET: 8n,
10669
+ CD_START_OFFSET_OFFSET: 16n,
10670
+ ZIP64_EOCD_START_OFFSET_OFFSET: 8n,
10671
+ ZIP64_CD_RECORDS_NUMBER_OFFSET: 24n,
10672
+ ZIP64_CD_START_OFFSET_OFFSET: 48n
10673
+ };
10674
+ parseEoCDRecord = async (fileProvider) => {
10675
+ const zipEoCDOffset = await searchFromTheEnd(fileProvider, eoCDSignature);
10676
+ let cdRecordsNumber = BigInt(await fileProvider.getUint16(zipEoCDOffset + offsets3.CD_RECORDS_NUMBER_OFFSET));
10677
+ let cdStartOffset = BigInt(await fileProvider.getUint32(zipEoCDOffset + offsets3.CD_START_OFFSET_OFFSET));
10678
+ if (cdStartOffset === BigInt(4294967295) || cdRecordsNumber === BigInt(4294967295)) {
10679
+ const zip64EoCDLocatorOffset = zipEoCDOffset - 20n;
10680
+ if (Buffer.from(await fileProvider.slice(zip64EoCDLocatorOffset, zip64EoCDLocatorOffset + 4n)).compare(zip64EoCDLocatorSignature) !== 0) {
10681
+ throw new Error("zip64 EoCD locator not found");
10682
+ }
10683
+ const zip64EoCDOffset = await fileProvider.getBigUint64(zip64EoCDLocatorOffset + offsets3.ZIP64_EOCD_START_OFFSET_OFFSET);
10684
+ if (Buffer.from(await fileProvider.slice(zip64EoCDOffset, zip64EoCDOffset + 4n)).compare(zip64EoCDSignature) !== 0) {
10685
+ throw new Error("zip64 EoCD not found");
10686
+ }
10687
+ cdRecordsNumber = await fileProvider.getBigUint64(zip64EoCDOffset + offsets3.ZIP64_CD_RECORDS_NUMBER_OFFSET);
10688
+ cdStartOffset = await fileProvider.getBigUint64(zip64EoCDOffset + offsets3.ZIP64_CD_START_OFFSET_OFFSET);
10689
+ }
10690
+ return {
10691
+ cdRecordsNumber,
10692
+ cdStartOffset
10693
+ };
10694
+ };
10695
+ }
10696
+ });
10697
+
10698
+ // ../zip/src/parse-zip/data-view-file.ts
10699
+ var toNumber, DataViewFile;
10700
+ var init_data_view_file = __esm({
10701
+ "../zip/src/parse-zip/data-view-file.ts"() {
10702
+ toNumber = (bigint) => {
10703
+ if (bigint > Number.MAX_SAFE_INTEGER) {
10704
+ throw new Error("Offset is out of bounds");
10705
+ }
10706
+ return Number(bigint);
10707
+ };
10708
+ DataViewFile = class {
10709
+ constructor(file) {
10710
+ this.file = file;
10711
+ }
10712
+ async getUint8(offset) {
10713
+ return this.file.getUint8(toNumber(offset));
10714
+ }
10715
+ async getUint16(offset) {
10716
+ return this.file.getUint16(toNumber(offset), true);
10717
+ }
10718
+ async getUint32(offset) {
10719
+ return this.file.getUint32(toNumber(offset), true);
10720
+ }
10721
+ async getBigUint64(offset) {
10722
+ return this.file.getBigUint64(toNumber(offset), true);
10723
+ }
10724
+ async slice(startOffset, endOffset) {
10725
+ return this.file.buffer.slice(toNumber(startOffset), toNumber(endOffset));
10726
+ }
10727
+ get length() {
10728
+ return BigInt(this.file.byteLength);
10729
+ }
10730
+ };
10731
+ }
10732
+ });
10733
+
10734
+ // ../zip/src/hash-file-utility.ts
10735
+ var compareHashes, parseHashFile, findBin;
10736
+ var init_hash_file_utility = __esm({
10737
+ "../zip/src/hash-file-utility.ts"() {
10738
+ compareHashes = (hash1, hash2) => {
10739
+ const h1 = new BigUint64Array(hash1.buffer, hash1.byteOffset, 2);
10740
+ const h2 = new BigUint64Array(hash2.buffer, hash2.byteOffset, 2);
10741
+ const diff = h1[0] === h2[0] ? h1[1] - h2[1] : h1[0] - h2[0];
10742
+ if (diff < 0n) {
10743
+ return -1;
10744
+ } else if (diff === 0n) {
10745
+ return 0;
10746
+ }
10747
+ return 1;
10748
+ };
10749
+ parseHashFile = (hashFile) => {
10750
+ const hashFileBuffer = Buffer.from(hashFile);
10751
+ const hashArray = [];
10752
+ for (let i2 = 0; i2 < hashFileBuffer.buffer.byteLength; i2 = i2 + 24) {
10753
+ const offsetBuffer = new DataView(hashFileBuffer.buffer.slice(hashFileBuffer.byteOffset + i2 + 16, hashFileBuffer.byteOffset + i2 + 24));
10754
+ const offset = offsetBuffer.getBigUint64(offsetBuffer.byteOffset, true);
10755
+ hashArray.push({
10756
+ hash: Buffer.from(hashFileBuffer.subarray(hashFileBuffer.byteOffset + i2, hashFileBuffer.byteOffset + i2 + 16)),
10757
+ offset
10758
+ });
10759
+ }
10760
+ return hashArray;
10761
+ };
10762
+ findBin = (hashToSearch, hashArray) => {
10763
+ let lowerBorder = 0;
10764
+ let upperBorder = hashArray.length;
10765
+ while (upperBorder - lowerBorder > 1) {
10766
+ const middle = lowerBorder + Math.floor((upperBorder - lowerBorder) / 2);
10767
+ const value = compareHashes(hashArray[middle].hash, hashToSearch);
10768
+ if (value === 0) {
10769
+ return hashArray[middle];
10770
+ } else if (value < 0) {
10771
+ lowerBorder = middle;
10772
+ } else {
10773
+ upperBorder = middle;
10774
+ }
10775
+ }
10776
+ return void 0;
10777
+ };
10778
+ }
10779
+ });
10780
+
10781
+ // ../zip/src/index.ts
10782
+ var init_src9 = __esm({
10783
+ "../zip/src/index.ts"() {
10784
+ init_cd_file_header();
10785
+ init_local_file_header();
10786
+ init_end_of_central_directory();
10787
+ init_search_from_the_end();
10788
+ init_data_view_file();
10789
+ init_hash_file_utility();
10790
+ }
10791
+ });
10792
+
10521
10793
  // ../../node_modules/crypt/crypt.js
10522
10794
  var require_crypt = __commonJS({
10523
10795
  "../../node_modules/crypt/crypt.js"(exports, module) {
@@ -10756,169 +11028,6 @@
10756
11028
  }
10757
11029
  });
10758
11030
 
10759
- // src/lib/parsers/parse-zip/cd-file-header.ts
10760
- var offsets, signature, parseZipCDFileHeader;
10761
- var init_cd_file_header = __esm({
10762
- "src/lib/parsers/parse-zip/cd-file-header.ts"() {
10763
- offsets = {
10764
- CD_COMPRESSED_SIZE_OFFSET: 20n,
10765
- CD_UNCOMPRESSED_SIZE_OFFSET: 24n,
10766
- CD_FILE_NAME_LENGTH_OFFSET: 28n,
10767
- CD_EXTRA_FIELD_LENGTH_OFFSET: 30n,
10768
- CD_LOCAL_HEADER_OFFSET_OFFSET: 42n,
10769
- CD_FILE_NAME_OFFSET: 46n
10770
- };
10771
- signature = [80, 75, 1, 2];
10772
- parseZipCDFileHeader = async (headerOffset, buffer) => {
10773
- if (Buffer.from(await buffer.slice(headerOffset, headerOffset + 4n)).compare(Buffer.from(signature)) !== 0) {
10774
- return null;
10775
- }
10776
- let compressedSize = BigInt(await buffer.getUint32(headerOffset + offsets.CD_COMPRESSED_SIZE_OFFSET));
10777
- let uncompressedSize = BigInt(await buffer.getUint32(headerOffset + offsets.CD_UNCOMPRESSED_SIZE_OFFSET));
10778
- const extraFieldLength = await buffer.getUint16(headerOffset + offsets.CD_EXTRA_FIELD_LENGTH_OFFSET);
10779
- const fileNameLength = await buffer.getUint16(headerOffset + offsets.CD_FILE_NAME_LENGTH_OFFSET);
10780
- const fileName = new TextDecoder().decode(await buffer.slice(headerOffset + offsets.CD_FILE_NAME_OFFSET, headerOffset + offsets.CD_FILE_NAME_OFFSET + BigInt(fileNameLength)));
10781
- const extraOffset = headerOffset + offsets.CD_FILE_NAME_OFFSET + BigInt(fileNameLength);
10782
- const oldFormatOffset = await buffer.getUint32(headerOffset + offsets.CD_LOCAL_HEADER_OFFSET_OFFSET);
10783
- let fileDataOffset = BigInt(oldFormatOffset);
10784
- let offsetInZip64Data = 4n;
10785
- if (uncompressedSize === BigInt(4294967295)) {
10786
- uncompressedSize = await buffer.getBigUint64(extraOffset + offsetInZip64Data);
10787
- offsetInZip64Data += 8n;
10788
- }
10789
- if (compressedSize === BigInt(4294967295)) {
10790
- compressedSize = await buffer.getBigUint64(extraOffset + offsetInZip64Data);
10791
- offsetInZip64Data += 8n;
10792
- }
10793
- if (fileDataOffset === BigInt(4294967295)) {
10794
- fileDataOffset = await buffer.getBigUint64(extraOffset + offsetInZip64Data);
10795
- }
10796
- const localHeaderOffset = fileDataOffset;
10797
- return {
10798
- compressedSize,
10799
- uncompressedSize,
10800
- extraFieldLength,
10801
- fileNameLength,
10802
- fileName,
10803
- extraOffset,
10804
- localHeaderOffset
10805
- };
10806
- };
10807
- }
10808
- });
10809
-
10810
- // src/lib/parsers/parse-zip/search-from-the-end.ts
10811
- var searchFromTheEnd;
10812
- var init_search_from_the_end = __esm({
10813
- "src/lib/parsers/parse-zip/search-from-the-end.ts"() {
10814
- searchFromTheEnd = async (file, target) => {
10815
- const searchWindow = [
10816
- await file.getUint8(file.length - 1n),
10817
- await file.getUint8(file.length - 2n),
10818
- await file.getUint8(file.length - 3n),
10819
- void 0
10820
- ];
10821
- let targetOffset = 0n;
10822
- for (let i2 = file.length - 4n; i2 > -1; i2--) {
10823
- searchWindow[3] = searchWindow[2];
10824
- searchWindow[2] = searchWindow[1];
10825
- searchWindow[1] = searchWindow[0];
10826
- searchWindow[0] = await file.getUint8(i2);
10827
- if (searchWindow.every((val, index) => val === target[index])) {
10828
- targetOffset = i2;
10829
- break;
10830
- }
10831
- }
10832
- return targetOffset;
10833
- };
10834
- }
10835
- });
10836
-
10837
- // src/lib/parsers/parse-zip/end-of-central-directory.ts
10838
- var eoCDSignature, zip64EoCDLocatorSignature, zip64EoCDSignature, offsets2, parseEoCDRecord;
10839
- var init_end_of_central_directory = __esm({
10840
- "src/lib/parsers/parse-zip/end-of-central-directory.ts"() {
10841
- init_search_from_the_end();
10842
- eoCDSignature = [80, 75, 5, 6];
10843
- zip64EoCDLocatorSignature = Buffer.from([80, 75, 6, 7]);
10844
- zip64EoCDSignature = Buffer.from([80, 75, 6, 6]);
10845
- offsets2 = {
10846
- CD_RECORDS_NUMBER_OFFSET: 8n,
10847
- CD_START_OFFSET_OFFSET: 16n,
10848
- ZIP64_EOCD_START_OFFSET_OFFSET: 8n,
10849
- ZIP64_CD_RECORDS_NUMBER_OFFSET: 24n,
10850
- ZIP64_CD_START_OFFSET_OFFSET: 48n
10851
- };
10852
- parseEoCDRecord = async (fileProvider) => {
10853
- const zipEoCDOffset = await searchFromTheEnd(fileProvider, eoCDSignature);
10854
- let cdRecordsNumber = BigInt(await fileProvider.getUint16(zipEoCDOffset + offsets2.CD_RECORDS_NUMBER_OFFSET));
10855
- let cdStartOffset = BigInt(await fileProvider.getUint32(zipEoCDOffset + offsets2.CD_START_OFFSET_OFFSET));
10856
- if (cdStartOffset === BigInt(4294967295) || cdRecordsNumber === BigInt(4294967295)) {
10857
- const zip64EoCDLocatorOffset = zipEoCDOffset - 20n;
10858
- if (Buffer.from(await fileProvider.slice(zip64EoCDLocatorOffset, zip64EoCDLocatorOffset + 4n)).compare(zip64EoCDLocatorSignature) !== 0) {
10859
- throw new Error("zip64 EoCD locator not found");
10860
- }
10861
- const zip64EoCDOffset = await fileProvider.getBigUint64(zip64EoCDLocatorOffset + offsets2.ZIP64_EOCD_START_OFFSET_OFFSET);
10862
- if (Buffer.from(await fileProvider.slice(zip64EoCDOffset, zip64EoCDOffset + 4n)).compare(zip64EoCDSignature) !== 0) {
10863
- throw new Error("zip64 EoCD not found");
10864
- }
10865
- cdRecordsNumber = await fileProvider.getBigUint64(zip64EoCDOffset + offsets2.ZIP64_CD_RECORDS_NUMBER_OFFSET);
10866
- cdStartOffset = await fileProvider.getBigUint64(zip64EoCDOffset + offsets2.ZIP64_CD_START_OFFSET_OFFSET);
10867
- }
10868
- return {
10869
- cdRecordsNumber,
10870
- cdStartOffset
10871
- };
10872
- };
10873
- }
10874
- });
10875
-
10876
- // src/lib/parsers/parse-zip/local-file-header.ts
10877
- var offsets3, signature2, parseZipLocalFileHeader;
10878
- var init_local_file_header = __esm({
10879
- "src/lib/parsers/parse-zip/local-file-header.ts"() {
10880
- offsets3 = {
10881
- COMPRESSED_SIZE_OFFSET: 18n,
10882
- UNCOMPRESSED_SIZE_OFFSET: 22n,
10883
- FILE_NAME_LENGTH_OFFSET: 26n,
10884
- EXTRA_FIELD_LENGTH_OFFSET: 28n,
10885
- FILE_NAME_OFFSET: 30n
10886
- };
10887
- signature2 = Buffer.from([80, 75, 3, 4]);
10888
- parseZipLocalFileHeader = async (headerOffset, buffer) => {
10889
- if (Buffer.from(await buffer.slice(headerOffset, headerOffset + 4n)).compare(signature2) !== 0) {
10890
- return null;
10891
- }
10892
- const fileNameLength = await buffer.getUint16(headerOffset + offsets3.FILE_NAME_LENGTH_OFFSET);
10893
- const fileName = new TextDecoder().decode(await buffer.slice(headerOffset + offsets3.FILE_NAME_OFFSET, headerOffset + offsets3.FILE_NAME_OFFSET + BigInt(fileNameLength))).split("\\").join("/");
10894
- const extraFieldLength = await buffer.getUint16(headerOffset + offsets3.EXTRA_FIELD_LENGTH_OFFSET);
10895
- let fileDataOffset = headerOffset + offsets3.FILE_NAME_OFFSET + BigInt(fileNameLength + extraFieldLength);
10896
- let compressedSize = BigInt(await buffer.getUint32(headerOffset + offsets3.COMPRESSED_SIZE_OFFSET));
10897
- let uncompressedSize = BigInt(await buffer.getUint32(headerOffset + offsets3.UNCOMPRESSED_SIZE_OFFSET));
10898
- const extraOffset = headerOffset + offsets3.FILE_NAME_OFFSET + BigInt(fileNameLength);
10899
- let offsetInZip64Data = 4n;
10900
- if (uncompressedSize === BigInt(4294967295)) {
10901
- uncompressedSize = await buffer.getBigUint64(extraOffset + offsetInZip64Data);
10902
- offsetInZip64Data += 8n;
10903
- }
10904
- if (compressedSize === BigInt(4294967295)) {
10905
- compressedSize = await buffer.getBigUint64(extraOffset + offsetInZip64Data);
10906
- offsetInZip64Data += 8n;
10907
- }
10908
- if (fileDataOffset === BigInt(4294967295)) {
10909
- fileDataOffset = await buffer.getBigUint64(extraOffset + offsetInZip64Data);
10910
- }
10911
- return {
10912
- fileNameLength,
10913
- fileName,
10914
- extraFieldLength,
10915
- fileDataOffset,
10916
- compressedSize
10917
- };
10918
- };
10919
- }
10920
- });
10921
-
10922
11031
  // ../compression/src/lib/compression.ts
10923
11032
  var Compression;
10924
11033
  var init_compression = __esm({
@@ -15200,30 +15309,19 @@
15200
15309
  });
15201
15310
 
15202
15311
  // ../compression/src/index.ts
15203
- var init_src9 = __esm({
15312
+ var init_src10 = __esm({
15204
15313
  "../compression/src/index.ts"() {
15205
15314
  init_gzip_compression();
15206
15315
  }
15207
15316
  });
15208
15317
 
15209
15318
  // src/lib/parsers/parse-slpk/slpk-archieve.ts
15210
- var import_md5, compareHashes, PATH_DESCRIPTIONS, SLPKArchive;
15319
+ var import_md5, PATH_DESCRIPTIONS, SLPKArchive;
15211
15320
  var init_slpk_archieve = __esm({
15212
15321
  "src/lib/parsers/parse-slpk/slpk-archieve.ts"() {
15213
15322
  import_md5 = __toModule(require_md5());
15214
- init_local_file_header();
15215
15323
  init_src9();
15216
- compareHashes = (hash1, hash2) => {
15217
- const h1 = new BigUint64Array(hash1.buffer, hash1.byteOffset, 2);
15218
- const h2 = new BigUint64Array(hash2.buffer, hash2.byteOffset, 2);
15219
- const diff = h1[0] === h2[0] ? h1[1] - h2[1] : h1[0] - h2[0];
15220
- if (diff < 0n) {
15221
- return -1;
15222
- } else if (diff === 0n) {
15223
- return 0;
15224
- }
15225
- return 1;
15226
- };
15324
+ init_src10();
15227
15325
  PATH_DESCRIPTIONS = [
15228
15326
  {
15229
15327
  test: /^$/,
@@ -15260,22 +15358,6 @@
15260
15358
  ];
15261
15359
  SLPKArchive = class {
15262
15360
  constructor(slpkArchive, hashFile) {
15263
- this.findBin = (hashToSearch) => {
15264
- let lowerBorder = 0;
15265
- let upperBorder = this.hashArray.length;
15266
- while (upperBorder - lowerBorder > 1) {
15267
- const middle = lowerBorder + Math.floor((upperBorder - lowerBorder) / 2);
15268
- const value = compareHashes(this.hashArray[middle].hash, hashToSearch);
15269
- if (value === 0) {
15270
- return this.hashArray[middle];
15271
- } else if (value < 0) {
15272
- lowerBorder = middle;
15273
- } else {
15274
- upperBorder = middle;
15275
- }
15276
- }
15277
- return void 0;
15278
- };
15279
15361
  this.slpkArchive = slpkArchive;
15280
15362
  this.hashArray = hashFile;
15281
15363
  }
@@ -15324,7 +15406,7 @@
15324
15406
  }
15325
15407
  async getFileBytes(path) {
15326
15408
  const nameHash = Buffer.from((0, import_md5.default)(path), "hex");
15327
- const fileInfo = this.findBin(nameHash);
15409
+ const fileInfo = findBin(nameHash, this.hashArray);
15328
15410
  if (!fileInfo) {
15329
15411
  return void 0;
15330
15412
  }
@@ -15335,19 +15417,19 @@
15335
15417
  const compressedFile = this.slpkArchive.slice(localFileHeader.fileDataOffset, localFileHeader.fileDataOffset + localFileHeader.compressedSize);
15336
15418
  return compressedFile;
15337
15419
  }
15420
+ findBin(nameHash) {
15421
+ throw new Error("Method not implemented.");
15422
+ }
15338
15423
  };
15339
15424
  }
15340
15425
  });
15341
15426
 
15342
15427
  // src/lib/parsers/parse-slpk/parse-slpk.ts
15343
- var import_md52, parseSLPK, generateHashInfo, parseHashFile;
15428
+ var import_md52, parseSLPK, generateHashInfo;
15344
15429
  var init_parse_slpk = __esm({
15345
15430
  "src/lib/parsers/parse-slpk/parse-slpk.ts"() {
15346
15431
  import_md52 = __toModule(require_md5());
15347
- init_cd_file_header();
15348
- init_end_of_central_directory();
15349
- init_local_file_header();
15350
- init_search_from_the_end();
15432
+ init_src9();
15351
15433
  init_slpk_archieve();
15352
15434
  parseSLPK = async (fileProvider, cb) => {
15353
15435
  const hashCDOffset = await searchFromTheEnd(fileProvider, signature);
@@ -15383,73 +15465,24 @@
15383
15465
  hashInfo.sort((a2, b) => compareHashes(a2.hash, b.hash));
15384
15466
  return hashInfo;
15385
15467
  };
15386
- parseHashFile = (hashFile) => {
15387
- const hashFileBuffer = Buffer.from(hashFile);
15388
- const hashArray = [];
15389
- for (let i2 = 0; i2 < hashFileBuffer.buffer.byteLength; i2 = i2 + 24) {
15390
- const offsetBuffer = new DataView(hashFileBuffer.buffer.slice(hashFileBuffer.byteOffset + i2 + 16, hashFileBuffer.byteOffset + i2 + 24));
15391
- const offset = offsetBuffer.getBigUint64(offsetBuffer.byteOffset, true);
15392
- hashArray.push({
15393
- hash: Buffer.from(hashFileBuffer.subarray(hashFileBuffer.byteOffset + i2, hashFileBuffer.byteOffset + i2 + 16)),
15394
- offset
15395
- });
15396
- }
15397
- return hashArray;
15398
- };
15399
- }
15400
- });
15401
-
15402
- // src/lib/parsers/parse-zip/data-view-file-provider.ts
15403
- var toNumber, DataViewFileProvider;
15404
- var init_data_view_file_provider = __esm({
15405
- "src/lib/parsers/parse-zip/data-view-file-provider.ts"() {
15406
- toNumber = (bigint) => {
15407
- if (bigint > Number.MAX_SAFE_INTEGER) {
15408
- throw new Error("Offset is out of bounds");
15409
- }
15410
- return Number(bigint);
15411
- };
15412
- DataViewFileProvider = class {
15413
- constructor(file) {
15414
- this.file = file;
15415
- }
15416
- async getUint8(offset) {
15417
- return this.file.getUint8(toNumber(offset));
15418
- }
15419
- async getUint16(offset) {
15420
- return this.file.getUint16(toNumber(offset), true);
15421
- }
15422
- async getUint32(offset) {
15423
- return this.file.getUint32(toNumber(offset), true);
15424
- }
15425
- async getBigUint64(offset) {
15426
- return this.file.getBigUint64(toNumber(offset), true);
15427
- }
15428
- async slice(startOffset, endOffset) {
15429
- return this.file.buffer.slice(toNumber(startOffset), toNumber(endOffset));
15430
- }
15431
- get length() {
15432
- return BigInt(this.file.byteLength);
15433
- }
15434
- };
15435
15468
  }
15436
15469
  });
15437
15470
 
15438
15471
  // src/i3s-slpk-loader.ts
15439
15472
  async function parseSLPK2(data, options = {}) {
15440
- return (await parseSLPK(new DataViewFileProvider(new DataView(data)))).getFile(options.slpk?.path ?? "", options.slpk?.pathMode);
15473
+ return (await parseSLPK(new DataViewFile(new DataView(data)))).getFile(options.slpk?.path ?? "", options.slpk?.pathMode);
15441
15474
  }
15442
- var VERSION13, SLPKLoader;
15475
+ var VERSION12, SLPKLoader;
15443
15476
  var init_i3s_slpk_loader = __esm({
15444
15477
  "src/i3s-slpk-loader.ts"() {
15478
+ init_src9();
15445
15479
  init_parse_slpk();
15446
- init_data_view_file_provider();
15447
- VERSION13 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
15480
+ VERSION12 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
15448
15481
  SLPKLoader = {
15449
15482
  name: "I3S SLPK (Scene Layer Package)",
15450
15483
  id: "slpk",
15451
15484
  module: "i3s",
15452
- version: VERSION13,
15485
+ version: VERSION12,
15453
15486
  mimeTypes: ["application/octet-stream"],
15454
15487
  parse: parseSLPK2,
15455
15488
  extensions: ["slpk"],
@@ -15502,16 +15535,16 @@
15502
15535
  }
15503
15536
  return parseBuildingSceneLayer(data, context.url);
15504
15537
  }
15505
- var VERSION14, I3SBuildingSceneLayerLoader;
15538
+ var VERSION13, I3SBuildingSceneLayerLoader;
15506
15539
  var init_i3s_building_scene_layer_loader = __esm({
15507
15540
  "src/i3s-building-scene-layer-loader.ts"() {
15508
15541
  init_parse_i3s_building_scene_layer();
15509
- VERSION14 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "beta";
15542
+ VERSION13 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "beta";
15510
15543
  I3SBuildingSceneLayerLoader = {
15511
15544
  name: "I3S Building Scene Layer",
15512
15545
  id: "i3s-building-scene-layer",
15513
15546
  module: "i3s",
15514
- version: VERSION14,
15547
+ version: VERSION13,
15515
15548
  mimeTypes: ["application/json"],
15516
15549
  parse: parse4,
15517
15550
  extensions: ["json"],
@@ -15592,16 +15625,16 @@
15592
15625
  async function parse5(data) {
15593
15626
  return parseWebscene(data);
15594
15627
  }
15595
- var VERSION15, ArcGisWebSceneLoader;
15628
+ var VERSION14, ArcGisWebSceneLoader;
15596
15629
  var init_arcgis_webscene_loader = __esm({
15597
15630
  "src/arcgis-webscene-loader.ts"() {
15598
15631
  init_parse_arcgis_webscene();
15599
- VERSION15 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "beta";
15632
+ VERSION14 = typeof __VERSION__ !== "undefined" ? __VERSION__ : "beta";
15600
15633
  ArcGisWebSceneLoader = {
15601
15634
  name: "ArcGIS Web Scene Loader",
15602
15635
  id: "arcgis-web-scene",
15603
15636
  module: "i3s",
15604
- version: VERSION15,
15637
+ version: VERSION14,
15605
15638
  mimeTypes: ["application/json"],
15606
15639
  parse: parse5,
15607
15640
  extensions: ["json"],
@@ -15622,10 +15655,9 @@
15622
15655
  I3SNodePageLoader: () => I3SNodePageLoader,
15623
15656
  SLPKLoader: () => SLPKLoader,
15624
15657
  loadFeatureAttributes: () => loadFeatureAttributes,
15625
- parseSLPK: () => parseSLPK,
15626
- parseZipLocalFileHeader: () => parseZipLocalFileHeader
15658
+ parseSLPK: () => parseSLPK
15627
15659
  });
15628
- var init_src10 = __esm({
15660
+ var init_src11 = __esm({
15629
15661
  "src/index.ts"() {
15630
15662
  init_constants();
15631
15663
  init_i3s_loader();
@@ -15635,7 +15667,6 @@
15635
15667
  init_i3s_building_scene_layer_loader();
15636
15668
  init_i3s_node_page_loader();
15637
15669
  init_arcgis_webscene_loader();
15638
- init_local_file_header();
15639
15670
  init_parse_slpk();
15640
15671
  }
15641
15672
  });
@@ -15643,7 +15674,7 @@
15643
15674
  // src/bundle.ts
15644
15675
  var require_bundle = __commonJS({
15645
15676
  "src/bundle.ts"(exports, module) {
15646
- var moduleExports = (init_src10(), src_exports);
15677
+ var moduleExports = (init_src11(), src_exports);
15647
15678
  globalThis.loaders = globalThis.loaders || {};
15648
15679
  module.exports = Object.assign(globalThis.loaders, moduleExports);
15649
15680
  }