@loaders.gl/scene 5.0.0-alpha.10 → 5.0.0-alpha.12

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.
package/dist/dist.dev.js CHANGED
@@ -39,7 +39,6 @@ var __exports__ = (() => {
39
39
  }
40
40
  return to;
41
41
  };
42
- var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
43
42
  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
44
43
  // If the importer is in node compatibility mode or this is not an ESM
45
44
  // file that has been converted to a CommonJS file using a Babel-
@@ -828,9 +827,70 @@ var __exports__ = (() => {
828
827
  // bundle.ts
829
828
  var bundle_exports = {};
830
829
  __export(bundle_exports, {
831
- USDLoader: () => USDLoader
830
+ FetchError: () => import_core.FetchError,
831
+ JSONLoader: () => import_core.JSONLoader,
832
+ NullLoader: () => import_core.NullLoader,
833
+ NullWorkerLoader: () => import_core.NullWorkerLoader,
834
+ RequestScheduler: () => import_core.RequestScheduler,
835
+ USDLoader: () => USDLoader,
836
+ _BrowserFileSystem: () => import_core._BrowserFileSystem,
837
+ _fetchProgress: () => import_core._fetchProgress,
838
+ _selectSource: () => import_core._selectSource,
839
+ _unregisterLoaders: () => import_core._unregisterLoaders,
840
+ assert: () => import_core.assert,
841
+ concatenateArrayBuffersAsync: () => import_core.concatenateArrayBuffersAsync,
842
+ coreApi: () => import_core.coreApi,
843
+ createDataSource: () => import_core.createDataSource,
844
+ document: () => import_core.document,
845
+ encode: () => import_core.encode,
846
+ encodeInBatches: () => import_core.encodeInBatches,
847
+ encodeSync: () => import_core.encodeSync,
848
+ encodeTable: () => import_core.encodeTable,
849
+ encodeTableAsText: () => import_core.encodeTableAsText,
850
+ encodeTableInBatches: () => import_core.encodeTableInBatches,
851
+ encodeText: () => import_core.encodeText,
852
+ encodeTextSync: () => import_core.encodeTextSync,
853
+ encodeURLtoURL: () => import_core.encodeURLtoURL,
854
+ fetchFile: () => import_core.fetchFile,
855
+ forEach: () => import_core.forEach,
856
+ getLoaderOptions: () => import_core.getLoaderOptions,
857
+ getPathPrefix: () => import_core.getPathPrefix,
858
+ global: () => import_core.global,
859
+ isAsyncIterable: () => import_core.isAsyncIterable,
860
+ isBrowser: () => import_core.isBrowser,
861
+ isIterable: () => import_core.isIterable,
862
+ isIterator: () => import_core.isIterator,
863
+ isPromise: () => import_core.isPromise,
864
+ isPureObject: () => import_core.isPureObject,
865
+ isReadableStream: () => import_core.isReadableStream,
866
+ isResponse: () => import_core.isResponse,
867
+ isWorker: () => import_core.isWorker,
868
+ isWritableStream: () => import_core.isWritableStream,
869
+ load: () => import_core.load,
870
+ loadInBatches: () => import_core.loadInBatches,
871
+ makeIterator: () => import_core.makeIterator,
872
+ makeLineIterator: () => import_core.makeLineIterator,
873
+ makeNumberedLineIterator: () => import_core.makeNumberedLineIterator,
874
+ makeStream: () => import_core.makeStream,
875
+ makeTextDecoderIterator: () => import_core.makeTextDecoderIterator,
876
+ makeTextEncoderIterator: () => import_core.makeTextEncoderIterator,
877
+ parse: () => import_core.parse,
878
+ parseFile: () => import_core.parseFile,
879
+ parseInBatches: () => import_core.parseInBatches,
880
+ parseSync: () => import_core.parseSync,
881
+ preload: () => import_core.preload,
882
+ preloadSync: () => import_core.preloadSync,
883
+ readArrayBuffer: () => import_core.readArrayBuffer,
884
+ registerLoaders: () => import_core.registerLoaders,
885
+ resolvePath: () => import_core.resolvePath,
886
+ selectLoader: () => import_core.selectLoader,
887
+ selectLoaderSync: () => import_core.selectLoaderSync,
888
+ self: () => import_core.self,
889
+ setLoaderOptions: () => import_core.setLoaderOptions,
890
+ setPathPrefix: () => import_core.setPathPrefix,
891
+ window: () => import_core.window
832
892
  });
833
- __reExport(bundle_exports, __toESM(require_core(), 1));
893
+ var import_core = __toESM(require_core(), 1);
834
894
 
835
895
  // src/index.ts
836
896
  init_usd_loader_types();
package/dist/dist.min.js CHANGED
@@ -4,11 +4,11 @@
4
4
  else if (typeof define === 'function' && define.amd) define([], factory);
5
5
  else if (typeof exports === 'object') exports['loaders'] = factory();
6
6
  else root['loaders'] = factory();})(globalThis, function () {
7
- "use strict";var __exports__=(()=>{var q=Object.create;var y=Object.defineProperty;var B=Object.getOwnPropertyDescriptor;var G=Object.getOwnPropertyNames;var X=Object.getPrototypeOf,K=Object.prototype.hasOwnProperty;var k=(s,e,t)=>()=>{if(t)throw t[0];try{return s&&(e=s(s=0)),e}catch(n){throw t=[n],n}};var J=(s,e)=>()=>{try{return e||s((e={exports:{}}).exports,e),e.exports}catch(t){throw e=0,t}},O=(s,e)=>{for(var t in e)y(s,t,{get:e[t],enumerable:!0})},w=(s,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of G(e))!K.call(s,r)&&r!==t&&y(s,r,{get:()=>e[r],enumerable:!(n=B(e,r))||n.enumerable});return s},S=(s,e,t)=>(w(s,e,"default"),t&&w(t,e,"default")),ee=(s,e,t)=>(t=s!=null?q(X(s)):{},w(e||!s||!s.__esModule?y(t,"default",{value:s,enumerable:!0}):t,s)),te=s=>w(y({},"__esModule",{value:!0}),s);var C=J((we,I)=>{I.exports=globalThis.loaders});function _(s,e){if(!s.trimStart().startsWith("#usda"))throw new Error("OpenUSD ASCII layers must begin with the #usda header.");return new E(s,e).parse()}var se,re,E,b,N=k(()=>{"use strict";se=/^[+-]?(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?/,re=new Set(["uniform","varying","custom","prepend","append","add","delete","reorder"]);E=class{tokenizer;url;constructor(e,t){this.tokenizer=new b(e),this.url=t}parse(){let e=this.tokenizer.match("(")?this.parseMetadata(")"):{},t=[];for(;!this.tokenizer.isAtEnd();)this.isPrimDeclaration()?t.push(this.parsePrim("")):this.tokenizer.read();return{format:"usda",url:this.url,metadata:e,rootPrims:t,layers:this.url?[this.url]:[]}}parsePrim(e){let n=this.tokenizer.read().value,r=this.tokenizer.read(),i=this.tokenizer.peek().kind==="string",a=i?r.value:"",c=i?this.tokenizer.read().value:r.value,f=`${e}/${c}`,h=this.tokenizer.match("(")?this.parseMetadata(")"):{};this.tokenizer.expect("{");let o=this.parsePrimContents(f);return{name:c,path:f,sourceUrl:this.url,type:a,specifier:n,attributes:o.attributes,metadata:{...h,...o.metadata},variants:o.variants,children:o.children}}parsePrimContents(e){let t={},n={},r=[],i={};for(;!this.tokenizer.isAtEnd()&&!this.tokenizer.match("}");)if(this.isPrimDeclaration())r.push(this.parsePrim(e));else if(this.tokenizer.peek().value==="variantSet")this.parseVariantSet(e,i);else{let a=this.parseAttribute();a&&(t[a.name]=a)}return{attributes:t,metadata:n,children:r,variants:i}}parseVariantSet(e,t){this.tokenizer.expect("variantSet");let n=this.tokenizer.read().value;this.tokenizer.expect("="),this.tokenizer.expect("{");let r={};for(;!this.tokenizer.isAtEnd()&&!this.tokenizer.match("}");){let i=this.tokenizer.read().value;this.tokenizer.expect("{");let a=this.parsePrimContents(e);r[i]={attributes:a.attributes,metadata:a.metadata,children:a.children}}t[n]=r}parseAttribute(){let e=this.tokenizer.read();if(e.kind==="end")return null;let t=[e];for(;!this.tokenizer.isAtEnd()&&this.tokenizer.peek().line===e.line;){let h=this.tokenizer.peek();if(h.value==="="){this.tokenizer.read();break}if(h.value==="{"||h.value==="}")return null;t.push(this.tokenizer.read())}if(!(this.tokenizer.previousValue==="="))return null;let r=t.filter(h=>!re.has(h.value));if(r.length===0)return null;let i=r[r.length-1].value,a=r.slice(0,-1).map(h=>h.value).join(""),c=this.parseValue(),f=this.tokenizer.match("(")?this.parseMetadata(")"):{};return{name:i,type:a,value:c,metadata:f}}parseMetadata(e){let t={};for(;!this.tokenizer.isAtEnd()&&!this.tokenizer.match(e);){if(this.tokenizer.match(","),this.tokenizer.peek().value===e){this.tokenizer.read();break}let n=this.tokenizer.read(),r=[n];for(;!this.tokenizer.isAtEnd()&&this.tokenizer.peek().line===n.line;){if(this.tokenizer.peek().value==="="||this.tokenizer.peek().value===":"){this.tokenizer.read();break}if(this.tokenizer.peek().value===e)break;r.push(this.tokenizer.read())}if(this.tokenizer.previousValue!=="="&&this.tokenizer.previousValue!==":")continue;let i=r[r.length-1].value;t[i]=this.parseValue(),this.tokenizer.match(",")}return t}parseValue(){let e=this.tokenizer.read();if(e.value==="[")return this.parseList("]");if(e.value==="(")return this.parseList(")");if(e.value==="{")return this.parseMetadata("}");if(e.kind==="asset"){let t={assetPath:e.value};return this.tokenizer.peek().kind==="path"&&this.tokenizer.peek().line===e.line&&(t.primPath=this.tokenizer.read().value),t}return e.kind==="path"?{path:e.value}:e.kind==="number"?Number(e.value):e.value==="true"?!0:e.value==="false"?!1:e.value==="None"||e.value==="null"?null:e.value}parseList(e){let t=[];for(;!this.tokenizer.isAtEnd()&&!this.tokenizer.match(e);)this.tokenizer.match(",")||(t.push(this.parseValue()),this.tokenizer.match(","));return t}isPrimDeclaration(){let e=this.tokenizer.peek().value;return e==="def"||e==="over"||e==="class"}},b=class{source;offset=0;line=1;bufferedToken=null;previousValue="";constructor(e){this.source=e}peek(){return this.bufferedToken||=this.readToken(),this.bufferedToken}read(){let e=this.peek();return this.bufferedToken=null,this.previousValue=e.value,e}match(e){return this.peek().value!==e?!1:(this.read(),!0)}expect(e){let t=this.read();if(t.value!==e)throw new Error(`Expected "${e}" at USDA line ${t.line}, received "${t.value}".`)}isAtEnd(){return this.peek().kind==="end"}readToken(){this.skipIgnoredText();let e=this.line,t=this.source[this.offset];if(t===void 0)return{value:"",line:e,kind:"end"};if("{}[](),=".includes(t))return this.offset++,{value:t,line:e,kind:"punctuation"};if(t==='"'||t==="'")return{value:this.readQuotedString(t),line:e,kind:"string"};if(t==="@")return{value:this.readDelimitedValue("@"),line:e,kind:"asset"};if(t==="<")return{value:this.readDelimitedValue(">"),line:e,kind:"path"};let n=this.source.slice(this.offset).match(se);if(n)return this.offset+=n[0].length,{value:n[0],line:e,kind:"number"};let r=this.offset;for(;this.offset<this.source.length;){let i=this.source[this.offset];if(/\s/.test(i)||"{}[](),=@<>".includes(i))break;this.offset++}return this.offset===r&&this.offset++,{value:this.source.slice(r,this.offset),line:e,kind:"word"}}skipIgnoredText(){for(;this.offset<this.source.length;){let e=this.source[this.offset];if(e===`
7
+ "use strict";var __exports__=(()=>{var q=Object.create;var v=Object.defineProperty;var H=Object.getOwnPropertyDescriptor;var Q=Object.getOwnPropertyNames;var G=Object.getPrototypeOf,X=Object.prototype.hasOwnProperty;var S=(s,e,r)=>()=>{if(r)throw r[0];try{return s&&(e=s(s=0)),e}catch(i){throw r=[i],i}};var J=(s,e)=>()=>{try{return e||s((e={exports:{}}).exports,e),e.exports}catch(r){throw e=0,r}},T=(s,e)=>{for(var r in e)v(s,r,{get:e[r],enumerable:!0})},R=(s,e,r,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Q(e))!X.call(s,n)&&n!==r&&v(s,n,{get:()=>e[n],enumerable:!(i=H(e,n))||i.enumerable});return s};var K=(s,e,r)=>(r=s!=null?q(G(s)):{},R(e||!s||!s.__esModule?v(r,"default",{value:s,enumerable:!0}):r,s)),ee=s=>R(v({},"__esModule",{value:!0}),s);var O=J((ge,I)=>{I.exports=globalThis.loaders});function C(s,e){if(!s.trimStart().startsWith("#usda"))throw new Error("OpenUSD ASCII layers must begin with the #usda header.");return new D(s,e).parse()}var te,re,D,b,_=S(()=>{"use strict";te=/^[+-]?(?:\d+\.?\d*|\.\d+)(?:[eE][+-]?\d+)?/,re=new Set(["uniform","varying","custom","prepend","append","add","delete","reorder"]);D=class{tokenizer;url;constructor(e,r){this.tokenizer=new b(e),this.url=r}parse(){let e=this.tokenizer.match("(")?this.parseMetadata(")"):{},r=[];for(;!this.tokenizer.isAtEnd();)this.isPrimDeclaration()?r.push(this.parsePrim("")):this.tokenizer.read();return{format:"usda",url:this.url,metadata:e,rootPrims:r,layers:this.url?[this.url]:[]}}parsePrim(e){let i=this.tokenizer.read().value,n=this.tokenizer.read(),a=this.tokenizer.peek().kind==="string",o=a?n.value:"",h=a?this.tokenizer.read().value:n.value,u=`${e}/${h}`,l=this.tokenizer.match("(")?this.parseMetadata(")"):{};this.tokenizer.expect("{");let c=this.parsePrimContents(u);return{name:h,path:u,sourceUrl:this.url,type:o,specifier:i,attributes:c.attributes,metadata:{...l,...c.metadata},variants:c.variants,children:c.children}}parsePrimContents(e){let r={},i={},n=[],a={};for(;!this.tokenizer.isAtEnd()&&!this.tokenizer.match("}");)if(this.isPrimDeclaration())n.push(this.parsePrim(e));else if(this.tokenizer.peek().value==="variantSet")this.parseVariantSet(e,a);else{let o=this.parseAttribute();o&&(r[o.name]=o)}return{attributes:r,metadata:i,children:n,variants:a}}parseVariantSet(e,r){this.tokenizer.expect("variantSet");let i=this.tokenizer.read().value;this.tokenizer.expect("="),this.tokenizer.expect("{");let n={};for(;!this.tokenizer.isAtEnd()&&!this.tokenizer.match("}");){let a=this.tokenizer.read().value;this.tokenizer.expect("{");let o=this.parsePrimContents(e);n[a]={attributes:o.attributes,metadata:o.metadata,children:o.children}}r[i]=n}parseAttribute(){let e=this.tokenizer.read();if(e.kind==="end")return null;let r=[e];for(;!this.tokenizer.isAtEnd()&&this.tokenizer.peek().line===e.line;){let l=this.tokenizer.peek();if(l.value==="="){this.tokenizer.read();break}if(l.value==="{"||l.value==="}")return null;r.push(this.tokenizer.read())}if(!(this.tokenizer.previousValue==="="))return null;let n=r.filter(l=>!re.has(l.value));if(n.length===0)return null;let a=n[n.length-1].value,o=n.slice(0,-1).map(l=>l.value).join(""),h=this.parseValue(),u=this.tokenizer.match("(")?this.parseMetadata(")"):{};return{name:a,type:o,value:h,metadata:u}}parseMetadata(e){let r={};for(;!this.tokenizer.isAtEnd()&&!this.tokenizer.match(e);){if(this.tokenizer.match(","),this.tokenizer.peek().value===e){this.tokenizer.read();break}let i=this.tokenizer.read(),n=[i];for(;!this.tokenizer.isAtEnd()&&this.tokenizer.peek().line===i.line;){if(this.tokenizer.peek().value==="="||this.tokenizer.peek().value===":"){this.tokenizer.read();break}if(this.tokenizer.peek().value===e)break;n.push(this.tokenizer.read())}if(this.tokenizer.previousValue!=="="&&this.tokenizer.previousValue!==":")continue;let a=n[n.length-1].value;r[a]=this.parseValue(),this.tokenizer.match(",")}return r}parseValue(){let e=this.tokenizer.read();if(e.value==="[")return this.parseList("]");if(e.value==="(")return this.parseList(")");if(e.value==="{")return this.parseMetadata("}");if(e.kind==="asset"){let r={assetPath:e.value};return this.tokenizer.peek().kind==="path"&&this.tokenizer.peek().line===e.line&&(r.primPath=this.tokenizer.read().value),r}return e.kind==="path"?{path:e.value}:e.kind==="number"?Number(e.value):e.value==="true"?!0:e.value==="false"?!1:e.value==="None"||e.value==="null"?null:e.value}parseList(e){let r=[];for(;!this.tokenizer.isAtEnd()&&!this.tokenizer.match(e);)this.tokenizer.match(",")||(r.push(this.parseValue()),this.tokenizer.match(","));return r}isPrimDeclaration(){let e=this.tokenizer.peek().value;return e==="def"||e==="over"||e==="class"}},b=class{source;offset=0;line=1;bufferedToken=null;previousValue="";constructor(e){this.source=e}peek(){return this.bufferedToken||=this.readToken(),this.bufferedToken}read(){let e=this.peek();return this.bufferedToken=null,this.previousValue=e.value,e}match(e){return this.peek().value!==e?!1:(this.read(),!0)}expect(e){let r=this.read();if(r.value!==e)throw new Error(`Expected "${e}" at USDA line ${r.line}, received "${r.value}".`)}isAtEnd(){return this.peek().kind==="end"}readToken(){this.skipIgnoredText();let e=this.line,r=this.source[this.offset];if(r===void 0)return{value:"",line:e,kind:"end"};if("{}[](),=".includes(r))return this.offset++,{value:r,line:e,kind:"punctuation"};if(r==='"'||r==="'")return{value:this.readQuotedString(r),line:e,kind:"string"};if(r==="@")return{value:this.readDelimitedValue("@"),line:e,kind:"asset"};if(r==="<")return{value:this.readDelimitedValue(">"),line:e,kind:"path"};let i=this.source.slice(this.offset).match(te);if(i)return this.offset+=i[0].length,{value:i[0],line:e,kind:"number"};let n=this.offset;for(;this.offset<this.source.length;){let a=this.source[this.offset];if(/\s/.test(a)||"{}[](),=@<>".includes(a))break;this.offset++}return this.offset===n&&this.offset++,{value:this.source.slice(n,this.offset),line:e,kind:"word"}}skipIgnoredText(){for(;this.offset<this.source.length;){let e=this.source[this.offset];if(e===`
8
8
  `)this.line++,this.offset++;else if(/\s/.test(e))this.offset++;else if(e==="#")for(;this.offset<this.source.length&&this.source[this.offset]!==`
9
9
  `;)this.offset++;else if(e==="/"&&this.source[this.offset+1]==="*"){for(this.offset+=2;this.offset<this.source.length&&!this.source.startsWith("*/",this.offset);)this.source[this.offset]===`
10
10
  `&&this.line++,this.offset++;this.offset+=2}else if(this.source.startsWith('"""',this.offset)){for(this.offset+=3;this.offset<this.source.length&&!this.source.startsWith('"""',this.offset);)this.source[this.offset]===`
11
- `&&this.line++,this.offset++;this.offset+=3}else break}}readQuotedString(e){this.offset++;let t="";for(;this.offset<this.source.length;){let n=this.source[this.offset++];if(n===e)break;if(n==="\\"&&this.offset<this.source.length){let r=this.source[this.offset++];t+=r==="n"?`
12
- `:r}else t+=n}return t}readDelimitedValue(e){this.offset++;let t=this.offset;for(;this.offset<this.source.length&&this.source[this.offset]!==e;)this.offset++;let n=this.source.slice(t,this.offset);return this.offset++,n}}});function V(s){let e=new DataView(s),t=ne(e),n=e.getUint16(t+10,!0),r=e.getUint32(t+16,!0),i=new Map,a=new TextDecoder;for(let c=0;c<n;c++){if(e.getUint32(r,!0)!==33639248)throw new Error("USDZ archive contains an invalid ZIP central-directory entry.");let f=e.getUint16(r+10,!0),h=e.getUint32(r+20,!0),o=e.getUint16(r+28,!0),p=e.getUint16(r+30,!0),m=e.getUint16(r+32,!0),u=e.getUint32(r+42,!0),d=a.decode(new Uint8Array(s,r+46,o));if(f!==0)throw new Error(`USDZ entry "${d}" is compressed; USDZ requires stored ZIP entries.`);if(e.getUint32(u,!0)!==67324752)throw new Error(`USDZ entry "${d}" has an invalid local ZIP header.`);let l=e.getUint16(u+26,!0),D=e.getUint16(u+28,!0),g=u+30+l+D;i.set(d,s.slice(g,g+h)),r+=46+o+p+m}return i}function ne(s){let e=Math.max(0,s.byteLength-65557);for(let t=s.byteLength-22;t>=e;t--)if(s.getUint32(t,!0)===101010256)return t;throw new Error("USDZ archive does not contain a ZIP end-of-central-directory record.")}var $=k(()=>{"use strict"});async function R(s,e={},t){let n=oe(e.core?.baseUrl,t?.url),r={fetch:async a=>{let c=await(t?.fetch||fetch)(a);if(!(c instanceof Response))throw new Error(`OpenUSD reference "${a}" did not return an HTTP response.`);if(!c.ok)throw new Error(`Unable to load OpenUSD reference "${a}": ${c.status}.`);return c},cache:new Map,archiveFiles:new Map,layers:new Set,options:{...e,usd:{...he,...e.usd}}},i;if(de(s)){let a=V(s),c=Array.from(a.keys()).find(o=>/\.usda?$/i.test(o));if(!c)throw new Error("USDZ archives with binary USDC root layers are not implemented yet.");let f="https://usd.archive/";for(let[o,p]of a)r.archiveFiles.set(new URL(o,f).href,p);let h=new URL(c,f).href;i=P(a.get(c),h),i.format="usdz"}else i=P(s,n);return i.url&&r.layers.add(i.url),r.options.usd?.compose!==!1&&(i.rootPrims=await A(i.rootPrims,i.url,{},r,0)),i.layers=Array.from(r.layers),n&&(i.url=n),i}function oe(s,e){let t=Z(s);return t||Z(e)||s||e}function Z(s){try{return s?new URL(s).href:void 0}catch{return}}function ce(s,e){try{return new URL(s,e).href}catch{let t=Math.max(e.lastIndexOf("/"),e.lastIndexOf("\\"));return t>=0?`${e.slice(0,t+1)}${s}`:s}}function P(s,e){if(M.decode(s.slice(0,8))===ie)throw new Error("Binary USDC crate layers are not implemented yet; use ASCII USDA layers.");return _(M.decode(s),e)}async function A(s,e,t,n,r){if(r>(n.options.usd?.maxReferenceDepth??12))throw new Error("OpenUSD reference composition exceeded the configured depth limit.");let i=[];for(let a of s){if(a.specifier==="class")continue;let f={...le(a.metadata.variants),...t,...n.options.usd?.variantSelections},h=a.sourceUrl||e,o=v(a);for(let[m,u]of Object.entries(o.variants)){let d=f[m]||Object.keys(u)[0],l=u[d];l&&(o=T(o,{...o,attributes:l.attributes,metadata:l.metadata,children:l.children,variants:{}}))}let p=W(o);if(n.options.usd?.loadReferences!==!1&&p.length>0)for(let m of p){if(!h)throw new Error("OpenUSD references require a source URL or options.core.baseUrl.");let u=ce(m.assetPath,h),d=await fe(u,n),l=ue(d,m.primPath),D=await A(l,u,f,n,r+1);for(let g of D)o=T(j(g,o.path),o)}o.children=await A(o.children,h,f,n,r),i.push(o)}return i}async function fe(s,e){let t=e.cache.get(s);return t||(t=(async()=>{let r=e.archiveFiles.get(s);if(!r){let a;try{a=await e.fetch(s)}catch(c){throw new Error(`Unable to fetch USD layer "${s}": ${String(c)}`)}r=a.arrayBuffer()}let i=P(await r,s);return e.layers.add(s),i})(),e.cache.set(s,t)),t}function ue(s,e){let t=e||s.metadata.defaultPrim;if(typeof t!="string")return s.rootPrims;let n=t.startsWith("/")?t:`/${t}`,r=F(s.rootPrims,n);return r?[r]:[]}function F(s,e){for(let t of s){if(t.path===e)return t;let n=F(t.children,e);if(n)return n}}function W(s){let e=[];for(let t of[s.metadata.references,s.metadata.payload,s.metadata.payloads])Array.isArray(t)?e.push(...t.filter(x)):x(t)&&e.push(t);return e}function le(s){return!s||typeof s!="object"||Array.isArray(s)||x(s)?{}:Object.fromEntries(Object.entries(s).filter(e=>typeof e[1]=="string"))}function x(s){return!!(s&&typeof s=="object"&&!Array.isArray(s)&&"assetPath"in s)}function v(s){return{...s,attributes:{...s.attributes},metadata:{...s.metadata},variants:{...s.variants},children:s.children.map(v)}}function j(s,e){let t=v(s);return t.path=e,t.children=t.children.map(n=>j(n,`${e}/${n.name}`)),t}function T(s,e){let t=s.children.map(v);for(let n of e.children){let r=t.findIndex(i=>i.name===n.name);r>=0?t[r]=T(t[r],n):t.push(v(n))}return{...s,...e,sourceUrl:W(e).length>0?e.sourceUrl:s.sourceUrl||e.sourceUrl,type:e.type||s.type,attributes:{...s.attributes,...e.attributes},metadata:{...s.metadata,...e.metadata},variants:{...s.variants,...e.variants},children:t}}function de(s){return s.byteLength>=4&&new DataView(s).getUint32(0,!0)===ae}var M,ie,ae,he,Y=k(()=>{"use strict";N();$();M=new TextDecoder,ie="PXR-USDC",ae=67324752;he={compose:!0,loadReferences:!0,maxReferenceDepth:12,variantSelections:{}}});var H={};O(H,{USDLoaderWithParser:()=>me});async function ke(s,e,t){return R(new TextEncoder().encode(s).buffer,e,t)}var Ae,pe,me,Q=k(()=>{"use strict";Y();L();({preload:Ae,...pe}=z),me={...pe,parse:R,parseText:ke}});async function Ue(){let{USDLoaderWithParser:s}=await Promise.resolve().then(()=>(Q(),H));return s}var ve,z,L=k(()=>{"use strict";ve="5.0.0-alpha.10";z={dataType:null,batchType:null,name:"Universal Scene Description",id:"usd",module:"scene",version:ve,extensions:["usd","usda","usdz"],mimeTypes:["model/vnd.usd","model/vnd.usda","model/vnd.usdz+zip"],text:!0,binary:!0,tests:["#usda","PK"],options:{usd:{compose:!0,loadReferences:!0,maxReferenceDepth:12,variantSelections:{}}},preload:Ue}});var U={};O(U,{USDLoader:()=>z});S(U,ee(C(),1));L();return te(U);})();
11
+ `&&this.line++,this.offset++;this.offset+=3}else break}}readQuotedString(e){this.offset++;let r="";for(;this.offset<this.source.length;){let i=this.source[this.offset++];if(i===e)break;if(i==="\\"&&this.offset<this.source.length){let n=this.source[this.offset++];r+=n==="n"?`
12
+ `:n}else r+=i}return r}readDelimitedValue(e){this.offset++;let r=this.offset;for(;this.offset<this.source.length&&this.source[this.offset]!==e;)this.offset++;let i=this.source.slice(r,this.offset);return this.offset++,i}}});function N(s){let e=new DataView(s),r=se(e),i=e.getUint16(r+10,!0),n=e.getUint32(r+16,!0),a=new Map,o=new TextDecoder;for(let h=0;h<i;h++){if(e.getUint32(n,!0)!==33639248)throw new Error("USDZ archive contains an invalid ZIP central-directory entry.");let u=e.getUint16(n+10,!0),l=e.getUint32(n+20,!0),c=e.getUint16(n+28,!0),m=e.getUint16(n+30,!0),k=e.getUint16(n+32,!0),f=e.getUint32(n+42,!0),p=o.decode(new Uint8Array(s,n+46,c));if(u!==0)throw new Error(`USDZ entry "${p}" is compressed; USDZ requires stored ZIP entries.`);if(e.getUint32(f,!0)!==67324752)throw new Error(`USDZ entry "${p}" has an invalid local ZIP header.`);let d=e.getUint16(f+26,!0),w=e.getUint16(f+28,!0),g=f+30+d+w;a.set(p,s.slice(g,g+l)),n+=46+c+m+k}return a}function se(s){let e=Math.max(0,s.byteLength-65557);for(let r=s.byteLength-22;r>=e;r--)if(s.getUint32(r,!0)===101010256)return r;throw new Error("USDZ archive does not contain a ZIP end-of-central-directory record.")}var V=S(()=>{"use strict"});async function x(s,e={},r){let i=ae(e.core?.baseUrl,r?.url),n={fetch:async o=>{let h=await(r?.fetch||fetch)(o);if(!(h instanceof Response))throw new Error(`OpenUSD reference "${o}" did not return an HTTP response.`);if(!h.ok)throw new Error(`Unable to load OpenUSD reference "${o}": ${h.status}.`);return h},cache:new Map,archiveFiles:new Map,layers:new Set,options:{...e,usd:{...ce,...e.usd}}},a;if(fe(s)){let o=N(s),h=Array.from(o.keys()).find(c=>/\.usda?$/i.test(c));if(!h)throw new Error("USDZ archives with binary USDC root layers are not implemented yet.");let u="https://usd.archive/";for(let[c,m]of o)n.archiveFiles.set(new URL(c,u).href,m);let l=new URL(h,u).href;a=P(o.get(h),l),a.format="usdz"}else a=P(s,i);return a.url&&n.layers.add(a.url),n.options.usd?.compose!==!1&&(a.rootPrims=await E(a.rootPrims,a.url,{},n,0)),a.layers=Array.from(n.layers),i&&(a.url=i),a}function ae(s,e){let r=$(s);return r||$(e)||s||e}function $(s){try{return s?new URL(s).href:void 0}catch{return}}function oe(s,e){try{return new URL(s,e).href}catch{let r=Math.max(e.lastIndexOf("/"),e.lastIndexOf("\\"));return r>=0?`${e.slice(0,r+1)}${s}`:s}}function P(s,e){if(F.decode(s.slice(0,8))===ne)throw new Error("Binary USDC crate layers are not implemented yet; use ASCII USDA layers.");return C(F.decode(s),e)}async function E(s,e,r,i,n){if(n>(i.options.usd?.maxReferenceDepth??12))throw new Error("OpenUSD reference composition exceeded the configured depth limit.");let a=[];for(let o of s){if(o.specifier==="class")continue;let u={...ue(o.metadata.variants),...r,...i.options.usd?.variantSelections},l=o.sourceUrl||e,c=y(o);for(let[k,f]of Object.entries(c.variants)){let p=u[k]||Object.keys(f)[0],d=f[p];d&&(c=A(c,{...c,attributes:d.attributes,metadata:d.metadata,children:d.children,variants:{}}))}let m=M(c);if(i.options.usd?.loadReferences!==!1&&m.length>0)for(let k of m){if(!l)throw new Error("OpenUSD references require a source URL or options.core.baseUrl.");let f=oe(k.assetPath,l),p=await he(f,i),d=le(p,k.primPath),w=await E(d,f,u,i,n+1);for(let g of w)c=A(Z(g,c.path),c)}c.children=await E(c.children,l,u,i,n),a.push(c)}return a}async function he(s,e){let r=e.cache.get(s);return r||(r=(async()=>{let n=e.archiveFiles.get(s);if(!n){let o;try{o=await e.fetch(s)}catch(h){throw new Error(`Unable to fetch USD layer "${s}": ${String(h)}`)}n=o.arrayBuffer()}let a=P(await n,s);return e.layers.add(s),a})(),e.cache.set(s,r)),r}function le(s,e){let r=e||s.metadata.defaultPrim;if(typeof r!="string")return s.rootPrims;let i=r.startsWith("/")?r:`/${r}`,n=W(s.rootPrims,i);return n?[n]:[]}function W(s,e){for(let r of s){if(r.path===e)return r;let i=W(r.children,e);if(i)return i}}function M(s){let e=[];for(let r of[s.metadata.references,s.metadata.payload,s.metadata.payloads])Array.isArray(r)?e.push(...r.filter(z)):z(r)&&e.push(r);return e}function ue(s){return!s||typeof s!="object"||Array.isArray(s)||z(s)?{}:Object.fromEntries(Object.entries(s).filter(e=>typeof e[1]=="string"))}function z(s){return!!(s&&typeof s=="object"&&!Array.isArray(s)&&"assetPath"in s)}function y(s){return{...s,attributes:{...s.attributes},metadata:{...s.metadata},variants:{...s.variants},children:s.children.map(y)}}function Z(s,e){let r=y(s);return r.path=e,r.children=r.children.map(i=>Z(i,`${e}/${i.name}`)),r}function A(s,e){let r=s.children.map(y);for(let i of e.children){let n=r.findIndex(a=>a.name===i.name);n>=0?r[n]=A(r[n],i):r.push(y(i))}return{...s,...e,sourceUrl:M(e).length>0?e.sourceUrl:s.sourceUrl||e.sourceUrl,type:e.type||s.type,attributes:{...s.attributes,...e.attributes},metadata:{...s.metadata,...e.metadata},variants:{...s.variants,...e.variants},children:r}}function fe(s){return s.byteLength>=4&&new DataView(s).getUint32(0,!0)===ie}var F,ne,ie,ce,B=S(()=>{"use strict";_();V();F=new TextDecoder,ne="PXR-USDC",ie=67324752;ce={compose:!0,loadReferences:!0,maxReferenceDepth:12,variantSelections:{}}});var j={};T(j,{USDLoaderWithParser:()=>pe});async function me(s,e,r){return x(new TextEncoder().encode(s).buffer,e,r)}var Ae,de,pe,Y=S(()=>{"use strict";B();L();({preload:Ae,...de}=U),pe={...de,parse:x,parseText:me}});async function Se(){let{USDLoaderWithParser:s}=await Promise.resolve().then(()=>(Y(),j));return s}var ke,U,L=S(()=>{"use strict";ke="5.0.0-alpha.12";U={dataType:null,batchType:null,name:"Universal Scene Description",id:"usd",module:"scene",version:ke,extensions:["usd","usda","usdz"],mimeTypes:["model/vnd.usd","model/vnd.usda","model/vnd.usdz+zip"],text:!0,binary:!0,tests:["#usda","PK"],options:{usd:{compose:!0,loadReferences:!0,maxReferenceDepth:12,variantSelections:{}}},preload:Se}});var ye={};T(ye,{FetchError:()=>t.FetchError,JSONLoader:()=>t.JSONLoader,NullLoader:()=>t.NullLoader,NullWorkerLoader:()=>t.NullWorkerLoader,RequestScheduler:()=>t.RequestScheduler,USDLoader:()=>U,_BrowserFileSystem:()=>t._BrowserFileSystem,_fetchProgress:()=>t._fetchProgress,_selectSource:()=>t._selectSource,_unregisterLoaders:()=>t._unregisterLoaders,assert:()=>t.assert,concatenateArrayBuffersAsync:()=>t.concatenateArrayBuffersAsync,coreApi:()=>t.coreApi,createDataSource:()=>t.createDataSource,document:()=>t.document,encode:()=>t.encode,encodeInBatches:()=>t.encodeInBatches,encodeSync:()=>t.encodeSync,encodeTable:()=>t.encodeTable,encodeTableAsText:()=>t.encodeTableAsText,encodeTableInBatches:()=>t.encodeTableInBatches,encodeText:()=>t.encodeText,encodeTextSync:()=>t.encodeTextSync,encodeURLtoURL:()=>t.encodeURLtoURL,fetchFile:()=>t.fetchFile,forEach:()=>t.forEach,getLoaderOptions:()=>t.getLoaderOptions,getPathPrefix:()=>t.getPathPrefix,global:()=>t.global,isAsyncIterable:()=>t.isAsyncIterable,isBrowser:()=>t.isBrowser,isIterable:()=>t.isIterable,isIterator:()=>t.isIterator,isPromise:()=>t.isPromise,isPureObject:()=>t.isPureObject,isReadableStream:()=>t.isReadableStream,isResponse:()=>t.isResponse,isWorker:()=>t.isWorker,isWritableStream:()=>t.isWritableStream,load:()=>t.load,loadInBatches:()=>t.loadInBatches,makeIterator:()=>t.makeIterator,makeLineIterator:()=>t.makeLineIterator,makeNumberedLineIterator:()=>t.makeNumberedLineIterator,makeStream:()=>t.makeStream,makeTextDecoderIterator:()=>t.makeTextDecoderIterator,makeTextEncoderIterator:()=>t.makeTextEncoderIterator,parse:()=>t.parse,parseFile:()=>t.parseFile,parseInBatches:()=>t.parseInBatches,parseSync:()=>t.parseSync,preload:()=>t.preload,preloadSync:()=>t.preloadSync,readArrayBuffer:()=>t.readArrayBuffer,registerLoaders:()=>t.registerLoaders,resolvePath:()=>t.resolvePath,selectLoader:()=>t.selectLoader,selectLoaderSync:()=>t.selectLoaderSync,self:()=>t.self,setLoaderOptions:()=>t.setLoaderOptions,setPathPrefix:()=>t.setPathPrefix,window:()=>t.window});var t=K(O(),1);L();return ee(ye);})();
13
13
  return __exports__;
14
14
  });
package/dist/index.cjs CHANGED
@@ -803,7 +803,7 @@ __export(index_exports, {
803
803
  module.exports = __toCommonJS(index_exports);
804
804
 
805
805
  // dist/usd-loader-types.js
806
- var VERSION2 = true ? "5.0.0-alpha.10" : "latest";
806
+ var VERSION2 = true ? "5.0.0-alpha.12" : "latest";
807
807
  async function preload2() {
808
808
  const { USDLoaderWithParser: USDLoaderWithParser2 } = await Promise.resolve().then(() => (init_usd_loader(), usd_loader_exports));
809
809
  return USDLoaderWithParser2;
@@ -3,7 +3,7 @@
3
3
  // Copyright (c) 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 "5.0.0-alpha.10" !== 'undefined' ? "5.0.0-alpha.10" : 'latest';
6
+ const VERSION = typeof "5.0.0-alpha.12" !== 'undefined' ? "5.0.0-alpha.12" : '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');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loaders.gl/scene",
3
- "version": "5.0.0-alpha.10",
3
+ "version": "5.0.0-alpha.12",
4
4
  "description": "Framework-independent loaders for scene description formats",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -46,10 +46,10 @@
46
46
  "build-bundle-dev": "ocular-bundle ./bundle.ts --env=dev --output=dist/dist.dev.js"
47
47
  },
48
48
  "dependencies": {
49
- "@loaders.gl/loader-utils": "5.0.0-alpha.10"
49
+ "@loaders.gl/loader-utils": "5.0.0-alpha.12"
50
50
  },
51
51
  "peerDependencies": {
52
52
  "@loaders.gl/core": "~5.0.0-alpha.0"
53
53
  },
54
- "gitHead": "7cbfaef633e86356c946541dab4977b522745b6c"
54
+ "gitHead": "8cbff6cb3e55c4eb1305072743992af27ff0c171"
55
55
  }