@loaders.gl/scene 5.0.0-beta.7 → 5.0.0-beta.8

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 (49) hide show
  1. package/dist/dist.dev.js +989 -211
  2. package/dist/dist.min.js +18 -18
  3. package/dist/draco/lib/draco-parser.cjs +8 -5
  4. package/dist/draco/lib/draco-parser.cjs.map +2 -2
  5. package/dist/draco/lib/draco-parser.d.ts +2 -1
  6. package/dist/draco/lib/draco-parser.d.ts.map +1 -1
  7. package/dist/draco/lib/draco-parser.js +6 -3
  8. package/dist/draco/lib/draco-parser.js.map +1 -1
  9. package/dist/draco/lib/parse-draco.cjs +2 -1
  10. package/dist/draco/lib/parse-draco.cjs.map +2 -2
  11. package/dist/draco/lib/parse-draco.d.ts.map +1 -1
  12. package/dist/draco/lib/parse-draco.js +2 -1
  13. package/dist/draco/lib/parse-draco.js.map +1 -1
  14. package/dist/draco/lib/utils/version.cjs +1 -1
  15. package/dist/draco/lib/utils/version.js +1 -1
  16. package/dist/draco-worker-node.js +933 -152
  17. package/dist/draco-worker-node.js.map +4 -4
  18. package/dist/draco-worker.js +830 -56
  19. package/dist/draco-worker.js.map +4 -4
  20. package/dist/draco-writer-worker-node.cjs +773 -186
  21. package/dist/draco-writer-worker-node.cjs.map +4 -4
  22. package/dist/draco-writer-worker.js +630 -46
  23. package/dist/draco-writer-worker.js.map +4 -4
  24. package/dist/gltf/lib/parsers/parse-gltf.cjs +8 -7
  25. package/dist/gltf/lib/parsers/parse-gltf.cjs.map +3 -3
  26. package/dist/gltf/lib/parsers/parse-gltf.d.ts.map +1 -1
  27. package/dist/gltf/lib/parsers/parse-gltf.js +3 -1
  28. package/dist/gltf/lib/parsers/parse-gltf.js.map +1 -1
  29. package/dist/gltf/lib/utils/version.cjs +1 -1
  30. package/dist/gltf/lib/utils/version.js +1 -1
  31. package/dist/mtl-loader-types.cjs +1 -1
  32. package/dist/obj/mtl-loader-types.cjs +1 -1
  33. package/dist/obj/mtl-loader-types.js +1 -1
  34. package/dist/obj/obj-loader-types.cjs +1 -1
  35. package/dist/obj/obj-loader-types.js +1 -1
  36. package/dist/obj/obj-writer.cjs +1 -1
  37. package/dist/obj/obj-writer.js +1 -1
  38. package/dist/obj-loader-types.cjs +1 -1
  39. package/dist/obj-worker.js +37 -1
  40. package/dist/obj-writer.cjs +1 -1
  41. package/dist/stl-loader-types.cjs +1 -1
  42. package/dist/stl-loader-types.js +1 -1
  43. package/dist/usd/usd-loader-types.cjs +1 -1
  44. package/dist/usd/usd-loader-types.js +1 -1
  45. package/dist/usd-loader-types.cjs +1 -1
  46. package/package.json +6 -6
  47. package/src/draco/lib/draco-parser.ts +6 -3
  48. package/src/draco/lib/parse-draco.ts +2 -1
  49. package/src/gltf/lib/parsers/parse-gltf.ts +2 -1
@@ -26,6 +26,7 @@ __export(parse_gltf_exports, {
26
26
  });
27
27
  module.exports = __toCommonJS(parse_gltf_exports);
28
28
  var import_loader_utils = require("@loaders.gl/core/loader-utils");
29
+ var import_loader_utils2 = require("@loaders.gl/core/loader-utils");
29
30
  var import_images = require("@loaders.gl/images");
30
31
  var import_images2 = require("@loaders.gl/images");
31
32
  var import_assert = require("../utils/assert.cjs");
@@ -55,7 +56,7 @@ async function parseGLTFWithExternalAssets(gltf, arrayBufferOrString, byteOffset
55
56
  parseGLTFContainerSync(gltf, arrayBufferOrString, byteOffset, options);
56
57
  const finishNormalization = (0, import_normalize_gltf_v1.normalizeGLTFV1WithDeferredBuffers)(gltf, {
57
58
  normalize: options?.gltf?.normalize,
58
- log: options?.core?.log
59
+ log: (0, import_loader_utils.getLoaderLog)(options)
59
60
  });
60
61
  await (0, import_gltf_extensions.preprocessExtensions)(gltf, options, context);
61
62
  if (options?.gltf?.loadBuffers && gltf.json.buffers) {
@@ -83,7 +84,7 @@ function parseGLTFContainerSync(gltf, data, byteOffset, options) {
83
84
  data = textDecoder.decode(data);
84
85
  }
85
86
  if (typeof data === "string") {
86
- gltf.json = (0, import_loader_utils.parseJSON)(data);
87
+ gltf.json = (0, import_loader_utils2.parseJSON)(data);
87
88
  } else if (data instanceof ArrayBuffer) {
88
89
  const glb = {};
89
90
  byteOffset = (0, import_parse_glb.parseGLBSync)(glb, data, byteOffset, options.glb);
@@ -201,7 +202,7 @@ async function loadExternalAsset(gltf, externalAssetIndex, options, context, sta
201
202
  if (assetKey) {
202
203
  childState.ancestors.add(assetKey);
203
204
  }
204
- const data = (0, import_loader_utils.sliceArrayBuffer)(file.arrayBuffer, file.byteOffset, file.byteLength);
205
+ const data = (0, import_loader_utils2.sliceArrayBuffer)(file.arrayBuffer, file.byteOffset, file.byteLength);
205
206
  parsedAsset = parseGLTFWithExternalAssets(
206
207
  {},
207
208
  data,
@@ -245,7 +246,7 @@ function createExternalAssetContext(parent, file, options, context, state) {
245
246
  const fileIndex = (0, import_resolve_gltf_file.findGLTFFileIndex)(parent, reference);
246
247
  (0, import_assert.assert)(fileIndex >= 0, `glTF package does not contain file ${reference}.`);
247
248
  const resolvedFile = await (0, import_resolve_gltf_file.resolveGLTFFile)(parent, fileIndex, options, context);
248
- const data = (0, import_loader_utils.sliceArrayBuffer)(
249
+ const data = (0, import_loader_utils2.sliceArrayBuffer)(
249
250
  resolvedFile.arrayBuffer,
250
251
  resolvedFile.byteOffset,
251
252
  resolvedFile.byteLength
@@ -334,7 +335,7 @@ async function loadImage(gltf, image, index, options, context) {
334
335
  }
335
336
  if (Number.isFinite(image.bufferView)) {
336
337
  const array = (0, import_get_typed_array.getTypedArrayForBufferView)(gltf.json, gltf.buffers, image.bufferView);
337
- arrayBuffer = (0, import_loader_utils.sliceArrayBuffer)(array.buffer, array.byteOffset, array.byteLength);
338
+ arrayBuffer = (0, import_loader_utils2.sliceArrayBuffer)(array.buffer, array.byteOffset, array.byteLength);
338
339
  }
339
340
  (0, import_assert.assert)(arrayBuffer, "glTF image has no data");
340
341
  const gltfOptions = getGLTFImageOptions(options, image.mimeType);
@@ -345,7 +346,7 @@ async function loadImage(gltf, image, index, options, context) {
345
346
  )
346
347
  );
347
348
  if (ddsSelected) {
348
- const levels = await (0, import_loader_utils.parseFromContext)(
349
+ const levels = await (0, import_loader_utils2.parseFromContext)(
349
350
  arrayBuffer,
350
351
  ddsLoader,
351
352
  options,
@@ -362,7 +363,7 @@ async function loadImage(gltf, image, index, options, context) {
362
363
  };
363
364
  return;
364
365
  }
365
- let parsedImage = await (0, import_loader_utils.parseFromContext)(
366
+ let parsedImage = await (0, import_loader_utils2.parseFromContext)(
366
367
  arrayBuffer,
367
368
  [import_images.ImageLoader, import_images2.BasisLoader],
368
369
  gltfOptions,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/gltf/lib/parsers/parse-gltf.ts"],
4
- "sourcesContent": ["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n/* eslint-disable camelcase, max-statements, no-restricted-globals */\nimport type {LoaderContext} from '@loaders.gl/core/loader-utils';\nimport type {GLTFLoaderOptions} from '../../gltf-loader-types';\nimport type {GLTF} from '../types/gltf-json-schema';\nimport type {GLTFExternalFile, GLTFWithBuffers} from '../types/gltf-types';\nimport type {GLB} from '../types/glb-types';\nimport type {ParseGLBOptions} from './parse-glb';\n\nimport type {ImageType, TextureLevel} from '@loaders.gl/core/schema';\nimport {parseJSON, sliceArrayBuffer, parseFromContext} from '@loaders.gl/core/loader-utils';\nimport {ImageLoader} from '@loaders.gl/images';\nimport {BasisLoader} from '@loaders.gl/images';\n\nimport {assert} from '../utils/assert';\nimport {isGLB, parseGLBSync} from './parse-glb';\nimport {canonicalizeUrl, resolveUrl} from '../gltf-utils/resolve-url';\nimport {findGLTFFileIndex, resolveGLTFFile} from '../gltf-utils/resolve-gltf-file';\nimport {getTypedArrayForBufferView} from '../gltf-utils/get-typed-array';\nimport {preprocessExtensions, decodeExtensions} from '../api/gltf-extensions';\nimport {getDDSLoader} from '../extensions/MSFT_texture_dds';\nimport {normalizeGLTFV1WithDeferredBuffers} from '../api/normalize-gltf-v1';\n\n/** */\nexport type ParseGLTFOptions = ParseGLBOptions & {\n /** Best-effort glTF 1 conversion; strict rejects reported unsupported features. @default true */\n normalize?: boolean | 'best-effort' | 'strict';\n loadImages?: boolean;\n /** Load encoded KHR_audio_emitter clips independently of loadBuffers, without playback. @default true */\n loadAudio?: boolean;\n /** Load linked and embedded buffers; required for meshopt decompression. @default true */\n loadBuffers?: boolean;\n /** @internal Restrict linked-buffer loading after the glTF JSON is available. */\n loadBufferIndices?: number[] | ((json: GLTF) => number[]);\n /** @internal Restrict meshopt decompression to selected buffer views. */\n decompressBufferViewIndices?: number[] | ((json: GLTF) => number[]);\n /** Resolve draft glTF 2.1 `files` entries. */\n loadFiles?: boolean;\n /** Recursively parse draft glTF 2.1 external assets referenced by nodes. */\n loadExternalAssets?: boolean;\n /** Decompress Draco, `EXT_meshopt_compression`, and `KHR_meshopt_compression` data. @default true */\n decompressMeshes?: boolean;\n /** Interpret missing metadata in legacy SPZ2 Gaussian primitives using this assumed color space. */\n legacyGaussianSplatColorSpace?: 'srgb_rec709_display' | 'lin_rec709_display';\n /** Optional decoder for embedded SPZ2 Gaussian payloads; bytes are explicitly in LUF coordinates. */\n splatDecoder?: (\n data: ArrayBuffer,\n options: {sourceCoordinateSystem: 'LUF'; targetCoordinateSystem?: string}\n ) => unknown | Promise<unknown>;\n excludeExtensions?: string[];\n};\n\n/**\n * Creates options for parsing an image referenced by a glTF asset.\n * Preserves automatic Basis format selection until the worker can inspect the source codec.\n * @param options - glTF loader options.\n * @param mimeType - MIME type declared by the glTF image.\n * @returns Loader options for the referenced image.\n */\nexport function getGLTFImageOptions(\n options: GLTFLoaderOptions,\n mimeType?: string\n): GLTFLoaderOptions {\n const basisOptions = options.basis;\n return {\n ...options,\n core: {...options.core, mimeType},\n basis: {...basisOptions, format: basisOptions?.format || 'auto'}\n };\n}\n\n/** Check if an array buffer appears to contain GLTF data */\nexport function isGLTF(arrayBuffer: ArrayBuffer, options?: ParseGLTFOptions): boolean {\n const byteOffset = 0;\n return isGLB(arrayBuffer, byteOffset, options);\n}\n\nexport async function parseGLTF(\n gltf: GLTFWithBuffers,\n arrayBufferOrString,\n byteOffset = 0,\n options: GLTFLoaderOptions,\n context: LoaderContext\n): Promise<GLTFWithBuffers> {\n return await parseGLTFWithExternalAssets(gltf, arrayBufferOrString, byteOffset, options, context);\n}\n\n/** Parse glTF data while carrying recursion state through nested external assets. */\nasync function parseGLTFWithExternalAssets(\n gltf: GLTFWithBuffers,\n arrayBufferOrString,\n byteOffset: number,\n options: GLTFLoaderOptions,\n context: LoaderContext,\n externalAssetLoadState?: ExternalAssetLoadState\n): Promise<GLTFWithBuffers> {\n parseGLTFContainerSync(gltf, arrayBufferOrString, byteOffset, options);\n\n const finishNormalization = normalizeGLTFV1WithDeferredBuffers(gltf, {\n normalize: options?.gltf?.normalize,\n log: options?.core?.log\n });\n\n await preprocessExtensions(gltf, options, context);\n\n // Load linked buffers asynchronously and decodes base64 buffers in parallel\n if (options?.gltf?.loadBuffers && gltf.json.buffers) {\n await loadBuffers(gltf, options, context, options.gltf.loadBufferIndices);\n }\n finishNormalization();\n\n if (options?.gltf?.loadFiles && gltf.json.files) {\n await loadFiles(gltf, options, context);\n }\n\n if (options?.gltf?.loadExternalAssets && gltf.json.externalAssets) {\n await loadExternalAssets(gltf, options, context, externalAssetLoadState);\n }\n\n // loadImages and decodeExtensions should not be running in parallel, because\n // decodeExtensions uses data from images taken during the loadImages call.\n if (options?.gltf?.loadImages) {\n await loadImages(gltf, options, context);\n }\n\n await decodeExtensions(gltf, options, context);\n\n return gltf;\n}\n\n/**\n *\n * @param gltf\n * @param data - can be ArrayBuffer (GLB), ArrayBuffer (Binary JSON), String (JSON), or Object (parsed JSON)\n * @param byteOffset\n * @param options\n */\nfunction parseGLTFContainerSync(gltf, data, byteOffset, options: GLTFLoaderOptions) {\n // Initialize gltf container\n if (options.core?.baseUrl) {\n gltf.baseUri = options.core?.baseUrl;\n }\n\n // If data is binary and starting with magic bytes, assume binary JSON text, convert to string\n if (data instanceof ArrayBuffer && !isGLB(data, byteOffset, options.glb)) {\n const textDecoder = new TextDecoder();\n data = textDecoder.decode(data);\n }\n\n if (typeof data === 'string') {\n // If string, try to parse as JSON\n gltf.json = parseJSON(data);\n } else if (data instanceof ArrayBuffer) {\n // If still ArrayBuffer, parse as GLB container\n const glb: GLB = {} as GLB;\n byteOffset = parseGLBSync(glb, data, byteOffset, options.glb);\n\n assert(glb.type === 'glTF', `Invalid GLB magic string ${glb.type}`);\n\n gltf._glb = glb;\n gltf.json = glb.json;\n } else if (data && typeof data === 'object') {\n // Callers that already decoded JSON can retain the parsed object. This avoids a second\n // serialization/parsing pass while preserving the normal extension and external-asset flow.\n gltf.json = data;\n } else {\n assert(false, 'GLTF: must be ArrayBuffer, string, or parsed JSON object');\n }\n\n // Populate buffers\n // Create an external buffers array to hold binary data\n const buffers = gltf.json.buffers || [];\n const bufferDefinitions = Array.isArray(buffers) ? buffers : [];\n const bufferIds = Array.isArray(buffers) ? [] : Object.keys(buffers);\n gltf.buffers = new Array(Array.isArray(buffers) ? buffers.length : bufferIds.length).fill(null);\n\n // Resolve GLB chunks into the parallel buffers array.\n if (gltf._glb) {\n const {binChunks} = gltf._glb;\n\n for (let bufferIndex = 0; bufferIndex < bufferDefinitions.length; bufferIndex++) {\n const buffer = bufferDefinitions[bufferIndex];\n if (buffer.chunk === undefined) {\n continue;\n }\n\n assert(gltf._glb.version === 3, 'glTF buffer.chunk requires a GLB v3 container.');\n assert(\n buffer.uri === undefined,\n `glTF buffer ${bufferIndex} cannot define both uri and chunk.`\n );\n const binChunk = binChunks.find(chunk => chunk.chunkIndex === buffer.chunk);\n assert(\n binChunk,\n `glTF buffer ${bufferIndex} references missing GLB BIN chunk ${buffer.chunk}.`\n );\n assert(\n buffer.byteLength <= binChunk.byteLength,\n `glTF buffer ${bufferIndex} is larger than GLB BIN chunk ${buffer.chunk}.`\n );\n gltf.buffers[bufferIndex] = {\n arrayBuffer: binChunk.arrayBuffer,\n byteOffset: binChunk.byteOffset,\n byteLength: buffer.byteLength\n };\n }\n\n const uriLessBufferIndices = bufferDefinitions\n .map((buffer, bufferIndex) => (buffer.uri === undefined ? bufferIndex : -1))\n .filter(bufferIndex => bufferIndex !== -1);\n const implicitBinChunk = binChunks.find(chunk => chunk.chunkIndex === 1);\n const usesLegacyImplicitBuffer =\n gltf._glb.version < 3 ||\n (gltf._glb.jsonChunkIndex === 0 &&\n bufferDefinitions[0]?.chunk === undefined &&\n uriLessBufferIndices.length === 1 &&\n uriLessBufferIndices[0] === 0 &&\n Boolean(implicitBinChunk));\n const legacyImplicitBinChunk = gltf._glb.version < 3 ? binChunks[0] : implicitBinChunk;\n // glTF 1 dictionaries have no required key order. Normalization subsequently moves\n // the named body and its payload to index zero for glTF 2.\n const binaryBufferIndex =\n gltf._glb.version === 1 && !Array.isArray(buffers) ? bufferIds.indexOf('binary_glTF') : 0;\n\n if (usesLegacyImplicitBuffer && legacyImplicitBinChunk && binaryBufferIndex >= 0) {\n gltf.buffers[binaryBufferIndex] = {\n arrayBuffer: legacyImplicitBinChunk.arrayBuffer,\n byteOffset: legacyImplicitBinChunk.byteOffset,\n byteLength: legacyImplicitBinChunk.byteLength\n };\n }\n\n if (gltf._glb.version === 3) {\n for (const bufferIndex of uriLessBufferIndices) {\n assert(\n gltf.buffers[bufferIndex],\n `glTF buffer ${bufferIndex} without a uri must define a valid GLB v3 chunk.`\n );\n }\n }\n\n // TODO - this modifies JSON and is a post processing thing\n // gltf.json.buffers[0].data = gltf.buffers[0].arrayBuffer;\n // gltf.json.buffers[0].byteOffset = gltf.buffers[0].byteOffset;\n }\n\n if (!gltf._glb) {\n const chunkBufferIndex = bufferDefinitions.findIndex(buffer => buffer.chunk !== undefined);\n assert(chunkBufferIndex === -1, `glTF buffer ${chunkBufferIndex} uses chunk outside a GLB.`);\n }\n\n // Populate images\n const images = gltf.json.images || [];\n gltf.images = new Array(images.length).fill({});\n\n const files = gltf.json.files || [];\n gltf.files = new Array(files.length).fill(null);\n\n const externalAssets = gltf.json.externalAssets || [];\n gltf.externalAssets = new Array(externalAssets.length).fill(null);\n}\n\ntype ExternalAssetLoadState = {\n /** Parsed assets keyed by their resolved URI. */\n cache: Map<string, Promise<GLTFWithBuffers>>;\n /** Resolved URIs in the current recursion chain. */\n ancestors: Set<string>;\n /** Shared counter used to isolate virtual package URL namespaces. */\n packageIds: {next: number};\n};\n\nconst PACKAGE_URL_PREFIX = 'gltf-package://';\n\n/** Recursively resolve external assets instantiated by nodes. */\nasync function loadExternalAssets(\n gltf: GLTFWithBuffers,\n options: GLTFLoaderOptions,\n context: LoaderContext,\n inheritedState?: ExternalAssetLoadState\n): Promise<void> {\n const externalAssets = gltf.json.externalAssets || [];\n const referencedIndices = new Set<number>();\n for (const node of gltf.json.nodes || []) {\n if (node.externalAsset !== undefined) {\n assert(\n node.externalAsset >= 0 && node.externalAsset < externalAssets.length,\n `glTF node references missing external asset ${node.externalAsset}.`\n );\n referencedIndices.add(node.externalAsset);\n }\n }\n\n const state =\n inheritedState ||\n createExternalAssetLoadState(context.url ? new Set([canonicalizeUrl(context.url)]) : new Set());\n for (const externalAssetIndex of referencedIndices) {\n await loadExternalAsset(gltf, externalAssetIndex, options, context, state);\n }\n}\n\n/** Parse one external asset and cache repeated file references. */\nasync function loadExternalAsset(\n gltf: GLTFWithBuffers,\n externalAssetIndex: number,\n options: GLTFLoaderOptions,\n context: LoaderContext,\n state: ExternalAssetLoadState\n): Promise<void> {\n const externalAsset = gltf.json.externalAssets?.[externalAssetIndex];\n if (!externalAsset) {\n throw new Error(`Missing glTF external asset ${externalAssetIndex}.`);\n }\n assert(\n Number.isInteger(externalAsset.file) &&\n externalAsset.file >= 0 &&\n externalAsset.file < (gltf.json.files?.length || 0),\n `glTF external asset ${externalAssetIndex} references missing file ${externalAsset.file}.`\n );\n\n const file = await resolveGLTFFile(gltf, externalAsset.file, options, context);\n const assetKey = file.url;\n assert(\n !assetKey || !state.ancestors.has(assetKey),\n `glTF external asset cycle detected at ${assetKey}.`\n );\n\n let parsedAsset = assetKey ? state.cache.get(assetKey) : undefined;\n if (!parsedAsset) {\n const childContext = createExternalAssetContext(gltf, file, options, context, state);\n const childState: ExternalAssetLoadState = {\n ...state,\n ancestors: new Set(state.ancestors)\n };\n if (assetKey) {\n childState.ancestors.add(assetKey);\n }\n const data = sliceArrayBuffer(file.arrayBuffer, file.byteOffset, file.byteLength);\n parsedAsset = parseGLTFWithExternalAssets(\n {} as GLTFWithBuffers,\n data,\n 0,\n options,\n childContext,\n childState\n );\n if (assetKey) {\n state.cache.set(assetKey, parsedAsset);\n }\n }\n\n gltf.externalAssets = gltf.externalAssets || [];\n gltf.externalAssets[externalAssetIndex] = await parsedAsset;\n}\n\n/** Create recursive loading state for an external-asset tree. */\nfunction createExternalAssetLoadState(ancestors: Set<string>): ExternalAssetLoadState {\n return {cache: new Map(), ancestors, packageIds: {next: 0}};\n}\n\n/** Create URL and fetch semantics for a nested external asset. */\nfunction createExternalAssetContext(\n parent: GLTFWithBuffers,\n file: GLTFExternalFile,\n options: GLTFLoaderOptions,\n context: LoaderContext,\n state: ExternalAssetLoadState\n): LoaderContext {\n if (file.url && !file.url.startsWith('data:')) {\n return {\n ...context,\n url: file.url,\n filename: getUrlFilename(file.url),\n baseUrl: getUrlBase(file.url)\n };\n }\n\n const packageBaseUrl = `${PACKAGE_URL_PREFIX}${state.packageIds.next++}`;\n const packageUrlPrefix = `${packageBaseUrl}/`;\n return {\n ...context,\n url: file.name,\n filename: file.name,\n baseUrl: packageBaseUrl,\n fetch: async (resource: string, init?: RequestInit) => {\n const url = resource;\n if (url.startsWith('data:')) {\n return await context.fetch(resource, init);\n }\n const reference = url.startsWith(packageUrlPrefix) ? url.slice(packageUrlPrefix.length) : url;\n const fileIndex = findGLTFFileIndex(parent, reference);\n assert(fileIndex >= 0, `glTF package does not contain file ${reference}.`);\n const resolvedFile = await resolveGLTFFile(parent, fileIndex, options, context);\n const data = sliceArrayBuffer(\n resolvedFile.arrayBuffer,\n resolvedFile.byteOffset,\n resolvedFile.byteLength\n );\n return new Response(data, {headers: {'content-type': resolvedFile.mimeType}});\n }\n };\n}\n\n/** Return the containing directory for a URL. */\nfunction getUrlBase(url: string): string {\n const slashIndex = url.lastIndexOf('/');\n return slashIndex >= 0 ? url.slice(0, slashIndex) : '';\n}\n\n/** Return the file name component for a URL. */\nfunction getUrlFilename(url: string): string {\n const slashIndex = url.lastIndexOf('/');\n return slashIndex >= 0 ? url.slice(slashIndex + 1) : url;\n}\n\n/** Resolve all draft glTF 2.1 unified file references. */\nasync function loadFiles(\n gltf: GLTFWithBuffers,\n options: GLTFLoaderOptions,\n context: LoaderContext\n): Promise<void> {\n const files = gltf.json.files || [];\n await Promise.all(\n files.map((_, fileIndex) => resolveGLTFFile(gltf, fileIndex, options, context))\n );\n}\n\n/** Asynchronously fetch and parse buffers, store in buffers array outside of json\n * TODO - traverse gltf and determine which buffers are actually needed\n */\nasync function loadBuffers(\n gltf: GLTFWithBuffers,\n options: GLTFLoaderOptions,\n context: LoaderContext,\n configuredBufferIndices?: number[] | ((json: GLTF) => number[])\n) {\n // TODO\n const buffers = gltf.json.buffers || [];\n const selectedBufferIndices = configuredBufferIndices\n ? new Set(\n typeof configuredBufferIndices === 'function'\n ? configuredBufferIndices(gltf.json)\n : configuredBufferIndices\n )\n : undefined;\n for (let i = 0; i < buffers.length; ++i) {\n if (selectedBufferIndices && !selectedBufferIndices.has(i)) {\n continue;\n }\n const buffer = buffers[i];\n if (buffer.uri) {\n const {fetch} = context;\n assert(fetch);\n\n const uri = resolveUrl(buffer.uri, options, context);\n const response = await context?.fetch?.(uri);\n const arrayBuffer = await response?.arrayBuffer?.();\n\n gltf.buffers[i] = {\n arrayBuffer,\n byteOffset: 0,\n byteLength: arrayBuffer.byteLength\n };\n\n delete buffer.uri;\n } else if (gltf.buffers[i] === null) {\n gltf.buffers[i] = {\n arrayBuffer: new ArrayBuffer(buffer.byteLength),\n byteOffset: 0,\n byteLength: buffer.byteLength\n };\n }\n }\n}\n\n/**\n * Loads all images\n * TODO - traverse gltf and determine which images are actually needed\n * @param gltf\n * @param options\n * @param context\n * @returns\n */\nasync function loadImages(gltf: GLTFWithBuffers, options, context: LoaderContext) {\n const imageIndices = getReferencesImageIndices(gltf);\n\n const images = gltf.json.images || [];\n\n const promises: Promise<any>[] = [];\n for (const imageIndex of imageIndices) {\n promises.push(loadImage(gltf, images[imageIndex], imageIndex, options, context));\n }\n\n return await Promise.all(promises);\n}\n\n/** Return image indices referenced by textures or draft glTF 2.1 asset metadata. */\nfunction getReferencesImageIndices(gltf: GLTFWithBuffers): number[] {\n const imageIndices = new Set<number>();\n\n if (gltf.json.asset.thumbnail !== undefined) {\n imageIndices.add(gltf.json.asset.thumbnail);\n }\n\n const textures = gltf.json.textures || [];\n for (const texture of textures) {\n if (texture.source !== undefined) {\n imageIndices.add(texture.source);\n }\n }\n\n return Array.from(imageIndices).sort();\n}\n\n/** Asynchronously fetches and parses one image, store in images array outside of json */\nasync function loadImage(\n gltf: GLTFWithBuffers,\n image,\n index: number,\n options,\n context: LoaderContext\n) {\n let arrayBuffer;\n\n if (image.uri && !image.hasOwnProperty('bufferView')) {\n const uri = resolveUrl(image.uri, options, context);\n\n const {fetch} = context;\n const response = await fetch(uri);\n\n arrayBuffer = await response.arrayBuffer();\n image.bufferView = {\n data: arrayBuffer\n };\n }\n\n if (Number.isFinite(image.bufferView)) {\n const array = getTypedArrayForBufferView(gltf.json, gltf.buffers, image.bufferView);\n arrayBuffer = sliceArrayBuffer(array.buffer, array.byteOffset, array.byteLength);\n }\n\n assert(arrayBuffer, 'glTF image has no data');\n\n const gltfOptions = getGLTFImageOptions(options, image.mimeType);\n\n const ddsLoader = getDDSLoader(context);\n const ddsSelected = Boolean(\n ddsLoader &&\n !options.gltf?.excludeExtensions?.includes('MSFT_texture_dds') &&\n gltf.json.textures?.some(\n texture =>\n texture.source === index && texture.extensions?.MSFT_texture_dds?.source === index\n )\n );\n if (ddsSelected) {\n const levels = (await parseFromContext(\n arrayBuffer,\n ddsLoader!,\n options,\n context\n )) as TextureLevel[];\n assert(levels.length > 0, 'MSFT_texture_dds parser returned no texture levels');\n gltf.images = gltf.images || [];\n gltf.images[index] = {\n compressed: true,\n mipmaps: true,\n width: levels[0].width,\n height: levels[0].height,\n data: levels\n };\n return;\n }\n\n // Call `parse`\n let parsedImage = (await parseFromContext(\n arrayBuffer,\n [ImageLoader, BasisLoader],\n gltfOptions,\n context\n )) as ImageType | TextureLevel[][];\n\n if (parsedImage && parsedImage[0]) {\n parsedImage = {\n compressed: true,\n // @ts-expect-error\n mipmaps: false,\n width: parsedImage[0].width,\n height: parsedImage[0].height,\n data: parsedImage[0]\n };\n }\n // TODO making sure ImageLoader is overridable by using array of loaders\n // const parsedImage = await parse(arrayBuffer, [ImageLoader]);\n\n // Store the loaded image\n gltf.images = gltf.images || [];\n // @ts-expect-error TODO - sort out image typing asap\n gltf.images[index] = parsedImage;\n}\n"],
5
- "mappings": "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",
6
- "names": ["import_images"]
4
+ "sourcesContent": ["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n/* eslint-disable camelcase, max-statements, no-restricted-globals */\nimport {getLoaderLog} from '@loaders.gl/core/loader-utils';\nimport type {LoaderContext} from '@loaders.gl/core/loader-utils';\nimport type {GLTFLoaderOptions} from '../../gltf-loader-types';\nimport type {GLTF} from '../types/gltf-json-schema';\nimport type {GLTFExternalFile, GLTFWithBuffers} from '../types/gltf-types';\nimport type {GLB} from '../types/glb-types';\nimport type {ParseGLBOptions} from './parse-glb';\n\nimport type {ImageType, TextureLevel} from '@loaders.gl/core/schema';\nimport {parseJSON, sliceArrayBuffer, parseFromContext} from '@loaders.gl/core/loader-utils';\nimport {ImageLoader} from '@loaders.gl/images';\nimport {BasisLoader} from '@loaders.gl/images';\n\nimport {assert} from '../utils/assert';\nimport {isGLB, parseGLBSync} from './parse-glb';\nimport {canonicalizeUrl, resolveUrl} from '../gltf-utils/resolve-url';\nimport {findGLTFFileIndex, resolveGLTFFile} from '../gltf-utils/resolve-gltf-file';\nimport {getTypedArrayForBufferView} from '../gltf-utils/get-typed-array';\nimport {preprocessExtensions, decodeExtensions} from '../api/gltf-extensions';\nimport {getDDSLoader} from '../extensions/MSFT_texture_dds';\nimport {normalizeGLTFV1WithDeferredBuffers} from '../api/normalize-gltf-v1';\n\n/** */\nexport type ParseGLTFOptions = ParseGLBOptions & {\n /** Best-effort glTF 1 conversion; strict rejects reported unsupported features. @default true */\n normalize?: boolean | 'best-effort' | 'strict';\n loadImages?: boolean;\n /** Load encoded KHR_audio_emitter clips independently of loadBuffers, without playback. @default true */\n loadAudio?: boolean;\n /** Load linked and embedded buffers; required for meshopt decompression. @default true */\n loadBuffers?: boolean;\n /** @internal Restrict linked-buffer loading after the glTF JSON is available. */\n loadBufferIndices?: number[] | ((json: GLTF) => number[]);\n /** @internal Restrict meshopt decompression to selected buffer views. */\n decompressBufferViewIndices?: number[] | ((json: GLTF) => number[]);\n /** Resolve draft glTF 2.1 `files` entries. */\n loadFiles?: boolean;\n /** Recursively parse draft glTF 2.1 external assets referenced by nodes. */\n loadExternalAssets?: boolean;\n /** Decompress Draco, `EXT_meshopt_compression`, and `KHR_meshopt_compression` data. @default true */\n decompressMeshes?: boolean;\n /** Interpret missing metadata in legacy SPZ2 Gaussian primitives using this assumed color space. */\n legacyGaussianSplatColorSpace?: 'srgb_rec709_display' | 'lin_rec709_display';\n /** Optional decoder for embedded SPZ2 Gaussian payloads; bytes are explicitly in LUF coordinates. */\n splatDecoder?: (\n data: ArrayBuffer,\n options: {sourceCoordinateSystem: 'LUF'; targetCoordinateSystem?: string}\n ) => unknown | Promise<unknown>;\n excludeExtensions?: string[];\n};\n\n/**\n * Creates options for parsing an image referenced by a glTF asset.\n * Preserves automatic Basis format selection until the worker can inspect the source codec.\n * @param options - glTF loader options.\n * @param mimeType - MIME type declared by the glTF image.\n * @returns Loader options for the referenced image.\n */\nexport function getGLTFImageOptions(\n options: GLTFLoaderOptions,\n mimeType?: string\n): GLTFLoaderOptions {\n const basisOptions = options.basis;\n return {\n ...options,\n core: {...options.core, mimeType},\n basis: {...basisOptions, format: basisOptions?.format || 'auto'}\n };\n}\n\n/** Check if an array buffer appears to contain GLTF data */\nexport function isGLTF(arrayBuffer: ArrayBuffer, options?: ParseGLTFOptions): boolean {\n const byteOffset = 0;\n return isGLB(arrayBuffer, byteOffset, options);\n}\n\nexport async function parseGLTF(\n gltf: GLTFWithBuffers,\n arrayBufferOrString,\n byteOffset = 0,\n options: GLTFLoaderOptions,\n context: LoaderContext\n): Promise<GLTFWithBuffers> {\n return await parseGLTFWithExternalAssets(gltf, arrayBufferOrString, byteOffset, options, context);\n}\n\n/** Parse glTF data while carrying recursion state through nested external assets. */\nasync function parseGLTFWithExternalAssets(\n gltf: GLTFWithBuffers,\n arrayBufferOrString,\n byteOffset: number,\n options: GLTFLoaderOptions,\n context: LoaderContext,\n externalAssetLoadState?: ExternalAssetLoadState\n): Promise<GLTFWithBuffers> {\n parseGLTFContainerSync(gltf, arrayBufferOrString, byteOffset, options);\n\n const finishNormalization = normalizeGLTFV1WithDeferredBuffers(gltf, {\n normalize: options?.gltf?.normalize,\n log: getLoaderLog(options)\n });\n\n await preprocessExtensions(gltf, options, context);\n\n // Load linked buffers asynchronously and decodes base64 buffers in parallel\n if (options?.gltf?.loadBuffers && gltf.json.buffers) {\n await loadBuffers(gltf, options, context, options.gltf.loadBufferIndices);\n }\n finishNormalization();\n\n if (options?.gltf?.loadFiles && gltf.json.files) {\n await loadFiles(gltf, options, context);\n }\n\n if (options?.gltf?.loadExternalAssets && gltf.json.externalAssets) {\n await loadExternalAssets(gltf, options, context, externalAssetLoadState);\n }\n\n // loadImages and decodeExtensions should not be running in parallel, because\n // decodeExtensions uses data from images taken during the loadImages call.\n if (options?.gltf?.loadImages) {\n await loadImages(gltf, options, context);\n }\n\n await decodeExtensions(gltf, options, context);\n\n return gltf;\n}\n\n/**\n *\n * @param gltf\n * @param data - can be ArrayBuffer (GLB), ArrayBuffer (Binary JSON), String (JSON), or Object (parsed JSON)\n * @param byteOffset\n * @param options\n */\nfunction parseGLTFContainerSync(gltf, data, byteOffset, options: GLTFLoaderOptions) {\n // Initialize gltf container\n if (options.core?.baseUrl) {\n gltf.baseUri = options.core?.baseUrl;\n }\n\n // If data is binary and starting with magic bytes, assume binary JSON text, convert to string\n if (data instanceof ArrayBuffer && !isGLB(data, byteOffset, options.glb)) {\n const textDecoder = new TextDecoder();\n data = textDecoder.decode(data);\n }\n\n if (typeof data === 'string') {\n // If string, try to parse as JSON\n gltf.json = parseJSON(data);\n } else if (data instanceof ArrayBuffer) {\n // If still ArrayBuffer, parse as GLB container\n const glb: GLB = {} as GLB;\n byteOffset = parseGLBSync(glb, data, byteOffset, options.glb);\n\n assert(glb.type === 'glTF', `Invalid GLB magic string ${glb.type}`);\n\n gltf._glb = glb;\n gltf.json = glb.json;\n } else if (data && typeof data === 'object') {\n // Callers that already decoded JSON can retain the parsed object. This avoids a second\n // serialization/parsing pass while preserving the normal extension and external-asset flow.\n gltf.json = data;\n } else {\n assert(false, 'GLTF: must be ArrayBuffer, string, or parsed JSON object');\n }\n\n // Populate buffers\n // Create an external buffers array to hold binary data\n const buffers = gltf.json.buffers || [];\n const bufferDefinitions = Array.isArray(buffers) ? buffers : [];\n const bufferIds = Array.isArray(buffers) ? [] : Object.keys(buffers);\n gltf.buffers = new Array(Array.isArray(buffers) ? buffers.length : bufferIds.length).fill(null);\n\n // Resolve GLB chunks into the parallel buffers array.\n if (gltf._glb) {\n const {binChunks} = gltf._glb;\n\n for (let bufferIndex = 0; bufferIndex < bufferDefinitions.length; bufferIndex++) {\n const buffer = bufferDefinitions[bufferIndex];\n if (buffer.chunk === undefined) {\n continue;\n }\n\n assert(gltf._glb.version === 3, 'glTF buffer.chunk requires a GLB v3 container.');\n assert(\n buffer.uri === undefined,\n `glTF buffer ${bufferIndex} cannot define both uri and chunk.`\n );\n const binChunk = binChunks.find(chunk => chunk.chunkIndex === buffer.chunk);\n assert(\n binChunk,\n `glTF buffer ${bufferIndex} references missing GLB BIN chunk ${buffer.chunk}.`\n );\n assert(\n buffer.byteLength <= binChunk.byteLength,\n `glTF buffer ${bufferIndex} is larger than GLB BIN chunk ${buffer.chunk}.`\n );\n gltf.buffers[bufferIndex] = {\n arrayBuffer: binChunk.arrayBuffer,\n byteOffset: binChunk.byteOffset,\n byteLength: buffer.byteLength\n };\n }\n\n const uriLessBufferIndices = bufferDefinitions\n .map((buffer, bufferIndex) => (buffer.uri === undefined ? bufferIndex : -1))\n .filter(bufferIndex => bufferIndex !== -1);\n const implicitBinChunk = binChunks.find(chunk => chunk.chunkIndex === 1);\n const usesLegacyImplicitBuffer =\n gltf._glb.version < 3 ||\n (gltf._glb.jsonChunkIndex === 0 &&\n bufferDefinitions[0]?.chunk === undefined &&\n uriLessBufferIndices.length === 1 &&\n uriLessBufferIndices[0] === 0 &&\n Boolean(implicitBinChunk));\n const legacyImplicitBinChunk = gltf._glb.version < 3 ? binChunks[0] : implicitBinChunk;\n // glTF 1 dictionaries have no required key order. Normalization subsequently moves\n // the named body and its payload to index zero for glTF 2.\n const binaryBufferIndex =\n gltf._glb.version === 1 && !Array.isArray(buffers) ? bufferIds.indexOf('binary_glTF') : 0;\n\n if (usesLegacyImplicitBuffer && legacyImplicitBinChunk && binaryBufferIndex >= 0) {\n gltf.buffers[binaryBufferIndex] = {\n arrayBuffer: legacyImplicitBinChunk.arrayBuffer,\n byteOffset: legacyImplicitBinChunk.byteOffset,\n byteLength: legacyImplicitBinChunk.byteLength\n };\n }\n\n if (gltf._glb.version === 3) {\n for (const bufferIndex of uriLessBufferIndices) {\n assert(\n gltf.buffers[bufferIndex],\n `glTF buffer ${bufferIndex} without a uri must define a valid GLB v3 chunk.`\n );\n }\n }\n\n // TODO - this modifies JSON and is a post processing thing\n // gltf.json.buffers[0].data = gltf.buffers[0].arrayBuffer;\n // gltf.json.buffers[0].byteOffset = gltf.buffers[0].byteOffset;\n }\n\n if (!gltf._glb) {\n const chunkBufferIndex = bufferDefinitions.findIndex(buffer => buffer.chunk !== undefined);\n assert(chunkBufferIndex === -1, `glTF buffer ${chunkBufferIndex} uses chunk outside a GLB.`);\n }\n\n // Populate images\n const images = gltf.json.images || [];\n gltf.images = new Array(images.length).fill({});\n\n const files = gltf.json.files || [];\n gltf.files = new Array(files.length).fill(null);\n\n const externalAssets = gltf.json.externalAssets || [];\n gltf.externalAssets = new Array(externalAssets.length).fill(null);\n}\n\ntype ExternalAssetLoadState = {\n /** Parsed assets keyed by their resolved URI. */\n cache: Map<string, Promise<GLTFWithBuffers>>;\n /** Resolved URIs in the current recursion chain. */\n ancestors: Set<string>;\n /** Shared counter used to isolate virtual package URL namespaces. */\n packageIds: {next: number};\n};\n\nconst PACKAGE_URL_PREFIX = 'gltf-package://';\n\n/** Recursively resolve external assets instantiated by nodes. */\nasync function loadExternalAssets(\n gltf: GLTFWithBuffers,\n options: GLTFLoaderOptions,\n context: LoaderContext,\n inheritedState?: ExternalAssetLoadState\n): Promise<void> {\n const externalAssets = gltf.json.externalAssets || [];\n const referencedIndices = new Set<number>();\n for (const node of gltf.json.nodes || []) {\n if (node.externalAsset !== undefined) {\n assert(\n node.externalAsset >= 0 && node.externalAsset < externalAssets.length,\n `glTF node references missing external asset ${node.externalAsset}.`\n );\n referencedIndices.add(node.externalAsset);\n }\n }\n\n const state =\n inheritedState ||\n createExternalAssetLoadState(context.url ? new Set([canonicalizeUrl(context.url)]) : new Set());\n for (const externalAssetIndex of referencedIndices) {\n await loadExternalAsset(gltf, externalAssetIndex, options, context, state);\n }\n}\n\n/** Parse one external asset and cache repeated file references. */\nasync function loadExternalAsset(\n gltf: GLTFWithBuffers,\n externalAssetIndex: number,\n options: GLTFLoaderOptions,\n context: LoaderContext,\n state: ExternalAssetLoadState\n): Promise<void> {\n const externalAsset = gltf.json.externalAssets?.[externalAssetIndex];\n if (!externalAsset) {\n throw new Error(`Missing glTF external asset ${externalAssetIndex}.`);\n }\n assert(\n Number.isInteger(externalAsset.file) &&\n externalAsset.file >= 0 &&\n externalAsset.file < (gltf.json.files?.length || 0),\n `glTF external asset ${externalAssetIndex} references missing file ${externalAsset.file}.`\n );\n\n const file = await resolveGLTFFile(gltf, externalAsset.file, options, context);\n const assetKey = file.url;\n assert(\n !assetKey || !state.ancestors.has(assetKey),\n `glTF external asset cycle detected at ${assetKey}.`\n );\n\n let parsedAsset = assetKey ? state.cache.get(assetKey) : undefined;\n if (!parsedAsset) {\n const childContext = createExternalAssetContext(gltf, file, options, context, state);\n const childState: ExternalAssetLoadState = {\n ...state,\n ancestors: new Set(state.ancestors)\n };\n if (assetKey) {\n childState.ancestors.add(assetKey);\n }\n const data = sliceArrayBuffer(file.arrayBuffer, file.byteOffset, file.byteLength);\n parsedAsset = parseGLTFWithExternalAssets(\n {} as GLTFWithBuffers,\n data,\n 0,\n options,\n childContext,\n childState\n );\n if (assetKey) {\n state.cache.set(assetKey, parsedAsset);\n }\n }\n\n gltf.externalAssets = gltf.externalAssets || [];\n gltf.externalAssets[externalAssetIndex] = await parsedAsset;\n}\n\n/** Create recursive loading state for an external-asset tree. */\nfunction createExternalAssetLoadState(ancestors: Set<string>): ExternalAssetLoadState {\n return {cache: new Map(), ancestors, packageIds: {next: 0}};\n}\n\n/** Create URL and fetch semantics for a nested external asset. */\nfunction createExternalAssetContext(\n parent: GLTFWithBuffers,\n file: GLTFExternalFile,\n options: GLTFLoaderOptions,\n context: LoaderContext,\n state: ExternalAssetLoadState\n): LoaderContext {\n if (file.url && !file.url.startsWith('data:')) {\n return {\n ...context,\n url: file.url,\n filename: getUrlFilename(file.url),\n baseUrl: getUrlBase(file.url)\n };\n }\n\n const packageBaseUrl = `${PACKAGE_URL_PREFIX}${state.packageIds.next++}`;\n const packageUrlPrefix = `${packageBaseUrl}/`;\n return {\n ...context,\n url: file.name,\n filename: file.name,\n baseUrl: packageBaseUrl,\n fetch: async (resource: string, init?: RequestInit) => {\n const url = resource;\n if (url.startsWith('data:')) {\n return await context.fetch(resource, init);\n }\n const reference = url.startsWith(packageUrlPrefix) ? url.slice(packageUrlPrefix.length) : url;\n const fileIndex = findGLTFFileIndex(parent, reference);\n assert(fileIndex >= 0, `glTF package does not contain file ${reference}.`);\n const resolvedFile = await resolveGLTFFile(parent, fileIndex, options, context);\n const data = sliceArrayBuffer(\n resolvedFile.arrayBuffer,\n resolvedFile.byteOffset,\n resolvedFile.byteLength\n );\n return new Response(data, {headers: {'content-type': resolvedFile.mimeType}});\n }\n };\n}\n\n/** Return the containing directory for a URL. */\nfunction getUrlBase(url: string): string {\n const slashIndex = url.lastIndexOf('/');\n return slashIndex >= 0 ? url.slice(0, slashIndex) : '';\n}\n\n/** Return the file name component for a URL. */\nfunction getUrlFilename(url: string): string {\n const slashIndex = url.lastIndexOf('/');\n return slashIndex >= 0 ? url.slice(slashIndex + 1) : url;\n}\n\n/** Resolve all draft glTF 2.1 unified file references. */\nasync function loadFiles(\n gltf: GLTFWithBuffers,\n options: GLTFLoaderOptions,\n context: LoaderContext\n): Promise<void> {\n const files = gltf.json.files || [];\n await Promise.all(\n files.map((_, fileIndex) => resolveGLTFFile(gltf, fileIndex, options, context))\n );\n}\n\n/** Asynchronously fetch and parse buffers, store in buffers array outside of json\n * TODO - traverse gltf and determine which buffers are actually needed\n */\nasync function loadBuffers(\n gltf: GLTFWithBuffers,\n options: GLTFLoaderOptions,\n context: LoaderContext,\n configuredBufferIndices?: number[] | ((json: GLTF) => number[])\n) {\n // TODO\n const buffers = gltf.json.buffers || [];\n const selectedBufferIndices = configuredBufferIndices\n ? new Set(\n typeof configuredBufferIndices === 'function'\n ? configuredBufferIndices(gltf.json)\n : configuredBufferIndices\n )\n : undefined;\n for (let i = 0; i < buffers.length; ++i) {\n if (selectedBufferIndices && !selectedBufferIndices.has(i)) {\n continue;\n }\n const buffer = buffers[i];\n if (buffer.uri) {\n const {fetch} = context;\n assert(fetch);\n\n const uri = resolveUrl(buffer.uri, options, context);\n const response = await context?.fetch?.(uri);\n const arrayBuffer = await response?.arrayBuffer?.();\n\n gltf.buffers[i] = {\n arrayBuffer,\n byteOffset: 0,\n byteLength: arrayBuffer.byteLength\n };\n\n delete buffer.uri;\n } else if (gltf.buffers[i] === null) {\n gltf.buffers[i] = {\n arrayBuffer: new ArrayBuffer(buffer.byteLength),\n byteOffset: 0,\n byteLength: buffer.byteLength\n };\n }\n }\n}\n\n/**\n * Loads all images\n * TODO - traverse gltf and determine which images are actually needed\n * @param gltf\n * @param options\n * @param context\n * @returns\n */\nasync function loadImages(gltf: GLTFWithBuffers, options, context: LoaderContext) {\n const imageIndices = getReferencesImageIndices(gltf);\n\n const images = gltf.json.images || [];\n\n const promises: Promise<any>[] = [];\n for (const imageIndex of imageIndices) {\n promises.push(loadImage(gltf, images[imageIndex], imageIndex, options, context));\n }\n\n return await Promise.all(promises);\n}\n\n/** Return image indices referenced by textures or draft glTF 2.1 asset metadata. */\nfunction getReferencesImageIndices(gltf: GLTFWithBuffers): number[] {\n const imageIndices = new Set<number>();\n\n if (gltf.json.asset.thumbnail !== undefined) {\n imageIndices.add(gltf.json.asset.thumbnail);\n }\n\n const textures = gltf.json.textures || [];\n for (const texture of textures) {\n if (texture.source !== undefined) {\n imageIndices.add(texture.source);\n }\n }\n\n return Array.from(imageIndices).sort();\n}\n\n/** Asynchronously fetches and parses one image, store in images array outside of json */\nasync function loadImage(\n gltf: GLTFWithBuffers,\n image,\n index: number,\n options,\n context: LoaderContext\n) {\n let arrayBuffer;\n\n if (image.uri && !image.hasOwnProperty('bufferView')) {\n const uri = resolveUrl(image.uri, options, context);\n\n const {fetch} = context;\n const response = await fetch(uri);\n\n arrayBuffer = await response.arrayBuffer();\n image.bufferView = {\n data: arrayBuffer\n };\n }\n\n if (Number.isFinite(image.bufferView)) {\n const array = getTypedArrayForBufferView(gltf.json, gltf.buffers, image.bufferView);\n arrayBuffer = sliceArrayBuffer(array.buffer, array.byteOffset, array.byteLength);\n }\n\n assert(arrayBuffer, 'glTF image has no data');\n\n const gltfOptions = getGLTFImageOptions(options, image.mimeType);\n\n const ddsLoader = getDDSLoader(context);\n const ddsSelected = Boolean(\n ddsLoader &&\n !options.gltf?.excludeExtensions?.includes('MSFT_texture_dds') &&\n gltf.json.textures?.some(\n texture =>\n texture.source === index && texture.extensions?.MSFT_texture_dds?.source === index\n )\n );\n if (ddsSelected) {\n const levels = (await parseFromContext(\n arrayBuffer,\n ddsLoader!,\n options,\n context\n )) as TextureLevel[];\n assert(levels.length > 0, 'MSFT_texture_dds parser returned no texture levels');\n gltf.images = gltf.images || [];\n gltf.images[index] = {\n compressed: true,\n mipmaps: true,\n width: levels[0].width,\n height: levels[0].height,\n data: levels\n };\n return;\n }\n\n // Call `parse`\n let parsedImage = (await parseFromContext(\n arrayBuffer,\n [ImageLoader, BasisLoader],\n gltfOptions,\n context\n )) as ImageType | TextureLevel[][];\n\n if (parsedImage && parsedImage[0]) {\n parsedImage = {\n compressed: true,\n // @ts-expect-error\n mipmaps: false,\n width: parsedImage[0].width,\n height: parsedImage[0].height,\n data: parsedImage[0]\n };\n }\n // TODO making sure ImageLoader is overridable by using array of loaders\n // const parsedImage = await parse(arrayBuffer, [ImageLoader]);\n\n // Store the loaded image\n gltf.images = gltf.images || [];\n // @ts-expect-error TODO - sort out image typing asap\n gltf.images[index] = parsedImage;\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["import_loader_utils", "import_images"]
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"parse-gltf.d.ts","sourceRoot":"","sources":["../../../../src/gltf/lib/parsers/parse-gltf.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAC,iBAAiB,EAAC,mCAAgC;AAC/D,OAAO,KAAK,EAAC,IAAI,EAAC,qCAAkC;AACpD,OAAO,KAAK,EAAmB,eAAe,EAAC,+BAA4B;AAE3E,OAAO,KAAK,EAAC,eAAe,EAAC,uBAAoB;AAgBjD,OAAO;AACP,MAAM,MAAM,gBAAgB,GAAG,eAAe,GAAG;IAC/C,iGAAiG;IACjG,SAAS,CAAC,EAAE,OAAO,GAAG,aAAa,GAAG,QAAQ,CAAC;IAC/C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yGAAyG;IACzG,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,0FAA0F;IAC1F,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iFAAiF;IACjF,iBAAiB,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC,CAAC;IAC1D,yEAAyE;IACzE,2BAA2B,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC,CAAC;IACpE,8CAA8C;IAC9C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,4EAA4E;IAC5E,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,qGAAqG;IACrG,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,oGAAoG;IACpG,6BAA6B,CAAC,EAAE,qBAAqB,GAAG,oBAAoB,CAAC;IAC7E,qGAAqG;IACrG,YAAY,CAAC,EAAE,CACb,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE;QAAC,sBAAsB,EAAE,KAAK,CAAC;QAAC,sBAAsB,CAAC,EAAE,MAAM,CAAA;KAAC,KACtE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,iBAAiB,EAC1B,QAAQ,CAAC,EAAE,MAAM,GAChB,iBAAiB,CAOnB;AAED,4DAA4D;AAC5D,wBAAgB,MAAM,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAGpF;AAED,wBAAsB,SAAS,CAC7B,IAAI,EAAE,eAAe,EACrB,mBAAmB,KAAA,EACnB,UAAU,oBAAI,EACd,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,eAAe,CAAC,CAE1B"}
1
+ {"version":3,"file":"parse-gltf.d.ts","sourceRoot":"","sources":["../../../../src/gltf/lib/parsers/parse-gltf.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAC,iBAAiB,EAAC,mCAAgC;AAC/D,OAAO,KAAK,EAAC,IAAI,EAAC,qCAAkC;AACpD,OAAO,KAAK,EAAmB,eAAe,EAAC,+BAA4B;AAE3E,OAAO,KAAK,EAAC,eAAe,EAAC,uBAAoB;AAgBjD,OAAO;AACP,MAAM,MAAM,gBAAgB,GAAG,eAAe,GAAG;IAC/C,iGAAiG;IACjG,SAAS,CAAC,EAAE,OAAO,GAAG,aAAa,GAAG,QAAQ,CAAC;IAC/C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yGAAyG;IACzG,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,0FAA0F;IAC1F,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iFAAiF;IACjF,iBAAiB,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC,CAAC;IAC1D,yEAAyE;IACzE,2BAA2B,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC,CAAC;IACpE,8CAA8C;IAC9C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,4EAA4E;IAC5E,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,qGAAqG;IACrG,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,oGAAoG;IACpG,6BAA6B,CAAC,EAAE,qBAAqB,GAAG,oBAAoB,CAAC;IAC7E,qGAAqG;IACrG,YAAY,CAAC,EAAE,CACb,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE;QAAC,sBAAsB,EAAE,KAAK,CAAC;QAAC,sBAAsB,CAAC,EAAE,MAAM,CAAA;KAAC,KACtE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,iBAAiB,EAC1B,QAAQ,CAAC,EAAE,MAAM,GAChB,iBAAiB,CAOnB;AAED,4DAA4D;AAC5D,wBAAgB,MAAM,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAGpF;AAED,wBAAsB,SAAS,CAC7B,IAAI,EAAE,eAAe,EACrB,mBAAmB,KAAA,EACnB,UAAU,oBAAI,EACd,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,eAAe,CAAC,CAE1B"}
@@ -1,6 +1,8 @@
1
1
  // loaders.gl
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
+ /* eslint-disable camelcase, max-statements, no-restricted-globals */
5
+ import { getLoaderLog } from '@loaders.gl/core/loader-utils';
4
6
  import { parseJSON, sliceArrayBuffer, parseFromContext } from '@loaders.gl/core/loader-utils';
5
7
  import { ImageLoader } from '@loaders.gl/images';
6
8
  import { BasisLoader } from '@loaders.gl/images';
@@ -40,7 +42,7 @@ async function parseGLTFWithExternalAssets(gltf, arrayBufferOrString, byteOffset
40
42
  parseGLTFContainerSync(gltf, arrayBufferOrString, byteOffset, options);
41
43
  const finishNormalization = normalizeGLTFV1WithDeferredBuffers(gltf, {
42
44
  normalize: options?.gltf?.normalize,
43
- log: options?.core?.log
45
+ log: getLoaderLog(options)
44
46
  });
45
47
  await preprocessExtensions(gltf, options, context);
46
48
  // Load linked buffers asynchronously and decodes base64 buffers in parallel
@@ -1 +1 @@
1
- {"version":3,"file":"parse-gltf.js","sourceRoot":"","sources":["../../../../src/gltf/lib/parsers/parse-gltf.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parse-gltf.js","sourceRoot":"","sources":["../../../../src/gltf/lib/parsers/parse-gltf.ts"],"names":[],"mappings":"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"}
@@ -23,7 +23,7 @@ __export(version_exports, {
23
23
  VERSION: () => VERSION
24
24
  });
25
25
  module.exports = __toCommonJS(version_exports);
26
- var VERSION = true ? "5.0.0-beta.7" : "latest";
26
+ var VERSION = true ? "5.0.0-beta.8" : "latest";
27
27
  // Annotate the CommonJS export names for ESM import in node:
28
28
  0 && (module.exports = {
29
29
  VERSION
@@ -4,5 +4,5 @@
4
4
  // Version constant cannot be imported, it needs to correspond to the build version of **this** module.
5
5
  // __VERSION__ is injected by babel-plugin-version-inline
6
6
  // @ts-ignore TS2304: Cannot find name '__VERSION__'.
7
- export const VERSION = typeof "5.0.0-beta.7" !== 'undefined' ? "5.0.0-beta.7" : 'latest';
7
+ export const VERSION = typeof "5.0.0-beta.8" !== 'undefined' ? "5.0.0-beta.8" : 'latest';
8
8
  //# sourceMappingURL=version.js.map
@@ -37,7 +37,7 @@ module.exports = __toCommonJS(mtl_loader_types_exports);
37
37
 
38
38
  // src/obj/mtl-loader-types.ts
39
39
  var import_mtl_format = require("./mtl-format.cjs");
40
- var VERSION = true ? "5.0.0-beta.7" : "latest";
40
+ var VERSION = true ? "5.0.0-beta.8" : "latest";
41
41
  async function preload() {
42
42
  const { MTLLoaderWithParser } = await import("@loaders.gl/scene/mtl-loader");
43
43
  return MTLLoaderWithParser;
@@ -35,7 +35,7 @@ __export(mtl_loader_types_exports, {
35
35
  });
36
36
  module.exports = __toCommonJS(mtl_loader_types_exports);
37
37
  var import_mtl_format = require("./mtl-format.cjs");
38
- var VERSION = true ? "5.0.0-beta.7" : "latest";
38
+ var VERSION = true ? "5.0.0-beta.8" : "latest";
39
39
  async function preload() {
40
40
  const { MTLLoaderWithParser } = await import("@loaders.gl/scene/mtl-loader");
41
41
  return MTLLoaderWithParser;
@@ -4,7 +4,7 @@
4
4
  import { MTLFormat } from "./mtl-format.js";
5
5
  // __VERSION__ is injected by babel-plugin-version-inline
6
6
  // @ts-ignore TS2304: Cannot find name '__VERSION__'.
7
- const VERSION = typeof "5.0.0-beta.7" !== 'undefined' ? "5.0.0-beta.7" : 'latest';
7
+ const VERSION = typeof "5.0.0-beta.8" !== 'undefined' ? "5.0.0-beta.8" : 'latest';
8
8
  /**
9
9
  * Preloads the parser-bearing MTL loader implementation.
10
10
  */
@@ -36,7 +36,7 @@ __export(obj_loader_types_exports, {
36
36
  module.exports = __toCommonJS(obj_loader_types_exports);
37
37
  var import_obj_format = require("./obj-format.cjs");
38
38
  var import_arrow_worker_transport = require("@loaders.gl/core/arrow-worker-transport");
39
- var VERSION = true ? "5.0.0-beta.7" : "latest";
39
+ var VERSION = true ? "5.0.0-beta.8" : "latest";
40
40
  async function preload() {
41
41
  const { OBJLoaderWithParser } = await import("@loaders.gl/scene/obj-loader");
42
42
  return OBJLoaderWithParser;
@@ -5,7 +5,7 @@ import { OBJFormat } from "./obj-format.js";
5
5
  import { serializeArrowWorkerTable } from '@loaders.gl/core/arrow-worker-transport';
6
6
  // __VERSION__ is injected by babel-plugin-version-inline
7
7
  // @ts-ignore TS2304: Cannot find name '__VERSION__'.
8
- const VERSION = typeof "5.0.0-beta.7" !== 'undefined' ? "5.0.0-beta.7" : 'latest';
8
+ const VERSION = typeof "5.0.0-beta.8" !== 'undefined' ? "5.0.0-beta.8" : 'latest';
9
9
  /**
10
10
  * Preloads the parser-bearing OBJ loader implementation.
11
11
  */
@@ -25,7 +25,7 @@ __export(obj_writer_exports, {
25
25
  module.exports = __toCommonJS(obj_writer_exports);
26
26
  var import_schema_utils = require("@loaders.gl/core/schema-utils");
27
27
  var import_obj_format = require("./obj-format.cjs");
28
- var VERSION = true ? "5.0.0-beta.7" : "latest";
28
+ var VERSION = true ? "5.0.0-beta.8" : "latest";
29
29
  var OBJWriter = {
30
30
  ...import_obj_format.OBJFormat,
31
31
  dataType: null,
@@ -5,7 +5,7 @@ import { convertMeshToTable, convertTableToMesh } from '@loaders.gl/core/schema-
5
5
  import { OBJFormat } from "./obj-format.js";
6
6
  // __VERSION__ is injected by babel-plugin-version-inline
7
7
  // @ts-ignore TS2304: Cannot find name '__VERSION__'.
8
- const VERSION = typeof "5.0.0-beta.7" !== 'undefined' ? "5.0.0-beta.7" : 'latest';
8
+ const VERSION = typeof "5.0.0-beta.8" !== 'undefined' ? "5.0.0-beta.8" : 'latest';
9
9
  /**
10
10
  * Writer for the OBJ geometry format.
11
11
  */
@@ -38,7 +38,7 @@ module.exports = __toCommonJS(obj_loader_types_exports);
38
38
  // src/obj/obj-loader-types.ts
39
39
  var import_obj_format = require("./obj-format.cjs");
40
40
  var import_arrow_worker_transport = require("@loaders.gl/core/arrow-worker-transport");
41
- var VERSION = true ? "5.0.0-beta.7" : "latest";
41
+ var VERSION = true ? "5.0.0-beta.8" : "latest";
42
42
  async function preload() {
43
43
  const { OBJLoaderWithParser } = await import("@loaders.gl/scene/obj-loader");
44
44
  return OBJLoaderWithParser;
@@ -1487,6 +1487,12 @@
1487
1487
  }
1488
1488
  });
1489
1489
 
1490
+ // ../../node_modules/@math.gl/arrow/dist/arrow/indexed-arrow-helpers.js
1491
+ var init_indexed_arrow_helpers = __esm({
1492
+ "../../node_modules/@math.gl/arrow/dist/arrow/indexed-arrow-helpers.js"() {
1493
+ }
1494
+ });
1495
+
1490
1496
  // ../../node_modules/tslib/tslib.es6.mjs
1491
1497
  function __rest(s, e) {
1492
1498
  var t = {};
@@ -16387,6 +16393,12 @@ return true;`);
16387
16393
  }
16388
16394
  });
16389
16395
 
16396
+ // ../../node_modules/@math.gl/arrow/dist/arrow/arrow-schema-utils.js
16397
+ var init_arrow_schema_utils = __esm({
16398
+ "../../node_modules/@math.gl/arrow/dist/arrow/arrow-schema-utils.js"() {
16399
+ }
16400
+ });
16401
+
16390
16402
  // ../../node_modules/@math.gl/arrow/dist/arrow/arrow-data.js
16391
16403
  function getArrowVariadicBuffers(data) {
16392
16404
  return data.variadicBuffers ?? [];
@@ -16490,27 +16502,43 @@ return true;`);
16490
16502
  }
16491
16503
  });
16492
16504
 
16505
+ // ../../node_modules/@math.gl/arrow/dist/arrow/take-arrow-rows.js
16506
+ var init_take_arrow_rows = __esm({
16507
+ "../../node_modules/@math.gl/arrow/dist/arrow/take-arrow-rows.js"() {
16508
+ init_arrow_data();
16509
+ init_split_arrow_buffers();
16510
+ }
16511
+ });
16512
+
16493
16513
  // ../../node_modules/@math.gl/arrow/dist/arrow/indexed-arrow-vector.js
16494
16514
  var init_indexed_arrow_vector = __esm({
16495
16515
  "../../node_modules/@math.gl/arrow/dist/arrow/indexed-arrow-vector.js"() {
16516
+ init_indexed_arrow_helpers();
16496
16517
  }
16497
16518
  });
16498
16519
 
16499
16520
  // ../../node_modules/@math.gl/arrow/dist/arrow/indexed-arrow-table.js
16500
16521
  var init_indexed_arrow_table = __esm({
16501
16522
  "../../node_modules/@math.gl/arrow/dist/arrow/indexed-arrow-table.js"() {
16523
+ init_indexed_arrow_helpers();
16524
+ init_arrow_schema_utils();
16525
+ init_take_arrow_rows();
16526
+ init_indexed_arrow_vector();
16502
16527
  }
16503
16528
  });
16504
16529
 
16505
16530
  // ../../node_modules/@math.gl/arrow/dist/arrow/mapped-arrow-table.js
16506
16531
  var init_mapped_arrow_table = __esm({
16507
16532
  "../../node_modules/@math.gl/arrow/dist/arrow/mapped-arrow-table.js"() {
16533
+ init_indexed_arrow_helpers();
16534
+ init_indexed_arrow_table();
16508
16535
  }
16509
16536
  });
16510
16537
 
16511
16538
  // ../../node_modules/@math.gl/arrow/dist/arrow/rename-arrow-columns.js
16512
16539
  var init_rename_arrow_columns = __esm({
16513
16540
  "../../node_modules/@math.gl/arrow/dist/arrow/rename-arrow-columns.js"() {
16541
+ init_arrow_schema_utils();
16514
16542
  }
16515
16543
  });
16516
16544
 
@@ -16564,15 +16592,23 @@ return true;`);
16564
16592
  }
16565
16593
  });
16566
16594
 
16595
+ // ../../node_modules/@math.gl/arrow/dist/arrow/arrow-column-utils.js
16596
+ var init_arrow_column_utils = __esm({
16597
+ "../../node_modules/@math.gl/arrow/dist/arrow/arrow-column-utils.js"() {
16598
+ }
16599
+ });
16600
+
16567
16601
  // ../../node_modules/@math.gl/arrow/dist/arrow/index.js
16568
16602
  var init_arrow = __esm({
16569
16603
  "../../node_modules/@math.gl/arrow/dist/arrow/index.js"() {
16570
16604
  init_indexed_arrow_table();
16571
16605
  init_indexed_arrow_vector();
16572
16606
  init_mapped_arrow_table();
16607
+ init_arrow_schema_utils();
16573
16608
  init_rename_arrow_columns();
16574
16609
  init_split_arrow_buffers();
16575
16610
  init_arrow_table_transport();
16611
+ init_arrow_column_utils();
16576
16612
  }
16577
16613
  });
16578
16614
 
@@ -18173,7 +18209,7 @@ return true;`);
18173
18209
  "use strict";
18174
18210
  init_obj_format();
18175
18211
  init_arrow_worker_transport();
18176
- VERSION = true ? "5.0.0-beta.7" : "latest";
18212
+ VERSION = true ? "5.0.0-beta.8" : "latest";
18177
18213
  OBJLoader = {
18178
18214
  ...OBJFormat,
18179
18215
  dataType: null,
@@ -27,7 +27,7 @@ module.exports = __toCommonJS(obj_writer_exports);
27
27
  // src/obj/obj-writer.ts
28
28
  var import_schema_utils = require("@loaders.gl/core/schema-utils");
29
29
  var import_obj_format = require("./obj-format.cjs");
30
- var VERSION = true ? "5.0.0-beta.7" : "latest";
30
+ var VERSION = true ? "5.0.0-beta.8" : "latest";
31
31
  var OBJWriter = {
32
32
  ...import_obj_format.OBJFormat,
33
33
  dataType: null,
@@ -33,7 +33,7 @@ __export(stl_loader_types_exports, {
33
33
  STLLoader: () => STLLoader
34
34
  });
35
35
  module.exports = __toCommonJS(stl_loader_types_exports);
36
- var VERSION = true ? "5.0.0-beta.7" : "latest";
36
+ var VERSION = true ? "5.0.0-beta.8" : "latest";
37
37
  async function preload() {
38
38
  const { STLLoaderWithParser } = await import("@loaders.gl/scene/stl-loader");
39
39
  return STLLoaderWithParser;
@@ -2,7 +2,7 @@
2
2
  // Copyright (c) vis.gl contributors
3
3
  /** Package version injected by the build. */
4
4
  // @ts-ignore __VERSION__ is injected during compilation.
5
- const VERSION = typeof "5.0.0-beta.7" !== 'undefined' ? "5.0.0-beta.7" : 'latest';
5
+ const VERSION = typeof "5.0.0-beta.8" !== 'undefined' ? "5.0.0-beta.8" : 'latest';
6
6
  /** Loads the STL parser on demand. */
7
7
  async function preload() {
8
8
  const { STLLoaderWithParser } = await import('@loaders.gl/scene/stl-loader');
@@ -33,7 +33,7 @@ __export(usd_loader_types_exports, {
33
33
  USDLoader: () => USDLoader
34
34
  });
35
35
  module.exports = __toCommonJS(usd_loader_types_exports);
36
- var VERSION = true ? "5.0.0-beta.7" : "latest";
36
+ var VERSION = true ? "5.0.0-beta.8" : "latest";
37
37
  async function preload() {
38
38
  const { USDLoaderWithParser } = await import("@loaders.gl/scene/usd-loader");
39
39
  return USDLoaderWithParser;
@@ -3,7 +3,7 @@
3
3
  // loaders.gl
4
4
  // __VERSION__ is injected by babel-plugin-version-inline
5
5
  // @ts-ignore TS2304: Cannot find name '__VERSION__'.
6
- const VERSION = typeof "5.0.0-beta.7" !== 'undefined' ? "5.0.0-beta.7" : 'latest';
6
+ const VERSION = typeof "5.0.0-beta.8" !== 'undefined' ? "5.0.0-beta.8" : 'latest';
7
7
  /** Loads the parser-bearing USD loader implementation. */
8
8
  async function preload() {
9
9
  const { USDLoaderWithParser } = await import('@loaders.gl/scene/usd-loader');
@@ -35,7 +35,7 @@ __export(usd_loader_types_exports, {
35
35
  module.exports = __toCommonJS(usd_loader_types_exports);
36
36
 
37
37
  // src/usd/usd-loader-types.ts
38
- var VERSION = true ? "5.0.0-beta.7" : "latest";
38
+ var VERSION = true ? "5.0.0-beta.8" : "latest";
39
39
  async function preload() {
40
40
  const { USDLoaderWithParser } = await import("@loaders.gl/scene/usd-loader");
41
41
  return USDLoaderWithParser;