Socket
Socket
Sign inDemoInstall

@loaders.gl/core

Package Overview
Dependencies
Maintainers
9
Versions
336
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@loaders.gl/core - npm Package Compare versions

Comparing version 4.2.0-alpha.6 to 4.2.0-beta.1

dist/lib/fetch/fetch-error.d.ts

6

dist/dist.min.js

@@ -7,3 +7,3 @@ (function webpackUniversalModuleDefinition(root, factory) {

else root['loaders'] = factory();})(globalThis, function () {
"use strict";var __exports__=(()=>{var be=Object.defineProperty;var Or=Object.getOwnPropertyDescriptor;var Ur=Object.getOwnPropertyNames;var jr=Object.prototype.hasOwnProperty;var Dr=(e,t,r)=>t in e?be(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var kt=(e,t)=>{for(var r in t)be(e,r,{get:t[r],enumerable:!0})},$r=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Ur(t))!jr.call(e,n)&&n!==r&&be(e,n,{get:()=>t[n],enumerable:!(o=Or(t,n))||o.enumerable});return e};var zr=e=>$r(be({},"__esModule",{value:!0}),e);var St=(e,t,r)=>(Dr(e,typeof t!="symbol"?t+"":t,r),r);var on={};kt(on,{JSONLoader:()=>rt,NullLoader:()=>Wr,NullWorkerLoader:()=>Nr,RequestScheduler:()=>H,_BrowserFileSystem:()=>Re,_fetchProgress:()=>Cr,_unregisterLoaders:()=>lr,assert:()=>$,concatenateArrayBuffersAsync:()=>W,document:()=>Pe,encode:()=>Lr,encodeInBatches:()=>Fr,encodeSync:()=>xt,encodeTable:()=>wt,encodeTableAsText:()=>Er,encodeTableInBatches:()=>bt,encodeText:()=>Rr,encodeTextSync:()=>Ir,encodeURLtoURL:()=>Tt,fetchFile:()=>U,forEach:()=>Ke,getLoaderOptions:()=>L,getPathPrefix:()=>tt,global:()=>ve,isAsyncIterable:()=>he,isBrowser:()=>p,isIterable:()=>pe,isIterator:()=>de,isPromise:()=>Dt,isPureObject:()=>me,isReadableStream:()=>O,isResponse:()=>m,isWorker:()=>Ne,isWritableStream:()=>zt,load:()=>_r,loadInBatches:()=>Sr,makeIterator:()=>X,makeLineIterator:()=>Qe,makeNumberedLineIterator:()=>Je,makeStream:()=>vr,makeTextDecoderIterator:()=>Ge,makeTextEncoderIterator:()=>qe,parse:()=>E,parseInBatches:()=>P,parseSync:()=>Ar,readArrayBuffer:()=>Qt,registerLoaders:()=>fr,resolvePath:()=>v,selectLoader:()=>Z,selectLoaderSync:()=>Y,self:()=>Ie,setLoaderOptions:()=>ft,setPathPrefix:()=>et,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},Ie=A.self||A.window||A.global||{},Fe=A.window||A.self||A.global||{},ve=A.global||A.self||A.window||{},Pe=A.document||{};var p=Boolean(typeof process!="object"||String(process)!=="[object process]"||process.browser),Ne=typeof importScripts=="function",Et=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version),Vr=Et&&parseFloat(Et[1])||0;function We(e,t){return Bt(e||{},t)}function Bt(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]=Bt(o[n]||{},t[n],r+1):o[n]=t[n];return o}var Lt="latest";function Hr(){return globalThis._loadersgl_?.version||(globalThis._loadersgl_=globalThis._loadersgl_||{},globalThis._loadersgl_.version="4.2.0-alpha.5"),globalThis._loadersgl_.version}var re=Hr();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},ln=_.self||_.window||_.global||{},mn=_.window||_.self||_.global||{},pn=_.global||_.self||_.window||{},hn=_.document||{};var d=typeof process!="object"||String(process)!=="[object process]"||process.browser;var It=typeof window<"u"&&typeof window.orientation<"u",Rt=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version),dn=Rt&&parseFloat(Rt[1])||0;var oe=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 z=class{terminate(){}};var Ce=new Map;function Ft(e){l(e.source&&!e.url||!e.source&&e.url);let t=Ce.get(e.source||e.url);return t||(e.url&&(t=Gr(e.url),Ce.set(e.url,t)),e.source&&(t=vt(e.source),Ce.set(e.source,t))),l(t),t}function Gr(e){if(!e.startsWith("http"))return e;let t=qr(e);return vt(t)}function vt(e){let t=new Blob([e],{type:"application/javascript"});return URL.createObjectURL(t)}function qr(e){return`try {
"use strict";var __exports__=(()=>{var xe=Object.defineProperty;var $r=Object.getOwnPropertyDescriptor;var zr=Object.getOwnPropertyNames;var Vr=Object.prototype.hasOwnProperty;var Hr=(e,t,r)=>t in e?xe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var Bt=(e,t)=>{for(var r in t)xe(e,r,{get:t[r],enumerable:!0})},Gr=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of zr(t))!Vr.call(e,n)&&n!==r&&xe(e,n,{get:()=>t[n],enumerable:!(o=$r(t,n))||o.enumerable});return e};var qr=e=>Gr(xe({},"__esModule",{value:!0}),e);var Lt=(e,t,r)=>(Hr(e,typeof t!="symbol"?t+"":t,r),r);var cn={};Bt(cn,{FetchError:()=>J,JSONLoader:()=>st,NullLoader:()=>Ur,NullWorkerLoader:()=>Cr,RequestScheduler:()=>Q,_BrowserFileSystem:()=>Ie,_fetchProgress:()=>jr,_unregisterLoaders:()=>dr,assert:()=>$,concatenateArrayBuffersAsync:()=>O,document:()=>Ne,encode:()=>vr,encodeInBatches:()=>Pr,encodeSync:()=>_t,encodeTable:()=>Tt,encodeTableAsText:()=>Ir,encodeTableInBatches:()=>At,encodeText:()=>Mr,encodeTextSync:()=>Nr,encodeURLtoURL:()=>kt,fetchFile:()=>D,forEach:()=>tt,getLoaderOptions:()=>L,getPathPrefix:()=>nt,global:()=>Me,isAsyncIterable:()=>de,isBrowser:()=>p,isIterable:()=>he,isIterator:()=>ge,isPromise:()=>Xt,isPureObject:()=>pe,isReadableStream:()=>j,isResponse:()=>m,isWorker:()=>Pe,isWritableStream:()=>tr,load:()=>Br,loadInBatches:()=>Rr,makeIterator:()=>ee,makeLineIterator:()=>Xe,makeNumberedLineIterator:()=>et,makeStream:()=>Wr,makeTextDecoderIterator:()=>Ye,makeTextEncoderIterator:()=>Ze,parse:()=>E,parseInBatches:()=>M,parseSync:()=>Er,readArrayBuffer:()=>ar,registerLoaders:()=>pr,resolvePath:()=>v,selectLoader:()=>X,selectLoaderSync:()=>Z,self:()=>Fe,setLoaderOptions:()=>mt,setPathPrefix:()=>ot,window:()=>ve});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},Fe=A.self||A.window||A.global||{},ve=A.window||A.self||A.global||{},Me=A.global||A.self||A.window||{},Ne=A.document||{};var p=Boolean(typeof process!="object"||String(process)!=="[object process]"||process.browser),Pe=typeof importScripts=="function",Rt=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version),Qr=Rt&&parseFloat(Rt[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 Jr=globalThis.self||globalThis.window||globalThis.global,z=globalThis.window||globalThis.self||globalThis.global,Kr=globalThis.document||{},N=globalThis.process||{},Yr=globalThis.console,_n=globalThis.navigator||{};var Te=typeof __VERSION__<"u"?__VERSION__:"untranspiled source",En=w();function Zr(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=Zr(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 It(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 Ft(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 _e(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 ke;(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"})(ke||(ke={}));var Xr=10;function vt(e){return typeof e!="string"?e:(e=e.toUpperCase(),ke[e]||ke.WHITE)}function Mt(e,t,r){if(!w&&typeof e=="string"){if(t){let o=vt(t);e="\x1B[".concat(o,"m").concat(e,"\x1B[39m")}if(r){let o=vt(r);e="\x1B[".concat(o+Xr,"m").concat(e,"\x1B[49m")}}return e}function Nt(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 P(){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 N){var o;let n=N===null||N===void 0||(o=N.hrtime)===null||o===void 0?void 0:o.call(N);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},eo={enabled:!0,level:0};function d(){}var Pt={},Wt={once:!0},_=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",P()),u(this,"_deltaTs",P()),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,"__"),eo),this.timeStamp("".concat(this.id," started")),Nt(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((P()-this._startTs).toPrecision(10))}getDelta(){return Number((P()-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,Wt)}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,Wt)}table(t,r,o){return r?this._getLogFunction(t,r,console.table||d,o&&[o],{tag:no(r)}):d}image(t){let{logLevel:r,priority:o,image:n,message:s="",scale:i=1}=t;return this._shouldLog(r||o)?w()?oo({image:n,message:s,scale:i}):ro({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=Ot({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()>=Ct(t)}_getLogFunction(t,r,o,n,s){if(this._shouldLog(t)){s=Ot({logLevel:t,message:r,args:n,opts:s}),o=o||s.method,V(o),s.total=this.getTotal(),s.delta=this.getDelta(),this._deltaTs=P();let i=s.tag||s.message;if(s.once&&i)if(!Pt[i])Pt[i]=P();else return d;return r=to(this.id,s.message,s),o.bind(console,r,...s.args)}return d}};u(_,"VERSION",Te);function Ct(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 Ot(e){let{logLevel:t,message:r}=e;e.logLevel=Ct(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 to(e,t,r){if(typeof t=="string"){let o=r.time?Ft(It(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 ro(e){let{image:t,message:r="",scale:o=1}=e;return console.warn("removed"),d}function oo(e){let{image:t,message:r="",scale:o=1}=e;if(typeof t=="string"){let s=new Image;return s.onload=()=>{let i=_e(s,r,o);console.log(...i)},s.src=t,d}let n=t.nodeName||"";if(n.toLowerCase()==="img")return console.log(..._e(t,r,o)),d;if(n.toLowerCase()==="canvas"){let s=new Image;return s.onload=()=>console.log(..._e(s,r,o)),s.src=t.toDataURL(),d}return d}function no(e){for(let t in e)for(let r in e[t])return r||"untitled";return"empty"}var Xn=new _({id:"@probe.gl/log"});function Ue(e,t){return Ut(e||{},t)}function Ut(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]=Ut(o[n]||{},t[n],r+1):o[n]=t[n];return o}function je(e){globalThis.loaders||={},globalThis.loaders.modules||={},Object.assign(globalThis.loaders.modules,e)}var jt="latest";function so(){return globalThis._loadersgl_?.version||(globalThis._loadersgl_=globalThis._loadersgl_||{},globalThis._loadersgl_.version="4.2.0-alpha.6"),globalThis._loadersgl_.version}var oe=so();function l(e,t){if(!e)throw new Error(t||"loaders.gl assertion failed.")}var k={self:typeof self<"u"&&self,window:typeof window<"u"&&window,global:typeof global<"u"&&global,document:typeof document<"u"&&document},is=k.self||k.window||k.global||{},as=k.window||k.self||k.global||{},cs=k.global||k.self||k.window||{},us=k.document||{};var g=typeof process!="object"||String(process)!=="[object process]"||process.browser;var $t=typeof window<"u"&&typeof window.orientation<"u",Dt=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version),fs=Dt&&parseFloat(Dt[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 De=new Map;function zt(e){l(e.source&&!e.url||!e.source&&e.url);let t=De.get(e.source||e.url);return t||(e.url&&(t=io(e.url),De.set(e.url,t)),e.source&&(t=Vt(e.source),De.set(e.source,t))),l(t),t}function io(e){if(!e.startsWith("http"))return e;let t=ao(e);return Vt(t)}function Vt(e){let t=new Blob([e],{type:"application/javascript"});return URL.createObjectURL(t)}function ao(e){return`try {
importScripts('${e}');

@@ -13,5 +13,5 @@ } catch (error) {

throw error;
}`}function Me(e,t=!0,r){let o=r||new Set;if(e){if(Pt(e))o.add(e);else if(Pt(e.buffer))o.add(e.buffer);else if(!ArrayBuffer.isView(e)){if(t&&typeof e=="object")for(let n in e)Me(e[n],t,o)}}return r===void 0?Array.from(o):[]}function Pt(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 Oe(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]=Oe(e[r]):typeof t[r]=="function"||t[r]instanceof RegExp?t[r]={}:t[r]=e[r]}),t}var Ue=()=>{},I=class{name;source;url;terminated=!1;worker;onMessage;onError;_loadableURL="";static isSupported(){return typeof Worker<"u"&&d||typeof z<"u"&&!d}constructor(t){let{name:r,source:o,url:n}=t;l(o||n),this.name=r,this.source=o,this.url=n,this.onMessage=Ue,this.onError=s=>console.log(s),this.worker=d?this._createBrowserWorker():this._createNodeWorker()}destroy(){this.onMessage=Ue,this.onError=Ue,this.worker.terminate(),this.terminated=!0}get isRunning(){return Boolean(this.onMessage)}postMessage(t,r){r=r||Me(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=Ft({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 z(o,{eval:!1})}else if(this.source)t=new z(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 ne=class{name="unnamed";source;url;maxConcurrency=1;maxMobileConcurrency=1;onDebug=()=>{};reuseWorkers=!0;props={};jobQueue=[];idleQueue=[];count=0;isDestroyed=!1;static isSupported(){return I.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 oe(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){!d||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 I({name:t,source:this.source,url:this.url})}return null}_getMaxConcurrency(){return It?this.maxMobileConcurrency:this.maxConcurrency}};var Qr={maxConcurrency:3,maxMobileConcurrency:1,reuseWorkers:!0,onDebug:()=>{}},N=class{props;workerPools=new Map;static isSupported(){return I.isSupported()}static getWorkerFarm(t={}){return N._workerFarm=N._workerFarm||new N({}),N._workerFarm.setProps(t),N._workerFarm}constructor(t){this.props={...Qr},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 ne({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}}},g=N;St(g,"_workerFarm");function Nt(e){let t=e.version!==re?` (worker-utils@${re})`:"";return`${e.name}@${e.version}${t}`}function se(e,t={}){let r=t[e.id]||{},o=d?`${e.id}-worker.js`:`${e.id}-worker-node.js`,n=r.workerUrl;if(!n&&e.id==="compression"&&(n=t.workerUrl),t._workerType==="test"&&(d?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=Lt);let i=s?`@${s}`:"";n=`https://unpkg.com/@loaders.gl/${e.module}${i}/dist/${o}`}return l(n),n}async function je(e,t,r={},o={}){let n=Nt(e),s=g.getWorkerFarm(r),{source:i}=r,a={name:n,source:i};i||(a.url=se(e,r));let c=s.getWorkerPool(a),u=r.jobName||e.name,B=await c.startJob(u,Jr.bind(null,o)),R=Oe(r);return B.postMessage("process",{input:t,options:R}),(await B.result).result}async function Jr(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 De(e,t=re){l(e,"no worker provided");let r=e.version;return!(!t||!r)}function $e(e,t){return!g.isSupported()||!d&&!t?._nodeWorkers?!1:e.worker&&t?.worker}async function ze(e,t,r,o,n){let s=e.id,i=se(e,r),c=g.getWorkerFarm(r).getWorkerPool({name:s,url:i});r=JSON.parse(JSON.stringify(r)),o=JSON.parse(JSON.stringify(o||{}));let u=await c.startJob("process-on-worker",Kr.bind(null,n));return u.postMessage("process",{input:t,options:r,context:o}),await(await u.result).result}async function Kr(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 Ve(e,t){return!g.isSupported()||!p&&!t?._nodeWorkers?!1:e.worker&&t?.worker}function He(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 ie(...e){return Wt(e)}function Wt(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*Ge(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*qe(e){let t=new TextEncoder;for await(let r of e)yield typeof r=="string"?t.encode(r):r}async function*Qe(e){let t="";for await(let r of e){t+=r;let o;for(;(o=t.indexOf(`
`))>=0;){let n=t.slice(0,o+1);t=t.slice(o+1),yield n}}t.length>0&&(yield t)}async function*Je(e){let t=1;for await(let r of e)yield{counter:t,line:r},t++}async function Ke(e,t){for(;;){let{done:r,value:o}=await e.next();if(r){e.return();return}if(t(o))return}}async function W(e){let t=[];for await(let r of e)t.push(r);return ie(...t)}function F(e){return F=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},F(e)}function Ye(e,t){if(F(e)!=="object"||e===null)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var o=r.call(e,t||"default");if(F(o)!=="object")return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Ze(e){var t=Ye(e,"string");return F(t)==="symbol"?t:String(t)}function f(e,t,r){return t=Ze(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function ae(){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){f(this,"name",void 0),f(this,"type",void 0),f(this,"sampleSize",1),f(this,"time",0),f(this,"count",0),f(this,"samples",0),f(this,"lastTiming",0),f(this,"lastSampleTime",0),f(this,"lastSampleCount",0),f(this,"_count",0),f(this,"_time",0),f(this,"_samples",0),f(this,"_startTime",0),f(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=ae(),this._timerPending=!0,this}timeEnd(){return this._timerPending?(this.addTime(ae()-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 V=class{constructor(t){f(this,"id",void 0),f(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 Yr="Queued Requests",Zr="Active Requests",Xr="Cancelled Requests",eo="Queued Requests Ever",to="Active Requests Ever",ro={id:"request-scheduler",throttleRequests:!0,maxRequests:6,debounceTime:0},H=class{props;stats;activeRequestCount=0;requestQueue=[];requestMap=new Map;updateTimer=null;constructor(t={}){this.props={...ro,...t},this.stats=new V({id:this.props.id}),this.stats.get(Yr),this.stats.get(Zr),this.stats.get(Xr),this.stats.get(eo),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 Xe="",Ct={};function et(e){Xe=e}function tt(){return Xe}function v(e){for(let t in Ct)if(e.startsWith(t)){let r=Ct[t];e=e.replace(t,r)}return!e.startsWith("http://")&&!e.startsWith("https://")&&(e=`${Xe}${e}`),e}var oo="4.2.0-alpha.5",rt={name:"JSON",id:"json",module:"json",version:oo,extensions:["json","geojson"],mimeTypes:["application/json"],category:"json",text:!0,parseTextSync:Mt,parse:async e=>Mt(new TextDecoder().decode(e)),options:{}};function Mt(e){return JSON.parse(e)}function Ot(e){return e&&typeof e=="object"&&e.isBuffer}function xe(e){if(Ot(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 M={};kt(M,{dirname:()=>so,filename:()=>no,join:()=>io,resolve:()=>ao});function Ut(){if(typeof process<"u"&&typeof process.cwd<"u")return process.cwd();let e=window.location?.pathname;return e?.slice(0,e.lastIndexOf("/")+1)||""}function no(e){let t=e?e.lastIndexOf("/"):-1;return t>=0?e.substr(t+1):""}function so(e){let t=e?e.lastIndexOf("/"):-1;return t>=0?e.substr(0,t):""}function io(...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 ao(...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=Ut()),i=n),i.length!==0&&(r=`${i}/${r}`,o=i.charCodeAt(0)===ce)}return r=co(r,!o),o?`/${r}`:r.length>0?r:"."}var ce=47,ot=46;function co(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===ce)break;s=ce}if(s===ce){if(!(o===a-1||n===1))if(o!==a-1&&n===2){if(r.length<2||!i||r.charCodeAt(r.length-1)!==ot||r.charCodeAt(r.length-2)!==ot){if(r.length>2){let c=r.length-1,u=c;for(;u>=0&&r.charCodeAt(u)!==ce;--u);if(u!==c){r=u===-1?"":r.slice(0,u),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===ot&&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 ue=new Error("Not implemented"),le=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 ue}async write(t,r,o){throw ue}async stat(){throw ue}async truncate(t){throw ue}async append(t){throw ue}async close(){}};var jt=e=>typeof e=="boolean",w=e=>typeof e=="function",k=e=>e!==null&&typeof e=="object",me=e=>k(e)&&e.constructor==={}.constructor,Dt=e=>k(e)&&w(e.then),pe=e=>Boolean(e)&&typeof e[Symbol.iterator]=="function",he=e=>e&&typeof e[Symbol.asyncIterator]=="function",de=e=>e&&w(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,$t=e=>e&&typeof e=="object"&&e.isBuffer,fo=e=>k(e)&&w(e.abort)&&w(e.getWriter),uo=e=>typeof ReadableStream<"u"&&e instanceof ReadableStream||k(e)&&w(e.tee)&&w(e.cancel)&&w(e.getReader),lo=e=>k(e)&&w(e.end)&&w(e.write)&&jt(e.writable),mo=e=>k(e)&&w(e.read)&&w(e.pipe)&&jt(e.readable),O=e=>uo(e)||mo(e),zt=e=>fo(e)||lo(e);var po=/^data:([-\w.]+\/[-\w.+]+)(;|,)/,ho=/^([-\w.]+\/[-\w.+]+)/;function Vt(e){let t=ho.exec(e);return t?t[1]:e}function nt(e){let t=po.exec(e);return t?t[1]:""}var Ht=/\?.*/;function Gt(e){let t=e.match(Ht);return t&&t[0]}function G(e){return e.replace(Ht,"")}function b(e){return m(e)?e.url:h(e)?e.name||"":typeof e=="string"?e:""}function ge(e){if(m(e)){let t=e,r=t.headers.get("content-type")||"",o=G(t.url);return Vt(r)||nt(o)}return h(e)?e.type||"":typeof e=="string"?nt(e):""}function qt(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 Te(e){if(m(e))return e;let t={},r=qt(e);r>=0&&(t["content-length"]=String(r));let o=b(e),n=ge(e);n&&(t["content-type"]=n);let s=await yo(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 st(e){if(!e.ok){let t=await go(e);throw new Error(t)}}async function go(e){let t=`Failed to fetch resource ${e.url} (${e.status}): `;try{let r=e.headers.get("Content-Type"),o=e.statusText;r?.includes("application/json")&&(o+=` ${await e.text()}`),t+=o,t=t.length>60?`${t.slice(0,60)}...`:t}catch{}return t}async function yo(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,${wo(r)}`}return null}function wo(e){let t="",r=new Uint8Array(e);for(let o=0;o<r.byteLength;o++)t+=String.fromCharCode(r[o]);return btoa(t)}function bo(e){return!xo(e)&&!To(e)}function xo(e){return e.startsWith("http:")||e.startsWith("https:")}function To(e){return e.startsWith("data:")}async function U(e,t){if(typeof e=="string"){let r=v(e);return bo(r)&&globalThis.loaders?.fetchNode?globalThis.loaders?.fetchNode(r,t):await fetch(r,t)}return await Te(e)}async function Qt(e,t,r){e instanceof Blob||(e=new Blob([e]));let o=e.slice(t,t+r);return await Ao(o)}async function Ao(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)})}function it(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 x(){return!(typeof process=="object"&&String(process)==="[object process]"&&!process.browser)||it()}var _o=globalThis.self||globalThis.window||globalThis.global,q=globalThis.window||globalThis.self||globalThis.global,ko=globalThis.document||{},j=globalThis.process||{},So=globalThis.console,_i=globalThis.navigator||{};var Ae=typeof __VERSION__<"u"?__VERSION__:"untranspiled source",Ei=x();function Eo(e){try{let t=window[e],r="__storage_test__";return t.setItem(r,r),t.removeItem(r),t}catch{return null}}var _e=class{constructor(t,r){let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"sessionStorage";f(this,"storage",void 0),f(this,"id",void 0),f(this,"config",void 0),this.storage=Eo(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 Jt(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 Kt(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 ke(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 Se;(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"})(Se||(Se={}));var Bo=10;function Yt(e){return typeof e!="string"?e:(e=e.toUpperCase(),Se[e]||Se.WHITE)}function Zt(e,t,r){if(!x&&typeof e=="string"){if(t){let o=Yt(t);e="\x1B[".concat(o,"m").concat(e,"\x1B[39m")}if(r){let o=Yt(r);e="\x1B[".concat(o+Bo,"m").concat(e,"\x1B[49m")}}return e}function Xt(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 Q(e,t){if(!e)throw new Error(t||"Assertion failed")}function D(){let e;if(x()&&q.performance){var t,r;e=q===null||q===void 0||(t=q.performance)===null||t===void 0||(r=t.now)===null||r===void 0?void 0:r.call(t)}else if("hrtime"in j){var o;let n=j===null||j===void 0||(o=j.hrtime)===null||o===void 0?void 0:o.call(j);e=n[0]*1e3+n[1]/1e6}else e=Date.now();return e}var J={debug:x()&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},Lo={enabled:!0,level:0};function y(){}var er={},tr={once:!0},S=class{constructor(){let{id:t}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{id:""};f(this,"id",void 0),f(this,"VERSION",Ae),f(this,"_startTs",D()),f(this,"_deltaTs",D()),f(this,"_storage",void 0),f(this,"userData",{}),f(this,"LOG_THROTTLE_TIMEOUT",0),this.id=t,this.userData={},this._storage=new _e("__probe-".concat(this.id,"__"),Lo),this.timeStamp("".concat(this.id," started")),Xt(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((D()-this._startTs).toPrecision(10))}getDelta(){return Number((D()-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){Q(t,r)}warn(t){return this._getLogFunction(0,t,J.warn,arguments,tr)}error(t){return this._getLogFunction(0,t,J.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,J.log,arguments,{time:!0,once:!0})}log(t,r){return this._getLogFunction(t,r,J.debug,arguments)}info(t,r){return this._getLogFunction(t,r,console.info,arguments)}once(t,r){return this._getLogFunction(t,r,J.debug||J.info,arguments,tr)}table(t,r,o){return r?this._getLogFunction(t,r,console.table||y,o&&[o],{tag:vo(r)}):y}image(t){let{logLevel:r,priority:o,image:n,message:s="",scale:i=1}=t;return this._shouldLog(r||o)?x()?Fo({image:n,message:s,scale:i}):Io({image:n,message:s,scale:i}):y}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||y)}group(t,r){let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{collapsed:!1},n=rr({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||y)}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()>=or(t)}_getLogFunction(t,r,o,n,s){if(this._shouldLog(t)){s=rr({logLevel:t,message:r,args:n,opts:s}),o=o||s.method,Q(o),s.total=this.getTotal(),s.delta=this.getDelta(),this._deltaTs=D();let i=s.tag||s.message;if(s.once&&i)if(!er[i])er[i]=D();else return y;return r=Ro(this.id,s.message,s),o.bind(console,r,...s.args)}return y}};f(S,"VERSION",Ae);function or(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 Q(Number.isFinite(t)&&t>=0),t}function rr(e){let{logLevel:t,message:r}=e;e.logLevel=or(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 Q(n==="string"||n==="object"),Object.assign(e,{args:o},e.opts)}function Ro(e,t,r){if(typeof t=="string"){let o=r.time?Kt(Jt(r.total)):"";t=r.time?"".concat(e,": ").concat(o," ").concat(t):"".concat(e,": ").concat(t),t=Zt(t,r.color,r.background)}return t}function Io(e){let{image:t,message:r="",scale:o=1}=e;return console.warn("removed"),y}function Fo(e){let{image:t,message:r="",scale:o=1}=e;if(typeof t=="string"){let s=new Image;return s.onload=()=>{let i=ke(s,r,o);console.log(...i)},s.src=t,y}let n=t.nodeName||"";if(n.toLowerCase()==="img")return console.log(...ke(t,r,o)),y;if(n.toLowerCase()==="canvas"){let s=new Image;return s.onload=()=>console.log(...ke(s,r,o)),s.src=t.toDataURL(),y}return y}function vo(e){for(let t in e)for(let r in e[t])return r||"untitled";return"empty"}var Xi=new S({id:"@probe.gl/log"});var at=new S({id:"loaders.gl"}),Ee=class{log(){return()=>{}}info(){return()=>{}}warn(){return()=>{}}error(){return()=>{}}},Be=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 ct={fetch:null,mimeType:void 0,nothrow:!1,log:new Be,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:[]},nr={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 ye(){globalThis.loaders=globalThis.loaders||{};let{loaders:e}=globalThis;return e._state||(e._state={}),e._state}function L(){let e=ye();return e.globalOptions=e.globalOptions||{...ct},e.globalOptions}function ft(e){let t=ye(),r=L();t.globalOptions=ar(r,e)}function K(e,t,r,o){return r=r||[],r=Array.isArray(r)?r:[r],Po(e,r),ar(t,e,o)}function Po(e,t){sr(e,null,ct,nr,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]||{};sr(o,r.id,n,s,t)}}function sr(e,t,r,o,n){let s=t||"Top level",i=t?`${t}.`:"";for(let a in e){let c=!t&&k(e[a]),u=a==="baseUri"&&!t,B=a==="workerUrl"&&t;if(!(a in r)&&!u&&!B){if(a in o)at.warn(`${s} loader option '${i}${a}' no longer supported, use '${o[a]}'`)();else if(!c){let R=No(a,n);at.warn(`${s} loader option '${i}${a}' not recognized. ${R}`)()}}}}function No(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 ar(e,t,r){let n={...e.options||{}};return Wo(n,r),n.log===null&&(n.log=new Ee),ir(n,L()),ir(n,t),n}function ir(e,t){for(let r in t)if(r in t){let o=t[r];me(o)&&me(e[r])?e[r]={...e[r],...t[r]}:e[r]=t[r]}}function Wo(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 we(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 cr=()=>{let e=ye();return e.loaderRegistry=e.loaderRegistry||[],e.loaderRegistry};function fr(e){let t=cr();e=Array.isArray(e)?e:[e];for(let r of e){let o=we(r);t.find(n=>o===n)||t.unshift(o)}}function ur(){return cr()}function lr(){let e=ye();e.loaderRegistry=[]}var mr=new S({id:"loaders.gl"});var Co=/\.([^.]+)$/;async function Z(e,t=[],r,o){if(!hr(e))return null;let n=Y(e,t,{...r,nothrow:!0},o);if(n)return n;if(h(e)&&(e=await e.slice(0,10).arrayBuffer(),n=Y(e,t,r,o)),!n&&!r?.nothrow)throw new Error(dr(e));return n}function Y(e,t=[],r,o){if(!hr(e))return null;if(t&&!Array.isArray(t))return we(t);let n=[];t&&(n=n.concat(t)),r?.ignoreRegisteredLoaders||n.push(...ur()),Oo(n);let s=Mo(e,n,r,o);if(!s&&!r?.nothrow)throw new Error(dr(e));return s}function Mo(e,t,r,o){let n=b(e),s=ge(e),i=G(n)||o?.url,a=null,c="";return r?.mimeType&&(a=ut(t,r?.mimeType),c=`match forced by supplied MIME type ${r?.mimeType}`),a=a||Uo(t,i),c=c||(a?`matched url ${i}`:""),a=a||ut(t,s),c=c||(a?`matched MIME type ${s}`:""),a=a||Do(t,e),c=c||(a?`matched initial data ${gr(e)}`:""),r?.fallbackMimeType&&(a=a||ut(t,r?.fallbackMimeType),c=c||(a?`matched fallback MIME type ${s}`:"")),c&&mr.log(1,`selectLoader selected ${a?.name}: ${c}.`),a}function hr(e){return!(e instanceof Response&&e.status===204)}function dr(e){let t=b(e),r=ge(e),o="No valid loader found (";o+=t?`${M.filename(t)}, `:"no url provided, ",o+=`MIME type: ${r?`"${r}"`:"not provided"}, `;let n=e?gr(e):"";return o+=n?` first bytes: "${n}"`:"first bytes: not available",o+=")",o}function Oo(e){for(let t of e)we(t)}function Uo(e,t){let r=t&&Co.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 ut(e,t){for(let r of e)if(r.mimeTypes&&r.mimeTypes.includes(t)||t===`application/x.${r.id}`)return r;return null}function Do(e,t){if(!t)return null;for(let r of e)if(typeof t=="string"){if($o(t,r))return r}else if(ArrayBuffer.isView(t)){if(pr(t.buffer,t.byteOffset,r))return r}else if(t instanceof ArrayBuffer&&pr(t,0,r))return r;return null}function $o(e,t){return t.testText?t.testText(e):(Array.isArray(t.tests)?t.tests:[t.tests]).some(o=>e.startsWith(o))}function pr(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 He(o,e,o.byteLength);switch(typeof o){case"function":return o(e);case"string":let n=lt(e,t,o.length);return o===n;default:return!1}}function gr(e,t=5){return typeof e=="string"?e.slice(0,t):ArrayBuffer.isView(e)?lt(e.buffer,e.byteOffset,t):e instanceof ArrayBuffer?lt(e,0,t):""}function lt(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*yr(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*wr(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*br(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 mt(e,t){return p?Vo(e,t):Ho(e,t)}async function*Vo(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 xe(i)}}catch{r.releaseLock()}}async function*Ho(e,t){for await(let r of e)yield xe(r)}function X(e,t){if(typeof e=="string")return yr(e,t);if(e instanceof ArrayBuffer)return wr(e,t);if(h(e))return br(e,t);if(O(e))return mt(e,t);if(m(e))return mt(e.body,t);throw new Error("makeIterator")}var pt="Cannot convert supplied data type";function ht(e,t,r){if(t.text&&typeof e=="string")return e;if($t(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(pt)}async function xr(e,t,r){let o=e instanceof ArrayBuffer||ArrayBuffer.isView(e);if(typeof e=="string"||o)return ht(e,t,r);if(h(e)&&(e=await Te(e)),m(e)){let n=e;return await st(n),t.binary?await n.arrayBuffer():await n.text()}if(O(e)&&(e=X(e,r)),pe(e)||he(e))return W(e);throw new Error(pt)}async function Tr(e,t){if(de(e))return e;if(m(e)){let r=e;await st(r);let o=await r.body;return X(o,t)}return h(e)||O(e)?X(e,t):he(e)?e:Go(e)}function Go(e){if(ArrayBuffer.isView(e))return function*(){yield e.buffer}();if(e instanceof ArrayBuffer)return function*(){yield e}();if(de(e))return e;if(pe(e))return e[Symbol.iterator]();throw new Error(pt)}function ee(e,t){let r=L(),o=e||r;return typeof o.fetch=="function"?o.fetch:k(o.fetch)?n=>U(n,o.fetch):t?.fetch?t?.fetch:U}function te(e,t,r){if(r)return r;let o={fetch:ee(t,e),...e};if(o.url){let n=G(o.url);o.baseUrl=n,o.queryString=Gt(o.url),o.filename=M.filename(n),o.baseUrl=M.dirname(n)}return Array.isArray(o.loaders)||(o.loaders=null),o}function Le(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=b(e),i=Le(t,o),a=await Z(e,i,r);return a?(r=K(r,a,i,n),o=te({url:n,_parse:E,loaders:i},r,o||null),await qo(a,e,r,o)):null}async function qo(e,t,r,o){if(De(e),r=We(e.options,r),m(t)){let s=t,{ok:i,redirected:a,status:c,statusText:u,type:B,url:R}=s,_t=Object.fromEntries(s.headers.entries());o.response={headers:_t,ok:i,redirected:a,status:c,statusText:u,type:B,url:R}}t=await xr(t,e,r);let n=e;if(n.parseTextSync&&typeof t=="string")return n.parseTextSync(t,r,o);if($e(e,r))return await ze(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 Ar(e,t,r,o){!Array.isArray(t)&&!T(t)&&(o=void 0,r=t,t=void 0),r=r||{};let s=Le(t,o),i=Y(e,s,r);if(!i)return null;r=K(r,i,s);let a=b(e),c=()=>{throw new Error("parseSync called parse (which is async")};return o=te({url:a,_parseSync:c,_parse:c,loaders:t},r,o||null),Qo(i,e,r,o)}function Qo(e,t,r,o){if(t=ht(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 dt(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 gt(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 yt(e){return{...e,length:gt(e),batchType:"data"}}async function P(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=b(e),i=await Z(e,t,r);return i?(r=K(r,i,n,s),o=te({url:s,_parseInBatches:P,_parse:E,loaders:n},r,o||null),await Jo(i,e,r,o)):[]}async function Jo(e,t,r,o){let n=await Ko(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 Ko(e,t,r,o){let n=await Tr(t,r),s=await Xo(n,r?.transforms||[]);return e.parseInBatches?e.parseInBatches(s,r,o):Yo(s,e,r,o)}async function*Yo(e,t,r,o){let n=await W(e),s=await E(n,t,{...r,mimeType:t.mimeTypes[0]},o);yield Zo(s,t)}function Zo(e,t){let r=dt(e)?yt(e):{shape:"unknown",batchType:"data",data:e,length:Array.isArray(e)?e.length:1};return r.mimeType=t.mimeTypes[0],r}async function Xo(e,t=[]){let r=e;for await(let o of t)r=o(r);return r}async function _r(e,t,r,o){let n,s;!Array.isArray(t)&&!T(t)?(n=[],s=t,o=void 0):(n=t,s=r);let i=ee(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 Sr(e,t,r,o){let n;!Array.isArray(t)&&!T(t)?(o=void 0,r=t,n=void 0):n=t;let s=ee(r||{});return Array.isArray(e)?e.map(a=>kr(a,n,r||{},s)):kr(e,n,r||{},s)}async function kr(e,t,r,o){if(typeof e=="string"){let s=await o(e);return Array.isArray(t)?await P(s,t,r):await P(s,t,r)}return Array.isArray(t)?await P(e,t,r):await P(e,t,r)}async function wt(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=bt(e,t,r),n=[];for await(let s of o)n.push(s);return ie(...n)}throw new Error("Writer could not encode data")}async function Er(e,t,r){if(t.text&&t.encodeText)return await t.encodeText(e,r);if(t.text){let o=await wt(e,t,r);return new TextDecoder().decode(o)}throw new Error(`Writer ${t.name} could not encode data as text`)}function bt(e,t,r){if(t.encodeInBatches){let o=en(e);return t.encodeInBatches(o,r)}throw new Error("Writer could not encode data in batches")}function en(e){return[{...e,start:0,end:e.length}]}async function Lr(e,t,r){return r={...L(),...r},t.encodeURLtoURL?tn(t,e,r):Ve(t,r)?await je(t,e,r):await t.encode(e,r)}function xt(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 Rr(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 Ir(e,t,r){if(t.encodeTextSync)return t.encodeTextSync(e,r);if(t.text&&t.encodeSync){let o=xt(e,t,r);return new TextDecoder().decode(o)}throw new Error(`Writer ${t.name} could not encode data as text`)}function Fr(e,t,r){if(t.encodeInBatches){let o=rn(e);return t.encodeInBatches(o,r)}throw new Error(`Writer ${t.name} could not encode in batches`)}async function Tt(e,t,r,o){if(e=v(e),t=v(t),p||!r.encodeURLtoURL)throw new Error;return await r.encodeURLtoURL(e,t,o)}async function tn(e,t,r){if(p)throw new Error(`Writer ${e.name} not supported in browser`);let o=Br("input");await new le(o,"w").write(t);let s=Br("output"),i=await Tt(o,s,e,r);return(await U(i)).arrayBuffer()}function rn(e){return[{...e,start:0,end:e.length}]}function Br(e){return`/tmp/${e}`}function vr(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 Pr="4.2.0-alpha.5",Nr={name:"Null loader",id:"null",module:"core",version:Pr,worker:!0,mimeTypes:["application/x.empty"],extensions:["null"],tests:[()=>!1],options:{null:{}}},Wr={name:"Null loader",id:"null",module:"core",version:Pr,mimeTypes:["application/x.empty"],extensions:["null"],parse:async(e,t,r)=>At(e,t||{},r),parseSync:At,parseInBatches:async function*(t,r,o){for await(let n of t)yield At(n,r,o)},tests:[()=>!1],options:{null:{}}};function At(e,t,r){return null}async function Cr(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 u=n.getReader();await Mr(c,u,0,i,t,r,o)}});return new Response(a)}async function Mr(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 u=Math.round(r/o*100);n(u,{loadedBytes:r,totalBytes:o}),e.enqueue(c),await Mr(e,t,r,o,n,s,i)}catch(a){e.error(a),i(a)}}var Re=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]),u=parseInt(i[2]),B=await o.slice(c,u).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 zr(on);})();
}`}function $e(e,t=!0,r){let o=r||new Set;if(e){if(Ht(e))o.add(e);else if(Ht(e.buffer))o.add(e.buffer);else if(!ArrayBuffer.isView(e)){if(t&&typeof e=="object")for(let n in e)$e(e[n],t,o)}}return r===void 0?Array.from(o):[]}function Ht(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 ze(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]=ze(e[r]):typeof t[r]=="function"||t[r]instanceof RegExp?t[r]={}:t[r]=e[r]}),t}var Ve=()=>{},F=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=Ve,this.onError=s=>console.log(s),this.worker=g?this._createBrowserWorker():this._createNodeWorker()}destroy(){this.onMessage=Ve,this.onError=Ve,this.worker.terminate(),this.terminated=!0}get isRunning(){return Boolean(this.onMessage)}postMessage(t,r){r=r||$e(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=zt({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 F.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 F({name:t,source:this.source,url:this.url})}return null}_getMaxConcurrency(){return $t?this.maxMobileConcurrency:this.maxConcurrency}};var co={maxConcurrency:3,maxMobileConcurrency:1,reuseWorkers:!0,onDebug:()=>{}},W=class{props;workerPools=new Map;static isSupported(){return F.isSupported()}static getWorkerFarm(t={}){return W._workerFarm=W._workerFarm||new W({}),W._workerFarm.setProps(t),W._workerFarm}constructor(t){this.props={...co},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;Lt(y,"_workerFarm");function Gt(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=jt);let i=s?`@${s}`:"";n=`https://unpkg.com/@loaders.gl/${e.module}${i}/dist/${o}`}return l(n),n}async function He(e,t,r={},o={}){let n=Gt(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,uo.bind(null,o)),R=ze(r);return B.postMessage("process",{input:t,options:R}),(await B.result).result}async function uo(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 Ge(e,t=oe){l(e,"no worker provided");let r=e.version;return!(!t||!r)}function qe(e,t){return!y.isSupported()||!g&&!t?._nodeWorkers?!1:e.worker&&t?.worker}async function Qe(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",fo.bind(null,n));return f.postMessage("process",{input:t,options:r,context:o}),await(await f.result).result}async function fo(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 Je(e,t){return!y.isSupported()||!p&&!t?._nodeWorkers?!1:e.worker&&t?.worker}function Ke(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 qt(e)}function qt(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*Ye(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*Ze(e){let t=new TextEncoder;for await(let r of e)yield typeof r=="string"?t.encode(r):r}async function*Xe(e){let t="";for await(let r of e){t+=r;let o;for(;(o=t.indexOf(`
`))>=0;){let n=t.slice(0,o+1);t=t.slice(o+1),yield n}}t.length>0&&(yield t)}async function*et(e){let t=1;for await(let r of e)yield{counter:t,line:r},t++}async function tt(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 lo="Queued Requests",mo="Active Requests",po="Cancelled Requests",ho="Queued Requests Ever",go="Active Requests Ever",yo={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={...yo,...t},this.stats=new q({id:this.props.id}),this.stats.get(lo),this.stats.get(mo),this.stats.get(po),this.stats.get(ho),this.stats.get(go)}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 rt="",Qt={};function ot(e){rt=e}function nt(){return rt}function v(e){for(let t in Qt)if(e.startsWith(t)){let r=Qt[t];e=e.replace(t,r)}return!e.startsWith("http://")&&!e.startsWith("https://")&&(e=`${rt}${e}`),e}var wo="4.2.0-alpha.6",st={dataType:null,batchType:null,name:"JSON",id:"json",module:"json",version:wo,extensions:["json","geojson"],mimeTypes:["application/json"],category:"json",text:!0,parseTextSync:Jt,parse:async e=>Jt(new TextDecoder().decode(e)),options:{}};function Jt(e){return JSON.parse(e)}function Kt(e){return e&&typeof e=="object"&&e.isBuffer}function Se(e){if(Kt(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={};Bt(U,{dirname:()=>xo,filename:()=>bo,join:()=>To,resolve:()=>Ao});function Yt(){if(typeof process<"u"&&typeof process.cwd<"u")return process.cwd();let e=window.location?.pathname;return e?.slice(0,e.lastIndexOf("/")+1)||""}function bo(e){let t=e?e.lastIndexOf("/"):-1;return t>=0?e.substr(t+1):""}function xo(e){let t=e?e.lastIndexOf("/"):-1;return t>=0?e.substr(0,t):""}function To(...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 Ao(...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=Yt()),i=n),i.length!==0&&(r=`${i}/${r}`,o=i.charCodeAt(0)===ue)}return r=_o(r,!o),o?`/${r}`:r.length>0?r:"."}var ue=47,it=46;function _o(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)!==it||r.charCodeAt(r.length-2)!==it){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===it&&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 Zt=e=>typeof e=="boolean",b=e=>typeof e=="function",S=e=>e!==null&&typeof e=="object",pe=e=>S(e)&&e.constructor==={}.constructor,Xt=e=>S(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,er=e=>e&&typeof e=="object"&&e.isBuffer,ko=e=>S(e)&&b(e.abort)&&b(e.getWriter),So=e=>typeof ReadableStream<"u"&&e instanceof ReadableStream||S(e)&&b(e.tee)&&b(e.cancel)&&b(e.getReader),Eo=e=>S(e)&&b(e.end)&&b(e.write)&&Zt(e.writable),Bo=e=>S(e)&&b(e.read)&&b(e.pipe)&&Zt(e.readable),j=e=>So(e)||Bo(e),tr=e=>ko(e)||Eo(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 Lo=/^data:([-\w.]+\/[-\w.+]+)(;|,)/,Ro=/^([-\w.]+\/[-\w.+]+)/;function at(e,t){return e.toLowerCase()===t.toLowerCase()}function rr(e){let t=Ro.exec(e);return t?t[1]:e}function ct(e){let t=Lo.exec(e);return t?t[1]:""}var or=/\?.*/;function nr(e){let t=e.match(or);return t&&t[0]}function K(e){return e.replace(or,"")}function sr(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 rr(r)||ct(o)}return h(e)?e.type||"":typeof e=="string"?ct(e):""}function ir(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=ir(e);r>=0&&(t["content-length"]=String(r));let o=x(e),n=ye(e);n&&(t["content-type"]=n);let s=await Fo(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 ut(e){if(!e.ok)throw await Io(e)}async function Io(e){let t=sr(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=n?.includes("application/json")?await e.json():e.text()}catch{}return new J(r,o)}async function Fo(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,${vo(r)}`}return null}function vo(e){let t="",r=new Uint8Array(e);for(let o=0;o<r.byteLength;o++)t+=String.fromCharCode(r[o]);return btoa(t)}function Mo(e){return!No(e)&&!Po(e)}function No(e){return e.startsWith("http:")||e.startsWith("https:")}function Po(e){return e.startsWith("data:")}async function D(e,t){if(typeof e=="string"){let r=v(e);return Mo(r)&&globalThis.loaders?.fetchNode?globalThis.loaders?.fetchNode(r,t):await fetch(r,t)}return await Ee(e)}async function ar(e,t,r){e instanceof Blob||(e=new Blob([e]));let o=e.slice(t,t+r);return await Wo(o)}async function Wo(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 ft=new _({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 lt={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:[]},cr={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||{...lt},e.globalOptions}function mt(e){let t=we(),r=L();t.globalOptions=lr(r,e),je(e.modules)}function Y(e,t,r,o){return r=r||[],r=Array.isArray(r)?r:[r],Oo(e,r),lr(t,e,o)}function Oo(e,t){ur(e,null,lt,cr,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]||{};ur(o,r.id,n,s,t)}}function ur(e,t,r,o,n){let s=t||"Top level",i=t?`${t}.`:"";for(let a in e){let c=!t&&S(e[a]),f=a==="baseUri"&&!t,B=a==="workerUrl"&&t;if(!(a in r)&&!f&&!B){if(a in o)ft.warn(`${s} loader option '${i}${a}' no longer supported, use '${o[a]}'`)();else if(!c){let R=Co(a,n);ft.warn(`${s} loader option '${i}${a}' not recognized. ${R}`)()}}}}function Co(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 lr(e,t,r){let n={...e.options||{}};return Uo(n,r),n.log===null&&(n.log=new Be),fr(n,L()),fr(n,t),n}function fr(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 Uo(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 mr=()=>{let e=we();return e.loaderRegistry=e.loaderRegistry||[],e.loaderRegistry};function pr(e){let t=mr();e=Array.isArray(e)?e:[e];for(let r of e){let o=be(r);t.find(n=>o===n)||t.unshift(o)}}function hr(){return mr()}function dr(){let e=we();e.loaderRegistry=[]}var gr=new _({id:"loaders.gl"});var jo=/\.([^.]+)$/;async function X(e,t=[],r,o){if(!wr(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(br(e));return n}function Z(e,t=[],r,o){if(!wr(e))return null;if(t&&!Array.isArray(t))return be(t);let n=[];t&&(n=n.concat(t)),r?.ignoreRegisteredLoaders||n.push(...hr()),$o(n);let s=Do(e,n,r,o);if(!s&&!r?.nothrow)throw new Error(br(e));return s}function Do(e,t,r,o){let n=x(e),s=ye(e),i=K(n)||o?.url,a=null,c="";return r?.mimeType&&(a=pt(t,r?.mimeType),c=`match forced by supplied MIME type ${r?.mimeType}`),a=a||zo(t,i),c=c||(a?`matched url ${i}`:""),a=a||pt(t,s),c=c||(a?`matched MIME type ${s}`:""),a=a||Ho(t,e),c=c||(a?`matched initial data ${xr(e)}`:""),r?.fallbackMimeType&&(a=a||pt(t,r?.fallbackMimeType),c=c||(a?`matched fallback MIME type ${s}`:"")),c&&gr.log(1,`selectLoader selected ${a?.name}: ${c}.`),a}function wr(e){return!(e instanceof Response&&e.status===204)}function br(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?xr(e):"";return o+=n?` first bytes: "${n}"`:"first bytes: not available",o+=")",o}function $o(e){for(let t of e)be(t)}function zo(e,t){let r=t&&jo.exec(t),o=r&&r[1];return o?Vo(e,o):null}function Vo(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 pt(e,t){for(let r of e)if(r.mimeTypes?.some(o=>at(t,o))||at(t,`application/x.${r.id}`))return r;return null}function Ho(e,t){if(!t)return null;for(let r of e)if(typeof t=="string"){if(Go(t,r))return r}else if(ArrayBuffer.isView(t)){if(yr(t.buffer,t.byteOffset,r))return r}else if(t instanceof ArrayBuffer&&yr(t,0,r))return r;return null}function Go(e,t){return t.testText?t.testText(e):(Array.isArray(t.tests)?t.tests:[t.tests]).some(o=>e.startsWith(o))}function yr(e,t,r){return(Array.isArray(r.tests)?r.tests:[r.tests]).some(n=>qo(e,t,r,n))}function qo(e,t,r,o){if(o instanceof ArrayBuffer)return Ke(o,e,o.byteLength);switch(typeof o){case"function":return o(e);case"string":let n=ht(e,t,o.length);return o===n;default:return!1}}function xr(e,t=5){return typeof e=="string"?e.slice(0,t):ArrayBuffer.isView(e)?ht(e.buffer,e.byteOffset,t):e instanceof ArrayBuffer?ht(e,0,t):""}function ht(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*Tr(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*Ar(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 dt(e,t){return p?Qo(e,t):Jo(e,t)}async function*Qo(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 Se(i)}}catch{r.releaseLock()}}async function*Jo(e,t){for await(let r of e)yield Se(r)}function ee(e,t){if(typeof e=="string")return Tr(e,t);if(e instanceof ArrayBuffer)return Ar(e,t);if(h(e))return _r(e,t);if(j(e))return dt(e,t);if(m(e))return dt(e.body,t);throw new Error("makeIterator")}var gt="Cannot convert supplied data type";function yt(e,t,r){if(t.text&&typeof e=="string")return e;if(er(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(gt)}async function kr(e,t,r){let o=e instanceof ArrayBuffer||ArrayBuffer.isView(e);if(typeof e=="string"||o)return yt(e,t,r);if(h(e)&&(e=await Ee(e)),m(e)){let n=e;return await ut(n),t.binary?await n.arrayBuffer():await n.text()}if(j(e)&&(e=ee(e,r)),he(e)||de(e))return O(e);throw new Error(gt)}async function Sr(e,t){if(ge(e))return e;if(m(e)){let r=e;await ut(r);let o=await r.body;return ee(o,t)}return h(e)||j(e)?ee(e,t):de(e)?e:Ko(e)}function Ko(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(gt)}function te(e,t){let r=L(),o=e||r;return typeof o.fetch=="function"?o.fetch:S(o.fetch)?n=>D(n,o.fetch):t?.fetch?t?.fetch:D}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=nr(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 Yo(a,e,r,o)):null}async function Yo(e,t,r,o){if(Ge(e),r=Ue(e.options,r),m(t)){let s=t,{ok:i,redirected:a,status:c,statusText:f,type:B,url:R}=s,Et=Object.fromEntries(s.headers.entries());o.response={headers:Et,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(qe(e,r))return await Qe(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 Er(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),Zo(i,e,r,o)}function Zo(e,t,r,o){if(t=yt(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 wt(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 bt(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 xt(e){return{...e,length:bt(e),batchType:"data"}}async function M(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:M,_parse:E,loaders:n},r,o||null),await Xo(i,e,r,o)):[]}async function Xo(e,t,r,o){let n=await en(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 en(e,t,r,o){let n=await Sr(t,r),s=await on(n,r?.transforms||[]);return e.parseInBatches?e.parseInBatches(s,r,o):tn(s,e,r,o)}async function*tn(e,t,r,o){let n=await O(e),s=await E(n,t,{...r,mimeType:t.mimeTypes[0]},o);yield rn(s,t)}function rn(e,t){let r=wt(e)?xt(e):{shape:"unknown",batchType:"data",data:e,length:Array.isArray(e)?e.length:1};return r.mimeType=t.mimeTypes[0],r}async function on(e,t=[]){let r=e;for await(let o of t)r=o(r);return r}async function Br(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 Rr(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=>Lr(a,n,r||{},s)):Lr(e,n,r||{},s)}async function Lr(e,t,r,o){if(typeof e=="string"){let s=await o(e);return Array.isArray(t)?await M(s,t,r):await M(s,t,r)}return Array.isArray(t)?await M(e,t,r):await M(e,t,r)}async function Tt(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=At(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 Ir(e,t,r){if(t.text&&t.encodeText)return await t.encodeText(e,r);if(t.text){let o=await Tt(e,t,r);return new TextDecoder().decode(o)}throw new Error(`Writer ${t.name} could not encode data as text`)}function At(e,t,r){if(t.encodeInBatches){let o=nn(e);return t.encodeInBatches(o,r)}throw new Error("Writer could not encode data in batches")}function nn(e){return[{...e,start:0,end:e.length}]}async function vr(e,t,r){return r={...L(),...r},t.encodeURLtoURL?sn(t,e,r):Je(t,r)?await He(t,e,r):await t.encode(e,r)}function _t(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 Mr(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 Nr(e,t,r){if(t.encodeTextSync)return t.encodeTextSync(e,r);if(t.text&&t.encodeSync){let o=_t(e,t,r);return new TextDecoder().decode(o)}throw new Error(`Writer ${t.name} could not encode data as text`)}function Pr(e,t,r){if(t.encodeInBatches){let o=an(e);return t.encodeInBatches(o,r)}throw new Error(`Writer ${t.name} could not encode in batches`)}async function kt(e,t,r,o){if(e=v(e),t=v(t),p||!r.encodeURLtoURL)throw new Error;return await r.encodeURLtoURL(e,t,o)}async function sn(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 kt(o,s,e,r);return(await D(i)).arrayBuffer()}function an(e){return[{...e,start:0,end:e.length}]}function Fr(e){return`/tmp/${e}`}function Wr(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 Or="4.2.0-alpha.6",Cr={dataType:null,batchType:null,name:"Null loader",id:"null",module:"core",version:Or,worker:!0,mimeTypes:["application/x.empty"],extensions:["null"],tests:[()=>!1],options:{null:{}}},Ur={dataType:null,batchType:null,name:"Null loader",id:"null",module:"core",version:Or,mimeTypes:["application/x.empty"],extensions:["null"],parse:async(e,t,r)=>St(e,t||{},r),parseSync:St,parseInBatches:async function*(t,r,o){for await(let n of t)yield St(n,r,o)},tests:[()=>!1],options:{null:{}}};function St(e,t,r){return null}async function jr(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 Dr(c,f,0,i,t,r,o)}});return new Response(a)}async function Dr(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 Dr(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 qr(cn);})();
return __exports__;
});
export type { Loader, LoaderWithParser, LoaderContext, LoaderOptions, Writer, WriterOptions, DataType, SyncDataType, BatchableDataType, ReadableFile, WritableFile, Stat, FileSystem, RandomAccessFileSystem } from '@loaders.gl/loader-utils';
export { fetchFile } from "./lib/fetch/fetch-file.js";
export { FetchError } from "./lib/fetch/fetch-error.js";
export { readArrayBuffer } from "./lib/fetch/read-array-buffer.js";

@@ -4,0 +5,0 @@ export { setLoaderOptions, getLoaderOptions } from "./lib/api/loader-options.js";

@@ -6,2 +6,3 @@ // loaders.gl

export { fetchFile } from "./lib/fetch/fetch-file.js";
export { FetchError } from "./lib/fetch/fetch-error.js";
export { readArrayBuffer } from "./lib/fetch/read-array-buffer.js";

@@ -8,0 +9,0 @@ // export {readFileSync} from './lib/fetch/read-file';

@@ -8,2 +8,3 @@ // loaders.gl

import { getResourceUrl, getResourceMIMEType } from "../utils/resource-utils.js";
import { compareMIMETypes } from "../utils/mime-type-utils.js";
import { getRegisteredLoaders } from "./register-loaders.js";

@@ -170,3 +171,3 @@ import { isBlob } from "../../javascript-utils/is-type.js";

for (const loader of loaders) {
if (loader.mimeTypes && loader.mimeTypes.includes(mimeType)) {
if (loader.mimeTypes?.some((mimeType1) => compareMIMETypes(mimeType, mimeType1))) {
return loader;

@@ -176,3 +177,3 @@ }

// https://en.wikipedia.org/wiki/Media_type#Unregistered_tree
if (mimeType === `application/x.${loader.id}`) {
if (compareMIMETypes(mimeType, `application/x.${loader.id}`)) {
return loader;

@@ -179,0 +180,0 @@ }

// loaders.gl
// SPDX-License-Identifier: MIT
// Copyright (c) vis.gl contributors
// TODO - duplicates response-utils code
export function getErrorMessageFromResponseSync(response) {
return `Failed to fetch resource ${response.url}(${response.status}): ${response.statusText} `;
}
// TODO - duplicates response-utils code
export async function getErrorMessageFromResponse(response) {

@@ -8,0 +10,0 @@ let message = `Failed to fetch resource ${response.url} (${response.status}): `;

@@ -6,2 +6,3 @@ // loaders.gl

import { makeResponse } from "../utils/response-utils.js";
// import {FetchError} from './fetch-error';
export function isNodePath(url) {

@@ -8,0 +9,0 @@ return !isRequestURL(url) && !isDataURL(url);

@@ -6,3 +6,3 @@ // loaders.gl

// @ts-ignore TS2304: Cannot find name '__VERSION__'.
const version = typeof "4.2.0-alpha.5" !== 'undefined' ? "4.2.0-alpha.5" : '';
const version = typeof "4.2.0-alpha.6" !== 'undefined' ? "4.2.0-alpha.6" : '';
// @ts-ignore

@@ -9,0 +9,0 @@ if (!globalThis.loaders) {

@@ -1,2 +0,2 @@

import type { Loader, LoaderOptions } from '@loaders.gl/loader-utils';
import { Loader, LoaderOptions } from '@loaders.gl/loader-utils';
/**

@@ -3,0 +3,0 @@ * Global state for loaders.gl. Stored on `globalThis.loaders._state`

// loaders.gl
// SPDX-License-Identifier: MIT
// Copyright (c) vis.gl contributors
import { registerJSModules } from '@loaders.gl/loader-utils';
import { isPureObject, isObject } from "../../javascript-utils/is-type.js";

@@ -42,2 +43,4 @@ import { probeLog, NullLog } from "./loggers.js";

state.globalOptions = normalizeOptionsInternal(globalOptions, options);
// Make sure any new modules are registered
registerJSModules(options.modules);
}

@@ -44,0 +47,0 @@ /**

/**
* Compare two MIME types, case insensitively etc.
* @param mimeType1
* @param mimeType2
* @returns true if the MIME types are equivalent
* @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types#structure_of_a_mime_type
*/
export declare function compareMIMETypes(mimeType1: string, mimeType2: string): boolean;
/**
* Remove extra data like `charset` from MIME types

@@ -3,0 +11,0 @@ * @param mimeString

@@ -9,2 +9,15 @@ // loaders.gl

/**
* Compare two MIME types, case insensitively etc.
* @param mimeType1
* @param mimeType2
* @returns true if the MIME types are equivalent
* @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types#structure_of_a_mime_type
*/
export function compareMIMETypes(mimeType1, mimeType2) {
if (mimeType1.toLowerCase() === mimeType2.toLowerCase()) {
return true;
}
return false;
}
/**
* Remove extra data like `charset` from MIME types

@@ -11,0 +24,0 @@ * @param mimeString

@@ -5,3 +5,5 @@ // loaders.gl

import { isResponse } from "../../javascript-utils/is-type.js";
import { FetchError } from "../fetch/fetch-error.js";
import { getResourceContentLength, getResourceUrl, getResourceMIMEType } from "./resource-utils.js";
import { shortenUrlForDisplay } from "./url-utils.js";
/**

@@ -53,4 +55,4 @@ * Returns a Response object

if (!response.ok) {
const message = await getResponseError(response);
throw new Error(message);
const error = await getResponseError(response);
throw error;
}

@@ -71,11 +73,15 @@ }

async function getResponseError(response) {
let message = `Failed to fetch resource ${response.url} (${response.status}): `;
const shortUrl = shortenUrlForDisplay(response.url);
let message = `Failed to fetch resource (${response.status}) ${response.statusText}: ${shortUrl}`;
message = message.length > 100 ? `${message.slice(0, 100)}...` : message;
const info = {
reason: response.statusText,
url: response.url,
response
};
try {
const contentType = response.headers.get('Content-Type');
let text = response.statusText;
if (contentType?.includes('application/json')) {
text += ` ${await response.text()}`;
}
message += text;
message = message.length > 60 ? `${message.slice(0, 60)}...` : message;
info.reason = contentType?.includes('application/json')
? await response.json()
: response.text();
}

@@ -85,3 +91,3 @@ catch (error) {

}
return message;
return new FetchError(message, info);
}

@@ -88,0 +94,0 @@ async function getInitialDataUrl(resource) {

export declare function extractQueryString(url: any): string;
export declare function stripQueryString(url: any): string;
export declare function shortenUrlForDisplay(url: string): string;
//# sourceMappingURL=url-utils.d.ts.map

@@ -12,1 +12,9 @@ // loaders.gl

}
export function shortenUrlForDisplay(url) {
if (url.length < 50) {
return url;
}
const urlEnd = url.slice(url.length - 15);
const urlStart = url.substr(0, 32);
return `${urlStart}...${urlEnd}`;
}

@@ -1,2 +0,3 @@

import type { Loader, LoaderWithParser, LoaderOptions } from '@loaders.gl/loader-utils';
import type { LoaderOptions } from '@loaders.gl/loader-utils';
import { LoaderContext } from '@loaders.gl/loader-utils';
export type NullLoaderOptions = LoaderOptions & {

@@ -8,7 +9,43 @@ null?: {};

*/
export declare const NullWorkerLoader: Loader<null, never, NullLoaderOptions>;
export declare const NullWorkerLoader: {
readonly dataType: null;
readonly batchType: never;
readonly name: "Null loader";
readonly id: "null";
readonly module: "core";
readonly version: any;
readonly worker: true;
readonly mimeTypes: ["application/x.empty"];
readonly extensions: ["null"];
readonly tests: [() => false];
readonly options: {
readonly null: {};
};
};
/**
* Loads any data and returns null (or optionally passes through data unparsed)
*/
export declare const NullLoader: LoaderWithParser<null, null, NullLoaderOptions>;
export declare const NullLoader: {
readonly dataType: null;
readonly batchType: null;
readonly name: "Null loader";
readonly id: "null";
readonly module: "core";
readonly version: any;
readonly mimeTypes: ["application/x.empty"];
readonly extensions: ["null"];
readonly parse: (arrayBuffer: ArrayBuffer, options?: NullLoaderOptions, context?: LoaderContext) => Promise<null>;
readonly parseSync: typeof parseSync;
readonly parseInBatches: (asyncIterator: Iterable<ArrayBuffer> | AsyncIterable<ArrayBuffer>, options: NullLoaderOptions | undefined, context: LoaderContext | undefined) => AsyncGenerator<null, void, undefined>;
readonly tests: [() => false];
readonly options: {
readonly null: {};
};
};
/**
* Returns arguments passed to the parse API in a format that can be transferred to a
* web worker. The `context` parameter is stripped using JSON.stringify & parse.
*/
declare function parseSync(arrayBuffer: ArrayBuffer, options?: NullLoaderOptions, context?: LoaderContext): null;
export {};
//# sourceMappingURL=null-loader.d.ts.map

@@ -6,3 +6,3 @@ // loaders.gl

// @ts-ignore TS2304: Cannot find name '__VERSION__'.
const VERSION = typeof "4.2.0-alpha.5" !== 'undefined' ? "4.2.0-alpha.5" : 'latest';
const VERSION = typeof "4.2.0-alpha.6" !== 'undefined' ? "4.2.0-alpha.6" : 'latest';
/**

@@ -12,2 +12,4 @@ * Loads any data and returns null (or optionally passes through data unparsed)

export const NullWorkerLoader = {
dataType: null,
batchType: null,
name: 'Null loader',

@@ -29,2 +31,4 @@ id: 'null',

export const NullLoader = {
dataType: null,
batchType: null,
name: 'Null loader',

@@ -31,0 +35,0 @@ id: 'null',

@@ -238,4 +238,6 @@ "use strict";

// src/null-loader.ts
var VERSION = true ? "4.2.0-alpha.5" : "latest";
var VERSION = true ? "4.2.0-alpha.6" : "latest";
var NullLoader = {
dataType: null,
batchType: null,
name: "Null loader",

@@ -242,0 +244,0 @@ id: "null",

@@ -203,4 +203,6 @@ "use strict";

// src/null-loader.ts
var VERSION = true ? "4.2.0-alpha.5" : "latest";
var VERSION = true ? "4.2.0-alpha.6" : "latest";
var NullLoader = {
dataType: null,
batchType: null,
name: "Null loader",

@@ -207,0 +209,0 @@ id: "null",

{
"name": "@loaders.gl/core",
"version": "4.2.0-alpha.6",
"version": "4.2.0-beta.1",
"description": "The core API for working with loaders.gl loaders and writers",

@@ -58,8 +58,8 @@ "license": "MIT",

"dependencies": {
"@loaders.gl/loader-utils": "4.2.0-alpha.6",
"@loaders.gl/schema": "4.2.0-alpha.6",
"@loaders.gl/worker-utils": "4.2.0-alpha.6",
"@loaders.gl/loader-utils": "4.2.0-beta.1",
"@loaders.gl/schema": "4.2.0-beta.1",
"@loaders.gl/worker-utils": "4.2.0-beta.1",
"@probe.gl/log": "^4.0.2"
},
"gitHead": "37bd8ca71763529f18727ee4bf29dd176aa914ca"
"gitHead": "c386a9196516fe3ff24847b40e6c77be039cf905"
}

@@ -25,2 +25,3 @@ // loaders.gl

export {fetchFile} from './lib/fetch/fetch-file';
export {FetchError} from './lib/fetch/fetch-error';

@@ -27,0 +28,0 @@ export {readArrayBuffer} from './lib/fetch/read-array-buffer';

@@ -10,2 +10,3 @@ // loaders.gl

import {getResourceUrl, getResourceMIMEType} from '../utils/resource-utils';
import {compareMIMETypes} from '../utils/mime-type-utils';
import {getRegisteredLoaders} from './register-loaders';

@@ -220,3 +221,3 @@ import {isBlob} from '../../javascript-utils/is-type';

for (const loader of loaders) {
if (loader.mimeTypes && loader.mimeTypes.includes(mimeType)) {
if (loader.mimeTypes?.some((mimeType1) => compareMIMETypes(mimeType, mimeType1))) {
return loader;

@@ -227,3 +228,3 @@ }

// https://en.wikipedia.org/wiki/Media_type#Unregistered_tree
if (mimeType === `application/x.${loader.id}`) {
if (compareMIMETypes(mimeType, `application/x.${loader.id}`)) {
return loader;

@@ -230,0 +231,0 @@ }

@@ -5,2 +5,3 @@ // loaders.gl

// TODO - duplicates response-utils code
export function getErrorMessageFromResponseSync(response: Response): string {

@@ -10,2 +11,3 @@ return `Failed to fetch resource ${response.url}(${response.status}): ${response.statusText} `;

// TODO - duplicates response-utils code
export async function getErrorMessageFromResponse(response: Response): Promise<string> {

@@ -12,0 +14,0 @@ let message = `Failed to fetch resource ${response.url} (${response.status}): `;

@@ -7,2 +7,3 @@ // loaders.gl

import {makeResponse} from '../utils/response-utils';
// import {FetchError} from './fetch-error';

@@ -9,0 +10,0 @@ export function isNodePath(url: string): boolean {

@@ -5,3 +5,3 @@ // loaders.gl

import type {Loader, LoaderOptions} from '@loaders.gl/loader-utils';
import {Loader, LoaderOptions, registerJSModules} from '@loaders.gl/loader-utils';
import {isPureObject, isObject} from '../../javascript-utils/is-type';

@@ -57,2 +57,4 @@ import {probeLog, NullLog} from './loggers';

state.globalOptions = normalizeOptionsInternal(globalOptions, options);
// Make sure any new modules are registered
registerJSModules(options.modules);
}

@@ -59,0 +61,0 @@

@@ -12,2 +12,16 @@ // loaders.gl

/**
* Compare two MIME types, case insensitively etc.
* @param mimeType1
* @param mimeType2
* @returns true if the MIME types are equivalent
* @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types#structure_of_a_mime_type
*/
export function compareMIMETypes(mimeType1: string, mimeType2: string): boolean {
if (mimeType1.toLowerCase() === mimeType2.toLowerCase()) {
return true;
}
return false;
}
/**
* Remove extra data like `charset` from MIME types

@@ -14,0 +28,0 @@ * @param mimeString

@@ -6,3 +6,5 @@ // loaders.gl

import {isResponse} from '../../javascript-utils/is-type';
import {FetchError} from '../fetch/fetch-error';
import {getResourceContentLength, getResourceUrl, getResourceMIMEType} from './resource-utils';
import {shortenUrlForDisplay} from './url-utils';

@@ -62,4 +64,4 @@ /**

if (!response.ok) {
const message = await getResponseError(response);
throw new Error(message);
const error = await getResponseError(response);
throw error;
}

@@ -82,16 +84,22 @@ }

async function getResponseError(response: Response): Promise<string> {
let message = `Failed to fetch resource ${response.url} (${response.status}): `;
async function getResponseError(response: Response): Promise<Error> {
const shortUrl = shortenUrlForDisplay(response.url);
let message = `Failed to fetch resource (${response.status}) ${response.statusText}: ${shortUrl}`;
message = message.length > 100 ? `${message.slice(0, 100)}...` : message;
const info = {
reason: response.statusText,
url: response.url,
response
};
try {
const contentType = response.headers.get('Content-Type');
let text = response.statusText;
if (contentType?.includes('application/json')) {
text += ` ${await response.text()}`;
}
message += text;
message = message.length > 60 ? `${message.slice(0, 60)}...` : message;
info.reason = contentType?.includes('application/json')
? await response.json()
: response.text();
} catch (error) {
// eslint forbids return in a finally statement, so we just catch here
}
return message;
return new FetchError(message, info);
}

@@ -98,0 +106,0 @@

@@ -15,1 +15,10 @@ // loaders.gl

}
export function shortenUrlForDisplay(url: string): string {
if (url.length < 50) {
return url;
}
const urlEnd = url.slice(url.length - 15);
const urlStart = url.substr(0, 32);
return `${urlStart}...${urlEnd}`;
}

@@ -19,3 +19,5 @@ // loaders.gl

*/
export const NullWorkerLoader: Loader<null, never, NullLoaderOptions> = {
export const NullWorkerLoader = {
dataType: null,
batchType: null as never,
name: 'Null loader',

@@ -32,3 +34,3 @@ id: 'null',

}
};
} as const satisfies Loader<null, never, NullLoaderOptions>;

@@ -38,3 +40,6 @@ /**

*/
export const NullLoader: LoaderWithParser<null, null, NullLoaderOptions> = {
export const NullLoader = {
dataType: null,
batchType: null,
name: 'Null loader',

@@ -58,3 +63,3 @@ id: 'null',

}
};
} as const satisfies LoaderWithParser<null, null, NullLoaderOptions>;

@@ -61,0 +66,0 @@ /**

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc