@loaders.gl/i3s 4.4.0-alpha.2 → 4.4.0-alpha.9

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 (74) hide show
  1. package/README.md +1 -1
  2. package/dist/arcgis-webscene-loader.js +2 -1
  3. package/dist/arcgis-webscene-loader.js.map +1 -0
  4. package/dist/dist.dev.js +402 -298
  5. package/dist/dist.min.js +1 -1
  6. package/dist/i3s-attribute-loader.js +2 -1
  7. package/dist/i3s-attribute-loader.js.map +1 -0
  8. package/dist/i3s-building-scene-layer-loader.js +2 -1
  9. package/dist/i3s-building-scene-layer-loader.js.map +1 -0
  10. package/dist/i3s-content-loader.js +2 -1
  11. package/dist/i3s-content-loader.js.map +1 -0
  12. package/dist/i3s-content-worker-node.js +45 -45
  13. package/dist/i3s-content-worker-node.js.map +4 -4
  14. package/dist/i3s-content-worker.js +396 -159
  15. package/dist/i3s-loader.d.ts +13 -8
  16. package/dist/i3s-loader.d.ts.map +1 -1
  17. package/dist/i3s-loader.js +8 -7
  18. package/dist/i3s-loader.js.map +1 -0
  19. package/dist/i3s-node-page-loader.js +2 -1
  20. package/dist/i3s-node-page-loader.js.map +1 -0
  21. package/dist/i3s-slpk-loader.d.ts +6 -1
  22. package/dist/i3s-slpk-loader.d.ts.map +1 -1
  23. package/dist/i3s-slpk-loader.js +10 -4
  24. package/dist/i3s-slpk-loader.js.map +1 -0
  25. package/dist/index.cjs +35 -27
  26. package/dist/index.cjs.map +4 -4
  27. package/dist/index.js +1 -0
  28. package/dist/index.js.map +1 -0
  29. package/dist/lib/helpers/i3s-nodepages-tiles.js +5 -4
  30. package/dist/lib/helpers/i3s-nodepages-tiles.js.map +1 -0
  31. package/dist/lib/parsers/constants.js +1 -0
  32. package/dist/lib/parsers/constants.js.map +1 -0
  33. package/dist/lib/parsers/parse-arcgis-webscene.js +1 -0
  34. package/dist/lib/parsers/parse-arcgis-webscene.js.map +1 -0
  35. package/dist/lib/parsers/parse-i3s-attribute.js +1 -0
  36. package/dist/lib/parsers/parse-i3s-attribute.js.map +1 -0
  37. package/dist/lib/parsers/parse-i3s-building-scene-layer.js +1 -0
  38. package/dist/lib/parsers/parse-i3s-building-scene-layer.js.map +1 -0
  39. package/dist/lib/parsers/parse-i3s-tile-content.d.ts +2 -2
  40. package/dist/lib/parsers/parse-i3s-tile-content.d.ts.map +1 -1
  41. package/dist/lib/parsers/parse-i3s-tile-content.js +1 -0
  42. package/dist/lib/parsers/parse-i3s-tile-content.js.map +1 -0
  43. package/dist/lib/parsers/parse-i3s.d.ts.map +1 -1
  44. package/dist/lib/parsers/parse-i3s.js +6 -4
  45. package/dist/lib/parsers/parse-i3s.js.map +1 -0
  46. package/dist/lib/parsers/parse-slpk/parse-slpk.d.ts +3 -3
  47. package/dist/lib/parsers/parse-slpk/parse-slpk.d.ts.map +1 -1
  48. package/dist/lib/parsers/parse-slpk/parse-slpk.js +4 -3
  49. package/dist/lib/parsers/parse-slpk/parse-slpk.js.map +1 -0
  50. package/dist/lib/parsers/parse-slpk/slpk-archieve.d.ts +3 -3
  51. package/dist/lib/parsers/parse-slpk/slpk-archieve.d.ts.map +1 -1
  52. package/dist/lib/parsers/parse-slpk/slpk-archieve.js +5 -4
  53. package/dist/lib/parsers/parse-slpk/slpk-archieve.js.map +1 -0
  54. package/dist/lib/utils/convert-i3s-obb-to-mbs.js +1 -0
  55. package/dist/lib/utils/convert-i3s-obb-to-mbs.js.map +1 -0
  56. package/dist/lib/utils/customize-colors.js +5 -2
  57. package/dist/lib/utils/customize-colors.js.map +1 -0
  58. package/dist/lib/utils/url-utils.js +1 -0
  59. package/dist/lib/utils/url-utils.js.map +1 -0
  60. package/dist/types.js +1 -0
  61. package/dist/types.js.map +1 -0
  62. package/dist/workers/i3s-content-worker-node.js +1 -0
  63. package/dist/workers/i3s-content-worker-node.js.map +1 -0
  64. package/dist/workers/i3s-content-worker.js +1 -0
  65. package/dist/workers/i3s-content-worker.js.map +1 -0
  66. package/package.json +18 -12
  67. package/src/i3s-loader.ts +15 -10
  68. package/src/i3s-slpk-loader.ts +8 -3
  69. package/src/lib/helpers/i3s-nodepages-tiles.ts +4 -4
  70. package/src/lib/parsers/parse-i3s-tile-content.ts +2 -2
  71. package/src/lib/parsers/parse-i3s.ts +7 -4
  72. package/src/lib/parsers/parse-slpk/parse-slpk.ts +7 -5
  73. package/src/lib/parsers/parse-slpk/slpk-archieve.ts +7 -10
  74. package/src/lib/utils/customize-colors.ts +4 -2
@@ -1,9 +1,14 @@
1
- import type { LoaderOptions } from '@loaders.gl/loader-utils';
1
+ import type { StrictLoaderOptions } from '@loaders.gl/loader-utils';
2
2
  import type { I3STilesetHeader } from "./types.js";
3
3
  import { COORDINATE_SYSTEM } from "./lib/parsers/constants.js";
4
4
  import { I3SParseOptions } from "./types.js";
5
- export type I3SLoaderOptions = LoaderOptions & {
6
- i3s?: I3SParseOptions;
5
+ export type I3SLoaderOptions = StrictLoaderOptions & {
6
+ i3s?: I3SParseOptions & {
7
+ /** For I3SAttributeLoader */
8
+ attributeName?: string;
9
+ /** For I3SAttributeLoader */
10
+ attributeType?: string;
11
+ };
7
12
  };
8
13
  /**
9
14
  * Loader for I3S - Indexed 3D Scene Layer
@@ -20,13 +25,13 @@ export declare const I3SLoader: {
20
25
  readonly extensions: ["bin"];
21
26
  readonly options: {
22
27
  readonly i3s: {
23
- readonly token: null;
28
+ readonly token: undefined;
24
29
  readonly isTileset: "auto";
25
30
  readonly isTileHeader: "auto";
26
- readonly tile: null;
27
- readonly tileset: null;
28
- readonly _tileOptions: null;
29
- readonly _tilesetOptions: null;
31
+ readonly tile: undefined;
32
+ readonly tileset: undefined;
33
+ readonly _tileOptions: undefined;
34
+ readonly _tilesetOptions: undefined;
30
35
  readonly useDracoGeometry: true;
31
36
  readonly useCompressedTextures: true;
32
37
  readonly decodeTextures: true;
@@ -1 +1 @@
1
- {"version":3,"file":"i3s-loader.d.ts","sourceRoot":"","sources":["../src/i3s-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAmB,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAE9E,OAAO,KAAK,EAAC,gBAAgB,EAAC,mBAAgB;AAG9C,OAAO,EAAC,iBAAiB,EAAC,mCAAgC;AAC1D,OAAO,EAAC,eAAe,EAAC,mBAAgB;AAaxC,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,GAAG,CAAC,EAAE,eAAe,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS;uBACS,gBAAgB;wBAC1B,KAAK;;;;;;;;;;;;;;;;;;;;;;;CAwBmD,CAAC;AAE9E,iBAAe,QAAQ,CAAC,IAAI,KAAA,EAAE,OAAO,EAAE,gBAAgB,YAAK,EAAE,OAAO,KAAA,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAoChG"}
1
+ {"version":3,"file":"i3s-loader.d.ts","sourceRoot":"","sources":["../src/i3s-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAmB,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AAEpF,OAAO,KAAK,EAAC,gBAAgB,EAAC,mBAAgB;AAG9C,OAAO,EAAC,iBAAiB,EAAC,mCAAgC;AAC1D,OAAO,EAAC,eAAe,EAAC,mBAAgB;AAaxC,MAAM,MAAM,gBAAgB,GAAG,mBAAmB,GAAG;IACnD,GAAG,CAAC,EAAE,eAAe,GAAG;QACtB,6BAA6B;QAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,6BAA6B;QAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS;uBACS,gBAAgB;wBAC1B,KAAK;;;;;;;;;;;;;;;;;;;;;;;CAwBsD,CAAC;AAEjF,iBAAe,QAAQ,CAAC,IAAI,KAAA,EAAE,OAAO,EAAE,gBAAgB,YAAK,EAAE,OAAO,KAAA,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAoChG"}
@@ -8,7 +8,7 @@ import { COORDINATE_SYSTEM } from "./lib/parsers/constants.js";
8
8
  import { getUrlWithoutParams } from "./lib/utils/url-utils.js";
9
9
  // __VERSION__ is injected by babel-plugin-version-inline
10
10
  // @ts-ignore TS2304: Cannot find name '__VERSION__'.
11
- const VERSION = typeof "4.4.0-alpha.1" !== 'undefined' ? "4.4.0-alpha.1" : 'latest';
11
+ const VERSION = typeof "4.4.0-alpha.9" !== 'undefined' ? "4.4.0-alpha.9" : 'latest';
12
12
  const TILESET_REGEX = /layers\/[0-9]+$/;
13
13
  const LOCAL_SLPK_REGEX = /\.slpk$/;
14
14
  const TILE_HEADER_REGEX = /nodes\/([0-9-]+|root)$/;
@@ -29,13 +29,13 @@ export const I3SLoader = {
29
29
  extensions: ['bin'],
30
30
  options: {
31
31
  i3s: {
32
- token: null,
32
+ token: undefined,
33
33
  isTileset: 'auto',
34
34
  isTileHeader: 'auto',
35
- tile: null,
36
- tileset: null,
37
- _tileOptions: null,
38
- _tilesetOptions: null,
35
+ tile: undefined,
36
+ tileset: undefined,
37
+ _tileOptions: undefined,
38
+ _tilesetOptions: undefined,
39
39
  useDracoGeometry: true,
40
40
  useCompressedTextures: true,
41
41
  decodeTextures: true,
@@ -61,7 +61,7 @@ async function parseI3S(data, options = {}, context) {
61
61
  isTileset = options.i3s.isTileset;
62
62
  }
63
63
  let isTileHeader;
64
- if (options.isTileHeader === 'auto') {
64
+ if (options.i3s.isTileHeader === 'auto') {
65
65
  isTileHeader = TILE_HEADER_REGEX.test(urlWithoutParams);
66
66
  }
67
67
  else {
@@ -102,3 +102,4 @@ function getMagicNumber(data) {
102
102
  }
103
103
  return null;
104
104
  }
105
+ //# sourceMappingURL=i3s-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i3s-loader.js","sourceRoot":"","sources":["../src/i3s-loader.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  // Copyright vis.gl contributors
4
4
  // __VERSION__ is injected by babel-plugin-version-inline
5
5
  // @ts-ignore TS2304: Cannot find name '__VERSION__'.
6
- const VERSION = typeof "4.4.0-alpha.1" !== 'undefined' ? "4.4.0-alpha.1" : 'latest';
6
+ const VERSION = typeof "4.4.0-alpha.9" !== 'undefined' ? "4.4.0-alpha.9" : 'latest';
7
7
  /**
8
8
  * Loader for I3S node pages
9
9
  */
@@ -24,3 +24,4 @@ export const I3SNodePageLoader = {
24
24
  async function parseNodePage(data, options) {
25
25
  return JSON.parse(new TextDecoder().decode(data));
26
26
  }
27
+ //# sourceMappingURL=i3s-node-page-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i3s-node-page-loader.js","sourceRoot":"","sources":["../src/i3s-node-page-loader.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,gCAAgC;AAMhC,yDAAyD;AACzD,qDAAqD;AACrD,MAAM,OAAO,GAAG,sBAAkB,KAAK,WAAW,CAAC,CAAC,iBAAa,CAAC,CAAC,QAAQ,CAAC;AAE5E;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,QAAQ,EAAE,IAA2B;IACrC,SAAS,EAAE,IAAa;IAExB,IAAI,EAAE,eAAe;IACrB,EAAE,EAAE,eAAe;IACnB,MAAM,EAAE,KAAK;IACb,OAAO,EAAE,OAAO;IAChB,SAAS,EAAE,CAAC,kBAAkB,CAAC;IAC/B,KAAK,EAAE,aAAa;IACpB,UAAU,EAAE,CAAC,MAAM,CAAC;IACpB,OAAO,EAAE;QACP,GAAG,EAAE,EAAE;KACR;CACqE,CAAC;AAEzE,KAAK,UAAU,aAAa,CAAC,IAAiB,EAAE,OAAuB;IACrE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAa,CAAC;AAChE,CAAC"}
@@ -22,7 +22,12 @@ export declare const SLPKLoader: {
22
22
  readonly version: any;
23
23
  readonly mimeTypes: ["application/octet-stream"];
24
24
  readonly extensions: ["slpk"];
25
- readonly options: {};
25
+ readonly options: {
26
+ readonly slpk: {
27
+ readonly path: "";
28
+ readonly pathMode: undefined;
29
+ };
30
+ };
26
31
  readonly parse: (data: ArrayBuffer, options?: SLPKLoaderOptions) => Promise<ArrayBuffer>;
27
32
  };
28
33
  //# sourceMappingURL=i3s-slpk-loader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"i3s-slpk-loader.d.ts","sourceRoot":"","sources":["../src/i3s-slpk-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,aAAa,EAAmB,MAAM,0BAA0B,CAAC;AAQ9E,qCAAqC;AACrC,MAAM,MAAM,iBAAiB,GAAG,aAAa,GAAG;IAC9C,IAAI,CAAC,EAAE;QACL,mCAAmC;QACnC,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,uBAAuB;QACvB,QAAQ,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;KAC3B,CAAC;CACH,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,UAAU;uBACQ,WAAW;wBACrB,KAAK;;;;;;;;2BASJ,WAAW,YAAW,iBAAiB,KAAQ,OAAO,CAAC,WAAW,CAAC;CAIb,CAAC"}
1
+ {"version":3,"file":"i3s-slpk-loader.d.ts","sourceRoot":"","sources":["../src/i3s-slpk-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,aAAa,EAAmB,MAAM,0BAA0B,CAAC;AAQ9E,qCAAqC;AACrC,MAAM,MAAM,iBAAiB,GAAG,aAAa,GAAG;IAC9C,IAAI,CAAC,EAAE;QACL,mCAAmC;QACnC,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,uBAAuB;QACvB,QAAQ,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;KAC3B,CAAC;CACH,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,UAAU;uBACQ,WAAW;wBACrB,KAAK;;;;;;;;;;;;;2BAcJ,WAAW,YAAW,iBAAiB,KAAQ,OAAO,CAAC,WAAW,CAAC;CAIb,CAAC"}
@@ -1,11 +1,11 @@
1
1
  // loaders.gl
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright vis.gl contributors
4
- import { DataViewFile } from '@loaders.gl/loader-utils';
4
+ import { DataViewReadableFile } from '@loaders.gl/zip';
5
5
  import { parseSLPKArchive } from "./lib/parsers/parse-slpk/parse-slpk.js";
6
6
  // __VERSION__ is injected by babel-plugin-version-inline
7
7
  // @ts-ignore TS2304: Cannot find name '__VERSION__'.
8
- const VERSION = typeof "4.4.0-alpha.1" !== 'undefined' ? "4.4.0-alpha.1" : 'latest';
8
+ const VERSION = typeof "4.4.0-alpha.9" !== 'undefined' ? "4.4.0-alpha.9" : 'latest';
9
9
  /**
10
10
  * Loader for SLPK - Scene Layer Package (Archive I3S format)
11
11
  * @todo - this reloads the entire archive for every tile, should be optimized
@@ -20,9 +20,15 @@ export const SLPKLoader = {
20
20
  version: VERSION,
21
21
  mimeTypes: ['application/octet-stream'],
22
22
  extensions: ['slpk'],
23
- options: {},
23
+ options: {
24
+ slpk: {
25
+ path: '',
26
+ pathMode: undefined
27
+ }
28
+ },
24
29
  parse: async (data, options = {}) => {
25
- const archive = await parseSLPKArchive(new DataViewFile(new DataView(data)));
30
+ const archive = await parseSLPKArchive(new DataViewReadableFile(new DataView(data)));
26
31
  return archive.getFile(options.slpk?.path ?? '', options.slpk?.pathMode);
27
32
  }
28
33
  };
34
+ //# sourceMappingURL=i3s-slpk-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i3s-slpk-loader.js","sourceRoot":"","sources":["../src/i3s-slpk-loader.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,gCAAgC;AAGhC,OAAO,EAAC,oBAAoB,EAAC,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAC,gBAAgB,EAAC,+CAA4C;AAErE,yDAAyD;AACzD,qDAAqD;AACrD,MAAM,OAAO,GAAG,sBAAkB,KAAK,WAAW,CAAC,CAAC,iBAAa,CAAC,CAAC,QAAQ,CAAC;AAY5E;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,QAAQ,EAAE,IAA8B;IACxC,SAAS,EAAE,IAAa;IAExB,IAAI,EAAE,gCAAgC;IACtC,EAAE,EAAE,MAAM;IACV,MAAM,EAAE,KAAK;IACb,OAAO,EAAE,OAAO;IAChB,SAAS,EAAE,CAAC,0BAA0B,CAAC;IACvC,UAAU,EAAE,CAAC,MAAM,CAAC;IACpB,OAAO,EAAE;QACP,IAAI,EAAE;YACJ,IAAI,EAAE,EAAE;YACR,QAAQ,EAAE,SAAS;SACpB;KACF;IACD,KAAK,EAAE,KAAK,EAAE,IAAiB,EAAE,UAA6B,EAAE,EAAwB,EAAE;QACxF,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,IAAI,oBAAoB,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACrF,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC3E,CAAC;CACyE,CAAC"}
package/dist/index.cjs CHANGED
@@ -521,7 +521,7 @@ function getFeatureIdsFromFeatureIndexMetadata(featureIndex) {
521
521
  }
522
522
 
523
523
  // dist/i3s-content-loader.js
524
- var VERSION = true ? "4.4.0-alpha.1" : "latest";
524
+ var VERSION = true ? "4.4.0-alpha.9" : "latest";
525
525
  var I3SContentLoader = {
526
526
  dataType: null,
527
527
  batchType: null,
@@ -558,7 +558,7 @@ var import_core3 = require("@loaders.gl/core");
558
558
  var import_textures2 = require("@loaders.gl/textures");
559
559
 
560
560
  // dist/i3s-node-page-loader.js
561
- var VERSION2 = true ? "4.4.0-alpha.1" : "latest";
561
+ var VERSION2 = true ? "4.4.0-alpha.9" : "latest";
562
562
  var I3SNodePageLoader = {
563
563
  dataType: null,
564
564
  batchType: null,
@@ -698,7 +698,8 @@ var I3SNodePagesTiles = class {
698
698
  let result = null;
699
699
  const geometryDefinition = this.tileset.geometryDefinitions[meshGeometryData.definition];
700
700
  let geometryIndex = -1;
701
- if (this.options.i3s && this.options.i3s.useDracoGeometry) {
701
+ const i3sOptions = this.options.i3s;
702
+ if (i3sOptions && typeof i3sOptions === "object" && i3sOptions.useDracoGeometry) {
702
703
  geometryIndex = geometryDefinition.geometryBuffers.findIndex((buffer) => buffer.compressedAttributes && buffer.compressedAttributes.encoding === "draco");
703
704
  }
704
705
  if (geometryIndex === -1) {
@@ -792,7 +793,8 @@ var I3SNodePagesTiles = class {
792
793
  */
793
794
  getSupportedTextureFormats() {
794
795
  const formats = [];
795
- if (!this.options.i3s || this.options.i3s.useCompressedTextures) {
796
+ const i3sOptions = this.options.i3s;
797
+ if (!i3sOptions || i3sOptions.useCompressedTextures) {
796
798
  const supportedCompressedFormats = (0, import_textures2.getSupportedGPUTextureFormats)();
797
799
  if (supportedCompressedFormats.has("etc2")) {
798
800
  formats.push("ktx-etc2");
@@ -876,13 +878,12 @@ async function normalizeTilesetData(tileset, options, context) {
876
878
  nodePagesTile = new I3SNodePagesTiles(tileset, url, options);
877
879
  root = await nodePagesTile.formTileFromNodePages(0);
878
880
  } else {
879
- const parseOptions = options.i3s;
881
+ const parseOptions = options.i3s && typeof options.i3s === "object" ? options.i3s : {};
880
882
  const rootNodeUrl = getUrlWithToken(`${url}/nodes/root`, parseOptions.token);
881
883
  root = await (0, import_core4.load)(rootNodeUrl, I3SLoader, {
882
884
  ...options,
883
885
  i3s: {
884
- // @ts-expect-error options is not properly typed
885
- ...options.i3s,
886
+ ...parseOptions,
886
887
  loadContent: false,
887
888
  isTileHeader: true,
888
889
  isTileset: false
@@ -904,7 +905,7 @@ async function normalizeTilesetData(tileset, options, context) {
904
905
  }
905
906
 
906
907
  // dist/i3s-loader.js
907
- var VERSION3 = true ? "4.4.0-alpha.1" : "latest";
908
+ var VERSION3 = true ? "4.4.0-alpha.9" : "latest";
908
909
  var TILESET_REGEX = /layers\/[0-9]+$/;
909
910
  var LOCAL_SLPK_REGEX = /\.slpk$/;
910
911
  var TILE_HEADER_REGEX = /nodes\/([0-9-]+|root)$/;
@@ -922,13 +923,13 @@ var I3SLoader = {
922
923
  extensions: ["bin"],
923
924
  options: {
924
925
  i3s: {
925
- token: null,
926
+ token: void 0,
926
927
  isTileset: "auto",
927
928
  isTileHeader: "auto",
928
- tile: null,
929
- tileset: null,
930
- _tileOptions: null,
931
- _tilesetOptions: null,
929
+ tile: void 0,
930
+ tileset: void 0,
931
+ _tileOptions: void 0,
932
+ _tilesetOptions: void 0,
932
933
  useDracoGeometry: true,
933
934
  useCompressedTextures: true,
934
935
  decodeTextures: true,
@@ -951,7 +952,7 @@ async function parseI3S(data, options = {}, context) {
951
952
  isTileset = options.i3s.isTileset;
952
953
  }
953
954
  let isTileHeader;
954
- if (options.isTileHeader === "auto") {
955
+ if (options.i3s.isTileHeader === "auto") {
955
956
  isTileHeader = TILE_HEADER_REGEX.test(urlWithoutParams);
956
957
  } else {
957
958
  isTileHeader = options.i3s.isTileHeader;
@@ -988,7 +989,7 @@ function getMagicNumber(data) {
988
989
  }
989
990
 
990
991
  // dist/i3s-slpk-loader.js
991
- var import_loader_utils2 = require("@loaders.gl/loader-utils");
992
+ var import_zip3 = require("@loaders.gl/zip");
992
993
 
993
994
  // dist/lib/parsers/parse-slpk/parse-slpk.js
994
995
  var import_zip2 = require("@loaders.gl/zip");
@@ -1043,7 +1044,7 @@ var SLPKArchive = class extends import_zip.IndexedArchive {
1043
1044
  _md5Hash = new import_crypto.MD5Hash();
1044
1045
  /**
1045
1046
  * Constructor
1046
- * @param fileProvider - instance of a binary data reader
1047
+ * @param fileProvider - readable file handle for random access
1047
1048
  * @param hashTable - pre-loaded hashTable. If presented, getFile will skip reading the hash file
1048
1049
  * @param fileName - name of the archive. It is used to add to an URL of a loader context
1049
1050
  */
@@ -1120,11 +1121,11 @@ var SLPKArchive = class extends import_zip.IndexedArchive {
1120
1121
  if (offset === void 0) {
1121
1122
  return void 0;
1122
1123
  }
1123
- const localFileHeader = await (0, import_zip.parseZipLocalFileHeader)(offset, this.fileProvider);
1124
+ const localFileHeader = await (0, import_zip.parseZipLocalFileHeader)(offset, this.file);
1124
1125
  if (!localFileHeader) {
1125
1126
  return void 0;
1126
1127
  }
1127
- compressedFile = await this.fileProvider.slice(localFileHeader.fileDataOffset, localFileHeader.fileDataOffset + localFileHeader.compressedSize);
1128
+ compressedFile = await (0, import_zip.readRange)(this.file, localFileHeader.fileDataOffset, localFileHeader.fileDataOffset + localFileHeader.compressedSize);
1128
1129
  } else {
1129
1130
  try {
1130
1131
  compressedFile = await this.getFileWithoutHash(path);
@@ -1150,14 +1151,14 @@ async function parseSLPKArchive(fileProvider, cb, fileName) {
1150
1151
  throw new Error("corrupted SLPK");
1151
1152
  }
1152
1153
  const fileDataOffset = localFileHeader.fileDataOffset;
1153
- const hashFile = await fileProvider.slice(fileDataOffset, fileDataOffset + localFileHeader.compressedSize);
1154
+ const hashFile = await (0, import_zip2.readRange)(fileProvider, fileDataOffset, fileDataOffset + localFileHeader.compressedSize);
1154
1155
  hashTable = (0, import_zip2.parseHashTable)(hashFile);
1155
1156
  }
1156
1157
  return new SLPKArchive(fileProvider, hashTable, fileName);
1157
1158
  }
1158
1159
 
1159
1160
  // dist/i3s-slpk-loader.js
1160
- var VERSION4 = true ? "4.4.0-alpha.1" : "latest";
1161
+ var VERSION4 = true ? "4.4.0-alpha.9" : "latest";
1161
1162
  var SLPKLoader = {
1162
1163
  dataType: null,
1163
1164
  batchType: null,
@@ -1167,10 +1168,15 @@ var SLPKLoader = {
1167
1168
  version: VERSION4,
1168
1169
  mimeTypes: ["application/octet-stream"],
1169
1170
  extensions: ["slpk"],
1170
- options: {},
1171
+ options: {
1172
+ slpk: {
1173
+ path: "",
1174
+ pathMode: void 0
1175
+ }
1176
+ },
1171
1177
  parse: async (data, options = {}) => {
1172
1178
  var _a, _b;
1173
- const archive = await parseSLPKArchive(new import_loader_utils2.DataViewFile(new DataView(data)));
1179
+ const archive = await parseSLPKArchive(new import_zip3.DataViewReadableFile(new DataView(data)));
1174
1180
  return archive.getFile(((_a = options.slpk) == null ? void 0 : _a.path) ?? "", (_b = options.slpk) == null ? void 0 : _b.pathMode);
1175
1181
  }
1176
1182
  };
@@ -1236,7 +1242,7 @@ function parseStringsAttribute(arrayBuffer) {
1236
1242
  }
1237
1243
 
1238
1244
  // dist/i3s-attribute-loader.js
1239
- var VERSION5 = true ? "4.4.0-alpha.1" : "latest";
1245
+ var VERSION5 = true ? "4.4.0-alpha.9" : "latest";
1240
1246
  var EMPTY_VALUE = "";
1241
1247
  var REJECTED_STATUS = "rejected";
1242
1248
  var I3SAttributeLoader = {
@@ -1376,7 +1382,7 @@ function parseSublayersTree(sublayers, url) {
1376
1382
  }
1377
1383
 
1378
1384
  // dist/i3s-building-scene-layer-loader.js
1379
- var VERSION6 = true ? "4.4.0-alpha.1" : "latest";
1385
+ var VERSION6 = true ? "4.4.0-alpha.9" : "latest";
1380
1386
  var I3SBuildingSceneLayerLoader = {
1381
1387
  dataType: null,
1382
1388
  batchType: null,
@@ -1470,7 +1476,7 @@ async function checkSupportedIndexCRS(layer) {
1470
1476
  }
1471
1477
 
1472
1478
  // dist/arcgis-webscene-loader.js
1473
- var VERSION7 = true ? "4.4.0-alpha.1" : "latest";
1479
+ var VERSION7 = true ? "4.4.0-alpha.9" : "latest";
1474
1480
  var ArcGISWebSceneLoader = {
1475
1481
  dataType: null,
1476
1482
  batchType: null,
@@ -1556,8 +1562,10 @@ async function loadFeatureAttributeData(attributeName, attributeUrls, attributeS
1556
1562
  const objectIdAttributeUrl = getUrlWithToken(attributeUrls[attributeIndex], token);
1557
1563
  const attributeType = getAttributeValueType(attributeStorageInfo[attributeIndex]);
1558
1564
  const objectIdAttributeData = await (0, import_core8.load)(objectIdAttributeUrl, I3SAttributeLoader, {
1559
- attributeName,
1560
- attributeType
1565
+ i3s: {
1566
+ attributeName,
1567
+ attributeType
1568
+ }
1561
1569
  });
1562
1570
  return objectIdAttributeData;
1563
1571
  }