@loaders.gl/i3s 4.0.0-alpha.21 → 4.0.0-alpha.22

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 (32) hide show
  1. package/dist/dist.min.js +43 -30
  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-loader.js.map +1 -1
  8. package/dist/es5/i3s-node-page-loader.js +1 -1
  9. package/dist/es5/i3s-slpk-loader.js +1 -1
  10. package/dist/es5/lib/parsers/parse-i3s-tile-content.js +34 -31
  11. package/dist/es5/lib/parsers/parse-i3s-tile-content.js.map +1 -1
  12. package/dist/esm/arcgis-webscene-loader.js +1 -1
  13. package/dist/esm/i3s-attribute-loader.js +1 -1
  14. package/dist/esm/i3s-building-scene-layer-loader.js +1 -1
  15. package/dist/esm/i3s-content-loader.js +1 -1
  16. package/dist/esm/i3s-loader.js +1 -1
  17. package/dist/esm/i3s-loader.js.map +1 -1
  18. package/dist/esm/i3s-node-page-loader.js +1 -1
  19. package/dist/esm/i3s-slpk-loader.js +1 -1
  20. package/dist/esm/lib/parsers/parse-i3s-tile-content.js +5 -2
  21. package/dist/esm/lib/parsers/parse-i3s-tile-content.js.map +1 -1
  22. package/dist/i3s-content-worker-node.js +39 -39
  23. package/dist/i3s-content-worker-node.js.map +3 -3
  24. package/dist/i3s-content-worker.js +34 -21
  25. package/dist/i3s-loader.d.ts +1 -2
  26. package/dist/i3s-loader.d.ts.map +1 -1
  27. package/dist/lib/parsers/parse-i3s-tile-content.d.ts +1 -1
  28. package/dist/lib/parsers/parse-i3s-tile-content.d.ts.map +1 -1
  29. package/dist/lib/parsers/parse-i3s-tile-content.js +6 -3
  30. package/package.json +9 -9
  31. package/src/i3s-loader.ts +1 -2
  32. package/src/lib/parsers/parse-i3s-tile-content.ts +6 -4
@@ -38,6 +38,11 @@
38
38
  }
39
39
  });
40
40
 
41
+ // ../loader-utils/src/loader-types.ts
42
+ async function parseFromContext(data, loaders, options, context) {
43
+ return context._parse(data, loaders, options, context);
44
+ }
45
+
41
46
  // ../loader-utils/src/lib/env-utils/assert.ts
42
47
  function assert(condition, message) {
43
48
  if (!condition) {
@@ -61,7 +66,7 @@
61
66
  var nodeVersion = matches && parseFloat(matches[1]) || 0;
62
67
 
63
68
  // ../worker-utils/src/lib/env-utils/version.ts
64
- var VERSION = true ? "4.0.0-alpha.21" : DEFAULT_VERSION;
69
+ var VERSION = true ? "4.0.0-alpha.22" : DEFAULT_VERSION;
65
70
  if (false) {
66
71
  console.error("loaders.gl: The __VERSION__ variable is not injected using babel plugin. Latest unstable workers would be fetched from the CDN.");
67
72
  }
@@ -659,7 +664,7 @@
659
664
  options,
660
665
  context: {
661
666
  ...context,
662
- parse: parseOnMainThread
667
+ _parse: parseOnMainThread
663
668
  }
664
669
  });
665
670
  WorkerBody.postMessage("done", { result });
@@ -672,7 +677,7 @@
672
677
  }
673
678
  };
674
679
  }
675
- function parseOnMainThread(arrayBuffer, options) {
680
+ function parseOnMainThread(arrayBuffer, loader, options, context) {
676
681
  return new Promise((resolve2, reject) => {
677
682
  const id = requestId++;
678
683
  const onMessage2 = (type, payload2) => {
@@ -696,7 +701,12 @@
696
701
  WorkerBody.postMessage("process", payload);
697
702
  });
698
703
  }
699
- async function parseData({ loader, arrayBuffer, options, context }) {
704
+ async function parseData({
705
+ loader,
706
+ arrayBuffer,
707
+ options,
708
+ context
709
+ }) {
700
710
  let data;
701
711
  let parser;
702
712
  if (loader.parseSync || loader.parse) {
@@ -1262,7 +1272,7 @@
1262
1272
  var navigator_ = globalThis.navigator || {};
1263
1273
 
1264
1274
  // ../../node_modules/@probe.gl/log/node_modules/@probe.gl/env/dist/utils/globals.js
1265
- var VERSION3 = true ? "4.0.0-alpha.21" : "untranspiled source";
1275
+ var VERSION3 = true ? "4.0.0-alpha.22" : "untranspiled source";
1266
1276
  var isBrowser4 = isBrowser3();
1267
1277
 
1268
1278
  // ../../node_modules/@probe.gl/log/dist/utils/local-storage.js
@@ -1843,11 +1853,11 @@
1843
1853
  loaders._state = loaders._state || {};
1844
1854
  return loaders._state;
1845
1855
  }
1846
- var getGlobalLoaderOptions = () => {
1856
+ function getGlobalLoaderOptions() {
1847
1857
  const state = getGlobalLoaderState();
1848
1858
  state.globalOptions = state.globalOptions || { ...DEFAULT_LOADER_OPTIONS };
1849
1859
  return state.globalOptions;
1850
- };
1860
+ }
1851
1861
  function normalizeOptions(options, loader, loaders, url) {
1852
1862
  loaders = loaders || [];
1853
1863
  loaders = Array.isArray(loaders) ? loaders : [loaders];
@@ -2030,8 +2040,10 @@
2030
2040
  reason = reason || (loader ? `matched MIME type ${type}` : "");
2031
2041
  loader = loader || findLoaderByInitialBytes(loaders, data);
2032
2042
  reason = reason || (loader ? `matched initial data ${getFirstCharacters(data)}` : "");
2033
- loader = loader || findLoaderByMIMEType(loaders, options?.fallbackMimeType);
2034
- reason = reason || (loader ? `matched fallback MIME type ${type}` : "");
2043
+ if (options?.fallbackMimeType) {
2044
+ loader = loader || findLoaderByMIMEType(loaders, options?.fallbackMimeType);
2045
+ reason = reason || (loader ? `matched fallback MIME type ${type}` : "");
2046
+ }
2035
2047
  if (reason) {
2036
2048
  log.log(1, `selectLoader selected ${loader?.name}: ${reason}.`);
2037
2049
  }
@@ -2127,7 +2139,7 @@
2127
2139
  }
2128
2140
  switch (typeof test) {
2129
2141
  case "function":
2130
- return test(data, loader);
2142
+ return test(data);
2131
2143
  case "string":
2132
2144
  const magic = getMagicString(data, byteOffset, test.length);
2133
2145
  return test === magic;
@@ -2342,7 +2354,7 @@
2342
2354
  return newContext;
2343
2355
  }
2344
2356
  function getLoadersFromContext(loaders, context) {
2345
- if (!context && loaders && !Array.isArray(loaders)) {
2357
+ if (loaders && !Array.isArray(loaders)) {
2346
2358
  return loaders;
2347
2359
  }
2348
2360
  let candidateLoaders;
@@ -2353,12 +2365,11 @@
2353
2365
  const contextLoaders = Array.isArray(context.loaders) ? context.loaders : [context.loaders];
2354
2366
  candidateLoaders = candidateLoaders ? [...candidateLoaders, ...contextLoaders] : contextLoaders;
2355
2367
  }
2356
- return candidateLoaders && candidateLoaders.length ? candidateLoaders : null;
2368
+ return candidateLoaders && candidateLoaders.length ? candidateLoaders : void 0;
2357
2369
  }
2358
2370
 
2359
2371
  // ../core/src/lib/api/parse.ts
2360
2372
  async function parse(data, loaders, options, context) {
2361
- assert2(!context || typeof context === "object");
2362
2373
  if (loaders && !Array.isArray(loaders) && !isLoaderObject(loaders)) {
2363
2374
  context = void 0;
2364
2375
  options = loaders;
@@ -2374,7 +2385,7 @@
2374
2385
  return null;
2375
2386
  }
2376
2387
  options = normalizeOptions(options, loader, candidateLoaders, url);
2377
- context = getLoaderContext({ url, parse, loaders: candidateLoaders }, options, context || null);
2388
+ context = getLoaderContext({ url, _parse: parse, loaders: candidateLoaders }, options, context || null);
2378
2389
  return await parseWithLoader(loader, data, options, context);
2379
2390
  }
2380
2391
  async function parseWithLoader(loader, data, options, context) {
@@ -4611,7 +4622,7 @@
4611
4622
  _defineProperty(Ellipsoid, "WGS84", new Ellipsoid(WGS84_RADIUS_X, WGS84_RADIUS_Y, WGS84_RADIUS_Z));
4612
4623
 
4613
4624
  // ../images/src/lib/utils/version.ts
4614
- var VERSION4 = true ? "4.0.0-alpha.21" : "latest";
4625
+ var VERSION4 = true ? "4.0.0-alpha.22" : "latest";
4615
4626
 
4616
4627
  // ../images/src/lib/category-api/image-type.ts
4617
4628
  var { _parseImageNode } = globalThis;
@@ -5008,7 +5019,7 @@
5008
5019
  };
5009
5020
 
5010
5021
  // ../draco/src/lib/utils/version.ts
5011
- var VERSION5 = true ? "4.0.0-alpha.21" : "latest";
5022
+ var VERSION5 = true ? "4.0.0-alpha.22" : "latest";
5012
5023
 
5013
5024
  // ../draco/src/draco-loader.ts
5014
5025
  var DEFAULT_DRACO_OPTIONS = {
@@ -5561,7 +5572,7 @@
5561
5572
  }
5562
5573
 
5563
5574
  // ../textures/src/lib/utils/version.ts
5564
- var VERSION6 = true ? "4.0.0-alpha.21" : "beta";
5575
+ var VERSION6 = true ? "4.0.0-alpha.22" : "beta";
5565
5576
 
5566
5577
  // ../textures/src/lib/parsers/basis-module-loader.ts
5567
5578
  var BASIS_EXTERNAL_LIBRARIES = {
@@ -7253,7 +7264,7 @@
7253
7264
  }
7254
7265
 
7255
7266
  // src/i3s-attribute-loader.ts
7256
- var VERSION7 = true ? "4.0.0-alpha.21" : "latest";
7267
+ var VERSION7 = true ? "4.0.0-alpha.22" : "latest";
7257
7268
  var I3SAttributeLoader = {
7258
7269
  name: "I3S Attribute",
7259
7270
  id: "i3s-attribute",
@@ -7376,9 +7387,11 @@
7376
7387
  if (loader === ImageLoader) {
7377
7388
  const options2 = { ...tileOptions.textureLoaderOptions, image: { type: "data" } };
7378
7389
  try {
7379
- content.texture = await context.parse(arrayBuffer2, options2);
7390
+ const texture = await parseFromContext(arrayBuffer2, [], options2, context);
7391
+ content.texture = texture;
7380
7392
  } catch (e2) {
7381
- content.texture = await parse(arrayBuffer2, loader, options2);
7393
+ const texture = await parse(arrayBuffer2, loader, options2, context);
7394
+ content.texture = texture;
7382
7395
  }
7383
7396
  } else if (loader === CompressedTextureLoader || loader === BasisLoader) {
7384
7397
  let texture = await load(arrayBuffer2, loader, tileOptions.textureLoaderOptions);
@@ -7716,7 +7729,7 @@
7716
7729
  }
7717
7730
 
7718
7731
  // src/i3s-content-loader.ts
7719
- var VERSION8 = true ? "4.0.0-alpha.21" : "beta";
7732
+ var VERSION8 = true ? "4.0.0-alpha.22" : "beta";
7720
7733
  var I3SContentLoader = {
7721
7734
  name: "I3S Content (Indexed Scene Layers)",
7722
7735
  id: "i3s-content",
@@ -1,6 +1,5 @@
1
- import type { LoaderWithParser } from '@loaders.gl/loader-utils';
1
+ import type { LoaderWithParser, LoaderOptions } from '@loaders.gl/loader-utils';
2
2
  import { I3SParseOptions } from './types';
3
- import { LoaderOptions } from './../../loader-utils/src/types';
4
3
  export type I3SLoaderOptions = LoaderOptions & {
5
4
  i3s?: I3SParseOptions;
6
5
  };
@@ -1 +1 @@
1
- {"version":3,"file":"i3s-loader.d.ts","sourceRoot":"","sources":["../src/i3s-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAK/D,OAAO,EAAC,eAAe,EAAC,MAAM,SAAS,CAAC;AACxC,OAAO,EAAC,aAAa,EAAC,MAAM,gCAAgC,CAAC;AAW7D,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,GAAG,CAAC,EAAE,eAAe,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,gBAwBvB,CAAC"}
1
+ {"version":3,"file":"i3s-loader.d.ts","sourceRoot":"","sources":["../src/i3s-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,gBAAgB,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAK9E,OAAO,EAAC,eAAe,EAAC,MAAM,SAAS,CAAC;AAWxC,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,GAAG,CAAC,EAAE,eAAe,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,gBAwBvB,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { LoaderOptions, LoaderContext } from '@loaders.gl/loader-utils';
1
+ import { LoaderOptions, LoaderContext } from '@loaders.gl/loader-utils';
2
2
  import { I3STileContent, I3STileOptions, I3STilesetOptions } from '../../types';
3
3
  export declare function parseI3STileContent(arrayBuffer: ArrayBuffer, tileOptions: I3STileOptions, tilesetOptions: I3STilesetOptions, options?: LoaderOptions, context?: LoaderContext): Promise<I3STileContent>;
4
4
  //# sourceMappingURL=parse-i3s-tile-content.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-i3s-tile-content.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-i3s-tile-content.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,aAAa,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAK3E,OAAO,EAQL,cAAc,EACd,cAAc,EACd,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAyBrB,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,cAAc,EAC3B,cAAc,EAAE,iBAAiB,EACjC,OAAO,CAAC,EAAE,aAAa,EACvB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,cAAc,CAAC,CA8DzB"}
1
+ {"version":3,"file":"parse-i3s-tile-content.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-i3s-tile-content.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,aAAa,EAAE,aAAa,EAAmB,MAAM,0BAA0B,CAAC;AAKxF,OAAO,EAQL,cAAc,EACd,cAAc,EACd,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAyBrB,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,cAAc,EAC3B,cAAc,EAAE,iBAAiB,EACjC,OAAO,CAAC,EAAE,aAAa,EACvB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,cAAc,CAAC,CAgEzB"}
@@ -4,6 +4,7 @@ exports.parseI3STileContent = void 0;
4
4
  const core_1 = require("@loaders.gl/core");
5
5
  const core_2 = require("@math.gl/core");
6
6
  const geospatial_1 = require("@math.gl/geospatial");
7
+ const loader_utils_1 = require("@loaders.gl/loader-utils");
7
8
  const images_1 = require("@loaders.gl/images");
8
9
  const draco_1 = require("@loaders.gl/draco");
9
10
  const textures_1 = require("@loaders.gl/textures");
@@ -48,16 +49,18 @@ async function parseI3STileContent(arrayBuffer, tileOptions, tilesetOptions, opt
48
49
  if (loader === images_1.ImageLoader) {
49
50
  const options = { ...tileOptions.textureLoaderOptions, image: { type: 'data' } };
50
51
  try {
51
- // @ts-ignore context must be defined
52
52
  // Image constructor is not supported in worker thread.
53
53
  // Do parsing image data on the main thread by using context to avoid worker issues.
54
- content.texture = await context.parse(arrayBuffer, options);
54
+ const texture = await (0, loader_utils_1.parseFromContext)(arrayBuffer, [], options, context);
55
+ // @ts-expect-error
56
+ content.texture = texture;
55
57
  }
56
58
  catch (e) {
57
59
  // context object is different between worker and node.js conversion script.
58
60
  // To prevent error we parse data in ordinary way if it is not parsed by using context.
61
+ const texture = await (0, core_1.parse)(arrayBuffer, loader, options, context);
59
62
  // @ts-expect-error
60
- content.texture = await (0, core_1.parse)(arrayBuffer, loader, options);
63
+ content.texture = texture;
61
64
  }
62
65
  }
63
66
  else if (loader === textures_1.CompressedTextureLoader || loader === textures_1.BasisLoader) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loaders.gl/i3s",
3
- "version": "4.0.0-alpha.21",
3
+ "version": "4.0.0-alpha.22",
4
4
  "description": "i3s .",
5
5
  "license": "MIT",
6
6
  "publishConfig": {
@@ -33,13 +33,13 @@
33
33
  "build-worker-node": "esbuild src/workers/i3s-content-worker-node.ts --outfile=dist/i3s-content-worker-node.js --platform=node --target=node16 --minify --bundle --sourcemap --define:__VERSION__=\\\"$npm_package_version\\\""
34
34
  },
35
35
  "dependencies": {
36
- "@loaders.gl/compression": "4.0.0-alpha.21",
37
- "@loaders.gl/draco": "4.0.0-alpha.21",
38
- "@loaders.gl/images": "4.0.0-alpha.21",
39
- "@loaders.gl/loader-utils": "4.0.0-alpha.21",
40
- "@loaders.gl/schema": "4.0.0-alpha.21",
41
- "@loaders.gl/textures": "4.0.0-alpha.21",
42
- "@loaders.gl/tiles": "4.0.0-alpha.21",
36
+ "@loaders.gl/compression": "4.0.0-alpha.22",
37
+ "@loaders.gl/draco": "4.0.0-alpha.22",
38
+ "@loaders.gl/images": "4.0.0-alpha.22",
39
+ "@loaders.gl/loader-utils": "4.0.0-alpha.22",
40
+ "@loaders.gl/schema": "4.0.0-alpha.22",
41
+ "@loaders.gl/textures": "4.0.0-alpha.22",
42
+ "@loaders.gl/tiles": "4.0.0-alpha.22",
43
43
  "@luma.gl/constants": "^8.5.4",
44
44
  "@math.gl/core": "^3.5.1",
45
45
  "@math.gl/culling": "^3.5.1",
@@ -49,5 +49,5 @@
49
49
  "peerDependencies": {
50
50
  "@loaders.gl/core": "^4.0.0-alpha.8"
51
51
  },
52
- "gitHead": "df5d670b136192b26941396e944f9c46be788e83"
52
+ "gitHead": "0da838c506d1275383f2fd3d244d9c72b25397d2"
53
53
  }
package/src/i3s-loader.ts CHANGED
@@ -1,10 +1,9 @@
1
- import type {LoaderWithParser} from '@loaders.gl/loader-utils';
1
+ import type {LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';
2
2
  import {parse} from '@loaders.gl/core';
3
3
  import {I3SContentLoader} from './i3s-content-loader';
4
4
  import {normalizeTileData, normalizeTilesetData} from './lib/parsers/parse-i3s';
5
5
  import {COORDINATE_SYSTEM} from './lib/parsers/constants';
6
6
  import {I3SParseOptions} from './types';
7
- import {LoaderOptions} from './../../loader-utils/src/types';
8
7
 
9
8
  // __VERSION__ is injected by babel-plugin-version-inline
10
9
  // @ts-ignore TS2304: Cannot find name '__VERSION__'.
@@ -2,7 +2,7 @@ import type {TypedArray} from '@loaders.gl/schema';
2
2
  import {load, parse} from '@loaders.gl/core';
3
3
  import {Vector3, Matrix4} from '@math.gl/core';
4
4
  import {Ellipsoid} from '@math.gl/geospatial';
5
- import type {LoaderOptions, LoaderContext} from '@loaders.gl/loader-utils';
5
+ import {LoaderOptions, LoaderContext, parseFromContext} from '@loaders.gl/loader-utils';
6
6
  import {ImageLoader} from '@loaders.gl/images';
7
7
  import {DracoLoader, DracoMesh} from '@loaders.gl/draco';
8
8
  import {BasisLoader, CompressedTextureLoader} from '@loaders.gl/textures';
@@ -73,15 +73,17 @@ export async function parseI3STileContent(
73
73
  if (loader === ImageLoader) {
74
74
  const options = {...tileOptions.textureLoaderOptions, image: {type: 'data'}};
75
75
  try {
76
- // @ts-ignore context must be defined
77
76
  // Image constructor is not supported in worker thread.
78
77
  // Do parsing image data on the main thread by using context to avoid worker issues.
79
- content.texture = await context.parse(arrayBuffer, options);
78
+ const texture = await parseFromContext(arrayBuffer, [], options, context!);
79
+ // @ts-expect-error
80
+ content.texture = texture;
80
81
  } catch (e) {
81
82
  // context object is different between worker and node.js conversion script.
82
83
  // To prevent error we parse data in ordinary way if it is not parsed by using context.
84
+ const texture = await parse(arrayBuffer, loader, options, context);
83
85
  // @ts-expect-error
84
- content.texture = await parse(arrayBuffer, loader, options);
86
+ content.texture = texture;
85
87
  }
86
88
  } else if (loader === CompressedTextureLoader || loader === BasisLoader) {
87
89
  let texture = await load(arrayBuffer, loader, tileOptions.textureLoaderOptions);