@loaders.gl/core 4.3.0-alpha.8 → 4.3.0-beta.1

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 (42) hide show
  1. package/dist/dist.dev.js +117 -258
  2. package/dist/dist.min.js +3 -3
  3. package/dist/index.cjs +40 -42
  4. package/dist/index.cjs.map +3 -3
  5. package/dist/iterators/make-iterator/make-iterator.d.ts +0 -1
  6. package/dist/iterators/make-iterator/make-iterator.d.ts.map +1 -1
  7. package/dist/iterators/make-iterator/make-stream-iterator.d.ts +0 -1
  8. package/dist/iterators/make-iterator/make-stream-iterator.d.ts.map +1 -1
  9. package/dist/javascript-utils/is-type.d.ts +0 -1
  10. package/dist/javascript-utils/is-type.d.ts.map +1 -1
  11. package/dist/lib/api/encode.d.ts +6 -6
  12. package/dist/lib/api/encode.d.ts.map +1 -1
  13. package/dist/lib/api/encode.js +3 -4
  14. package/dist/lib/api/load-in-batches.d.ts +1 -2
  15. package/dist/lib/api/load-in-batches.d.ts.map +1 -1
  16. package/dist/lib/api/load.d.ts +6 -4
  17. package/dist/lib/api/load.d.ts.map +1 -1
  18. package/dist/lib/api/load.js +1 -0
  19. package/dist/lib/api/parse-in-batches.d.ts +3 -4
  20. package/dist/lib/api/parse-in-batches.d.ts.map +1 -1
  21. package/dist/lib/api/parse-sync.d.ts +3 -4
  22. package/dist/lib/api/parse-sync.d.ts.map +1 -1
  23. package/dist/lib/api/parse.d.ts +3 -4
  24. package/dist/lib/api/parse.d.ts.map +1 -1
  25. package/dist/lib/api/parse.js +1 -2
  26. package/dist/lib/api/register-loaders.d.ts +8 -1
  27. package/dist/lib/api/register-loaders.d.ts.map +1 -1
  28. package/dist/lib/api/register-loaders.js +8 -1
  29. package/dist/lib/init.js +1 -1
  30. package/dist/null-loader.d.ts +1 -1
  31. package/dist/null-loader.d.ts.map +1 -1
  32. package/dist/null-loader.js +1 -1
  33. package/dist/null-worker-node.js +1 -1
  34. package/dist/null-worker.js +1 -1
  35. package/package.json +5 -5
  36. package/src/lib/api/encode.ts +29 -24
  37. package/src/lib/api/load-in-batches.ts +3 -2
  38. package/src/lib/api/load.ts +24 -9
  39. package/src/lib/api/parse-in-batches.ts +19 -7
  40. package/src/lib/api/parse-sync.ts +19 -7
  41. package/src/lib/api/parse.ts +20 -9
  42. package/src/lib/api/register-loaders.ts +8 -1
package/dist/dist.min.js CHANGED
@@ -4,12 +4,12 @@
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 xe=Object.defineProperty;var Hr=Object.getOwnPropertyDescriptor;var Gr=Object.getOwnPropertyNames;var qr=Object.prototype.hasOwnProperty;var Qr=(e,t,r)=>t in e?xe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var Rt=(e,t)=>{for(var r in t)xe(e,r,{get:t[r],enumerable:!0})},Jr=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Gr(t))!qr.call(e,n)&&n!==r&&xe(e,n,{get:()=>t[n],enumerable:!(o=Hr(t,n))||o.enumerable});return e};var Kr=e=>Jr(xe({},"__esModule",{value:!0}),e);var It=(e,t,r)=>(Qr(e,typeof t!="symbol"?t+"":t,r),r);var gn={};Rt(gn,{FetchError:()=>J,JSONLoader:()=>at,NullLoader:()=>$r,NullWorkerLoader:()=>jr,RequestScheduler:()=>Q,_BrowserFileSystem:()=>Ie,_fetchProgress:()=>zr,_selectSource:()=>Cr,_unregisterLoaders:()=>yr,assert:()=>$,concatenateArrayBuffersAsync:()=>O,createDataSource:()=>Or,document:()=>Pe,encode:()=>Nr,encodeInBatches:()=>Wr,encodeSync:()=>kt,encodeTable:()=>St,encodeTableAsText:()=>vr,encodeTableInBatches:()=>_t,encodeText:()=>Pr,encodeTextSync:()=>Mr,encodeURLtoURL:()=>Et,fetchFile:()=>j,forEach:()=>ot,getLoaderOptions:()=>L,getPathPrefix:()=>it,global:()=>Ne,isAsyncIterable:()=>de,isBrowser:()=>p,isIterable:()=>he,isIterator:()=>ge,isPromise:()=>tr,isPureObject:()=>pe,isReadableStream:()=>D,isResponse:()=>m,isWorker:()=>Me,isWritableStream:()=>or,load:()=>Lr,loadInBatches:()=>Ir,makeIterator:()=>ee,makeLineIterator:()=>tt,makeNumberedLineIterator:()=>rt,makeStream:()=>Ur,makeTextDecoderIterator:()=>Xe,makeTextEncoderIterator:()=>et,parse:()=>E,parseInBatches:()=>N,parseSync:()=>Br,readArrayBuffer:()=>ur,registerLoaders:()=>dr,resolvePath:()=>F,selectLoader:()=>X,selectLoaderSync:()=>Z,self:()=>ve,setLoaderOptions:()=>ht,setPathPrefix:()=>st,window:()=>Fe});function $(e,t){if(!e)throw new Error(t||"loader assertion failed.")}var A={self:typeof self<"u"&&self,window:typeof window<"u"&&window,global:typeof global<"u"&&global,document:typeof document<"u"&&document},ve=A.self||A.window||A.global||{},Fe=A.window||A.self||A.global||{},Ne=A.global||A.self||A.window||{},Pe=A.document||{};var p=Boolean(typeof process!="object"||String(process)!=="[object process]"||process.browser),Me=typeof importScripts=="function",vt=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version),Yr=vt&&parseFloat(vt[1])||0;function I(e){return I=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},I(e)}function We(e,t){if(I(e)!=="object"||e===null)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var o=r.call(e,t||"default");if(I(o)!=="object")return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Oe(e){var t=We(e,"string");return I(t)==="symbol"?t:String(t)}function u(e,t,r){return t=Oe(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Ce(e){if(typeof window<"u"&&typeof window.process=="object"&&window.process.type==="renderer"||typeof process<"u"&&typeof process.versions=="object"&&Boolean(process.versions.electron))return!0;let t=typeof navigator=="object"&&typeof navigator.userAgent=="string"&&navigator.userAgent,r=e||t;return!!(r&&r.indexOf("Electron")>=0)}function w(){return!(typeof process=="object"&&String(process)==="[object process]"&&!process.browser)||Ce()}var Zr=globalThis.self||globalThis.window||globalThis.global,z=globalThis.window||globalThis.self||globalThis.global,Xr=globalThis.document||{},P=globalThis.process||{},eo=globalThis.console,vn=globalThis.navigator||{};var Te=typeof __VERSION__<"u"?__VERSION__:"untranspiled source",Pn=w();function to(e){try{let t=window[e],r="__storage_test__";return t.setItem(r,r),t.removeItem(r),t}catch{return null}}var Ae=class{constructor(t,r){let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"sessionStorage";u(this,"storage",void 0),u(this,"id",void 0),u(this,"config",void 0),this.storage=to(o),this.id=t,this.config=r,this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(t){if(Object.assign(this.config,t),this.storage){let r=JSON.stringify(this.config);this.storage.setItem(this.id,r)}}_loadConfiguration(){let t={};if(this.storage){let r=this.storage.getItem(this.id);t=r?JSON.parse(r):{}}return Object.assign(this.config,t),this}};function Ft(e){let t;return e<10?t="".concat(e.toFixed(2),"ms"):e<100?t="".concat(e.toFixed(1),"ms"):e<1e3?t="".concat(e.toFixed(0),"ms"):t="".concat((e/1e3).toFixed(2),"s"),t}function Nt(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:8,r=Math.max(t-e.length,0);return"".concat(" ".repeat(r)).concat(e)}function Se(e,t,r){let o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:600,n=e.src.replace(/\(/g,"%28").replace(/\)/g,"%29");e.width>o&&(r=Math.min(r,o/e.width));let s=e.width*r,i=e.height*r,a=["font-size:1px;","padding:".concat(Math.floor(i/2),"px ").concat(Math.floor(s/2),"px;"),"line-height:".concat(i,"px;"),"background:url(".concat(n,");"),"background-size:".concat(s,"px ").concat(i,"px;"),"color:transparent;"].join("");return["".concat(t," %c+"),a]}var _e;(function(e){e[e.BLACK=30]="BLACK",e[e.RED=31]="RED",e[e.GREEN=32]="GREEN",e[e.YELLOW=33]="YELLOW",e[e.BLUE=34]="BLUE",e[e.MAGENTA=35]="MAGENTA",e[e.CYAN=36]="CYAN",e[e.WHITE=37]="WHITE",e[e.BRIGHT_BLACK=90]="BRIGHT_BLACK",e[e.BRIGHT_RED=91]="BRIGHT_RED",e[e.BRIGHT_GREEN=92]="BRIGHT_GREEN",e[e.BRIGHT_YELLOW=93]="BRIGHT_YELLOW",e[e.BRIGHT_BLUE=94]="BRIGHT_BLUE",e[e.BRIGHT_MAGENTA=95]="BRIGHT_MAGENTA",e[e.BRIGHT_CYAN=96]="BRIGHT_CYAN",e[e.BRIGHT_WHITE=97]="BRIGHT_WHITE"})(_e||(_e={}));var ro=10;function Pt(e){return typeof e!="string"?e:(e=e.toUpperCase(),_e[e]||_e.WHITE)}function Mt(e,t,r){if(!w&&typeof e=="string"){if(t){let o=Pt(t);e="\x1B[".concat(o,"m").concat(e,"\x1B[39m")}if(r){let o=Pt(r);e="\x1B[".concat(o+ro,"m").concat(e,"\x1B[49m")}}return e}function Wt(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:["constructor"],r=Object.getPrototypeOf(e),o=Object.getOwnPropertyNames(r),n=e;for(let s of o){let i=n[s];typeof i=="function"&&(t.find(a=>s===a)||(n[s]=i.bind(e)))}}function V(e,t){if(!e)throw new Error(t||"Assertion failed")}function M(){let e;if(w()&&z.performance){var t,r;e=z===null||z===void 0||(t=z.performance)===null||t===void 0||(r=t.now)===null||r===void 0?void 0:r.call(t)}else if("hrtime"in P){var o;let n=P===null||P===void 0||(o=P.hrtime)===null||o===void 0?void 0:o.call(P);e=n[0]*1e3+n[1]/1e6}else e=Date.now();return e}var H={debug:w()&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},oo={enabled:!0,level:0};function d(){}var Ot={},Ct={once:!0},S=class{constructor(){let{id:t}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{id:""};u(this,"id",void 0),u(this,"VERSION",Te),u(this,"_startTs",M()),u(this,"_deltaTs",M()),u(this,"_storage",void 0),u(this,"userData",{}),u(this,"LOG_THROTTLE_TIMEOUT",0),this.id=t,this.userData={},this._storage=new Ae("__probe-".concat(this.id,"__"),oo),this.timeStamp("".concat(this.id," started")),Wt(this),Object.seal(this)}set level(t){this.setLevel(t)}get level(){return this.getLevel()}isEnabled(){return this._storage.config.enabled}getLevel(){return this._storage.config.level}getTotal(){return Number((M()-this._startTs).toPrecision(10))}getDelta(){return Number((M()-this._deltaTs).toPrecision(10))}set priority(t){this.level=t}get priority(){return this.level}getPriority(){return this.level}enable(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return this._storage.setConfiguration({enabled:t}),this}setLevel(t){return this._storage.setConfiguration({level:t}),this}get(t){return this._storage.config[t]}set(t,r){this._storage.setConfiguration({[t]:r})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert(t,r){V(t,r)}warn(t){return this._getLogFunction(0,t,H.warn,arguments,Ct)}error(t){return this._getLogFunction(0,t,H.error,arguments)}deprecated(t,r){return this.warn("`".concat(t,"` is deprecated and will be removed in a later version. Use `").concat(r,"` instead"))}removed(t,r){return this.error("`".concat(t,"` has been removed. Use `").concat(r,"` instead"))}probe(t,r){return this._getLogFunction(t,r,H.log,arguments,{time:!0,once:!0})}log(t,r){return this._getLogFunction(t,r,H.debug,arguments)}info(t,r){return this._getLogFunction(t,r,console.info,arguments)}once(t,r){return this._getLogFunction(t,r,H.debug||H.info,arguments,Ct)}table(t,r,o){return r?this._getLogFunction(t,r,console.table||d,o&&[o],{tag:ao(r)}):d}image(t){let{logLevel:r,priority:o,image:n,message:s="",scale:i=1}=t;return this._shouldLog(r||o)?w()?io({image:n,message:s,scale:i}):so({image:n,message:s,scale:i}):d}time(t,r){return this._getLogFunction(t,r,console.time?console.time:console.info)}timeEnd(t,r){return this._getLogFunction(t,r,console.timeEnd?console.timeEnd:console.info)}timeStamp(t,r){return this._getLogFunction(t,r,console.timeStamp||d)}group(t,r){let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{collapsed:!1},n=Ut({logLevel:t,message:r,opts:o}),{collapsed:s}=o;return n.method=(s?console.groupCollapsed:console.group)||console.info,this._getLogFunction(n)}groupCollapsed(t,r){let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.group(t,r,Object.assign({},o,{collapsed:!0}))}groupEnd(t){return this._getLogFunction(t,"",console.groupEnd||d)}withGroup(t,r,o){this.group(t,r)();try{o()}finally{this.groupEnd(t)()}}trace(){console.trace&&console.trace()}_shouldLog(t){return this.isEnabled()&&this.getLevel()>=Dt(t)}_getLogFunction(t,r,o,n,s){if(this._shouldLog(t)){s=Ut({logLevel:t,message:r,args:n,opts:s}),o=o||s.method,V(o),s.total=this.getTotal(),s.delta=this.getDelta(),this._deltaTs=M();let i=s.tag||s.message;if(s.once&&i)if(!Ot[i])Ot[i]=M();else return d;return r=no(this.id,s.message,s),o.bind(console,r,...s.args)}return d}};u(S,"VERSION",Te);function Dt(e){if(!e)return 0;let t;switch(typeof e){case"number":t=e;break;case"object":t=e.logLevel||e.priority||0;break;default:return 0}return V(Number.isFinite(t)&&t>=0),t}function Ut(e){let{logLevel:t,message:r}=e;e.logLevel=Dt(t);let o=e.args?Array.from(e.args):[];for(;o.length&&o.shift()!==r;);switch(typeof t){case"string":case"function":r!==void 0&&o.unshift(r),e.message=t;break;case"object":Object.assign(e,t);break;default:}typeof e.message=="function"&&(e.message=e.message());let n=typeof e.message;return V(n==="string"||n==="object"),Object.assign(e,{args:o},e.opts)}function no(e,t,r){if(typeof t=="string"){let o=r.time?Nt(Ft(r.total)):"";t=r.time?"".concat(e,": ").concat(o," ").concat(t):"".concat(e,": ").concat(t),t=Mt(t,r.color,r.background)}return t}function so(e){let{image:t,message:r="",scale:o=1}=e;return console.warn("removed"),d}function io(e){let{image:t,message:r="",scale:o=1}=e;if(typeof t=="string"){let s=new Image;return s.onload=()=>{let i=Se(s,r,o);console.log(...i)},s.src=t,d}let n=t.nodeName||"";if(n.toLowerCase()==="img")return console.log(...Se(t,r,o)),d;if(n.toLowerCase()==="canvas"){let s=new Image;return s.onload=()=>console.log(...Se(s,r,o)),s.src=t.toDataURL(),d}return d}function ao(e){for(let t in e)for(let r in e[t])return r||"untitled";return"empty"}var as=new S({id:"@probe.gl/log"});var Ue="4.3.0-alpha.7",co=Ue[0]>="0"&&Ue[0]<="9"?`v${Ue}`:"";function uo(){let e=new S({id:"loaders.gl"});return globalThis.loaders=globalThis.loaders||{},globalThis.loaders.log=e,globalThis.loaders.version=co,globalThis.probe=globalThis.probe||{},globalThis.probe.loaders=e,e}var De=uo();function je(e,t){return jt(e||{},t)}function jt(e,t,r=0){if(r>3)return t;let o={...e};for(let[n,s]of Object.entries(t))s&&typeof s=="object"&&!Array.isArray(s)?o[n]=jt(o[n]||{},t[n],r+1):o[n]=t[n];return o}function $e(e){globalThis.loaders||={},globalThis.loaders.modules||={},Object.assign(globalThis.loaders.modules,e)}var $t="latest";function fo(){return globalThis._loadersgl_?.version||(globalThis._loadersgl_=globalThis._loadersgl_||{},globalThis._loadersgl_.version="4.3.0-alpha.7"),globalThis._loadersgl_.version}var oe=fo();function l(e,t){if(!e)throw new Error(t||"loaders.gl assertion failed.")}var _={self:typeof self<"u"&&self,window:typeof window<"u"&&window,global:typeof global<"u"&&global,document:typeof document<"u"&&document},gs=_.self||_.window||_.global||{},ys=_.window||_.self||_.global||{},ws=_.global||_.self||_.window||{},bs=_.document||{};var g=typeof process!="object"||String(process)!=="[object process]"||process.browser;var Vt=typeof window<"u"&&typeof window.orientation<"u",zt=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version),xs=zt&&parseFloat(zt[1])||0;var ne=class{name;workerThread;isRunning=!0;result;_resolve=()=>{};_reject=()=>{};constructor(t,r){this.name=t,this.workerThread=r,this.result=new Promise((o,n)=>{this._resolve=o,this._reject=n})}postMessage(t,r){this.workerThread.postMessage({source:"loaders.gl",type:t,payload:r})}done(t){l(this.isRunning),this.isRunning=!1,this._resolve(t)}error(t){l(this.isRunning),this.isRunning=!1,this._reject(t)}};var G=class{terminate(){}};var ze=new Map;function Ht(e){l(e.source&&!e.url||!e.source&&e.url);let t=ze.get(e.source||e.url);return t||(e.url&&(t=lo(e.url),ze.set(e.url,t)),e.source&&(t=Gt(e.source),ze.set(e.source,t))),l(t),t}function lo(e){if(!e.startsWith("http"))return e;let t=mo(e);return Gt(t)}function Gt(e){let t=new Blob([e],{type:"application/javascript"});return URL.createObjectURL(t)}function mo(e){return`try {
7
+ "use strict";var __exports__=(()=>{var ge=Object.defineProperty;var $t=Object.getOwnPropertyDescriptor;var Dt=Object.getOwnPropertyNames;var jt=Object.prototype.hasOwnProperty;var zt=(e,r,t)=>r in e?ge(e,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[r]=t;var Sr=(e,r)=>{for(var t in r)ge(e,t,{get:r[t],enumerable:!0})},Vt=(e,r,t,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of Dt(r))!jt.call(e,n)&&n!==t&&ge(e,n,{get:()=>r[n],enumerable:!(o=$t(r,n))||o.enumerable});return e};var Ht=e=>Vt(ge({},"__esModule",{value:!0}),e);var kr=(e,r,t)=>(zt(e,typeof r!="symbol"?r+"":r,t),t);var fn={};Sr(fn,{FetchError:()=>V,JSONLoader:()=>rr,NullLoader:()=>Pt,NullWorkerLoader:()=>Ot,RequestScheduler:()=>z,_BrowserFileSystem:()=>Ee,_fetchProgress:()=>vt,_selectSource:()=>Mt,_unregisterLoaders:()=>mt,assert:()=>v,concatenateArrayBuffersAsync:()=>M,createDataSource:()=>Nt,document:()=>Ie,encode:()=>Lt,encodeInBatches:()=>Ft,encodeSync:()=>br,encodeTable:()=>yr,encodeTableAsText:()=>Et,encodeTableInBatches:()=>wr,encodeText:()=>Rt,encodeTextSync:()=>It,encodeURLtoURL:()=>xr,fetchFile:()=>P,forEach:()=>Ye,getLoaderOptions:()=>_,getPathPrefix:()=>er,global:()=>Re,isAsyncIterable:()=>le,isBrowser:()=>m,isIterable:()=>ue,isIterator:()=>me,isPromise:()=>Kr,isPureObject:()=>fe,isReadableStream:()=>O,isResponse:()=>l,isWorker:()=>Fe,isWritableStream:()=>Zr,load:()=>St,loadInBatches:()=>_t,makeIterator:()=>J,makeLineIterator:()=>Je,makeNumberedLineIterator:()=>Ke,makeStream:()=>Wt,makeTextDecoderIterator:()=>qe,makeTextEncoderIterator:()=>Qe,parse:()=>S,parseInBatches:()=>R,parseSync:()=>At,readArrayBuffer:()=>nt,registerLoaders:()=>ut,resolvePath:()=>L,selectLoader:()=>Q,selectLoaderSync:()=>q,self:()=>Be,setLoaderOptions:()=>cr,setPathPrefix:()=>Xe,window:()=>Le});function v(e,r){if(!e)throw new Error(r||"loader assertion failed.")}var b={self:typeof self<"u"&&self,window:typeof window<"u"&&window,global:typeof global<"u"&&global,document:typeof document<"u"&&document},Be=b.self||b.window||b.global||{},Le=b.window||b.self||b.global||{},Re=b.global||b.self||b.window||{},Ie=b.document||{};var m=Boolean(typeof process!="object"||String(process)!=="[object process]"||process.browser),Fe=typeof importScripts=="function",_r=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version),Gt=_r&&parseFloat(_r[1])||0;var ye=globalThis,qt=globalThis.document||{},we=globalThis.process||{},Qt=globalThis.console,pn=globalThis.navigator||{};function Er(e){if(typeof window<"u"&&window.process?.type==="renderer"||typeof process<"u"&&Boolean(process.versions?.electron))return!0;let r=typeof navigator<"u"&&navigator.userAgent,t=e||r;return Boolean(t&&t.indexOf("Electron")>=0)}function I(){return!(typeof process=="object"&&String(process)==="[object process]"&&!process?.browser)||Er()}var Ne="4.0.7";function Kt(e){try{let r=window[e],t="__storage_test__";return r.setItem(t,t),r.removeItem(t),r}catch{return null}}var be=class{constructor(r,t,o="sessionStorage"){this.storage=Kt(o),this.id=r,this.config=t,this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(r){if(Object.assign(this.config,r),this.storage){let t=JSON.stringify(this.config);this.storage.setItem(this.id,t)}}_loadConfiguration(){let r={};if(this.storage){let t=this.storage.getItem(this.id);r=t?JSON.parse(t):{}}return Object.assign(this.config,r),this}};function Br(e){let r;return e<10?r=`${e.toFixed(2)}ms`:e<100?r=`${e.toFixed(1)}ms`:e<1e3?r=`${e.toFixed(0)}ms`:r=`${(e/1e3).toFixed(2)}s`,r}function Lr(e,r=8){let t=Math.max(r-e.length,0);return`${" ".repeat(t)}${e}`}var xe;(function(e){e[e.BLACK=30]="BLACK",e[e.RED=31]="RED",e[e.GREEN=32]="GREEN",e[e.YELLOW=33]="YELLOW",e[e.BLUE=34]="BLUE",e[e.MAGENTA=35]="MAGENTA",e[e.CYAN=36]="CYAN",e[e.WHITE=37]="WHITE",e[e.BRIGHT_BLACK=90]="BRIGHT_BLACK",e[e.BRIGHT_RED=91]="BRIGHT_RED",e[e.BRIGHT_GREEN=92]="BRIGHT_GREEN",e[e.BRIGHT_YELLOW=93]="BRIGHT_YELLOW",e[e.BRIGHT_BLUE=94]="BRIGHT_BLUE",e[e.BRIGHT_MAGENTA=95]="BRIGHT_MAGENTA",e[e.BRIGHT_CYAN=96]="BRIGHT_CYAN",e[e.BRIGHT_WHITE=97]="BRIGHT_WHITE"})(xe||(xe={}));var Yt=10;function Rr(e){return typeof e!="string"?e:(e=e.toUpperCase(),xe[e]||xe.WHITE)}function Ir(e,r,t){return!I&&typeof e=="string"&&(r&&(e=`\x1B[${Rr(r)}m${e}\x1B[39m`),t&&(e=`\x1B[${Rr(t)+Yt}m${e}\x1B[49m`)),e}function Fr(e,r=["constructor"]){let t=Object.getPrototypeOf(e),o=Object.getOwnPropertyNames(t),n=e;for(let s of o){let i=n[s];typeof i=="function"&&(r.find(a=>s===a)||(n[s]=i.bind(e)))}}function Z(e,r){if(!e)throw new Error(r||"Assertion failed")}function F(){let e;if(I()&&ye.performance)e=ye?.performance?.now?.();else if("hrtime"in we){let r=we?.hrtime?.();e=r[0]*1e3+r[1]/1e6}else e=Date.now();return e}var U={debug:I()&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},Zt={enabled:!0,level:0};function $(){}var Nr={},Mr={once:!0},x=class{constructor({id:r}={id:""}){this.VERSION=Ne,this._startTs=F(),this._deltaTs=F(),this.userData={},this.LOG_THROTTLE_TIMEOUT=0,this.id=r,this.userData={},this._storage=new be(`__probe-${this.id}__`,Zt),this.timeStamp(`${this.id} started`),Fr(this),Object.seal(this)}set level(r){this.setLevel(r)}get level(){return this.getLevel()}isEnabled(){return this._storage.config.enabled}getLevel(){return this._storage.config.level}getTotal(){return Number((F()-this._startTs).toPrecision(10))}getDelta(){return Number((F()-this._deltaTs).toPrecision(10))}set priority(r){this.level=r}get priority(){return this.level}getPriority(){return this.level}enable(r=!0){return this._storage.setConfiguration({enabled:r}),this}setLevel(r){return this._storage.setConfiguration({level:r}),this}get(r){return this._storage.config[r]}set(r,t){this._storage.setConfiguration({[r]:t})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert(r,t){if(!r)throw new Error(t||"Assertion failed")}warn(r){return this._getLogFunction(0,r,U.warn,arguments,Mr)}error(r){return this._getLogFunction(0,r,U.error,arguments)}deprecated(r,t){return this.warn(`\`${r}\` is deprecated and will be removed in a later version. Use \`${t}\` instead`)}removed(r,t){return this.error(`\`${r}\` has been removed. Use \`${t}\` instead`)}probe(r,t){return this._getLogFunction(r,t,U.log,arguments,{time:!0,once:!0})}log(r,t){return this._getLogFunction(r,t,U.debug,arguments)}info(r,t){return this._getLogFunction(r,t,console.info,arguments)}once(r,t){return this._getLogFunction(r,t,U.debug||U.info,arguments,Mr)}table(r,t,o){return t?this._getLogFunction(r,t,console.table||$,o&&[o],{tag:eo(t)}):$}time(r,t){return this._getLogFunction(r,t,console.time?console.time:console.info)}timeEnd(r,t){return this._getLogFunction(r,t,console.timeEnd?console.timeEnd:console.info)}timeStamp(r,t){return this._getLogFunction(r,t,console.timeStamp||$)}group(r,t,o={collapsed:!1}){let n=Wr({logLevel:r,message:t,opts:o}),{collapsed:s}=o;return n.method=(s?console.groupCollapsed:console.group)||console.info,this._getLogFunction(n)}groupCollapsed(r,t,o={}){return this.group(r,t,Object.assign({},o,{collapsed:!0}))}groupEnd(r){return this._getLogFunction(r,"",console.groupEnd||$)}withGroup(r,t,o){this.group(r,t)();try{o()}finally{this.groupEnd(r)()}}trace(){console.trace&&console.trace()}_shouldLog(r){return this.isEnabled()&&this.getLevel()>=Cr(r)}_getLogFunction(r,t,o,n,s){if(this._shouldLog(r)){s=Wr({logLevel:r,message:t,args:n,opts:s}),o=o||s.method,Z(o),s.total=this.getTotal(),s.delta=this.getDelta(),this._deltaTs=F();let i=s.tag||s.message;if(s.once&&i)if(!Nr[i])Nr[i]=F();else return $;return t=Xt(this.id,s.message,s),o.bind(console,t,...s.args)}return $}};x.VERSION=Ne;function Cr(e){if(!e)return 0;let r;switch(typeof e){case"number":r=e;break;case"object":r=e.logLevel||e.priority||0;break;default:return 0}return Z(Number.isFinite(r)&&r>=0),r}function Wr(e){let{logLevel:r,message:t}=e;e.logLevel=Cr(r);let o=e.args?Array.from(e.args):[];for(;o.length&&o.shift()!==t;);switch(typeof r){case"string":case"function":t!==void 0&&o.unshift(t),e.message=r;break;case"object":Object.assign(e,r);break;default:}typeof e.message=="function"&&(e.message=e.message());let n=typeof e.message;return Z(n==="string"||n==="object"),Object.assign(e,{args:o},e.opts)}function Xt(e,r,t){if(typeof r=="string"){let o=t.time?Lr(Br(t.total)):"";r=t.time?`${e}: ${o} ${r}`:`${e}: ${r}`,r=Ir(r,t.color,t.background)}return r}function eo(e){for(let r in e)for(let t in e[r])return t||"untitled";return"empty"}globalThis.probe={};var vn=new x({id:"@probe.gl/log"});var Me="4.3.0-alpha.8",ro=Me[0]>="0"&&Me[0]<="9"?`v${Me}`:"";function to(){let e=new x({id:"loaders.gl"});return globalThis.loaders=globalThis.loaders||{},globalThis.loaders.log=e,globalThis.loaders.version=ro,globalThis.probe=globalThis.probe||{},globalThis.probe.loaders=e,e}var We=to();function Ce(e,r){return Or(e||{},r)}function Or(e,r,t=0){if(t>3)return r;let o={...e};for(let[n,s]of Object.entries(r))s&&typeof s=="object"&&!Array.isArray(s)?o[n]=Or(o[n]||{},r[n],t+1):o[n]=r[n];return o}function Oe(e){globalThis.loaders||={},globalThis.loaders.modules||={},Object.assign(globalThis.loaders.modules,e)}var Pr="latest";function oo(){return globalThis._loadersgl_?.version||(globalThis._loadersgl_=globalThis._loadersgl_||{},globalThis._loadersgl_.version="4.3.0-alpha.8"),globalThis._loadersgl_.version}var X=oo();function u(e,r){if(!e)throw new Error(r||"loaders.gl assertion failed.")}var T={self:typeof self<"u"&&self,window:typeof window<"u"&&window,global:typeof global<"u"&&global,document:typeof document<"u"&&document},Qn=T.self||T.window||T.global||{},Jn=T.window||T.self||T.global||{},Kn=T.global||T.self||T.window||{},Yn=T.document||{};var h=typeof process!="object"||String(process)!=="[object process]"||process.browser;var Ur=typeof window<"u"&&typeof window.orientation<"u",vr=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version),Zn=vr&&parseFloat(vr[1])||0;var ee=class{name;workerThread;isRunning=!0;result;_resolve=()=>{};_reject=()=>{};constructor(r,t){this.name=r,this.workerThread=t,this.result=new Promise((o,n)=>{this._resolve=o,this._reject=n})}postMessage(r,t){this.workerThread.postMessage({source:"loaders.gl",type:r,payload:t})}done(r){u(this.isRunning),this.isRunning=!1,this._resolve(r)}error(r){u(this.isRunning),this.isRunning=!1,this._reject(r)}};var D=class{terminate(){}};var Pe=new Map;function $r(e){u(e.source&&!e.url||!e.source&&e.url);let r=Pe.get(e.source||e.url);return r||(e.url&&(r=no(e.url),Pe.set(e.url,r)),e.source&&(r=Dr(e.source),Pe.set(e.source,r))),u(r),r}function no(e){if(!e.startsWith("http"))return e;let r=so(e);return Dr(r)}function Dr(e){let r=new Blob([e],{type:"application/javascript"});return URL.createObjectURL(r)}function so(e){return`try {
8
8
  importScripts('${e}');
9
9
  } catch (error) {
10
10
  console.error(error);
11
11
  throw error;
12
- }`}function Ve(e,t=!0,r){let o=r||new Set;if(e){if(qt(e))o.add(e);else if(qt(e.buffer))o.add(e.buffer);else if(!ArrayBuffer.isView(e)){if(t&&typeof e=="object")for(let n in e)Ve(e[n],t,o)}}return r===void 0?Array.from(o):[]}function qt(e){return e?e instanceof ArrayBuffer||typeof MessagePort<"u"&&e instanceof MessagePort||typeof ImageBitmap<"u"&&e instanceof ImageBitmap||typeof OffscreenCanvas<"u"&&e instanceof OffscreenCanvas:!1}function He(e){if(e===null)return{};let t=Object.assign({},e);return Object.keys(t).forEach(r=>{typeof e[r]=="object"&&!ArrayBuffer.isView(e[r])&&!(e[r]instanceof Array)?t[r]=He(e[r]):typeof t[r]=="function"||t[r]instanceof RegExp?t[r]={}:t[r]=e[r]}),t}var Ge=()=>{},v=class{name;source;url;terminated=!1;worker;onMessage;onError;_loadableURL="";static isSupported(){return typeof Worker<"u"&&g||typeof G<"u"&&!g}constructor(t){let{name:r,source:o,url:n}=t;l(o||n),this.name=r,this.source=o,this.url=n,this.onMessage=Ge,this.onError=s=>console.log(s),this.worker=g?this._createBrowserWorker():this._createNodeWorker()}destroy(){this.onMessage=Ge,this.onError=Ge,this.worker.terminate(),this.terminated=!0}get isRunning(){return Boolean(this.onMessage)}postMessage(t,r){r=r||Ve(t),this.worker.postMessage(t,r)}_getErrorFromErrorEvent(t){let r="Failed to load ";return r+=`worker ${this.name} from ${this.url}. `,t.message&&(r+=`${t.message} in `),t.lineno&&(r+=`:${t.lineno}:${t.colno}`),new Error(r)}_createBrowserWorker(){this._loadableURL=Ht({source:this.source,url:this.url});let t=new Worker(this._loadableURL,{name:this.name});return t.onmessage=r=>{r.data?this.onMessage(r.data):this.onError(new Error("No data received"))},t.onerror=r=>{this.onError(this._getErrorFromErrorEvent(r)),this.terminated=!0},t.onmessageerror=r=>console.error(r),t}_createNodeWorker(){let t;if(this.url){let o=this.url.includes(":/")||this.url.startsWith("/")?this.url:`./${this.url}`;t=new G(o,{eval:!1})}else if(this.source)t=new G(this.source,{eval:!0});else throw new Error("no worker");return t.on("message",r=>{this.onMessage(r)}),t.on("error",r=>{this.onError(r)}),t.on("exit",r=>{}),t}};var se=class{name="unnamed";source;url;maxConcurrency=1;maxMobileConcurrency=1;onDebug=()=>{};reuseWorkers=!0;props={};jobQueue=[];idleQueue=[];count=0;isDestroyed=!1;static isSupported(){return v.isSupported()}constructor(t){this.source=t.source,this.url=t.url,this.setProps(t)}destroy(){this.idleQueue.forEach(t=>t.destroy()),this.isDestroyed=!0}setProps(t){this.props={...this.props,...t},t.name!==void 0&&(this.name=t.name),t.maxConcurrency!==void 0&&(this.maxConcurrency=t.maxConcurrency),t.maxMobileConcurrency!==void 0&&(this.maxMobileConcurrency=t.maxMobileConcurrency),t.reuseWorkers!==void 0&&(this.reuseWorkers=t.reuseWorkers),t.onDebug!==void 0&&(this.onDebug=t.onDebug)}async startJob(t,r=(n,s,i)=>n.done(i),o=(n,s)=>n.error(s)){let n=new Promise(s=>(this.jobQueue.push({name:t,onMessage:r,onError:o,onStart:s}),this));return this._startQueuedJob(),await n}async _startQueuedJob(){if(!this.jobQueue.length)return;let t=this._getAvailableWorker();if(!t)return;let r=this.jobQueue.shift();if(r){this.onDebug({message:"Starting job",name:r.name,workerThread:t,backlog:this.jobQueue.length});let o=new ne(r.name,t);t.onMessage=n=>r.onMessage(o,n.type,n.payload),t.onError=n=>r.onError(o,n),r.onStart(o);try{await o.result}catch(n){console.error(`Worker exception: ${n}`)}finally{this.returnWorkerToQueue(t)}}}returnWorkerToQueue(t){!g||this.isDestroyed||!this.reuseWorkers||this.count>this._getMaxConcurrency()?(t.destroy(),this.count--):this.idleQueue.push(t),this.isDestroyed||this._startQueuedJob()}_getAvailableWorker(){if(this.idleQueue.length>0)return this.idleQueue.shift()||null;if(this.count<this._getMaxConcurrency()){this.count++;let t=`${this.name.toLowerCase()} (#${this.count} of ${this.maxConcurrency})`;return new v({name:t,source:this.source,url:this.url})}return null}_getMaxConcurrency(){return Vt?this.maxMobileConcurrency:this.maxConcurrency}};var po={maxConcurrency:3,maxMobileConcurrency:1,reuseWorkers:!0,onDebug:()=>{}},W=class{props;workerPools=new Map;static isSupported(){return v.isSupported()}static getWorkerFarm(t={}){return W._workerFarm=W._workerFarm||new W({}),W._workerFarm.setProps(t),W._workerFarm}constructor(t){this.props={...po},this.setProps(t),this.workerPools=new Map}destroy(){for(let t of this.workerPools.values())t.destroy();this.workerPools=new Map}setProps(t){this.props={...this.props,...t};for(let r of this.workerPools.values())r.setProps(this._getWorkerPoolProps())}getWorkerPool(t){let{name:r,source:o,url:n}=t,s=this.workerPools.get(r);return s||(s=new se({name:r,source:o,url:n}),s.setProps(this._getWorkerPoolProps()),this.workerPools.set(r,s)),s}_getWorkerPoolProps(){return{maxConcurrency:this.props.maxConcurrency,maxMobileConcurrency:this.props.maxMobileConcurrency,reuseWorkers:this.props.reuseWorkers,onDebug:this.props.onDebug}}},y=W;It(y,"_workerFarm");function Qt(e){let t=e.version!==oe?` (worker-utils@${oe})`:"";return`${e.name}@${e.version}${t}`}function ie(e,t={}){let r=t[e.id]||{},o=g?`${e.id}-worker.js`:`${e.id}-worker-node.js`,n=r.workerUrl;if(!n&&e.id==="compression"&&(n=t.workerUrl),t._workerType==="test"&&(g?n=`modules/${e.module}/dist/${o}`:n=`modules/${e.module}/src/workers/${e.id}-worker-node.ts`),!n){let s=e.version;s==="latest"&&(s=$t);let i=s?`@${s}`:"";n=`https://unpkg.com/@loaders.gl/${e.module}${i}/dist/${o}`}return l(n),n}async function qe(e,t,r={},o={}){let n=Qt(e),s=y.getWorkerFarm(r),{source:i}=r,a={name:n,source:i};i||(a.url=ie(e,r));let c=s.getWorkerPool(a),f=r.jobName||e.name,B=await c.startJob(f,ho.bind(null,o)),R=He(r);return B.postMessage("process",{input:t,options:R}),(await B.result).result}async function ho(e,t,r,o){switch(r){case"done":t.done(o);break;case"error":t.error(new Error(o.error));break;case"process":let{id:n,input:s,options:i}=o;try{if(!e.process){t.postMessage("error",{id:n,error:"Worker not set up to process on main thread"});return}let a=await e.process(s,i);t.postMessage("done",{id:n,result:a})}catch(a){let c=a instanceof Error?a.message:"unknown error";t.postMessage("error",{id:n,error:c})}break;default:console.warn(`process-on-worker: unknown message ${r}`)}}function Qe(e,t=oe){l(e,"no worker provided");let r=e.version;return!(!t||!r)}function Je(e,t){return!y.isSupported()||!g&&!t?._nodeWorkers?!1:e.worker&&t?.worker}async function Ke(e,t,r,o,n){let s=e.id,i=ie(e,r),c=y.getWorkerFarm(r).getWorkerPool({name:s,url:i});r=JSON.parse(JSON.stringify(r)),o=JSON.parse(JSON.stringify(o||{}));let f=await c.startJob("process-on-worker",go.bind(null,n));return f.postMessage("process",{input:t,options:r,context:o}),await(await f.result).result}async function go(e,t,r,o){switch(r){case"done":t.done(o);break;case"error":t.error(new Error(o.error));break;case"process":let{id:n,input:s,options:i}=o;try{let a=await e(s,i);t.postMessage("done",{id:n,result:a})}catch(a){let c=a instanceof Error?a.message:"unknown error";t.postMessage("error",{id:n,error:c})}break;default:console.warn(`parse-with-worker unknown message ${r}`)}}function Ye(e,t){return!y.isSupported()||!p&&!t?._nodeWorkers?!1:e.worker&&t?.worker}function Ze(e,t,r){if(r=r||e.byteLength,e.byteLength<r||t.byteLength<r)return!1;let o=new Uint8Array(e),n=new Uint8Array(t);for(let s=0;s<o.length;++s)if(o[s]!==n[s])return!1;return!0}function ae(...e){return Jt(e)}function Jt(e){let t=e.map(s=>s instanceof ArrayBuffer?new Uint8Array(s):s),r=t.reduce((s,i)=>s+i.byteLength,0),o=new Uint8Array(r),n=0;for(let s of t)o.set(s,n),n+=s.byteLength;return o.buffer}async function*Xe(e,t={}){let r=new TextDecoder(void 0,t);for await(let o of e)yield typeof o=="string"?o:r.decode(o,{stream:!0})}async function*et(e){let t=new TextEncoder;for await(let r of e)yield typeof r=="string"?t.encode(r):r}async function*tt(e){let t="";for await(let r of e){t+=r;let o;for(;(o=t.indexOf(`
13
- `))>=0;){let n=t.slice(0,o+1);t=t.slice(o+1),yield n}}t.length>0&&(yield t)}async function*rt(e){let t=1;for await(let r of e)yield{counter:t,line:r},t++}async function ot(e,t){for(;;){let{done:r,value:o}=await e.next();if(r){e.return();return}if(t(o))return}}async function O(e){let t=[];for await(let r of e)t.push(r);return ae(...t)}function ce(){let e;if(typeof window<"u"&&window.performance)e=window.performance.now();else if(typeof process<"u"&&process.hrtime){let t=process.hrtime();e=t[0]*1e3+t[1]/1e6}else e=Date.now();return e}var C=class{constructor(t,r){u(this,"name",void 0),u(this,"type",void 0),u(this,"sampleSize",1),u(this,"time",0),u(this,"count",0),u(this,"samples",0),u(this,"lastTiming",0),u(this,"lastSampleTime",0),u(this,"lastSampleCount",0),u(this,"_count",0),u(this,"_time",0),u(this,"_samples",0),u(this,"_startTime",0),u(this,"_timerPending",!1),this.name=t,this.type=r,this.reset()}reset(){return this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this}setSampleSize(t){return this.sampleSize=t,this}incrementCount(){return this.addCount(1),this}decrementCount(){return this.subtractCount(1),this}addCount(t){return this._count+=t,this._samples++,this._checkSampling(),this}subtractCount(t){return this._count-=t,this._samples++,this._checkSampling(),this}addTime(t){return this._time+=t,this.lastTiming=t,this._samples++,this._checkSampling(),this}timeStart(){return this._startTime=ce(),this._timerPending=!0,this}timeEnd(){return this._timerPending?(this.addTime(ce()-this._startTime),this._timerPending=!1,this._checkSampling(),this):this}getSampleAverageCount(){return this.sampleSize>0?this.lastSampleCount/this.sampleSize:0}getSampleAverageTime(){return this.sampleSize>0?this.lastSampleTime/this.sampleSize:0}getSampleHz(){return this.lastSampleTime>0?this.sampleSize/(this.lastSampleTime/1e3):0}getAverageCount(){return this.samples>0?this.count/this.samples:0}getAverageTime(){return this.samples>0?this.time/this.samples:0}getHz(){return this.time>0?this.samples/(this.time/1e3):0}_checkSampling(){this._samples===this.sampleSize&&(this.lastSampleTime=this._time,this.lastSampleCount=this._count,this.count+=this._count,this.time+=this._time,this.samples+=this._samples,this._time=0,this._count=0,this._samples=0)}};var q=class{constructor(t){u(this,"id",void 0),u(this,"stats",{}),this.id=t.id,this.stats={},this._initializeStats(t.stats),Object.seal(this)}get(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"count";return this._getOrCreate({name:t,type:r})}get size(){return Object.keys(this.stats).length}reset(){for(let t of Object.values(this.stats))t.reset();return this}forEach(t){for(let r of Object.values(this.stats))t(r)}getTable(){let t={};return this.forEach(r=>{t[r.name]={time:r.time||0,count:r.count||0,average:r.getAverageTime()||0,hz:r.getHz()||0}}),t}_initializeStats(){(arguments.length>0&&arguments[0]!==void 0?arguments[0]:[]).forEach(r=>this._getOrCreate(r))}_getOrCreate(t){let{name:r,type:o}=t,n=this.stats[r];return n||(t instanceof C?n=t:n=new C(r,o),this.stats[r]=n),n}};var yo="Queued Requests",wo="Active Requests",bo="Cancelled Requests",xo="Queued Requests Ever",To="Active Requests Ever",Ao={id:"request-scheduler",throttleRequests:!0,maxRequests:6,debounceTime:0},Q=class{props;stats;activeRequestCount=0;requestQueue=[];requestMap=new Map;updateTimer=null;constructor(t={}){this.props={...Ao,...t},this.stats=new q({id:this.props.id}),this.stats.get(yo),this.stats.get(wo),this.stats.get(bo),this.stats.get(xo),this.stats.get(To)}scheduleRequest(t,r=()=>0){if(!this.props.throttleRequests)return Promise.resolve({done:()=>{}});if(this.requestMap.has(t))return this.requestMap.get(t);let o={handle:t,priority:0,getPriority:r},n=new Promise(s=>(o.resolve=s,o));return this.requestQueue.push(o),this.requestMap.set(t,n),this._issueNewRequests(),n}_issueRequest(t){let{handle:r,resolve:o}=t,n=!1,s=()=>{n||(n=!0,this.requestMap.delete(r),this.activeRequestCount--,this._issueNewRequests())};return this.activeRequestCount++,o?o({done:s}):Promise.resolve({done:s})}_issueNewRequests(){this.updateTimer!==null&&clearTimeout(this.updateTimer),this.updateTimer=setTimeout(()=>this._issueNewRequestsAsync(),this.props.debounceTime)}_issueNewRequestsAsync(){this.updateTimer!==null&&clearTimeout(this.updateTimer),this.updateTimer=null;let t=Math.max(this.props.maxRequests-this.activeRequestCount,0);if(t!==0){this._updateAllRequests();for(let r=0;r<t;++r){let o=this.requestQueue.shift();o&&this._issueRequest(o)}}}_updateAllRequests(){let t=this.requestQueue;for(let r=0;r<t.length;++r){let o=t[r];this._updateRequest(o)||(t.splice(r,1),this.requestMap.delete(o.handle),r--)}t.sort((r,o)=>r.priority-o.priority)}_updateRequest(t){return t.priority=t.getPriority(t.handle),t.priority<0?(t.resolve(null),!1):!0}};var nt="",Kt={};function st(e){nt=e}function it(){return nt}function F(e){for(let t in Kt)if(e.startsWith(t)){let r=Kt[t];e=e.replace(t,r)}return!e.startsWith("http://")&&!e.startsWith("https://")&&(e=`${nt}${e}`),e}var So="4.3.0-alpha.7",at={dataType:null,batchType:null,name:"JSON",id:"json",module:"json",version:So,extensions:["json","geojson"],mimeTypes:["application/json"],category:"json",text:!0,parseTextSync:Yt,parse:async e=>Yt(new TextDecoder().decode(e)),options:{}};function Yt(e){return JSON.parse(e)}function Zt(e){return e&&typeof e=="object"&&e.isBuffer}function ke(e){if(Zt(e))return e;if(e instanceof ArrayBuffer)return e;if(ArrayBuffer.isView(e))return e.byteOffset===0&&e.byteLength===e.buffer.byteLength?e.buffer:e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength);if(typeof e=="string"){let t=e;return new TextEncoder().encode(t).buffer}if(e&&typeof e=="object"&&e._toArrayBuffer)return e._toArrayBuffer();throw new Error("toArrayBuffer")}var U={};Rt(U,{dirname:()=>ko,filename:()=>_o,join:()=>Eo,resolve:()=>Bo});function Xt(){if(typeof process<"u"&&typeof process.cwd<"u")return process.cwd();let e=window.location?.pathname;return e?.slice(0,e.lastIndexOf("/")+1)||""}function _o(e){let t=e?e.lastIndexOf("/"):-1;return t>=0?e.substr(t+1):""}function ko(e){let t=e?e.lastIndexOf("/"):-1;return t>=0?e.substr(0,t):""}function Eo(...e){let t="/";return e=e.map((r,o)=>(o&&(r=r.replace(new RegExp(`^${t}`),"")),o!==e.length-1&&(r=r.replace(new RegExp(`${t}$`),"")),r)),e.join(t)}function Bo(...e){let t=[];for(let s=0;s<e.length;s++)t[s]=e[s];let r="",o=!1,n;for(let s=t.length-1;s>=-1&&!o;s--){let i;s>=0?i=t[s]:(n===void 0&&(n=Xt()),i=n),i.length!==0&&(r=`${i}/${r}`,o=i.charCodeAt(0)===ue)}return r=Lo(r,!o),o?`/${r}`:r.length>0?r:"."}var ue=47,ct=46;function Lo(e,t){let r="",o=-1,n=0,s,i=!1;for(let a=0;a<=e.length;++a){if(a<e.length)s=e.charCodeAt(a);else{if(s===ue)break;s=ue}if(s===ue){if(!(o===a-1||n===1))if(o!==a-1&&n===2){if(r.length<2||!i||r.charCodeAt(r.length-1)!==ct||r.charCodeAt(r.length-2)!==ct){if(r.length>2){let c=r.length-1,f=c;for(;f>=0&&r.charCodeAt(f)!==ue;--f);if(f!==c){r=f===-1?"":r.slice(0,f),o=a,n=0,i=!1;continue}}else if(r.length===2||r.length===1){r="",o=a,n=0,i=!1;continue}}t&&(r.length>0?r+="/..":r="..",i=!0)}else{let c=e.slice(o+1,a);r.length>0?r+=`/${c}`:r=c,i=!1}o=a,n=0}else s===ct&&n!==-1?++n:n=-1}return r}var fe=class{handle;size;bigsize;url;constructor(t){this.handle=t instanceof ArrayBuffer?new Blob([t]):t,this.size=t instanceof ArrayBuffer?t.byteLength:t.size,this.bigsize=BigInt(this.size),this.url=t instanceof File?t.name:""}async close(){}async stat(){return{size:this.handle.size,bigsize:BigInt(this.handle.size),isDirectory:!1}}async read(t,r){return await this.handle.slice(t,t+r).arrayBuffer()}};var le=new Error("Not implemented"),me=class{handle;size=0;bigsize=0n;url="";constructor(t,r,o){if(globalThis.loaders?.NodeFile)return new globalThis.loaders.NodeFile(t,r,o);throw p?new Error("Can't instantiate NodeFile in browser."):new Error("Can't instantiate NodeFile. Make sure to import @loaders.gl/polyfills first.")}async read(t,r){throw le}async write(t,r,o){throw le}async stat(){throw le}async truncate(t){throw le}async append(t){throw le}async close(){}};var er=e=>typeof e=="boolean",b=e=>typeof e=="function",k=e=>e!==null&&typeof e=="object",pe=e=>k(e)&&e.constructor==={}.constructor,tr=e=>k(e)&&b(e.then),he=e=>Boolean(e)&&typeof e[Symbol.iterator]=="function",de=e=>e&&typeof e[Symbol.asyncIterator]=="function",ge=e=>e&&b(e.next),m=e=>typeof Response<"u"&&e instanceof Response||e&&e.arrayBuffer&&e.text&&e.json;var h=e=>typeof Blob<"u"&&e instanceof Blob,rr=e=>e&&typeof e=="object"&&e.isBuffer,Ro=e=>k(e)&&b(e.abort)&&b(e.getWriter),Io=e=>typeof ReadableStream<"u"&&e instanceof ReadableStream||k(e)&&b(e.tee)&&b(e.cancel)&&b(e.getReader),vo=e=>k(e)&&b(e.end)&&b(e.write)&&er(e.writable),Fo=e=>k(e)&&b(e.read)&&b(e.pipe)&&er(e.readable),D=e=>Io(e)||Fo(e),or=e=>Ro(e)||vo(e);var J=class extends Error{constructor(t,r){super(t),this.reason=r.reason,this.url=r.url,this.response=r.response}reason;url;response};var No=/^data:([-\w.]+\/[-\w.+]+)(;|,)/,Po=/^([-\w.]+\/[-\w.+]+)/;function ut(e,t){return e.toLowerCase()===t.toLowerCase()}function nr(e){let t=Po.exec(e);return t?t[1]:e}function ft(e){let t=No.exec(e);return t?t[1]:""}var sr=/\?.*/;function ir(e){let t=e.match(sr);return t&&t[0]}function K(e){return e.replace(sr,"")}function ar(e){if(e.length<50)return e;let t=e.slice(e.length-15);return`${e.substr(0,32)}...${t}`}function x(e){return m(e)?e.url:h(e)?e.name||"":typeof e=="string"?e:""}function ye(e){if(m(e)){let t=e,r=t.headers.get("content-type")||"",o=K(t.url);return nr(r)||ft(o)}return h(e)?e.type||"":typeof e=="string"?ft(e):""}function cr(e){return m(e)?e.headers["content-length"]||-1:h(e)?e.size:typeof e=="string"?e.length:e instanceof ArrayBuffer||ArrayBuffer.isView(e)?e.byteLength:-1}async function Ee(e){if(m(e))return e;let t={},r=cr(e);r>=0&&(t["content-length"]=String(r));let o=x(e),n=ye(e);n&&(t["content-type"]=n);let s=await Wo(e);s&&(t["x-first-bytes"]=s),typeof e=="string"&&(e=new TextEncoder().encode(e));let i=new Response(e,{headers:t});return Object.defineProperty(i,"url",{value:o}),i}async function lt(e){if(!e.ok)throw await Mo(e)}async function Mo(e){let t=ar(e.url),r=`Failed to fetch resource (${e.status}) ${e.statusText}: ${t}`;r=r.length>100?`${r.slice(0,100)}...`:r;let o={reason:e.statusText,url:e.url,response:e};try{let n=e.headers.get("Content-Type");o.reason=!e.bodyUsed&&n?.includes("application/json")?await e.json():await e.text()}catch{}return new J(r,o)}async function Wo(e){if(typeof e=="string")return`data:,${e.slice(0,5)}`;if(e instanceof Blob){let r=e.slice(0,5);return await new Promise(o=>{let n=new FileReader;n.onload=s=>o(s?.target?.result),n.readAsDataURL(r)})}if(e instanceof ArrayBuffer){let r=e.slice(0,5);return`data:base64,${Oo(r)}`}return null}function Oo(e){let t="",r=new Uint8Array(e);for(let o=0;o<r.byteLength;o++)t+=String.fromCharCode(r[o]);return btoa(t)}function Co(e){return!Uo(e)&&!Do(e)}function Uo(e){return e.startsWith("http:")||e.startsWith("https:")}function Do(e){return e.startsWith("data:")}async function j(e,t){if(typeof e=="string"){let r=F(e);return Co(r)&&globalThis.loaders?.fetchNode?globalThis.loaders?.fetchNode(r,t):await fetch(r,t)}return await Ee(e)}async function ur(e,t,r){e instanceof Blob||(e=new Blob([e]));let o=e.slice(t,t+r);return await jo(o)}async function jo(e){return await new Promise((t,r)=>{let o=new FileReader;o.onload=n=>t(n?.target?.result),o.onerror=n=>r(n),o.readAsArrayBuffer(e)})}var mt=new S({id:"loaders.gl"}),Be=class{log(){return()=>{}}info(){return()=>{}}warn(){return()=>{}}error(){return()=>{}}},Le=class{console;constructor(){this.console=console}log(...t){return this.console.log.bind(this.console,...t)}info(...t){return this.console.info.bind(this.console,...t)}warn(...t){return this.console.warn.bind(this.console,...t)}error(...t){return this.console.error.bind(this.console,...t)}};var pt={fetch:null,mimeType:void 0,nothrow:!1,log:new Le,useLocalLibraries:!1,CDN:"https://unpkg.com/@loaders.gl",worker:!0,maxConcurrency:3,maxMobileConcurrency:1,reuseWorkers:p,_nodeWorkers:!1,_workerType:"",limit:0,_limitMB:0,batchSize:"auto",batchDebounceMs:0,metadata:!1,transforms:[]},fr={throws:"nothrow",dataType:"(no longer used)",uri:"baseUri",method:"fetch.method",headers:"fetch.headers",body:"fetch.body",mode:"fetch.mode",credentials:"fetch.credentials",cache:"fetch.cache",redirect:"fetch.redirect",referrer:"fetch.referrer",referrerPolicy:"fetch.referrerPolicy",integrity:"fetch.integrity",keepalive:"fetch.keepalive",signal:"fetch.signal"};function we(){globalThis.loaders=globalThis.loaders||{};let{loaders:e}=globalThis;return e._state||(e._state={}),e._state}function L(){let e=we();return e.globalOptions=e.globalOptions||{...pt},e.globalOptions}function ht(e){let t=we(),r=L();t.globalOptions=pr(r,e),$e(e.modules)}function Y(e,t,r,o){return r=r||[],r=Array.isArray(r)?r:[r],$o(e,r),pr(t,e,o)}function $o(e,t){lr(e,null,pt,fr,t);for(let r of t){let o=e&&e[r.id]||{},n=r.options&&r.options[r.id]||{},s=r.deprecatedOptions&&r.deprecatedOptions[r.id]||{};lr(o,r.id,n,s,t)}}function lr(e,t,r,o,n){let s=t||"Top level",i=t?`${t}.`:"";for(let a in e){let c=!t&&k(e[a]),f=a==="baseUri"&&!t,B=a==="workerUrl"&&t;if(!(a in r)&&!f&&!B){if(a in o)mt.warn(`${s} loader option '${i}${a}' no longer supported, use '${o[a]}'`)();else if(!c){let R=zo(a,n);mt.warn(`${s} loader option '${i}${a}' not recognized. ${R}`)()}}}}function zo(e,t){let r=e.toLowerCase(),o="";for(let n of t)for(let s in n.options){if(e===s)return`Did you mean '${n.id}.${s}'?`;let i=s.toLowerCase();(r.startsWith(i)||i.startsWith(r))&&(o=o||`Did you mean '${n.id}.${s}'?`)}return o}function pr(e,t,r){let n={...e.options||{}};return Vo(n,r),n.log===null&&(n.log=new Be),mr(n,L()),mr(n,t),n}function mr(e,t){for(let r in t)if(r in t){let o=t[r];pe(o)&&pe(e[r])?e[r]={...e[r],...t[r]}:e[r]=t[r]}}function Vo(e,t){t&&!("baseUri"in e)&&(e.baseUri=t)}function T(e){return e?(Array.isArray(e)&&(e=e[0]),Array.isArray(e?.extensions)):!1}function be(e){$(e,"null loader"),$(T(e),"invalid loader");let t;return Array.isArray(e)&&(t=e[1],e=e[0],e={...e,options:{...e.options,...t}}),(e?.parseTextSync||e?.parseText)&&(e.text=!0),e.text||(e.binary=!0),e}var hr=()=>{let e=we();return e.loaderRegistry=e.loaderRegistry||[],e.loaderRegistry};function dr(e){let t=hr();e=Array.isArray(e)?e:[e];for(let r of e){let o=be(r);t.find(n=>o===n)||t.unshift(o)}}function gr(){return hr()}function yr(){let e=we();e.loaderRegistry=[]}var Ho=/\.([^.]+)$/;async function X(e,t=[],r,o){if(!br(e))return null;let n=Z(e,t,{...r,nothrow:!0},o);if(n)return n;if(h(e)&&(e=await e.slice(0,10).arrayBuffer(),n=Z(e,t,r,o)),!n&&!r?.nothrow)throw new Error(xr(e));return n}function Z(e,t=[],r,o){if(!br(e))return null;if(t&&!Array.isArray(t))return be(t);let n=[];t&&(n=n.concat(t)),r?.ignoreRegisteredLoaders||n.push(...gr()),qo(n);let s=Go(e,n,r,o);if(!s&&!r?.nothrow)throw new Error(xr(e));return s}function Go(e,t,r,o){let n=x(e),s=ye(e),i=K(n)||o?.url,a=null,c="";return r?.mimeType&&(a=dt(t,r?.mimeType),c=`match forced by supplied MIME type ${r?.mimeType}`),a=a||Qo(t,i),c=c||(a?`matched url ${i}`:""),a=a||dt(t,s),c=c||(a?`matched MIME type ${s}`:""),a=a||Ko(t,e),c=c||(a?`matched initial data ${Tr(e)}`:""),r?.fallbackMimeType&&(a=a||dt(t,r?.fallbackMimeType),c=c||(a?`matched fallback MIME type ${s}`:"")),c&&De.log(1,`selectLoader selected ${a?.name}: ${c}.`),a}function br(e){return!(e instanceof Response&&e.status===204)}function xr(e){let t=x(e),r=ye(e),o="No valid loader found (";o+=t?`${U.filename(t)}, `:"no url provided, ",o+=`MIME type: ${r?`"${r}"`:"not provided"}, `;let n=e?Tr(e):"";return o+=n?` first bytes: "${n}"`:"first bytes: not available",o+=")",o}function qo(e){for(let t of e)be(t)}function Qo(e,t){let r=t&&Ho.exec(t),o=r&&r[1];return o?Jo(e,o):null}function Jo(e,t){t=t.toLowerCase();for(let r of e)for(let o of r.extensions)if(o.toLowerCase()===t)return r;return null}function dt(e,t){for(let r of e)if(r.mimeTypes?.some(o=>ut(t,o))||ut(t,`application/x.${r.id}`))return r;return null}function Ko(e,t){if(!t)return null;for(let r of e)if(typeof t=="string"){if(Yo(t,r))return r}else if(ArrayBuffer.isView(t)){if(wr(t.buffer,t.byteOffset,r))return r}else if(t instanceof ArrayBuffer&&wr(t,0,r))return r;return null}function Yo(e,t){return t.testText?t.testText(e):(Array.isArray(t.tests)?t.tests:[t.tests]).some(o=>e.startsWith(o))}function wr(e,t,r){return(Array.isArray(r.tests)?r.tests:[r.tests]).some(n=>Zo(e,t,r,n))}function Zo(e,t,r,o){if(o instanceof ArrayBuffer)return Ze(o,e,o.byteLength);switch(typeof o){case"function":return o(e);case"string":let n=gt(e,t,o.length);return o===n;default:return!1}}function Tr(e,t=5){return typeof e=="string"?e.slice(0,t):ArrayBuffer.isView(e)?gt(e.buffer,e.byteOffset,t):e instanceof ArrayBuffer?gt(e,0,t):""}function gt(e,t,r){if(e.byteLength<t+r)return"";let o=new DataView(e),n="";for(let s=0;s<r;s++)n+=String.fromCharCode(o.getUint8(t+s));return n}function*Ar(e,t){let r=t?.chunkSize||262144,o=0,n=new TextEncoder;for(;o<e.length;){let s=Math.min(e.length-o,r),i=e.slice(o,o+s);o+=s,yield n.encode(i)}}function*Sr(e,t={}){let{chunkSize:r=262144}=t,o=0;for(;o<e.byteLength;){let n=Math.min(e.byteLength-o,r),s=new ArrayBuffer(n),i=new Uint8Array(e,o,n);new Uint8Array(s).set(i),o+=n,yield s}}async function*_r(e,t){let r=t?.chunkSize||1048576,o=0;for(;o<e.size;){let n=o+r,s=await e.slice(o,n).arrayBuffer();o=n,yield s}}function yt(e,t){return p?Xo(e,t):en(e,t)}async function*Xo(e,t){let r=e.getReader(),o;try{for(;;){let n=o||r.read();t?._streamReadAhead&&(o=r.read());let{done:s,value:i}=await n;if(s)return;yield ke(i)}}catch{r.releaseLock()}}async function*en(e,t){for await(let r of e)yield ke(r)}function ee(e,t){if(typeof e=="string")return Ar(e,t);if(e instanceof ArrayBuffer)return Sr(e,t);if(h(e))return _r(e,t);if(D(e))return yt(e,t);if(m(e))return yt(e.body,t);throw new Error("makeIterator")}var wt="Cannot convert supplied data type";function bt(e,t,r){if(t.text&&typeof e=="string")return e;if(rr(e)&&(e=e.buffer),e instanceof ArrayBuffer){let o=e;return t.text&&!t.binary?new TextDecoder("utf8").decode(o):o}if(ArrayBuffer.isView(e)){if(t.text&&!t.binary)return new TextDecoder("utf8").decode(e);let o=e.buffer,n=e.byteLength||e.length;return(e.byteOffset!==0||n!==o.byteLength)&&(o=o.slice(e.byteOffset,e.byteOffset+n)),o}throw new Error(wt)}async function kr(e,t,r){let o=e instanceof ArrayBuffer||ArrayBuffer.isView(e);if(typeof e=="string"||o)return bt(e,t,r);if(h(e)&&(e=await Ee(e)),m(e)){let n=e;return await lt(n),t.binary?await n.arrayBuffer():await n.text()}if(D(e)&&(e=ee(e,r)),he(e)||de(e))return O(e);throw new Error(wt)}async function Er(e,t){if(ge(e))return e;if(m(e)){let r=e;await lt(r);let o=await r.body;return ee(o,t)}return h(e)||D(e)?ee(e,t):de(e)?e:tn(e)}function tn(e){if(ArrayBuffer.isView(e))return function*(){yield e.buffer}();if(e instanceof ArrayBuffer)return function*(){yield e}();if(ge(e))return e;if(he(e))return e[Symbol.iterator]();throw new Error(wt)}function te(e,t){let r=L(),o=e||r;return typeof o.fetch=="function"?o.fetch:k(o.fetch)?n=>j(n,o.fetch):t?.fetch?t?.fetch:j}function re(e,t,r){if(r)return r;let o={fetch:te(t,e),...e};if(o.url){let n=K(o.url);o.baseUrl=n,o.queryString=ir(o.url),o.filename=U.filename(n),o.baseUrl=U.dirname(n)}return Array.isArray(o.loaders)||(o.loaders=null),o}function Re(e,t){if(e&&!Array.isArray(e))return e;let r;if(e&&(r=Array.isArray(e)?e:[e]),t&&t.loaders){let o=Array.isArray(t.loaders)?t.loaders:[t.loaders];r=r?[...r,...o]:o}return r&&r.length?r:void 0}async function E(e,t,r,o){t&&!Array.isArray(t)&&!T(t)&&(o=void 0,r=t,t=void 0),e=await e,r=r||{};let n=x(e),i=Re(t,o),a=await X(e,i,r);return a?(r=Y(r,a,i,n),o=re({url:n,_parse:E,loaders:i},r,o||null),await rn(a,e,r,o)):null}async function rn(e,t,r,o){if(Qe(e),r=je(e.options,r),m(t)){let s=t,{ok:i,redirected:a,status:c,statusText:f,type:B,url:R}=s,Lt=Object.fromEntries(s.headers.entries());o.response={headers:Lt,ok:i,redirected:a,status:c,statusText:f,type:B,url:R}}t=await kr(t,e,r);let n=e;if(n.parseTextSync&&typeof t=="string")return n.parseTextSync(t,r,o);if(Je(e,r))return await Ke(e,t,r,o,E);if(n.parseText&&typeof t=="string")return await n.parseText(t,r,o);if(n.parse)return await n.parse(t,r,o);throw l(!n.parseSync),new Error(`${e.id} loader - no parser found and worker is disabled`)}function Br(e,t,r,o){!Array.isArray(t)&&!T(t)&&(o=void 0,r=t,t=void 0),r=r||{};let s=Re(t,o),i=Z(e,s,r);if(!i)return null;r=Y(r,i,s);let a=x(e),c=()=>{throw new Error("parseSync called parse (which is async")};return o=re({url:a,_parseSync:c,_parse:c,loaders:t},r,o||null),on(i,e,r,o)}function on(e,t,r,o){if(t=bt(t,e,r),e.parseTextSync&&typeof t=="string")return e.parseTextSync(t,r);if(e.parseSync&&t instanceof ArrayBuffer)return e.parseSync(t,r,o);throw new Error(`${e.name} loader: 'parseSync' not supported by this loader, use 'parse' instead. ${o.url||""}`)}function xt(e){switch(typeof e=="object"&&e?.shape){case"array-row-table":case"object-row-table":return Array.isArray(e.data);case"geojson-table":return Array.isArray(e.features);case"columnar-table":return e.data&&typeof e.data=="object";case"arrow-table":return Boolean(e?.data?.numRows!==void 0);default:return!1}}function Tt(e){switch(e.shape){case"array-row-table":case"object-row-table":return e.data.length;case"geojson-table":return e.features.length;case"arrow-table":return e.data.numRows;case"columnar-table":for(let r of Object.values(e.data))return r.length||0;return 0;default:throw new Error("table")}}function At(e){return{...e,length:Tt(e),batchType:"data"}}async function N(e,t,r,o){let n=Array.isArray(t)?t:void 0;!Array.isArray(t)&&!T(t)&&(o=void 0,r=t,t=void 0),e=await e,r=r||{};let s=x(e),i=await X(e,t,r);return i?(r=Y(r,i,n,s),o=re({url:s,_parseInBatches:N,_parse:E,loaders:n},r,o||null),await nn(i,e,r,o)):[]}async function nn(e,t,r,o){let n=await sn(e,t,r,o);if(!r.metadata)return n;let s={shape:"metadata",batchType:"metadata",metadata:{_loader:e,_context:o},data:[],bytesUsed:0};async function*i(a){yield s,yield*a}return i(n)}async function sn(e,t,r,o){let n=await Er(t,r),s=await un(n,r?.transforms||[]);return e.parseInBatches?e.parseInBatches(s,r,o):an(s,e,r,o)}async function*an(e,t,r,o){let n=await O(e),s=await E(n,t,{...r,mimeType:t.mimeTypes[0]},o);yield cn(s,t)}function cn(e,t){let r=xt(e)?At(e):{shape:"unknown",batchType:"data",data:e,length:Array.isArray(e)?e.length:1};return r.mimeType=t.mimeTypes[0],r}async function un(e,t=[]){let r=e;for await(let o of t)r=o(r);return r}async function Lr(e,t,r,o){let n,s;!Array.isArray(t)&&!T(t)?(n=[],s=t,o=void 0):(n=t,s=r);let i=te(s),a=e;return typeof e=="string"&&(a=await i(e)),h(e)&&(a=await i(e)),Array.isArray(n)?await E(a,n,s):await E(a,n,s)}function Ir(e,t,r,o){let n;!Array.isArray(t)&&!T(t)?(o=void 0,r=t,n=void 0):n=t;let s=te(r||{});return Array.isArray(e)?e.map(a=>Rr(a,n,r||{},s)):Rr(e,n,r||{},s)}async function Rr(e,t,r,o){if(typeof e=="string"){let s=await o(e);return Array.isArray(t)?await N(s,t,r):await N(s,t,r)}return Array.isArray(t)?await N(e,t,r):await N(e,t,r)}async function St(e,t,r){if(t.encode)return await t.encode(e,r);if(t.encodeText){let o=await t.encodeText(e,r);return new TextEncoder().encode(o)}if(t.encodeInBatches){let o=_t(e,t,r),n=[];for await(let s of o)n.push(s);return ae(...n)}throw new Error("Writer could not encode data")}async function vr(e,t,r){if(t.text&&t.encodeText)return await t.encodeText(e,r);if(t.text){let o=await St(e,t,r);return new TextDecoder().decode(o)}throw new Error(`Writer ${t.name} could not encode data as text`)}function _t(e,t,r){if(t.encodeInBatches){let o=fn(e);return t.encodeInBatches(o,r)}throw new Error("Writer could not encode data in batches")}function fn(e){return[{...e,start:0,end:e.length}]}async function Nr(e,t,r){return r={...L(),...r},t.encodeURLtoURL?ln(t,e,r):Ye(t,r)?await qe(t,e,r):await t.encode(e,r)}function kt(e,t,r){if(t.encodeSync)return t.encodeSync(e,r);if(t.encodeTextSync)return new TextEncoder().encode(t.encodeTextSync(e,r));throw new Error(`Writer ${t.name} could not synchronously encode data`)}async function Pr(e,t,r){if(t.encodeText)return await t.encodeText(e,r);if(t.encodeTextSync)return t.encodeTextSync(e,r);if(t.text){let o=await t.encode(e,r);return new TextDecoder().decode(o)}throw new Error(`Writer ${t.name} could not encode data as text`)}function Mr(e,t,r){if(t.encodeTextSync)return t.encodeTextSync(e,r);if(t.text&&t.encodeSync){let o=kt(e,t,r);return new TextDecoder().decode(o)}throw new Error(`Writer ${t.name} could not encode data as text`)}function Wr(e,t,r){if(t.encodeInBatches){let o=mn(e);return t.encodeInBatches(o,r)}throw new Error(`Writer ${t.name} could not encode in batches`)}async function Et(e,t,r,o){if(e=F(e),t=F(t),p||!r.encodeURLtoURL)throw new Error;return await r.encodeURLtoURL(e,t,o)}async function ln(e,t,r){if(p)throw new Error(`Writer ${e.name} not supported in browser`);let o=Fr("input");await new me(o,"w").write(t);let s=Fr("output"),i=await Et(o,s,e,r);return(await j(i)).arrayBuffer()}function mn(e){return[{...e,start:0,end:e.length}]}function Fr(e){return`/tmp/${e}`}function Or(e,t,r){let{type:o="auto"}=r,n=o==="auto"?pn(e,t):hn(o,t);if(!n)throw new Error("Not a valid image source type");return n.createDataSource(e,r)}function pn(e,t){for(let r of t)if(r.testURL&&r.testURL(e))return r;return null}function hn(e,t){for(let r of t)if(r.type===e)return r;return null}function Cr(e,t,r){let o=r?.type||"auto",n=null;if(o==="auto"){for(let s of t)if(typeof e=="string"&&s.testURL&&s.testURL(e))return s}else n=dn(o,t);if(!n&&!r?.nothrow)throw new Error("Not a valid image source type");return n}function dn(e,t){for(let r of t)if(r.type===e)return r;return null}function Ur(e,t){if(globalThis.loaders.makeNodeStream)return globalThis.loaders.makeNodeStream(e,t);let r=e[Symbol.asyncIterator]?e[Symbol.asyncIterator]():e[Symbol.iterator]();return new ReadableStream({type:"bytes",async pull(o){try{let{done:n,value:s}=await r.next();n?o.close():o.enqueue(new Uint8Array(s))}catch(n){o.error(n)}},async cancel(){await r?.return?.()}},{highWaterMark:2**24,...t})}var Dr="4.3.0-alpha.7",jr={dataType:null,batchType:null,name:"Null loader",id:"null",module:"core",version:Dr,worker:!0,mimeTypes:["application/x.empty"],extensions:["null"],tests:[()=>!1],options:{null:{}}},$r={dataType:null,batchType:null,name:"Null loader",id:"null",module:"core",version:Dr,mimeTypes:["application/x.empty"],extensions:["null"],parse:async(e,t,r)=>Bt(e,t||{},r),parseSync:Bt,parseInBatches:async function*(t,r,o){for await(let n of t)yield Bt(n,r,o)},tests:[()=>!1],options:{null:{}}};function Bt(e,t,r){return null}async function zr(e,t,r=()=>{},o=()=>{}){if(e=await e,!e.ok)return e;let n=e.body;if(!n)return e;let s=e.headers.get("content-length")||0,i=s?parseInt(s):0;if(!(i>0)||typeof ReadableStream>"u"||!n.getReader)return e;let a=new ReadableStream({async start(c){let f=n.getReader();await Vr(c,f,0,i,t,r,o)}});return new Response(a)}async function Vr(e,t,r,o,n,s,i){try{let{done:a,value:c}=await t.read();if(a){s(),e.close();return}r+=c.byteLength;let f=Math.round(r/o*100);n(f,{loadedBytes:r,totalBytes:o}),e.enqueue(c),await Vr(e,t,r,o,n,s,i)}catch(a){e.error(a),i(a)}}var Ie=class{_fetch;files={};lowerCaseFiles={};usedFiles={};constructor(t,r){this._fetch=r?.fetch||fetch;for(let o=0;o<t.length;++o){let n=t[o];this.files[n.name]=n,this.lowerCaseFiles[n.name.toLowerCase()]=n,this.usedFiles[n.name]=!1}this.fetch=this.fetch.bind(this)}async fetch(t,r){if(t.includes("://"))return this._fetch(t,r);let o=this.files[t];if(!o)return new Response(t,{status:400,statusText:"NOT FOUND"});let s=new Headers(r?.headers).get("Range"),i=s&&/bytes=($1)-($2)/.exec(s);if(i){let c=parseInt(i[1]),f=parseInt(i[2]),B=await o.slice(c,f).arrayBuffer(),R=new Response(B);return Object.defineProperty(R,"url",{value:t}),R}let a=new Response(o);return Object.defineProperty(a,"url",{value:t}),a}async readdir(t){let r=[];for(let o in this.files)r.push(o);return r}async stat(t,r){let o=this.files[t];if(!o)throw new Error(t);return{size:o.size}}async unlink(t){delete this.files[t],delete this.lowerCaseFiles[t],this.usedFiles[t]=!0}async openReadableFile(t,r){return new fe(this.files[t])}_getFile(t,r){let o=this.files[t]||this.lowerCaseFiles[t];return o&&r&&(this.usedFiles[t]=!0),o}};return Kr(gn);})();
12
+ }`}function ve(e,r=!0,t){let o=t||new Set;if(e){if(jr(e))o.add(e);else if(jr(e.buffer))o.add(e.buffer);else if(!ArrayBuffer.isView(e)){if(r&&typeof e=="object")for(let n in e)ve(e[n],r,o)}}return t===void 0?Array.from(o):[]}function jr(e){return e?e instanceof ArrayBuffer||typeof MessagePort<"u"&&e instanceof MessagePort||typeof ImageBitmap<"u"&&e instanceof ImageBitmap||typeof OffscreenCanvas<"u"&&e instanceof OffscreenCanvas:!1}function Ue(e){if(e===null)return{};let r=Object.assign({},e);return Object.keys(r).forEach(t=>{typeof e[t]=="object"&&!ArrayBuffer.isView(e[t])&&!(e[t]instanceof Array)?r[t]=Ue(e[t]):typeof r[t]=="function"||r[t]instanceof RegExp?r[t]={}:r[t]=e[t]}),r}var $e=()=>{},B=class{name;source;url;terminated=!1;worker;onMessage;onError;_loadableURL="";static isSupported(){return typeof Worker<"u"&&h||typeof D<"u"&&!h}constructor(r){let{name:t,source:o,url:n}=r;u(o||n),this.name=t,this.source=o,this.url=n,this.onMessage=$e,this.onError=s=>console.log(s),this.worker=h?this._createBrowserWorker():this._createNodeWorker()}destroy(){this.onMessage=$e,this.onError=$e,this.worker.terminate(),this.terminated=!0}get isRunning(){return Boolean(this.onMessage)}postMessage(r,t){t=t||ve(r),this.worker.postMessage(r,t)}_getErrorFromErrorEvent(r){let t="Failed to load ";return t+=`worker ${this.name} from ${this.url}. `,r.message&&(t+=`${r.message} in `),r.lineno&&(t+=`:${r.lineno}:${r.colno}`),new Error(t)}_createBrowserWorker(){this._loadableURL=$r({source:this.source,url:this.url});let r=new Worker(this._loadableURL,{name:this.name});return r.onmessage=t=>{t.data?this.onMessage(t.data):this.onError(new Error("No data received"))},r.onerror=t=>{this.onError(this._getErrorFromErrorEvent(t)),this.terminated=!0},r.onmessageerror=t=>console.error(t),r}_createNodeWorker(){let r;if(this.url){let o=this.url.includes(":/")||this.url.startsWith("/")?this.url:`./${this.url}`;r=new D(o,{eval:!1})}else if(this.source)r=new D(this.source,{eval:!0});else throw new Error("no worker");return r.on("message",t=>{this.onMessage(t)}),r.on("error",t=>{this.onError(t)}),r.on("exit",t=>{}),r}};var re=class{name="unnamed";source;url;maxConcurrency=1;maxMobileConcurrency=1;onDebug=()=>{};reuseWorkers=!0;props={};jobQueue=[];idleQueue=[];count=0;isDestroyed=!1;static isSupported(){return B.isSupported()}constructor(r){this.source=r.source,this.url=r.url,this.setProps(r)}destroy(){this.idleQueue.forEach(r=>r.destroy()),this.isDestroyed=!0}setProps(r){this.props={...this.props,...r},r.name!==void 0&&(this.name=r.name),r.maxConcurrency!==void 0&&(this.maxConcurrency=r.maxConcurrency),r.maxMobileConcurrency!==void 0&&(this.maxMobileConcurrency=r.maxMobileConcurrency),r.reuseWorkers!==void 0&&(this.reuseWorkers=r.reuseWorkers),r.onDebug!==void 0&&(this.onDebug=r.onDebug)}async startJob(r,t=(n,s,i)=>n.done(i),o=(n,s)=>n.error(s)){let n=new Promise(s=>(this.jobQueue.push({name:r,onMessage:t,onError:o,onStart:s}),this));return this._startQueuedJob(),await n}async _startQueuedJob(){if(!this.jobQueue.length)return;let r=this._getAvailableWorker();if(!r)return;let t=this.jobQueue.shift();if(t){this.onDebug({message:"Starting job",name:t.name,workerThread:r,backlog:this.jobQueue.length});let o=new ee(t.name,r);r.onMessage=n=>t.onMessage(o,n.type,n.payload),r.onError=n=>t.onError(o,n),t.onStart(o);try{await o.result}catch(n){console.error(`Worker exception: ${n}`)}finally{this.returnWorkerToQueue(r)}}}returnWorkerToQueue(r){!h||this.isDestroyed||!this.reuseWorkers||this.count>this._getMaxConcurrency()?(r.destroy(),this.count--):this.idleQueue.push(r),this.isDestroyed||this._startQueuedJob()}_getAvailableWorker(){if(this.idleQueue.length>0)return this.idleQueue.shift()||null;if(this.count<this._getMaxConcurrency()){this.count++;let r=`${this.name.toLowerCase()} (#${this.count} of ${this.maxConcurrency})`;return new B({name:r,source:this.source,url:this.url})}return null}_getMaxConcurrency(){return Ur?this.maxMobileConcurrency:this.maxConcurrency}};var io={maxConcurrency:3,maxMobileConcurrency:1,reuseWorkers:!0,onDebug:()=>{}},N=class{props;workerPools=new Map;static isSupported(){return B.isSupported()}static getWorkerFarm(r={}){return N._workerFarm=N._workerFarm||new N({}),N._workerFarm.setProps(r),N._workerFarm}constructor(r){this.props={...io},this.setProps(r),this.workerPools=new Map}destroy(){for(let r of this.workerPools.values())r.destroy();this.workerPools=new Map}setProps(r){this.props={...this.props,...r};for(let t of this.workerPools.values())t.setProps(this._getWorkerPoolProps())}getWorkerPool(r){let{name:t,source:o,url:n}=r,s=this.workerPools.get(t);return s||(s=new re({name:t,source:o,url:n}),s.setProps(this._getWorkerPoolProps()),this.workerPools.set(t,s)),s}_getWorkerPoolProps(){return{maxConcurrency:this.props.maxConcurrency,maxMobileConcurrency:this.props.maxMobileConcurrency,reuseWorkers:this.props.reuseWorkers,onDebug:this.props.onDebug}}},d=N;kr(d,"_workerFarm");function zr(e){let r=e.version!==X?` (worker-utils@${X})`:"";return`${e.name}@${e.version}${r}`}function te(e,r={}){let t=r[e.id]||{},o=h?`${e.id}-worker.js`:`${e.id}-worker-node.js`,n=t.workerUrl;if(!n&&e.id==="compression"&&(n=r.workerUrl),r._workerType==="test"&&(h?n=`modules/${e.module}/dist/${o}`:n=`modules/${e.module}/src/workers/${e.id}-worker-node.ts`),!n){let s=e.version;s==="latest"&&(s=Pr);let i=s?`@${s}`:"";n=`https://unpkg.com/@loaders.gl/${e.module}${i}/dist/${o}`}return u(n),n}async function De(e,r,t={},o={}){let n=zr(e),s=d.getWorkerFarm(t),{source:i}=t,a={name:n,source:i};i||(a.url=te(e,t));let c=s.getWorkerPool(a),f=t.jobName||e.name,k=await c.startJob(f,ao.bind(null,o)),E=Ue(t);return k.postMessage("process",{input:r,options:E}),(await k.result).result}async function ao(e,r,t,o){switch(t){case"done":r.done(o);break;case"error":r.error(new Error(o.error));break;case"process":let{id:n,input:s,options:i}=o;try{if(!e.process){r.postMessage("error",{id:n,error:"Worker not set up to process on main thread"});return}let a=await e.process(s,i);r.postMessage("done",{id:n,result:a})}catch(a){let c=a instanceof Error?a.message:"unknown error";r.postMessage("error",{id:n,error:c})}break;default:console.warn(`process-on-worker: unknown message ${t}`)}}function je(e,r=X){u(e,"no worker provided");let t=e.version;return!(!r||!t)}function ze(e,r){return!d.isSupported()||!h&&!r?._nodeWorkers?!1:e.worker&&r?.worker}async function Ve(e,r,t,o,n){let s=e.id,i=te(e,t),c=d.getWorkerFarm(t).getWorkerPool({name:s,url:i});t=JSON.parse(JSON.stringify(t)),o=JSON.parse(JSON.stringify(o||{}));let f=await c.startJob("process-on-worker",co.bind(null,n));return f.postMessage("process",{input:r,options:t,context:o}),await(await f.result).result}async function co(e,r,t,o){switch(t){case"done":r.done(o);break;case"error":r.error(new Error(o.error));break;case"process":let{id:n,input:s,options:i}=o;try{let a=await e(s,i);r.postMessage("done",{id:n,result:a})}catch(a){let c=a instanceof Error?a.message:"unknown error";r.postMessage("error",{id:n,error:c})}break;default:console.warn(`parse-with-worker unknown message ${t}`)}}function He(e,r){return!d.isSupported()||!m&&!r?._nodeWorkers?!1:e.worker&&r?.worker}function Ge(e,r,t){if(t=t||e.byteLength,e.byteLength<t||r.byteLength<t)return!1;let o=new Uint8Array(e),n=new Uint8Array(r);for(let s=0;s<o.length;++s)if(o[s]!==n[s])return!1;return!0}function oe(...e){return Vr(e)}function Vr(e){let r=e.map(s=>s instanceof ArrayBuffer?new Uint8Array(s):s),t=r.reduce((s,i)=>s+i.byteLength,0),o=new Uint8Array(t),n=0;for(let s of r)o.set(s,n),n+=s.byteLength;return o.buffer}async function*qe(e,r={}){let t=new TextDecoder(void 0,r);for await(let o of e)yield typeof o=="string"?o:t.decode(o,{stream:!0})}async function*Qe(e){let r=new TextEncoder;for await(let t of e)yield typeof t=="string"?r.encode(t):t}async function*Je(e){let r="";for await(let t of e){r+=t;let o;for(;(o=r.indexOf(`
13
+ `))>=0;){let n=r.slice(0,o+1);r=r.slice(o+1),yield n}}r.length>0&&(yield r)}async function*Ke(e){let r=1;for await(let t of e)yield{counter:r,line:t},r++}async function Ye(e,r){for(;;){let{done:t,value:o}=await e.next();if(t){e.return();return}if(r(o))return}}async function M(e){let r=[];for await(let t of e)r.push(t);return oe(...r)}function ne(){let e;if(typeof window<"u"&&window.performance)e=window.performance.now();else if(typeof process<"u"&&process.hrtime){let r=process.hrtime();e=r[0]*1e3+r[1]/1e6}else e=Date.now();return e}var W=class{constructor(r,t){this.sampleSize=1,this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this.name=r,this.type=t,this.reset()}reset(){return this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this}setSampleSize(r){return this.sampleSize=r,this}incrementCount(){return this.addCount(1),this}decrementCount(){return this.subtractCount(1),this}addCount(r){return this._count+=r,this._samples++,this._checkSampling(),this}subtractCount(r){return this._count-=r,this._samples++,this._checkSampling(),this}addTime(r){return this._time+=r,this.lastTiming=r,this._samples++,this._checkSampling(),this}timeStart(){return this._startTime=ne(),this._timerPending=!0,this}timeEnd(){return this._timerPending?(this.addTime(ne()-this._startTime),this._timerPending=!1,this._checkSampling(),this):this}getSampleAverageCount(){return this.sampleSize>0?this.lastSampleCount/this.sampleSize:0}getSampleAverageTime(){return this.sampleSize>0?this.lastSampleTime/this.sampleSize:0}getSampleHz(){return this.lastSampleTime>0?this.sampleSize/(this.lastSampleTime/1e3):0}getAverageCount(){return this.samples>0?this.count/this.samples:0}getAverageTime(){return this.samples>0?this.time/this.samples:0}getHz(){return this.time>0?this.samples/(this.time/1e3):0}_checkSampling(){this._samples===this.sampleSize&&(this.lastSampleTime=this._time,this.lastSampleCount=this._count,this.count+=this._count,this.time+=this._time,this.samples+=this._samples,this._time=0,this._count=0,this._samples=0)}};var j=class{constructor(r){this.stats={},this.id=r.id,this.stats={},this._initializeStats(r.stats),Object.seal(this)}get(r,t="count"){return this._getOrCreate({name:r,type:t})}get size(){return Object.keys(this.stats).length}reset(){for(let r of Object.values(this.stats))r.reset();return this}forEach(r){for(let t of Object.values(this.stats))r(t)}getTable(){let r={};return this.forEach(t=>{r[t.name]={time:t.time||0,count:t.count||0,average:t.getAverageTime()||0,hz:t.getHz()||0}}),r}_initializeStats(r=[]){r.forEach(t=>this._getOrCreate(t))}_getOrCreate(r){let{name:t,type:o}=r,n=this.stats[t];return n||(r instanceof W?n=r:n=new W(t,o),this.stats[t]=n),n}};var fo="Queued Requests",uo="Active Requests",lo="Cancelled Requests",mo="Queued Requests Ever",po="Active Requests Ever",ho={id:"request-scheduler",throttleRequests:!0,maxRequests:6,debounceTime:0},z=class{props;stats;activeRequestCount=0;requestQueue=[];requestMap=new Map;updateTimer=null;constructor(r={}){this.props={...ho,...r},this.stats=new j({id:this.props.id}),this.stats.get(fo),this.stats.get(uo),this.stats.get(lo),this.stats.get(mo),this.stats.get(po)}scheduleRequest(r,t=()=>0){if(!this.props.throttleRequests)return Promise.resolve({done:()=>{}});if(this.requestMap.has(r))return this.requestMap.get(r);let o={handle:r,priority:0,getPriority:t},n=new Promise(s=>(o.resolve=s,o));return this.requestQueue.push(o),this.requestMap.set(r,n),this._issueNewRequests(),n}_issueRequest(r){let{handle:t,resolve:o}=r,n=!1,s=()=>{n||(n=!0,this.requestMap.delete(t),this.activeRequestCount--,this._issueNewRequests())};return this.activeRequestCount++,o?o({done:s}):Promise.resolve({done:s})}_issueNewRequests(){this.updateTimer!==null&&clearTimeout(this.updateTimer),this.updateTimer=setTimeout(()=>this._issueNewRequestsAsync(),this.props.debounceTime)}_issueNewRequestsAsync(){this.updateTimer!==null&&clearTimeout(this.updateTimer),this.updateTimer=null;let r=Math.max(this.props.maxRequests-this.activeRequestCount,0);if(r!==0){this._updateAllRequests();for(let t=0;t<r;++t){let o=this.requestQueue.shift();o&&this._issueRequest(o)}}}_updateAllRequests(){let r=this.requestQueue;for(let t=0;t<r.length;++t){let o=r[t];this._updateRequest(o)||(r.splice(t,1),this.requestMap.delete(o.handle),t--)}r.sort((t,o)=>t.priority-o.priority)}_updateRequest(r){return r.priority=r.getPriority(r.handle),r.priority<0?(r.resolve(null),!1):!0}};var Ze="",Hr={};function Xe(e){Ze=e}function er(){return Ze}function L(e){for(let r in Hr)if(e.startsWith(r)){let t=Hr[r];e=e.replace(r,t)}return!e.startsWith("http://")&&!e.startsWith("https://")&&(e=`${Ze}${e}`),e}var go="4.3.0-alpha.8",rr={dataType:null,batchType:null,name:"JSON",id:"json",module:"json",version:go,extensions:["json","geojson"],mimeTypes:["application/json"],category:"json",text:!0,parseTextSync:Gr,parse:async e=>Gr(new TextDecoder().decode(e)),options:{}};function Gr(e){return JSON.parse(e)}function qr(e){return e&&typeof e=="object"&&e.isBuffer}function Te(e){if(qr(e))return e;if(e instanceof ArrayBuffer)return e;if(ArrayBuffer.isView(e))return e.byteOffset===0&&e.byteLength===e.buffer.byteLength?e.buffer:e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength);if(typeof e=="string"){let r=e;return new TextEncoder().encode(r).buffer}if(e&&typeof e=="object"&&e._toArrayBuffer)return e._toArrayBuffer();throw new Error("toArrayBuffer")}var C={};Sr(C,{dirname:()=>wo,filename:()=>yo,join:()=>bo,resolve:()=>xo});function Qr(){if(typeof process<"u"&&typeof process.cwd<"u")return process.cwd();let e=window.location?.pathname;return e?.slice(0,e.lastIndexOf("/")+1)||""}function yo(e){let r=e?e.lastIndexOf("/"):-1;return r>=0?e.substr(r+1):""}function wo(e){let r=e?e.lastIndexOf("/"):-1;return r>=0?e.substr(0,r):""}function bo(...e){let r="/";return e=e.map((t,o)=>(o&&(t=t.replace(new RegExp(`^${r}`),"")),o!==e.length-1&&(t=t.replace(new RegExp(`${r}$`),"")),t)),e.join(r)}function xo(...e){let r=[];for(let s=0;s<e.length;s++)r[s]=e[s];let t="",o=!1,n;for(let s=r.length-1;s>=-1&&!o;s--){let i;s>=0?i=r[s]:(n===void 0&&(n=Qr()),i=n),i.length!==0&&(t=`${i}/${t}`,o=i.charCodeAt(0)===se)}return t=To(t,!o),o?`/${t}`:t.length>0?t:"."}var se=47,tr=46;function To(e,r){let t="",o=-1,n=0,s,i=!1;for(let a=0;a<=e.length;++a){if(a<e.length)s=e.charCodeAt(a);else{if(s===se)break;s=se}if(s===se){if(!(o===a-1||n===1))if(o!==a-1&&n===2){if(t.length<2||!i||t.charCodeAt(t.length-1)!==tr||t.charCodeAt(t.length-2)!==tr){if(t.length>2){let c=t.length-1,f=c;for(;f>=0&&t.charCodeAt(f)!==se;--f);if(f!==c){t=f===-1?"":t.slice(0,f),o=a,n=0,i=!1;continue}}else if(t.length===2||t.length===1){t="",o=a,n=0,i=!1;continue}}r&&(t.length>0?t+="/..":t="..",i=!0)}else{let c=e.slice(o+1,a);t.length>0?t+=`/${c}`:t=c,i=!1}o=a,n=0}else s===tr&&n!==-1?++n:n=-1}return t}var ie=class{handle;size;bigsize;url;constructor(r){this.handle=r instanceof ArrayBuffer?new Blob([r]):r,this.size=r instanceof ArrayBuffer?r.byteLength:r.size,this.bigsize=BigInt(this.size),this.url=r instanceof File?r.name:""}async close(){}async stat(){return{size:this.handle.size,bigsize:BigInt(this.handle.size),isDirectory:!1}}async read(r,t){return await this.handle.slice(r,r+t).arrayBuffer()}};var ae=new Error("Not implemented"),ce=class{handle;size=0;bigsize=0n;url="";constructor(r,t,o){if(globalThis.loaders?.NodeFile)return new globalThis.loaders.NodeFile(r,t,o);throw m?new Error("Can't instantiate NodeFile in browser."):new Error("Can't instantiate NodeFile. Make sure to import @loaders.gl/polyfills first.")}async read(r,t){throw ae}async write(r,t,o){throw ae}async stat(){throw ae}async truncate(r){throw ae}async append(r){throw ae}async close(){}};var Jr=e=>typeof e=="boolean",g=e=>typeof e=="function",A=e=>e!==null&&typeof e=="object",fe=e=>A(e)&&e.constructor==={}.constructor,Kr=e=>A(e)&&g(e.then),ue=e=>Boolean(e)&&typeof e[Symbol.iterator]=="function",le=e=>e&&typeof e[Symbol.asyncIterator]=="function",me=e=>e&&g(e.next),l=e=>typeof Response<"u"&&e instanceof Response||e&&e.arrayBuffer&&e.text&&e.json;var p=e=>typeof Blob<"u"&&e instanceof Blob,Yr=e=>e&&typeof e=="object"&&e.isBuffer,Ao=e=>A(e)&&g(e.abort)&&g(e.getWriter),So=e=>typeof ReadableStream<"u"&&e instanceof ReadableStream||A(e)&&g(e.tee)&&g(e.cancel)&&g(e.getReader),ko=e=>A(e)&&g(e.end)&&g(e.write)&&Jr(e.writable),_o=e=>A(e)&&g(e.read)&&g(e.pipe)&&Jr(e.readable),O=e=>So(e)||_o(e),Zr=e=>Ao(e)||ko(e);var V=class extends Error{constructor(r,t){super(r),this.reason=t.reason,this.url=t.url,this.response=t.response}reason;url;response};var Eo=/^data:([-\w.]+\/[-\w.+]+)(;|,)/,Bo=/^([-\w.]+\/[-\w.+]+)/;function or(e,r){return e.toLowerCase()===r.toLowerCase()}function Xr(e){let r=Bo.exec(e);return r?r[1]:e}function nr(e){let r=Eo.exec(e);return r?r[1]:""}var et=/\?.*/;function rt(e){let r=e.match(et);return r&&r[0]}function H(e){return e.replace(et,"")}function tt(e){if(e.length<50)return e;let r=e.slice(e.length-15);return`${e.substr(0,32)}...${r}`}function y(e){return l(e)?e.url:p(e)?e.name||"":typeof e=="string"?e:""}function pe(e){if(l(e)){let r=e,t=r.headers.get("content-type")||"",o=H(r.url);return Xr(t)||nr(o)}return p(e)?e.type||"":typeof e=="string"?nr(e):""}function ot(e){return l(e)?e.headers["content-length"]||-1:p(e)?e.size:typeof e=="string"?e.length:e instanceof ArrayBuffer||ArrayBuffer.isView(e)?e.byteLength:-1}async function Ae(e){if(l(e))return e;let r={},t=ot(e);t>=0&&(r["content-length"]=String(t));let o=y(e),n=pe(e);n&&(r["content-type"]=n);let s=await Ro(e);s&&(r["x-first-bytes"]=s),typeof e=="string"&&(e=new TextEncoder().encode(e));let i=new Response(e,{headers:r});return Object.defineProperty(i,"url",{value:o}),i}async function sr(e){if(!e.ok)throw await Lo(e)}async function Lo(e){let r=tt(e.url),t=`Failed to fetch resource (${e.status}) ${e.statusText}: ${r}`;t=t.length>100?`${t.slice(0,100)}...`:t;let o={reason:e.statusText,url:e.url,response:e};try{let n=e.headers.get("Content-Type");o.reason=!e.bodyUsed&&n?.includes("application/json")?await e.json():await e.text()}catch{}return new V(t,o)}async function Ro(e){if(typeof e=="string")return`data:,${e.slice(0,5)}`;if(e instanceof Blob){let t=e.slice(0,5);return await new Promise(o=>{let n=new FileReader;n.onload=s=>o(s?.target?.result),n.readAsDataURL(t)})}if(e instanceof ArrayBuffer){let t=e.slice(0,5);return`data:base64,${Io(t)}`}return null}function Io(e){let r="",t=new Uint8Array(e);for(let o=0;o<t.byteLength;o++)r+=String.fromCharCode(t[o]);return btoa(r)}function Fo(e){return!No(e)&&!Mo(e)}function No(e){return e.startsWith("http:")||e.startsWith("https:")}function Mo(e){return e.startsWith("data:")}async function P(e,r){if(typeof e=="string"){let t=L(e);return Fo(t)&&globalThis.loaders?.fetchNode?globalThis.loaders?.fetchNode(t,r):await fetch(t,r)}return await Ae(e)}async function nt(e,r,t){e instanceof Blob||(e=new Blob([e]));let o=e.slice(r,r+t);return await Wo(o)}async function Wo(e){return await new Promise((r,t)=>{let o=new FileReader;o.onload=n=>r(n?.target?.result),o.onerror=n=>t(n),o.readAsArrayBuffer(e)})}var ir=new x({id:"loaders.gl"}),Se=class{log(){return()=>{}}info(){return()=>{}}warn(){return()=>{}}error(){return()=>{}}},ke=class{console;constructor(){this.console=console}log(...r){return this.console.log.bind(this.console,...r)}info(...r){return this.console.info.bind(this.console,...r)}warn(...r){return this.console.warn.bind(this.console,...r)}error(...r){return this.console.error.bind(this.console,...r)}};var ar={fetch:null,mimeType:void 0,nothrow:!1,log:new ke,useLocalLibraries:!1,CDN:"https://unpkg.com/@loaders.gl",worker:!0,maxConcurrency:3,maxMobileConcurrency:1,reuseWorkers:m,_nodeWorkers:!1,_workerType:"",limit:0,_limitMB:0,batchSize:"auto",batchDebounceMs:0,metadata:!1,transforms:[]},st={throws:"nothrow",dataType:"(no longer used)",uri:"baseUri",method:"fetch.method",headers:"fetch.headers",body:"fetch.body",mode:"fetch.mode",credentials:"fetch.credentials",cache:"fetch.cache",redirect:"fetch.redirect",referrer:"fetch.referrer",referrerPolicy:"fetch.referrerPolicy",integrity:"fetch.integrity",keepalive:"fetch.keepalive",signal:"fetch.signal"};function he(){globalThis.loaders=globalThis.loaders||{};let{loaders:e}=globalThis;return e._state||(e._state={}),e._state}function _(){let e=he();return e.globalOptions=e.globalOptions||{...ar},e.globalOptions}function cr(e){let r=he(),t=_();r.globalOptions=ct(t,e),Oe(e.modules)}function G(e,r,t,o){return t=t||[],t=Array.isArray(t)?t:[t],Co(e,t),ct(r,e,o)}function Co(e,r){it(e,null,ar,st,r);for(let t of r){let o=e&&e[t.id]||{},n=t.options&&t.options[t.id]||{},s=t.deprecatedOptions&&t.deprecatedOptions[t.id]||{};it(o,t.id,n,s,r)}}function it(e,r,t,o,n){let s=r||"Top level",i=r?`${r}.`:"";for(let a in e){let c=!r&&A(e[a]),f=a==="baseUri"&&!r,k=a==="workerUrl"&&r;if(!(a in t)&&!f&&!k){if(a in o)ir.warn(`${s} loader option '${i}${a}' no longer supported, use '${o[a]}'`)();else if(!c){let E=Oo(a,n);ir.warn(`${s} loader option '${i}${a}' not recognized. ${E}`)()}}}}function Oo(e,r){let t=e.toLowerCase(),o="";for(let n of r)for(let s in n.options){if(e===s)return`Did you mean '${n.id}.${s}'?`;let i=s.toLowerCase();(t.startsWith(i)||i.startsWith(t))&&(o=o||`Did you mean '${n.id}.${s}'?`)}return o}function ct(e,r,t){let n={...e.options||{}};return Po(n,t),n.log===null&&(n.log=new Se),at(n,_()),at(n,r),n}function at(e,r){for(let t in r)if(t in r){let o=r[t];fe(o)&&fe(e[t])?e[t]={...e[t],...r[t]}:e[t]=r[t]}}function Po(e,r){r&&!("baseUri"in e)&&(e.baseUri=r)}function w(e){return e?(Array.isArray(e)&&(e=e[0]),Array.isArray(e?.extensions)):!1}function de(e){v(e,"null loader"),v(w(e),"invalid loader");let r;return Array.isArray(e)&&(r=e[1],e=e[0],e={...e,options:{...e.options,...r}}),(e?.parseTextSync||e?.parseText)&&(e.text=!0),e.text||(e.binary=!0),e}var ft=()=>{let e=he();return e.loaderRegistry=e.loaderRegistry||[],e.loaderRegistry};function ut(e){let r=ft();e=Array.isArray(e)?e:[e];for(let t of e){let o=de(t);r.find(n=>o===n)||r.unshift(o)}}function lt(){return ft()}function mt(){let e=he();e.loaderRegistry=[]}var vo=/\.([^.]+)$/;async function Q(e,r=[],t,o){if(!ht(e))return null;let n=q(e,r,{...t,nothrow:!0},o);if(n)return n;if(p(e)&&(e=await e.slice(0,10).arrayBuffer(),n=q(e,r,t,o)),!n&&!t?.nothrow)throw new Error(dt(e));return n}function q(e,r=[],t,o){if(!ht(e))return null;if(r&&!Array.isArray(r))return de(r);let n=[];r&&(n=n.concat(r)),t?.ignoreRegisteredLoaders||n.push(...lt()),$o(n);let s=Uo(e,n,t,o);if(!s&&!t?.nothrow)throw new Error(dt(e));return s}function Uo(e,r,t,o){let n=y(e),s=pe(e),i=H(n)||o?.url,a=null,c="";return t?.mimeType&&(a=fr(r,t?.mimeType),c=`match forced by supplied MIME type ${t?.mimeType}`),a=a||Do(r,i),c=c||(a?`matched url ${i}`:""),a=a||fr(r,s),c=c||(a?`matched MIME type ${s}`:""),a=a||zo(r,e),c=c||(a?`matched initial data ${gt(e)}`:""),t?.fallbackMimeType&&(a=a||fr(r,t?.fallbackMimeType),c=c||(a?`matched fallback MIME type ${s}`:"")),c&&We.log(1,`selectLoader selected ${a?.name}: ${c}.`),a}function ht(e){return!(e instanceof Response&&e.status===204)}function dt(e){let r=y(e),t=pe(e),o="No valid loader found (";o+=r?`${C.filename(r)}, `:"no url provided, ",o+=`MIME type: ${t?`"${t}"`:"not provided"}, `;let n=e?gt(e):"";return o+=n?` first bytes: "${n}"`:"first bytes: not available",o+=")",o}function $o(e){for(let r of e)de(r)}function Do(e,r){let t=r&&vo.exec(r),o=t&&t[1];return o?jo(e,o):null}function jo(e,r){r=r.toLowerCase();for(let t of e)for(let o of t.extensions)if(o.toLowerCase()===r)return t;return null}function fr(e,r){for(let t of e)if(t.mimeTypes?.some(o=>or(r,o))||or(r,`application/x.${t.id}`))return t;return null}function zo(e,r){if(!r)return null;for(let t of e)if(typeof r=="string"){if(Vo(r,t))return t}else if(ArrayBuffer.isView(r)){if(pt(r.buffer,r.byteOffset,t))return t}else if(r instanceof ArrayBuffer&&pt(r,0,t))return t;return null}function Vo(e,r){return r.testText?r.testText(e):(Array.isArray(r.tests)?r.tests:[r.tests]).some(o=>e.startsWith(o))}function pt(e,r,t){return(Array.isArray(t.tests)?t.tests:[t.tests]).some(n=>Ho(e,r,t,n))}function Ho(e,r,t,o){if(o instanceof ArrayBuffer)return Ge(o,e,o.byteLength);switch(typeof o){case"function":return o(e);case"string":let n=ur(e,r,o.length);return o===n;default:return!1}}function gt(e,r=5){return typeof e=="string"?e.slice(0,r):ArrayBuffer.isView(e)?ur(e.buffer,e.byteOffset,r):e instanceof ArrayBuffer?ur(e,0,r):""}function ur(e,r,t){if(e.byteLength<r+t)return"";let o=new DataView(e),n="";for(let s=0;s<t;s++)n+=String.fromCharCode(o.getUint8(r+s));return n}function*yt(e,r){let t=r?.chunkSize||262144,o=0,n=new TextEncoder;for(;o<e.length;){let s=Math.min(e.length-o,t),i=e.slice(o,o+s);o+=s,yield n.encode(i)}}function*wt(e,r={}){let{chunkSize:t=262144}=r,o=0;for(;o<e.byteLength;){let n=Math.min(e.byteLength-o,t),s=new ArrayBuffer(n),i=new Uint8Array(e,o,n);new Uint8Array(s).set(i),o+=n,yield s}}async function*bt(e,r){let t=r?.chunkSize||1048576,o=0;for(;o<e.size;){let n=o+t,s=await e.slice(o,n).arrayBuffer();o=n,yield s}}function lr(e,r){return m?Go(e,r):qo(e,r)}async function*Go(e,r){let t=e.getReader(),o;try{for(;;){let n=o||t.read();r?._streamReadAhead&&(o=t.read());let{done:s,value:i}=await n;if(s)return;yield Te(i)}}catch{t.releaseLock()}}async function*qo(e,r){for await(let t of e)yield Te(t)}function J(e,r){if(typeof e=="string")return yt(e,r);if(e instanceof ArrayBuffer)return wt(e,r);if(p(e))return bt(e,r);if(O(e))return lr(e,r);if(l(e))return lr(e.body,r);throw new Error("makeIterator")}var mr="Cannot convert supplied data type";function pr(e,r,t){if(r.text&&typeof e=="string")return e;if(Yr(e)&&(e=e.buffer),e instanceof ArrayBuffer){let o=e;return r.text&&!r.binary?new TextDecoder("utf8").decode(o):o}if(ArrayBuffer.isView(e)){if(r.text&&!r.binary)return new TextDecoder("utf8").decode(e);let o=e.buffer,n=e.byteLength||e.length;return(e.byteOffset!==0||n!==o.byteLength)&&(o=o.slice(e.byteOffset,e.byteOffset+n)),o}throw new Error(mr)}async function xt(e,r,t){let o=e instanceof ArrayBuffer||ArrayBuffer.isView(e);if(typeof e=="string"||o)return pr(e,r,t);if(p(e)&&(e=await Ae(e)),l(e)){let n=e;return await sr(n),r.binary?await n.arrayBuffer():await n.text()}if(O(e)&&(e=J(e,t)),ue(e)||le(e))return M(e);throw new Error(mr)}async function Tt(e,r){if(me(e))return e;if(l(e)){let t=e;await sr(t);let o=await t.body;return J(o,r)}return p(e)||O(e)?J(e,r):le(e)?e:Qo(e)}function Qo(e){if(ArrayBuffer.isView(e))return function*(){yield e.buffer}();if(e instanceof ArrayBuffer)return function*(){yield e}();if(me(e))return e;if(ue(e))return e[Symbol.iterator]();throw new Error(mr)}function K(e,r){let t=_(),o=e||t;return typeof o.fetch=="function"?o.fetch:A(o.fetch)?n=>P(n,o.fetch):r?.fetch?r?.fetch:P}function Y(e,r,t){if(t)return t;let o={fetch:K(r,e),...e};if(o.url){let n=H(o.url);o.baseUrl=n,o.queryString=rt(o.url),o.filename=C.filename(n),o.baseUrl=C.dirname(n)}return Array.isArray(o.loaders)||(o.loaders=null),o}function _e(e,r){if(e&&!Array.isArray(e))return e;let t;if(e&&(t=Array.isArray(e)?e:[e]),r&&r.loaders){let o=Array.isArray(r.loaders)?r.loaders:[r.loaders];t=t?[...t,...o]:o}return t&&t.length?t:void 0}async function S(e,r,t,o){r&&!Array.isArray(r)&&!w(r)&&(o=void 0,t=r,r=void 0),e=await e,t=t||{};let n=y(e),i=_e(r,o),a=await Q(e,i,t);return a?(t=G(t,a,i,n),o=Y({url:n,_parse:S,loaders:i},t,o||null),await Jo(a,e,t,o)):null}async function Jo(e,r,t,o){if(je(e),t=Ce(e.options,t),l(r)){let s=r,{ok:i,redirected:a,status:c,statusText:f,type:k,url:E}=s,Ar=Object.fromEntries(s.headers.entries());o.response={headers:Ar,ok:i,redirected:a,status:c,statusText:f,type:k,url:E}}r=await xt(r,e,t);let n=e;if(n.parseTextSync&&typeof r=="string")return n.parseTextSync(r,t,o);if(ze(e,t))return await Ve(e,r,t,o,S);if(n.parseText&&typeof r=="string")return await n.parseText(r,t,o);if(n.parse)return await n.parse(r,t,o);throw u(!n.parseSync),new Error(`${e.id} loader - no parser found and worker is disabled`)}function At(e,r,t,o){!Array.isArray(r)&&!w(r)&&(o=void 0,t=r,r=void 0),t=t||{};let s=_e(r,o),i=q(e,s,t);if(!i)return null;t=G(t,i,s);let a=y(e),c=()=>{throw new Error("parseSync called parse (which is async")};return o=Y({url:a,_parseSync:c,_parse:c,loaders:r},t,o||null),Ko(i,e,t,o)}function Ko(e,r,t,o){if(r=pr(r,e,t),e.parseTextSync&&typeof r=="string")return e.parseTextSync(r,t);if(e.parseSync&&r instanceof ArrayBuffer)return e.parseSync(r,t,o);throw new Error(`${e.name} loader: 'parseSync' not supported by this loader, use 'parse' instead. ${o.url||""}`)}function hr(e){switch(typeof e=="object"&&e?.shape){case"array-row-table":case"object-row-table":return Array.isArray(e.data);case"geojson-table":return Array.isArray(e.features);case"columnar-table":return e.data&&typeof e.data=="object";case"arrow-table":return Boolean(e?.data?.numRows!==void 0);default:return!1}}function dr(e){switch(e.shape){case"array-row-table":case"object-row-table":return e.data.length;case"geojson-table":return e.features.length;case"arrow-table":return e.data.numRows;case"columnar-table":for(let t of Object.values(e.data))return t.length||0;return 0;default:throw new Error("table")}}function gr(e){return{...e,length:dr(e),batchType:"data"}}async function R(e,r,t,o){let n=Array.isArray(r)?r:void 0;!Array.isArray(r)&&!w(r)&&(o=void 0,t=r,r=void 0),e=await e,t=t||{};let s=y(e),i=await Q(e,r,t);return i?(t=G(t,i,n,s),o=Y({url:s,_parseInBatches:R,_parse:S,loaders:n},t,o||null),await Yo(i,e,t,o)):[]}async function Yo(e,r,t,o){let n=await Zo(e,r,t,o);if(!t.metadata)return n;let s={shape:"metadata",batchType:"metadata",metadata:{_loader:e,_context:o},data:[],bytesUsed:0};async function*i(a){yield s,yield*a}return i(n)}async function Zo(e,r,t,o){let n=await Tt(r,t),s=await rn(n,t?.transforms||[]);return e.parseInBatches?e.parseInBatches(s,t,o):Xo(s,e,t,o)}async function*Xo(e,r,t,o){let n=await M(e),s=await S(n,r,{...t,mimeType:r.mimeTypes[0]},o);yield en(s,r)}function en(e,r){let t=hr(e)?gr(e):{shape:"unknown",batchType:"data",data:e,length:Array.isArray(e)?e.length:1};return t.mimeType=r.mimeTypes[0],t}async function rn(e,r=[]){let t=e;for await(let o of r)t=o(t);return t}async function St(e,r,t,o){let n,s;!Array.isArray(r)&&!w(r)?(n=[],s=r,o=void 0):(n=r,s=t);let i=K(s),a=e;return typeof e=="string"&&(a=await i(e)),p(e)&&(a=await i(e)),Array.isArray(n)?await S(a,n,s):await S(a,n,s)}function _t(e,r,t,o){let n;!Array.isArray(r)&&!w(r)?(o=void 0,t=r,n=void 0):n=r;let s=K(t||{});return Array.isArray(e)?e.map(a=>kt(a,n,t||{},s)):kt(e,n,t||{},s)}async function kt(e,r,t,o){if(typeof e=="string"){let s=await o(e);return Array.isArray(r)?await R(s,r,t):await R(s,r,t)}return Array.isArray(r)?await R(e,r,t):await R(e,r,t)}async function yr(e,r,t){if(r.encode)return await r.encode(e,t);if(r.encodeText){let o=await r.encodeText(e,t);return new TextEncoder().encode(o)}if(r.encodeInBatches){let o=wr(e,r,t),n=[];for await(let s of o)n.push(s);return oe(...n)}throw new Error("Writer could not encode data")}async function Et(e,r,t){if(r.text&&r.encodeText)return await r.encodeText(e,t);if(r.text){let o=await yr(e,r,t);return new TextDecoder().decode(o)}throw new Error(`Writer ${r.name} could not encode data as text`)}function wr(e,r,t){if(r.encodeInBatches){let o=tn(e);return r.encodeInBatches(o,t)}throw new Error("Writer could not encode data in batches")}function tn(e){return[{...e,start:0,end:e.length}]}async function Lt(e,r,t){let n={..._(),...t};return r.encodeURLtoURL?on(r,e,n):He(r,n)?await De(r,e,n):await r.encode(e,n)}function br(e,r,t){if(r.encodeSync)return r.encodeSync(e,t);if(r.encodeTextSync)return new TextEncoder().encode(r.encodeTextSync(e,t));throw new Error(`Writer ${r.name} could not synchronously encode data`)}async function Rt(e,r,t){if(r.encodeText)return await r.encodeText(e,t);if(r.encodeTextSync)return r.encodeTextSync(e,t);if(r.text){let o=await r.encode(e,t);return new TextDecoder().decode(o)}throw new Error(`Writer ${r.name} could not encode data as text`)}function It(e,r,t){if(r.encodeTextSync)return r.encodeTextSync(e,t);if(r.text&&r.encodeSync){let o=br(e,r,t);return new TextDecoder().decode(o)}throw new Error(`Writer ${r.name} could not encode data as text`)}function Ft(e,r,t){if(r.encodeInBatches){let o=nn(e);return r.encodeInBatches(o,t)}throw new Error(`Writer ${r.name} could not encode in batches`)}async function xr(e,r,t,o){if(e=L(e),r=L(r),m||!t.encodeURLtoURL)throw new Error;return await t.encodeURLtoURL(e,r,o)}async function on(e,r,t){if(m)throw new Error(`Writer ${e.name} not supported in browser`);let o=Bt("input");await new ce(o,"w").write(r);let s=Bt("output"),i=await xr(o,s,e,t);return(await P(i)).arrayBuffer()}function nn(e){return[{...e,start:0,end:e.length}]}function Bt(e){return`/tmp/${e}`}function Nt(e,r,t){let{type:o="auto"}=t,n=o==="auto"?sn(e,r):an(o,r);if(!n)throw new Error("Not a valid image source type");return n.createDataSource(e,t)}function sn(e,r){for(let t of r)if(t.testURL&&t.testURL(e))return t;return null}function an(e,r){for(let t of r)if(t.type===e)return t;return null}function Mt(e,r,t){let o=t?.type||"auto",n=null;if(o==="auto"){for(let s of r)if(typeof e=="string"&&s.testURL&&s.testURL(e))return s}else n=cn(o,r);if(!n&&!t?.nothrow)throw new Error("Not a valid image source type");return n}function cn(e,r){for(let t of r)if(t.type===e)return t;return null}function Wt(e,r){if(globalThis.loaders.makeNodeStream)return globalThis.loaders.makeNodeStream(e,r);let t=e[Symbol.asyncIterator]?e[Symbol.asyncIterator]():e[Symbol.iterator]();return new ReadableStream({type:"bytes",async pull(o){try{let{done:n,value:s}=await t.next();n?o.close():o.enqueue(new Uint8Array(s))}catch(n){o.error(n)}},async cancel(){await t?.return?.()}},{highWaterMark:2**24,...r})}var Ct="4.3.0-alpha.8",Ot={dataType:null,batchType:null,name:"Null loader",id:"null",module:"core",version:Ct,worker:!0,mimeTypes:["application/x.empty"],extensions:["null"],tests:[()=>!1],options:{null:{}}},Pt={dataType:null,batchType:null,name:"Null loader",id:"null",module:"core",version:Ct,mimeTypes:["application/x.empty"],extensions:["null"],parse:async(e,r,t)=>Tr(e,r||{},t),parseSync:Tr,parseInBatches:async function*(r,t,o){for await(let n of r)yield Tr(n,t,o)},tests:[()=>!1],options:{null:{}}};function Tr(e,r,t){return null}async function vt(e,r,t=()=>{},o=()=>{}){if(e=await e,!e.ok)return e;let n=e.body;if(!n)return e;let s=e.headers.get("content-length")||0,i=s?parseInt(s):0;if(!(i>0)||typeof ReadableStream>"u"||!n.getReader)return e;let a=new ReadableStream({async start(c){let f=n.getReader();await Ut(c,f,0,i,r,t,o)}});return new Response(a)}async function Ut(e,r,t,o,n,s,i){try{let{done:a,value:c}=await r.read();if(a){s(),e.close();return}t+=c.byteLength;let f=Math.round(t/o*100);n(f,{loadedBytes:t,totalBytes:o}),e.enqueue(c),await Ut(e,r,t,o,n,s,i)}catch(a){e.error(a),i(a)}}var Ee=class{_fetch;files={};lowerCaseFiles={};usedFiles={};constructor(r,t){this._fetch=t?.fetch||fetch;for(let o=0;o<r.length;++o){let n=r[o];this.files[n.name]=n,this.lowerCaseFiles[n.name.toLowerCase()]=n,this.usedFiles[n.name]=!1}this.fetch=this.fetch.bind(this)}async fetch(r,t){if(r.includes("://"))return this._fetch(r,t);let o=this.files[r];if(!o)return new Response(r,{status:400,statusText:"NOT FOUND"});let s=new Headers(t?.headers).get("Range"),i=s&&/bytes=($1)-($2)/.exec(s);if(i){let c=parseInt(i[1]),f=parseInt(i[2]),k=await o.slice(c,f).arrayBuffer(),E=new Response(k);return Object.defineProperty(E,"url",{value:r}),E}let a=new Response(o);return Object.defineProperty(a,"url",{value:r}),a}async readdir(r){let t=[];for(let o in this.files)t.push(o);return t}async stat(r,t){let o=this.files[r];if(!o)throw new Error(r);return{size:o.size}}async unlink(r){delete this.files[r],delete this.lowerCaseFiles[r],this.usedFiles[r]=!0}async openReadableFile(r,t){return new ie(this.files[r])}_getFile(r,t){let o=this.files[r]||this.lowerCaseFiles[r];return o&&t&&(this.usedFiles[r]=!0),o}};return Ht(fn);})();
14
14
  return __exports__;
15
15
  });
package/dist/index.cjs CHANGED
@@ -21,18 +21,18 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
21
21
  var dist_exports = {};
22
22
  __export(dist_exports, {
23
23
  FetchError: () => FetchError,
24
- JSONLoader: () => import_loader_utils18.JSONLoader,
24
+ JSONLoader: () => import_loader_utils16.JSONLoader,
25
25
  NullLoader: () => NullLoader,
26
26
  NullWorkerLoader: () => NullWorkerLoader,
27
- RequestScheduler: () => import_loader_utils17.RequestScheduler,
27
+ RequestScheduler: () => import_loader_utils15.RequestScheduler,
28
28
  _BrowserFileSystem: () => BrowserFileSystem,
29
29
  _fetchProgress: () => fetchProgress,
30
30
  _selectSource: () => selectSource2,
31
31
  _unregisterLoaders: () => _unregisterLoaders,
32
- assert: () => import_loader_utils20.assert,
33
- concatenateArrayBuffersAsync: () => import_loader_utils21.concatenateArrayBuffersAsync,
32
+ assert: () => import_loader_utils18.assert,
33
+ concatenateArrayBuffersAsync: () => import_loader_utils19.concatenateArrayBuffersAsync,
34
34
  createDataSource: () => createDataSource,
35
- document: () => import_loader_utils19.document,
35
+ document: () => import_loader_utils17.document,
36
36
  encode: () => encode,
37
37
  encodeInBatches: () => encodeInBatches,
38
38
  encodeSync: () => encodeSync,
@@ -43,40 +43,40 @@ __export(dist_exports, {
43
43
  encodeTextSync: () => encodeTextSync,
44
44
  encodeURLtoURL: () => encodeURLtoURL,
45
45
  fetchFile: () => fetchFile,
46
- forEach: () => import_loader_utils21.forEach,
46
+ forEach: () => import_loader_utils19.forEach,
47
47
  getLoaderOptions: () => getGlobalLoaderOptions,
48
- getPathPrefix: () => import_loader_utils16.getPathPrefix,
49
- global: () => import_loader_utils19.global,
48
+ getPathPrefix: () => import_loader_utils14.getPathPrefix,
49
+ global: () => import_loader_utils17.global,
50
50
  isAsyncIterable: () => isAsyncIterable,
51
- isBrowser: () => import_loader_utils19.isBrowser,
51
+ isBrowser: () => import_loader_utils17.isBrowser,
52
52
  isIterable: () => isIterable,
53
53
  isIterator: () => isIterator,
54
54
  isPromise: () => isPromise,
55
55
  isPureObject: () => isPureObject,
56
56
  isReadableStream: () => isReadableStream,
57
57
  isResponse: () => isResponse,
58
- isWorker: () => import_loader_utils19.isWorker,
58
+ isWorker: () => import_loader_utils17.isWorker,
59
59
  isWritableStream: () => isWritableStream,
60
60
  load: () => load,
61
61
  loadInBatches: () => loadInBatches,
62
62
  makeIterator: () => makeIterator,
63
- makeLineIterator: () => import_loader_utils22.makeLineIterator,
64
- makeNumberedLineIterator: () => import_loader_utils22.makeNumberedLineIterator,
63
+ makeLineIterator: () => import_loader_utils20.makeLineIterator,
64
+ makeNumberedLineIterator: () => import_loader_utils20.makeNumberedLineIterator,
65
65
  makeStream: () => makeStream,
66
- makeTextDecoderIterator: () => import_loader_utils22.makeTextDecoderIterator,
67
- makeTextEncoderIterator: () => import_loader_utils22.makeTextEncoderIterator,
66
+ makeTextDecoderIterator: () => import_loader_utils20.makeTextDecoderIterator,
67
+ makeTextEncoderIterator: () => import_loader_utils20.makeTextEncoderIterator,
68
68
  parse: () => parse,
69
69
  parseInBatches: () => parseInBatches,
70
70
  parseSync: () => parseSync,
71
71
  readArrayBuffer: () => readArrayBuffer,
72
72
  registerLoaders: () => registerLoaders,
73
- resolvePath: () => import_loader_utils16.resolvePath,
73
+ resolvePath: () => import_loader_utils14.resolvePath,
74
74
  selectLoader: () => selectLoader,
75
75
  selectLoaderSync: () => selectLoaderSync,
76
- self: () => import_loader_utils19.self,
76
+ self: () => import_loader_utils17.self,
77
77
  setLoaderOptions: () => setGlobalOptions,
78
- setPathPrefix: () => import_loader_utils16.setPathPrefix,
79
- window: () => import_loader_utils19.window
78
+ setPathPrefix: () => import_loader_utils14.setPathPrefix,
79
+ window: () => import_loader_utils17.window
80
80
  });
81
81
  module.exports = __toCommonJS(dist_exports);
82
82
 
@@ -778,7 +778,6 @@ function getMagicString(arrayBuffer, byteOffset, length) {
778
778
  // dist/lib/api/parse.js
779
779
  var import_loader_utils9 = require("@loaders.gl/loader-utils");
780
780
  var import_worker_utils = require("@loaders.gl/worker-utils");
781
- var import_loader_utils10 = require("@loaders.gl/loader-utils");
782
781
 
783
782
  // dist/lib/loader-utils/get-data.js
784
783
  var import_loader_utils7 = require("@loaders.gl/loader-utils");
@@ -1047,7 +1046,7 @@ async function parse(data, loaders, options, context) {
1047
1046
  }
1048
1047
  async function parseWithLoader(loader, data, options, context) {
1049
1048
  (0, import_worker_utils.validateWorkerVersion)(loader);
1050
- options = (0, import_loader_utils10.mergeLoaderOptions)(loader.options, options);
1049
+ options = (0, import_loader_utils9.mergeLoaderOptions)(loader.options, options);
1051
1050
  if (isResponse(data)) {
1052
1051
  const response = data;
1053
1052
  const { ok, redirected, status, statusText, type, url } = response;
@@ -1107,7 +1106,7 @@ function parseWithLoaderSync(loader, data, options, context) {
1107
1106
 
1108
1107
  // dist/lib/api/parse-in-batches.js
1109
1108
  var import_schema = require("@loaders.gl/schema");
1110
- var import_loader_utils11 = require("@loaders.gl/loader-utils");
1109
+ var import_loader_utils10 = require("@loaders.gl/loader-utils");
1111
1110
  async function parseInBatches(data, loaders, options, context) {
1112
1111
  const loaderArray = Array.isArray(loaders) ? loaders : void 0;
1113
1112
  if (!Array.isArray(loaders) && !isLoaderObject(loaders)) {
@@ -1157,7 +1156,7 @@ async function parseToOutputIterator(loader, data, options, context) {
1157
1156
  return parseChunkInBatches(transformedIterator, loader, options, context);
1158
1157
  }
1159
1158
  async function* parseChunkInBatches(transformedIterator, loader, options, context) {
1160
- const arrayBuffer = await (0, import_loader_utils11.concatenateArrayBuffersAsync)(transformedIterator);
1159
+ const arrayBuffer = await (0, import_loader_utils10.concatenateArrayBuffersAsync)(transformedIterator);
1161
1160
  const parsedData = await parse(
1162
1161
  arrayBuffer,
1163
1162
  loader,
@@ -1236,7 +1235,7 @@ async function loadOneFileInBatches(file, loaders, options, fetch2) {
1236
1235
  }
1237
1236
 
1238
1237
  // dist/lib/api/encode-table.js
1239
- var import_loader_utils12 = require("@loaders.gl/loader-utils");
1238
+ var import_loader_utils11 = require("@loaders.gl/loader-utils");
1240
1239
  async function encodeTable(data, writer, options) {
1241
1240
  if (writer.encode) {
1242
1241
  return await writer.encode(data, options);
@@ -1251,7 +1250,7 @@ async function encodeTable(data, writer, options) {
1251
1250
  for await (const batch of batches) {
1252
1251
  chunks.push(batch);
1253
1252
  }
1254
- return (0, import_loader_utils12.concatenateArrayBuffers)(...chunks);
1253
+ return (0, import_loader_utils11.concatenateArrayBuffers)(...chunks);
1255
1254
  }
1256
1255
  throw new Error("Writer could not encode data");
1257
1256
  }
@@ -1278,16 +1277,15 @@ function getIterator(data) {
1278
1277
  }
1279
1278
 
1280
1279
  // dist/lib/api/encode.js
1281
- var import_loader_utils13 = require("@loaders.gl/loader-utils");
1280
+ var import_loader_utils12 = require("@loaders.gl/loader-utils");
1282
1281
  var import_worker_utils2 = require("@loaders.gl/worker-utils");
1283
- var import_loader_utils14 = require("@loaders.gl/loader-utils");
1284
- async function encode(data, writer, options) {
1282
+ async function encode(data, writer, options_) {
1285
1283
  const globalOptions = getGlobalLoaderOptions();
1286
- options = { ...globalOptions, ...options };
1284
+ const options = { ...globalOptions, ...options_ };
1287
1285
  if (writer.encodeURLtoURL) {
1288
1286
  return encodeWithCommandLineTool(writer, data, options);
1289
1287
  }
1290
- if ((0, import_loader_utils13.canEncodeWithWorker)(writer, options)) {
1288
+ if ((0, import_loader_utils12.canEncodeWithWorker)(writer, options)) {
1291
1289
  return await (0, import_worker_utils2.processOnWorker)(writer, data, options);
1292
1290
  }
1293
1291
  return await writer.encode(data, options);
@@ -1332,20 +1330,20 @@ function encodeInBatches(data, writer, options) {
1332
1330
  throw new Error(`Writer ${writer.name} could not encode in batches`);
1333
1331
  }
1334
1332
  async function encodeURLtoURL(inputUrl, outputUrl, writer, options) {
1335
- inputUrl = (0, import_loader_utils13.resolvePath)(inputUrl);
1336
- outputUrl = (0, import_loader_utils13.resolvePath)(outputUrl);
1337
- if (import_loader_utils14.isBrowser || !writer.encodeURLtoURL) {
1333
+ inputUrl = (0, import_loader_utils12.resolvePath)(inputUrl);
1334
+ outputUrl = (0, import_loader_utils12.resolvePath)(outputUrl);
1335
+ if (import_loader_utils12.isBrowser || !writer.encodeURLtoURL) {
1338
1336
  throw new Error();
1339
1337
  }
1340
1338
  const outputFilename = await writer.encodeURLtoURL(inputUrl, outputUrl, options);
1341
1339
  return outputFilename;
1342
1340
  }
1343
1341
  async function encodeWithCommandLineTool(writer, data, options) {
1344
- if (import_loader_utils14.isBrowser) {
1342
+ if (import_loader_utils12.isBrowser) {
1345
1343
  throw new Error(`Writer ${writer.name} not supported in browser`);
1346
1344
  }
1347
1345
  const tmpInputFilename = getTemporaryFilename("input");
1348
- const file = new import_loader_utils13.NodeFile(tmpInputFilename, "w");
1346
+ const file = new import_loader_utils12.NodeFile(tmpInputFilename, "w");
1349
1347
  await file.write(data);
1350
1348
  const tmpOutputFilename = getTemporaryFilename("output");
1351
1349
  const outputFilename = await encodeURLtoURL(tmpInputFilename, tmpOutputFilename, writer, options);
@@ -1414,8 +1412,8 @@ function getSourceOfType2(type, sources) {
1414
1412
  }
1415
1413
 
1416
1414
  // dist/index.js
1417
- var import_loader_utils16 = require("@loaders.gl/loader-utils");
1418
- var import_loader_utils17 = require("@loaders.gl/loader-utils");
1415
+ var import_loader_utils14 = require("@loaders.gl/loader-utils");
1416
+ var import_loader_utils15 = require("@loaders.gl/loader-utils");
1419
1417
 
1420
1418
  // dist/iterators/make-stream/make-stream.js
1421
1419
  function makeStream(source, options) {
@@ -1457,7 +1455,7 @@ function makeStream(source, options) {
1457
1455
  }
1458
1456
 
1459
1457
  // dist/null-loader.js
1460
- var VERSION = true ? "4.3.0-alpha.7" : "latest";
1458
+ var VERSION = true ? "4.3.0-alpha.8" : "latest";
1461
1459
  var NullWorkerLoader = {
1462
1460
  dataType: null,
1463
1461
  batchType: null,
@@ -1499,7 +1497,7 @@ function parseSync2(arrayBuffer, options, context) {
1499
1497
  }
1500
1498
 
1501
1499
  // dist/index.js
1502
- var import_loader_utils18 = require("@loaders.gl/loader-utils");
1500
+ var import_loader_utils16 = require("@loaders.gl/loader-utils");
1503
1501
 
1504
1502
  // dist/lib/progress/fetch-progress.js
1505
1503
  async function fetchProgress(response, onProgress, onDone = () => {
@@ -1549,7 +1547,7 @@ async function read(controller, reader, loadedBytes, totalBytes, onProgress, onD
1549
1547
  }
1550
1548
 
1551
1549
  // dist/lib/filesystems/browser-filesystem.js
1552
- var import_loader_utils15 = require("@loaders.gl/loader-utils");
1550
+ var import_loader_utils13 = require("@loaders.gl/loader-utils");
1553
1551
  var BrowserFileSystem = class {
1554
1552
  _fetch;
1555
1553
  files = {};
@@ -1631,7 +1629,7 @@ var BrowserFileSystem = class {
1631
1629
  // implements IRandomAccessFileSystem
1632
1630
  // RANDOM ACCESS
1633
1631
  async openReadableFile(pathname, flags) {
1634
- return new import_loader_utils15.BlobFile(this.files[pathname]);
1632
+ return new import_loader_utils13.BlobFile(this.files[pathname]);
1635
1633
  }
1636
1634
  // PRIVATE
1637
1635
  // Supports case independent paths, and file usage tracking
@@ -1645,8 +1643,8 @@ var BrowserFileSystem = class {
1645
1643
  };
1646
1644
 
1647
1645
  // dist/index.js
1646
+ var import_loader_utils17 = require("@loaders.gl/loader-utils");
1647
+ var import_loader_utils18 = require("@loaders.gl/loader-utils");
1648
1648
  var import_loader_utils19 = require("@loaders.gl/loader-utils");
1649
1649
  var import_loader_utils20 = require("@loaders.gl/loader-utils");
1650
- var import_loader_utils21 = require("@loaders.gl/loader-utils");
1651
- var import_loader_utils22 = require("@loaders.gl/loader-utils");
1652
1650
  //# sourceMappingURL=index.cjs.map