@loaders.gl/core 4.3.1 → 4.4.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/dist.dev.js CHANGED
@@ -117,14 +117,14 @@ var __exports__ = (() => {
117
117
  var matches = typeof process !== "undefined" && process.version && /v([0-9]*)/.exec(process.version);
118
118
  var nodeVersion = matches && parseFloat(matches[1]) || 0;
119
119
 
120
- // ../../node_modules/@probe.gl/log/node_modules/@probe.gl/env/dist/lib/globals.js
120
+ // ../../node_modules/@probe.gl/env/dist/lib/globals.js
121
121
  var window_2 = globalThis;
122
122
  var document_2 = globalThis.document || {};
123
123
  var process_ = globalThis.process || {};
124
124
  var console_ = globalThis.console;
125
125
  var navigator_ = globalThis.navigator || {};
126
126
 
127
- // ../../node_modules/@probe.gl/log/node_modules/@probe.gl/env/dist/lib/is-electron.js
127
+ // ../../node_modules/@probe.gl/env/dist/lib/is-electron.js
128
128
  function isElectron(mockUserAgent) {
129
129
  if (typeof window !== "undefined" && window.process?.type === "renderer") {
130
130
  return true;
@@ -137,7 +137,7 @@ var __exports__ = (() => {
137
137
  return Boolean(userAgent && userAgent.indexOf("Electron") >= 0);
138
138
  }
139
139
 
140
- // ../../node_modules/@probe.gl/log/node_modules/@probe.gl/env/dist/lib/is-browser.js
140
+ // ../../node_modules/@probe.gl/env/dist/lib/is-browser.js
141
141
  function isBrowser2() {
142
142
  const isNode = (
143
143
  // @ts-expect-error
@@ -146,7 +146,7 @@ var __exports__ = (() => {
146
146
  return !isNode || isElectron();
147
147
  }
148
148
 
149
- // ../../node_modules/@probe.gl/log/node_modules/@probe.gl/env/dist/index.js
149
+ // ../../node_modules/@probe.gl/env/dist/index.js
150
150
  var VERSION = true ? "4.0.7" : "untranspiled source";
151
151
 
152
152
  // ../../node_modules/@probe.gl/log/dist/utils/local-storage.js
@@ -562,8 +562,8 @@ var __exports__ = (() => {
562
562
  }
563
563
  var log = createLog();
564
564
 
565
- // ../loader-utils/src/lib/option-utils/merge-loader-options.ts
566
- function mergeLoaderOptions(baseOptions, newOptions) {
565
+ // ../loader-utils/src/lib/option-utils/merge-options.ts
566
+ function mergeOptions(baseOptions, newOptions) {
567
567
  return mergeOptionsRecursively(baseOptions || {}, newOptions);
568
568
  }
569
569
  function mergeOptionsRecursively(baseOptions, newOptions, level = 0) {
@@ -592,8 +592,10 @@ var __exports__ = (() => {
592
592
  Object.assign(globalThis.loaders.modules, modules);
593
593
  }
594
594
 
595
+ // ../worker-utils/src/lib/npm-tag.ts
596
+ var NPM_TAG = "beta";
597
+
595
598
  // ../worker-utils/src/lib/env-utils/version.ts
596
- var NPM_TAG = "latest";
597
599
  function getVersion() {
598
600
  if (!globalThis._loadersgl_?.version) {
599
601
  globalThis._loadersgl_ = globalThis._loadersgl_ || {};
@@ -1929,7 +1931,7 @@ var __exports__ = (() => {
1929
1931
  };
1930
1932
  }
1931
1933
  async read(start, length) {
1932
- const arrayBuffer = await this.handle.slice(start, start + length).arrayBuffer();
1934
+ const arrayBuffer = await this.handle.slice(Number(start), Number(start) + Number(length)).arrayBuffer();
1933
1935
  return arrayBuffer;
1934
1936
  }
1935
1937
  };
@@ -1951,7 +1953,7 @@ var __exports__ = (() => {
1951
1953
  throw new Error("Can't instantiate NodeFile. Make sure to import @loaders.gl/polyfills first.");
1952
1954
  }
1953
1955
  /** Read data */
1954
- async read(start, end) {
1956
+ async read(start, length) {
1955
1957
  throw NOT_IMPLEMENTED;
1956
1958
  }
1957
1959
  /** Write to file. The number of bytes written will be returned */
@@ -2918,7 +2920,7 @@ var __exports__ = (() => {
2918
2920
  }
2919
2921
  async function parseWithLoader(loader, data, options, context) {
2920
2922
  validateWorkerVersion(loader);
2921
- options = mergeLoaderOptions(loader.options, options);
2923
+ options = mergeOptions(loader.options, options);
2922
2924
  if (isResponse(data)) {
2923
2925
  const response = data;
2924
2926
  const { ok, redirected, status, statusText, type, url } = response;
@@ -2982,7 +2984,7 @@ var __exports__ = (() => {
2982
2984
  );
2983
2985
  }
2984
2986
 
2985
- // ../schema/src/lib/table/simple-table/table-accessors.ts
2987
+ // ../schema-utils/src/lib/table/tables/table-accessors.ts
2986
2988
  function isTable(table) {
2987
2989
  const shape = typeof table === "object" && table?.shape;
2988
2990
  switch (shape) {
@@ -3019,7 +3021,7 @@ var __exports__ = (() => {
3019
3021
  }
3020
3022
  }
3021
3023
 
3022
- // ../schema/src/lib/table/simple-table/make-table-from-batches.ts
3024
+ // ../schema-utils/src/lib/table/batches/make-table-batch-iterator.ts
3023
3025
  function makeBatchFromTable(table) {
3024
3026
  return { ...table, length: getTableLength(table), batchType: "data" };
3025
3027
  }
@@ -3280,13 +3282,13 @@ var __exports__ = (() => {
3280
3282
  }
3281
3283
 
3282
3284
  // src/lib/api/create-data-source.ts
3283
- function createDataSource(data, sources, props) {
3284
- const { type = "auto" } = props;
3285
+ function createDataSource(data, sources, options) {
3286
+ const type = options?.core?.type || options.type || "auto";
3285
3287
  const source = type === "auto" ? selectSource(data, sources) : getSourceOfType(type, sources);
3286
3288
  if (!source) {
3287
- throw new Error("Not a valid image source type");
3289
+ throw new Error("Not a valid source type");
3288
3290
  }
3289
- return source.createDataSource(data, props);
3291
+ return source.createDataSource(data, options);
3290
3292
  }
3291
3293
  function selectSource(url, sources) {
3292
3294
  for (const service of sources) {
package/dist/dist.min.js CHANGED
@@ -4,12 +4,12 @@
4
4
  else if (typeof define === 'function' && define.amd) define([], factory);
5
5
  else if (typeof exports === 'object') exports['loaders'] = factory();
6
6
  else root['loaders'] = factory();})(globalThis, function () {
7
- "use strict";var __exports__=(()=>{var ge=Object.defineProperty;var $t=Object.getOwnPropertyDescriptor;var Dt=Object.getOwnPropertyNames;var jt=Object.prototype.hasOwnProperty;var zt=(e,r,t)=>r in e?ge(e,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[r]=t;var Sr=(e,r)=>{for(var t in r)ge(e,t,{get:r[t],enumerable:!0})},Vt=(e,r,t,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of Dt(r))!jt.call(e,n)&&n!==t&&ge(e,n,{get:()=>r[n],enumerable:!(o=$t(r,n))||o.enumerable});return e};var Ht=e=>Vt(ge({},"__esModule",{value:!0}),e);var kr=(e,r,t)=>(zt(e,typeof r!="symbol"?r+"":r,t),t);var fn={};Sr(fn,{FetchError:()=>V,JSONLoader:()=>rr,NullLoader:()=>Pt,NullWorkerLoader:()=>Ot,RequestScheduler:()=>z,_BrowserFileSystem:()=>Ee,_fetchProgress:()=>vt,_selectSource:()=>Mt,_unregisterLoaders:()=>mt,assert:()=>v,concatenateArrayBuffersAsync:()=>M,createDataSource:()=>Nt,document:()=>Ie,encode:()=>Lt,encodeInBatches:()=>Ft,encodeSync:()=>br,encodeTable:()=>yr,encodeTableAsText:()=>Et,encodeTableInBatches:()=>wr,encodeText:()=>Rt,encodeTextSync:()=>It,encodeURLtoURL:()=>xr,fetchFile:()=>P,forEach:()=>Ye,getLoaderOptions:()=>_,getPathPrefix:()=>er,global:()=>Re,isAsyncIterable:()=>le,isBrowser:()=>m,isIterable:()=>ue,isIterator:()=>me,isPromise:()=>Kr,isPureObject:()=>fe,isReadableStream:()=>O,isResponse:()=>l,isWorker:()=>Fe,isWritableStream:()=>Zr,load:()=>St,loadInBatches:()=>_t,makeIterator:()=>J,makeLineIterator:()=>Je,makeNumberedLineIterator:()=>Ke,makeStream:()=>Wt,makeTextDecoderIterator:()=>qe,makeTextEncoderIterator:()=>Qe,parse:()=>S,parseInBatches:()=>R,parseSync:()=>At,readArrayBuffer:()=>nt,registerLoaders:()=>ut,resolvePath:()=>L,selectLoader:()=>Q,selectLoaderSync:()=>q,self:()=>Be,setLoaderOptions:()=>cr,setPathPrefix:()=>Xe,window:()=>Le});function v(e,r){if(!e)throw new Error(r||"loader assertion failed.")}var b={self:typeof self<"u"&&self,window:typeof window<"u"&&window,global:typeof global<"u"&&global,document:typeof document<"u"&&document},Be=b.self||b.window||b.global||{},Le=b.window||b.self||b.global||{},Re=b.global||b.self||b.window||{},Ie=b.document||{};var m=Boolean(typeof process!="object"||String(process)!=="[object process]"||process.browser),Fe=typeof importScripts=="function",_r=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version),Gt=_r&&parseFloat(_r[1])||0;var ye=globalThis,qt=globalThis.document||{},we=globalThis.process||{},Qt=globalThis.console,pn=globalThis.navigator||{};function Er(e){if(typeof window<"u"&&window.process?.type==="renderer"||typeof process<"u"&&Boolean(process.versions?.electron))return!0;let r=typeof navigator<"u"&&navigator.userAgent,t=e||r;return Boolean(t&&t.indexOf("Electron")>=0)}function I(){return!(typeof process=="object"&&String(process)==="[object process]"&&!process?.browser)||Er()}var Ne="4.0.7";function Kt(e){try{let r=window[e],t="__storage_test__";return r.setItem(t,t),r.removeItem(t),r}catch{return null}}var be=class{constructor(r,t,o="sessionStorage"){this.storage=Kt(o),this.id=r,this.config=t,this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(r){if(Object.assign(this.config,r),this.storage){let t=JSON.stringify(this.config);this.storage.setItem(this.id,t)}}_loadConfiguration(){let r={};if(this.storage){let t=this.storage.getItem(this.id);r=t?JSON.parse(t):{}}return Object.assign(this.config,r),this}};function Br(e){let r;return e<10?r=`${e.toFixed(2)}ms`:e<100?r=`${e.toFixed(1)}ms`:e<1e3?r=`${e.toFixed(0)}ms`:r=`${(e/1e3).toFixed(2)}s`,r}function Lr(e,r=8){let t=Math.max(r-e.length,0);return`${" ".repeat(t)}${e}`}var xe;(function(e){e[e.BLACK=30]="BLACK",e[e.RED=31]="RED",e[e.GREEN=32]="GREEN",e[e.YELLOW=33]="YELLOW",e[e.BLUE=34]="BLUE",e[e.MAGENTA=35]="MAGENTA",e[e.CYAN=36]="CYAN",e[e.WHITE=37]="WHITE",e[e.BRIGHT_BLACK=90]="BRIGHT_BLACK",e[e.BRIGHT_RED=91]="BRIGHT_RED",e[e.BRIGHT_GREEN=92]="BRIGHT_GREEN",e[e.BRIGHT_YELLOW=93]="BRIGHT_YELLOW",e[e.BRIGHT_BLUE=94]="BRIGHT_BLUE",e[e.BRIGHT_MAGENTA=95]="BRIGHT_MAGENTA",e[e.BRIGHT_CYAN=96]="BRIGHT_CYAN",e[e.BRIGHT_WHITE=97]="BRIGHT_WHITE"})(xe||(xe={}));var Yt=10;function Rr(e){return typeof e!="string"?e:(e=e.toUpperCase(),xe[e]||xe.WHITE)}function Ir(e,r,t){return!I&&typeof e=="string"&&(r&&(e=`\x1B[${Rr(r)}m${e}\x1B[39m`),t&&(e=`\x1B[${Rr(t)+Yt}m${e}\x1B[49m`)),e}function Fr(e,r=["constructor"]){let t=Object.getPrototypeOf(e),o=Object.getOwnPropertyNames(t),n=e;for(let s of o){let i=n[s];typeof i=="function"&&(r.find(a=>s===a)||(n[s]=i.bind(e)))}}function Z(e,r){if(!e)throw new Error(r||"Assertion failed")}function F(){let e;if(I()&&ye.performance)e=ye?.performance?.now?.();else if("hrtime"in we){let r=we?.hrtime?.();e=r[0]*1e3+r[1]/1e6}else e=Date.now();return e}var U={debug:I()&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},Zt={enabled:!0,level:0};function $(){}var Nr={},Mr={once:!0},x=class{constructor({id:r}={id:""}){this.VERSION=Ne,this._startTs=F(),this._deltaTs=F(),this.userData={},this.LOG_THROTTLE_TIMEOUT=0,this.id=r,this.userData={},this._storage=new be(`__probe-${this.id}__`,Zt),this.timeStamp(`${this.id} started`),Fr(this),Object.seal(this)}set level(r){this.setLevel(r)}get level(){return this.getLevel()}isEnabled(){return this._storage.config.enabled}getLevel(){return this._storage.config.level}getTotal(){return Number((F()-this._startTs).toPrecision(10))}getDelta(){return Number((F()-this._deltaTs).toPrecision(10))}set priority(r){this.level=r}get priority(){return this.level}getPriority(){return this.level}enable(r=!0){return this._storage.setConfiguration({enabled:r}),this}setLevel(r){return this._storage.setConfiguration({level:r}),this}get(r){return this._storage.config[r]}set(r,t){this._storage.setConfiguration({[r]:t})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert(r,t){if(!r)throw new Error(t||"Assertion failed")}warn(r){return this._getLogFunction(0,r,U.warn,arguments,Mr)}error(r){return this._getLogFunction(0,r,U.error,arguments)}deprecated(r,t){return this.warn(`\`${r}\` is deprecated and will be removed in a later version. Use \`${t}\` instead`)}removed(r,t){return this.error(`\`${r}\` has been removed. Use \`${t}\` instead`)}probe(r,t){return this._getLogFunction(r,t,U.log,arguments,{time:!0,once:!0})}log(r,t){return this._getLogFunction(r,t,U.debug,arguments)}info(r,t){return this._getLogFunction(r,t,console.info,arguments)}once(r,t){return this._getLogFunction(r,t,U.debug||U.info,arguments,Mr)}table(r,t,o){return t?this._getLogFunction(r,t,console.table||$,o&&[o],{tag:eo(t)}):$}time(r,t){return this._getLogFunction(r,t,console.time?console.time:console.info)}timeEnd(r,t){return this._getLogFunction(r,t,console.timeEnd?console.timeEnd:console.info)}timeStamp(r,t){return this._getLogFunction(r,t,console.timeStamp||$)}group(r,t,o={collapsed:!1}){let n=Wr({logLevel:r,message:t,opts:o}),{collapsed:s}=o;return n.method=(s?console.groupCollapsed:console.group)||console.info,this._getLogFunction(n)}groupCollapsed(r,t,o={}){return this.group(r,t,Object.assign({},o,{collapsed:!0}))}groupEnd(r){return this._getLogFunction(r,"",console.groupEnd||$)}withGroup(r,t,o){this.group(r,t)();try{o()}finally{this.groupEnd(r)()}}trace(){console.trace&&console.trace()}_shouldLog(r){return this.isEnabled()&&this.getLevel()>=Cr(r)}_getLogFunction(r,t,o,n,s){if(this._shouldLog(r)){s=Wr({logLevel:r,message:t,args:n,opts:s}),o=o||s.method,Z(o),s.total=this.getTotal(),s.delta=this.getDelta(),this._deltaTs=F();let i=s.tag||s.message;if(s.once&&i)if(!Nr[i])Nr[i]=F();else return $;return t=Xt(this.id,s.message,s),o.bind(console,t,...s.args)}return $}};x.VERSION=Ne;function Cr(e){if(!e)return 0;let r;switch(typeof e){case"number":r=e;break;case"object":r=e.logLevel||e.priority||0;break;default:return 0}return Z(Number.isFinite(r)&&r>=0),r}function Wr(e){let{logLevel:r,message:t}=e;e.logLevel=Cr(r);let o=e.args?Array.from(e.args):[];for(;o.length&&o.shift()!==t;);switch(typeof r){case"string":case"function":t!==void 0&&o.unshift(t),e.message=r;break;case"object":Object.assign(e,r);break;default:}typeof e.message=="function"&&(e.message=e.message());let n=typeof e.message;return Z(n==="string"||n==="object"),Object.assign(e,{args:o},e.opts)}function Xt(e,r,t){if(typeof r=="string"){let o=t.time?Lr(Br(t.total)):"";r=t.time?`${e}: ${o} ${r}`:`${e}: ${r}`,r=Ir(r,t.color,t.background)}return r}function eo(e){for(let r in e)for(let t in e[r])return t||"untitled";return"empty"}globalThis.probe={};var vn=new x({id:"@probe.gl/log"});var Me="4.3.0",ro=Me[0]>="0"&&Me[0]<="9"?`v${Me}`:"";function to(){let e=new x({id:"loaders.gl"});return globalThis.loaders=globalThis.loaders||{},globalThis.loaders.log=e,globalThis.loaders.version=ro,globalThis.probe=globalThis.probe||{},globalThis.probe.loaders=e,e}var We=to();function Ce(e,r){return Or(e||{},r)}function Or(e,r,t=0){if(t>3)return r;let o={...e};for(let[n,s]of Object.entries(r))s&&typeof s=="object"&&!Array.isArray(s)?o[n]=Or(o[n]||{},r[n],t+1):o[n]=r[n];return o}function Oe(e){globalThis.loaders||={},globalThis.loaders.modules||={},Object.assign(globalThis.loaders.modules,e)}var Pr="latest";function oo(){return globalThis._loadersgl_?.version||(globalThis._loadersgl_=globalThis._loadersgl_||{},globalThis._loadersgl_.version="4.3.0"),globalThis._loadersgl_.version}var X=oo();function u(e,r){if(!e)throw new Error(r||"loaders.gl assertion failed.")}var T={self:typeof self<"u"&&self,window:typeof window<"u"&&window,global:typeof global<"u"&&global,document:typeof document<"u"&&document},Qn=T.self||T.window||T.global||{},Jn=T.window||T.self||T.global||{},Kn=T.global||T.self||T.window||{},Yn=T.document||{};var h=typeof process!="object"||String(process)!=="[object process]"||process.browser;var Ur=typeof window<"u"&&typeof window.orientation<"u",vr=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version),Zn=vr&&parseFloat(vr[1])||0;var ee=class{name;workerThread;isRunning=!0;result;_resolve=()=>{};_reject=()=>{};constructor(r,t){this.name=r,this.workerThread=t,this.result=new Promise((o,n)=>{this._resolve=o,this._reject=n})}postMessage(r,t){this.workerThread.postMessage({source:"loaders.gl",type:r,payload:t})}done(r){u(this.isRunning),this.isRunning=!1,this._resolve(r)}error(r){u(this.isRunning),this.isRunning=!1,this._reject(r)}};var D=class{terminate(){}};var Pe=new Map;function $r(e){u(e.source&&!e.url||!e.source&&e.url);let r=Pe.get(e.source||e.url);return r||(e.url&&(r=no(e.url),Pe.set(e.url,r)),e.source&&(r=Dr(e.source),Pe.set(e.source,r))),u(r),r}function no(e){if(!e.startsWith("http"))return e;let r=so(e);return Dr(r)}function Dr(e){let r=new Blob([e],{type:"application/javascript"});return URL.createObjectURL(r)}function so(e){return`try {
7
+ "use strict";var __exports__=(()=>{var ge=Object.defineProperty;var Ut=Object.getOwnPropertyDescriptor;var Dt=Object.getOwnPropertyNames;var jt=Object.prototype.hasOwnProperty;var zt=(e,r,t)=>r in e?ge(e,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[r]=t;var Sr=(e,r)=>{for(var t in r)ge(e,t,{get:r[t],enumerable:!0})},Vt=(e,r,t,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of Dt(r))!jt.call(e,n)&&n!==t&&ge(e,n,{get:()=>r[n],enumerable:!(o=Ut(r,n))||o.enumerable});return e};var Ht=e=>Vt(ge({},"__esModule",{value:!0}),e);var kr=(e,r,t)=>(zt(e,typeof r!="symbol"?r+"":r,t),t);var fn={};Sr(fn,{FetchError:()=>V,JSONLoader:()=>rr,NullLoader:()=>Ct,NullWorkerLoader:()=>Pt,RequestScheduler:()=>z,_BrowserFileSystem:()=>Ee,_fetchProgress:()=>vt,_selectSource:()=>Mt,_unregisterLoaders:()=>mt,assert:()=>v,concatenateArrayBuffersAsync:()=>M,createDataSource:()=>Nt,document:()=>Ie,encode:()=>Lt,encodeInBatches:()=>Ft,encodeSync:()=>br,encodeTable:()=>yr,encodeTableAsText:()=>Et,encodeTableInBatches:()=>wr,encodeText:()=>Rt,encodeTextSync:()=>It,encodeURLtoURL:()=>xr,fetchFile:()=>C,forEach:()=>Ye,getLoaderOptions:()=>_,getPathPrefix:()=>er,global:()=>Re,isAsyncIterable:()=>le,isBrowser:()=>m,isIterable:()=>ue,isIterator:()=>me,isPromise:()=>Kr,isPureObject:()=>fe,isReadableStream:()=>P,isResponse:()=>l,isWorker:()=>Fe,isWritableStream:()=>Zr,load:()=>St,loadInBatches:()=>_t,makeIterator:()=>J,makeLineIterator:()=>Je,makeNumberedLineIterator:()=>Ke,makeStream:()=>Ot,makeTextDecoderIterator:()=>qe,makeTextEncoderIterator:()=>Qe,parse:()=>S,parseInBatches:()=>R,parseSync:()=>At,readArrayBuffer:()=>nt,registerLoaders:()=>ut,resolvePath:()=>L,selectLoader:()=>Q,selectLoaderSync:()=>q,self:()=>Be,setLoaderOptions:()=>cr,setPathPrefix:()=>Xe,window:()=>Le});function v(e,r){if(!e)throw new Error(r||"loader assertion failed.")}var b={self:typeof self<"u"&&self,window:typeof window<"u"&&window,global:typeof global<"u"&&global,document:typeof document<"u"&&document},Be=b.self||b.window||b.global||{},Le=b.window||b.self||b.global||{},Re=b.global||b.self||b.window||{},Ie=b.document||{};var m=Boolean(typeof process!="object"||String(process)!=="[object process]"||process.browser),Fe=typeof importScripts=="function",_r=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version),Gt=_r&&parseFloat(_r[1])||0;var ye=globalThis,qt=globalThis.document||{},we=globalThis.process||{},Qt=globalThis.console,pn=globalThis.navigator||{};function Er(e){if(typeof window<"u"&&window.process?.type==="renderer"||typeof process<"u"&&Boolean(process.versions?.electron))return!0;let r=typeof navigator<"u"&&navigator.userAgent,t=e||r;return Boolean(t&&t.indexOf("Electron")>=0)}function I(){return!(typeof process=="object"&&String(process)==="[object process]"&&!process?.browser)||Er()}var Ne="4.0.7";function Kt(e){try{let r=window[e],t="__storage_test__";return r.setItem(t,t),r.removeItem(t),r}catch{return null}}var be=class{constructor(r,t,o="sessionStorage"){this.storage=Kt(o),this.id=r,this.config=t,this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(r){if(Object.assign(this.config,r),this.storage){let t=JSON.stringify(this.config);this.storage.setItem(this.id,t)}}_loadConfiguration(){let r={};if(this.storage){let t=this.storage.getItem(this.id);r=t?JSON.parse(t):{}}return Object.assign(this.config,r),this}};function Br(e){let r;return e<10?r=`${e.toFixed(2)}ms`:e<100?r=`${e.toFixed(1)}ms`:e<1e3?r=`${e.toFixed(0)}ms`:r=`${(e/1e3).toFixed(2)}s`,r}function Lr(e,r=8){let t=Math.max(r-e.length,0);return`${" ".repeat(t)}${e}`}var xe;(function(e){e[e.BLACK=30]="BLACK",e[e.RED=31]="RED",e[e.GREEN=32]="GREEN",e[e.YELLOW=33]="YELLOW",e[e.BLUE=34]="BLUE",e[e.MAGENTA=35]="MAGENTA",e[e.CYAN=36]="CYAN",e[e.WHITE=37]="WHITE",e[e.BRIGHT_BLACK=90]="BRIGHT_BLACK",e[e.BRIGHT_RED=91]="BRIGHT_RED",e[e.BRIGHT_GREEN=92]="BRIGHT_GREEN",e[e.BRIGHT_YELLOW=93]="BRIGHT_YELLOW",e[e.BRIGHT_BLUE=94]="BRIGHT_BLUE",e[e.BRIGHT_MAGENTA=95]="BRIGHT_MAGENTA",e[e.BRIGHT_CYAN=96]="BRIGHT_CYAN",e[e.BRIGHT_WHITE=97]="BRIGHT_WHITE"})(xe||(xe={}));var Yt=10;function Rr(e){return typeof e!="string"?e:(e=e.toUpperCase(),xe[e]||xe.WHITE)}function Ir(e,r,t){return!I&&typeof e=="string"&&(r&&(e=`\x1B[${Rr(r)}m${e}\x1B[39m`),t&&(e=`\x1B[${Rr(t)+Yt}m${e}\x1B[49m`)),e}function Fr(e,r=["constructor"]){let t=Object.getPrototypeOf(e),o=Object.getOwnPropertyNames(t),n=e;for(let s of o){let i=n[s];typeof i=="function"&&(r.find(a=>s===a)||(n[s]=i.bind(e)))}}function Z(e,r){if(!e)throw new Error(r||"Assertion failed")}function F(){let e;if(I()&&ye.performance)e=ye?.performance?.now?.();else if("hrtime"in we){let r=we?.hrtime?.();e=r[0]*1e3+r[1]/1e6}else e=Date.now();return e}var $={debug:I()&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},Zt={enabled:!0,level:0};function U(){}var Nr={},Mr={once:!0},x=class{constructor({id:r}={id:""}){this.VERSION=Ne,this._startTs=F(),this._deltaTs=F(),this.userData={},this.LOG_THROTTLE_TIMEOUT=0,this.id=r,this.userData={},this._storage=new be(`__probe-${this.id}__`,Zt),this.timeStamp(`${this.id} started`),Fr(this),Object.seal(this)}set level(r){this.setLevel(r)}get level(){return this.getLevel()}isEnabled(){return this._storage.config.enabled}getLevel(){return this._storage.config.level}getTotal(){return Number((F()-this._startTs).toPrecision(10))}getDelta(){return Number((F()-this._deltaTs).toPrecision(10))}set priority(r){this.level=r}get priority(){return this.level}getPriority(){return this.level}enable(r=!0){return this._storage.setConfiguration({enabled:r}),this}setLevel(r){return this._storage.setConfiguration({level:r}),this}get(r){return this._storage.config[r]}set(r,t){this._storage.setConfiguration({[r]:t})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert(r,t){if(!r)throw new Error(t||"Assertion failed")}warn(r){return this._getLogFunction(0,r,$.warn,arguments,Mr)}error(r){return this._getLogFunction(0,r,$.error,arguments)}deprecated(r,t){return this.warn(`\`${r}\` is deprecated and will be removed in a later version. Use \`${t}\` instead`)}removed(r,t){return this.error(`\`${r}\` has been removed. Use \`${t}\` instead`)}probe(r,t){return this._getLogFunction(r,t,$.log,arguments,{time:!0,once:!0})}log(r,t){return this._getLogFunction(r,t,$.debug,arguments)}info(r,t){return this._getLogFunction(r,t,console.info,arguments)}once(r,t){return this._getLogFunction(r,t,$.debug||$.info,arguments,Mr)}table(r,t,o){return t?this._getLogFunction(r,t,console.table||U,o&&[o],{tag:eo(t)}):U}time(r,t){return this._getLogFunction(r,t,console.time?console.time:console.info)}timeEnd(r,t){return this._getLogFunction(r,t,console.timeEnd?console.timeEnd:console.info)}timeStamp(r,t){return this._getLogFunction(r,t,console.timeStamp||U)}group(r,t,o={collapsed:!1}){let n=Or({logLevel:r,message:t,opts:o}),{collapsed:s}=o;return n.method=(s?console.groupCollapsed:console.group)||console.info,this._getLogFunction(n)}groupCollapsed(r,t,o={}){return this.group(r,t,Object.assign({},o,{collapsed:!0}))}groupEnd(r){return this._getLogFunction(r,"",console.groupEnd||U)}withGroup(r,t,o){this.group(r,t)();try{o()}finally{this.groupEnd(r)()}}trace(){console.trace&&console.trace()}_shouldLog(r){return this.isEnabled()&&this.getLevel()>=Wr(r)}_getLogFunction(r,t,o,n,s){if(this._shouldLog(r)){s=Or({logLevel:r,message:t,args:n,opts:s}),o=o||s.method,Z(o),s.total=this.getTotal(),s.delta=this.getDelta(),this._deltaTs=F();let i=s.tag||s.message;if(s.once&&i)if(!Nr[i])Nr[i]=F();else return U;return t=Xt(this.id,s.message,s),o.bind(console,t,...s.args)}return U}};x.VERSION=Ne;function Wr(e){if(!e)return 0;let r;switch(typeof e){case"number":r=e;break;case"object":r=e.logLevel||e.priority||0;break;default:return 0}return Z(Number.isFinite(r)&&r>=0),r}function Or(e){let{logLevel:r,message:t}=e;e.logLevel=Wr(r);let o=e.args?Array.from(e.args):[];for(;o.length&&o.shift()!==t;);switch(typeof r){case"string":case"function":t!==void 0&&o.unshift(t),e.message=r;break;case"object":Object.assign(e,r);break;default:}typeof e.message=="function"&&(e.message=e.message());let n=typeof e.message;return Z(n==="string"||n==="object"),Object.assign(e,{args:o},e.opts)}function Xt(e,r,t){if(typeof r=="string"){let o=t.time?Lr(Br(t.total)):"";r=t.time?`${e}: ${o} ${r}`:`${e}: ${r}`,r=Ir(r,t.color,t.background)}return r}function eo(e){for(let r in e)for(let t in e[r])return t||"untitled";return"empty"}globalThis.probe={};var vn=new x({id:"@probe.gl/log"});var Me="4.4.0-alpha.0",ro=Me[0]>="0"&&Me[0]<="9"?`v${Me}`:"";function to(){let e=new x({id:"loaders.gl"});return globalThis.loaders=globalThis.loaders||{},globalThis.loaders.log=e,globalThis.loaders.version=ro,globalThis.probe=globalThis.probe||{},globalThis.probe.loaders=e,e}var Oe=to();function We(e,r){return Pr(e||{},r)}function Pr(e,r,t=0){if(t>3)return r;let o={...e};for(let[n,s]of Object.entries(r))s&&typeof s=="object"&&!Array.isArray(s)?o[n]=Pr(o[n]||{},r[n],t+1):o[n]=r[n];return o}function Pe(e){globalThis.loaders||={},globalThis.loaders.modules||={},Object.assign(globalThis.loaders.modules,e)}var Cr="beta";function oo(){return globalThis._loadersgl_?.version||(globalThis._loadersgl_=globalThis._loadersgl_||{},globalThis._loadersgl_.version="4.4.0-alpha.0"),globalThis._loadersgl_.version}var X=oo();function u(e,r){if(!e)throw new Error(r||"loaders.gl assertion failed.")}var T={self:typeof self<"u"&&self,window:typeof window<"u"&&window,global:typeof global<"u"&&global,document:typeof document<"u"&&document},Jn=T.self||T.window||T.global||{},Kn=T.window||T.self||T.global||{},Yn=T.global||T.self||T.window||{},Zn=T.document||{};var h=typeof process!="object"||String(process)!=="[object process]"||process.browser;var $r=typeof window<"u"&&typeof window.orientation<"u",vr=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version),Xn=vr&&parseFloat(vr[1])||0;var ee=class{name;workerThread;isRunning=!0;result;_resolve=()=>{};_reject=()=>{};constructor(r,t){this.name=r,this.workerThread=t,this.result=new Promise((o,n)=>{this._resolve=o,this._reject=n})}postMessage(r,t){this.workerThread.postMessage({source:"loaders.gl",type:r,payload:t})}done(r){u(this.isRunning),this.isRunning=!1,this._resolve(r)}error(r){u(this.isRunning),this.isRunning=!1,this._reject(r)}};var D=class{terminate(){}};var Ce=new Map;function Ur(e){u(e.source&&!e.url||!e.source&&e.url);let r=Ce.get(e.source||e.url);return r||(e.url&&(r=no(e.url),Ce.set(e.url,r)),e.source&&(r=Dr(e.source),Ce.set(e.source,r))),u(r),r}function no(e){if(!e.startsWith("http"))return e;let r=so(e);return Dr(r)}function Dr(e){let r=new Blob([e],{type:"application/javascript"});return URL.createObjectURL(r)}function so(e){return`try {
8
8
  importScripts('${e}');
9
9
  } catch (error) {
10
10
  console.error(error);
11
11
  throw error;
12
- }`}function ve(e,r=!0,t){let o=t||new Set;if(e){if(jr(e))o.add(e);else if(jr(e.buffer))o.add(e.buffer);else if(!ArrayBuffer.isView(e)){if(r&&typeof e=="object")for(let n in e)ve(e[n],r,o)}}return t===void 0?Array.from(o):[]}function jr(e){return e?e instanceof ArrayBuffer||typeof MessagePort<"u"&&e instanceof MessagePort||typeof ImageBitmap<"u"&&e instanceof ImageBitmap||typeof OffscreenCanvas<"u"&&e instanceof OffscreenCanvas:!1}function Ue(e){if(e===null)return{};let r=Object.assign({},e);return Object.keys(r).forEach(t=>{typeof e[t]=="object"&&!ArrayBuffer.isView(e[t])&&!(e[t]instanceof Array)?r[t]=Ue(e[t]):typeof r[t]=="function"||r[t]instanceof RegExp?r[t]={}:r[t]=e[t]}),r}var $e=()=>{},B=class{name;source;url;terminated=!1;worker;onMessage;onError;_loadableURL="";static isSupported(){return typeof Worker<"u"&&h||typeof D<"u"&&!h}constructor(r){let{name:t,source:o,url:n}=r;u(o||n),this.name=t,this.source=o,this.url=n,this.onMessage=$e,this.onError=s=>console.log(s),this.worker=h?this._createBrowserWorker():this._createNodeWorker()}destroy(){this.onMessage=$e,this.onError=$e,this.worker.terminate(),this.terminated=!0}get isRunning(){return Boolean(this.onMessage)}postMessage(r,t){t=t||ve(r),this.worker.postMessage(r,t)}_getErrorFromErrorEvent(r){let t="Failed to load ";return t+=`worker ${this.name} from ${this.url}. `,r.message&&(t+=`${r.message} in `),r.lineno&&(t+=`:${r.lineno}:${r.colno}`),new Error(t)}_createBrowserWorker(){this._loadableURL=$r({source:this.source,url:this.url});let r=new Worker(this._loadableURL,{name:this.name});return r.onmessage=t=>{t.data?this.onMessage(t.data):this.onError(new Error("No data received"))},r.onerror=t=>{this.onError(this._getErrorFromErrorEvent(t)),this.terminated=!0},r.onmessageerror=t=>console.error(t),r}_createNodeWorker(){let r;if(this.url){let o=this.url.includes(":/")||this.url.startsWith("/")?this.url:`./${this.url}`;r=new D(o,{eval:!1})}else if(this.source)r=new D(this.source,{eval:!0});else throw new Error("no worker");return r.on("message",t=>{this.onMessage(t)}),r.on("error",t=>{this.onError(t)}),r.on("exit",t=>{}),r}};var re=class{name="unnamed";source;url;maxConcurrency=1;maxMobileConcurrency=1;onDebug=()=>{};reuseWorkers=!0;props={};jobQueue=[];idleQueue=[];count=0;isDestroyed=!1;static isSupported(){return B.isSupported()}constructor(r){this.source=r.source,this.url=r.url,this.setProps(r)}destroy(){this.idleQueue.forEach(r=>r.destroy()),this.isDestroyed=!0}setProps(r){this.props={...this.props,...r},r.name!==void 0&&(this.name=r.name),r.maxConcurrency!==void 0&&(this.maxConcurrency=r.maxConcurrency),r.maxMobileConcurrency!==void 0&&(this.maxMobileConcurrency=r.maxMobileConcurrency),r.reuseWorkers!==void 0&&(this.reuseWorkers=r.reuseWorkers),r.onDebug!==void 0&&(this.onDebug=r.onDebug)}async startJob(r,t=(n,s,i)=>n.done(i),o=(n,s)=>n.error(s)){let n=new Promise(s=>(this.jobQueue.push({name:r,onMessage:t,onError:o,onStart:s}),this));return this._startQueuedJob(),await n}async _startQueuedJob(){if(!this.jobQueue.length)return;let r=this._getAvailableWorker();if(!r)return;let t=this.jobQueue.shift();if(t){this.onDebug({message:"Starting job",name:t.name,workerThread:r,backlog:this.jobQueue.length});let o=new ee(t.name,r);r.onMessage=n=>t.onMessage(o,n.type,n.payload),r.onError=n=>t.onError(o,n),t.onStart(o);try{await o.result}catch(n){console.error(`Worker exception: ${n}`)}finally{this.returnWorkerToQueue(r)}}}returnWorkerToQueue(r){!h||this.isDestroyed||!this.reuseWorkers||this.count>this._getMaxConcurrency()?(r.destroy(),this.count--):this.idleQueue.push(r),this.isDestroyed||this._startQueuedJob()}_getAvailableWorker(){if(this.idleQueue.length>0)return this.idleQueue.shift()||null;if(this.count<this._getMaxConcurrency()){this.count++;let r=`${this.name.toLowerCase()} (#${this.count} of ${this.maxConcurrency})`;return new B({name:r,source:this.source,url:this.url})}return null}_getMaxConcurrency(){return Ur?this.maxMobileConcurrency:this.maxConcurrency}};var io={maxConcurrency:3,maxMobileConcurrency:1,reuseWorkers:!0,onDebug:()=>{}},N=class{props;workerPools=new Map;static isSupported(){return B.isSupported()}static getWorkerFarm(r={}){return N._workerFarm=N._workerFarm||new N({}),N._workerFarm.setProps(r),N._workerFarm}constructor(r){this.props={...io},this.setProps(r),this.workerPools=new Map}destroy(){for(let r of this.workerPools.values())r.destroy();this.workerPools=new Map}setProps(r){this.props={...this.props,...r};for(let t of this.workerPools.values())t.setProps(this._getWorkerPoolProps())}getWorkerPool(r){let{name:t,source:o,url:n}=r,s=this.workerPools.get(t);return s||(s=new re({name:t,source:o,url:n}),s.setProps(this._getWorkerPoolProps()),this.workerPools.set(t,s)),s}_getWorkerPoolProps(){return{maxConcurrency:this.props.maxConcurrency,maxMobileConcurrency:this.props.maxMobileConcurrency,reuseWorkers:this.props.reuseWorkers,onDebug:this.props.onDebug}}},d=N;kr(d,"_workerFarm");function zr(e){let r=e.version!==X?` (worker-utils@${X})`:"";return`${e.name}@${e.version}${r}`}function te(e,r={}){let t=r[e.id]||{},o=h?`${e.id}-worker.js`:`${e.id}-worker-node.js`,n=t.workerUrl;if(!n&&e.id==="compression"&&(n=r.workerUrl),r._workerType==="test"&&(h?n=`modules/${e.module}/dist/${o}`:n=`modules/${e.module}/src/workers/${e.id}-worker-node.ts`),!n){let s=e.version;s==="latest"&&(s=Pr);let i=s?`@${s}`:"";n=`https://unpkg.com/@loaders.gl/${e.module}${i}/dist/${o}`}return u(n),n}async function De(e,r,t={},o={}){let n=zr(e),s=d.getWorkerFarm(t),{source:i}=t,a={name:n,source:i};i||(a.url=te(e,t));let c=s.getWorkerPool(a),f=t.jobName||e.name,k=await c.startJob(f,ao.bind(null,o)),E=Ue(t);return k.postMessage("process",{input:r,options:E}),(await k.result).result}async function ao(e,r,t,o){switch(t){case"done":r.done(o);break;case"error":r.error(new Error(o.error));break;case"process":let{id:n,input:s,options:i}=o;try{if(!e.process){r.postMessage("error",{id:n,error:"Worker not set up to process on main thread"});return}let a=await e.process(s,i);r.postMessage("done",{id:n,result:a})}catch(a){let c=a instanceof Error?a.message:"unknown error";r.postMessage("error",{id:n,error:c})}break;default:console.warn(`process-on-worker: unknown message ${t}`)}}function je(e,r=X){u(e,"no worker provided");let t=e.version;return!(!r||!t)}function ze(e,r){return!d.isSupported()||!h&&!r?._nodeWorkers?!1:e.worker&&r?.worker}async function Ve(e,r,t,o,n){let s=e.id,i=te(e,t),c=d.getWorkerFarm(t).getWorkerPool({name:s,url:i});t=JSON.parse(JSON.stringify(t)),o=JSON.parse(JSON.stringify(o||{}));let f=await c.startJob("process-on-worker",co.bind(null,n));return f.postMessage("process",{input:r,options:t,context:o}),await(await f.result).result}async function co(e,r,t,o){switch(t){case"done":r.done(o);break;case"error":r.error(new Error(o.error));break;case"process":let{id:n,input:s,options:i}=o;try{let a=await e(s,i);r.postMessage("done",{id:n,result:a})}catch(a){let c=a instanceof Error?a.message:"unknown error";r.postMessage("error",{id:n,error:c})}break;default:console.warn(`parse-with-worker unknown message ${t}`)}}function He(e,r){return!d.isSupported()||!m&&!r?._nodeWorkers?!1:e.worker&&r?.worker}function Ge(e,r,t){if(t=t||e.byteLength,e.byteLength<t||r.byteLength<t)return!1;let o=new Uint8Array(e),n=new Uint8Array(r);for(let s=0;s<o.length;++s)if(o[s]!==n[s])return!1;return!0}function oe(...e){return Vr(e)}function Vr(e){let r=e.map(s=>s instanceof ArrayBuffer?new Uint8Array(s):s),t=r.reduce((s,i)=>s+i.byteLength,0),o=new Uint8Array(t),n=0;for(let s of r)o.set(s,n),n+=s.byteLength;return o.buffer}async function*qe(e,r={}){let t=new TextDecoder(void 0,r);for await(let o of e)yield typeof o=="string"?o:t.decode(o,{stream:!0})}async function*Qe(e){let r=new TextEncoder;for await(let t of e)yield typeof t=="string"?r.encode(t):t}async function*Je(e){let r="";for await(let t of e){r+=t;let o;for(;(o=r.indexOf(`
13
- `))>=0;){let n=r.slice(0,o+1);r=r.slice(o+1),yield n}}r.length>0&&(yield r)}async function*Ke(e){let r=1;for await(let t of e)yield{counter:r,line:t},r++}async function Ye(e,r){for(;;){let{done:t,value:o}=await e.next();if(t){e.return();return}if(r(o))return}}async function M(e){let r=[];for await(let t of e)r.push(t);return oe(...r)}function ne(){let e;if(typeof window<"u"&&window.performance)e=window.performance.now();else if(typeof process<"u"&&process.hrtime){let r=process.hrtime();e=r[0]*1e3+r[1]/1e6}else e=Date.now();return e}var W=class{constructor(r,t){this.sampleSize=1,this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this.name=r,this.type=t,this.reset()}reset(){return this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this}setSampleSize(r){return this.sampleSize=r,this}incrementCount(){return this.addCount(1),this}decrementCount(){return this.subtractCount(1),this}addCount(r){return this._count+=r,this._samples++,this._checkSampling(),this}subtractCount(r){return this._count-=r,this._samples++,this._checkSampling(),this}addTime(r){return this._time+=r,this.lastTiming=r,this._samples++,this._checkSampling(),this}timeStart(){return this._startTime=ne(),this._timerPending=!0,this}timeEnd(){return this._timerPending?(this.addTime(ne()-this._startTime),this._timerPending=!1,this._checkSampling(),this):this}getSampleAverageCount(){return this.sampleSize>0?this.lastSampleCount/this.sampleSize:0}getSampleAverageTime(){return this.sampleSize>0?this.lastSampleTime/this.sampleSize:0}getSampleHz(){return this.lastSampleTime>0?this.sampleSize/(this.lastSampleTime/1e3):0}getAverageCount(){return this.samples>0?this.count/this.samples:0}getAverageTime(){return this.samples>0?this.time/this.samples:0}getHz(){return this.time>0?this.samples/(this.time/1e3):0}_checkSampling(){this._samples===this.sampleSize&&(this.lastSampleTime=this._time,this.lastSampleCount=this._count,this.count+=this._count,this.time+=this._time,this.samples+=this._samples,this._time=0,this._count=0,this._samples=0)}};var j=class{constructor(r){this.stats={},this.id=r.id,this.stats={},this._initializeStats(r.stats),Object.seal(this)}get(r,t="count"){return this._getOrCreate({name:r,type:t})}get size(){return Object.keys(this.stats).length}reset(){for(let r of Object.values(this.stats))r.reset();return this}forEach(r){for(let t of Object.values(this.stats))r(t)}getTable(){let r={};return this.forEach(t=>{r[t.name]={time:t.time||0,count:t.count||0,average:t.getAverageTime()||0,hz:t.getHz()||0}}),r}_initializeStats(r=[]){r.forEach(t=>this._getOrCreate(t))}_getOrCreate(r){let{name:t,type:o}=r,n=this.stats[t];return n||(r instanceof W?n=r:n=new W(t,o),this.stats[t]=n),n}};var fo="Queued Requests",uo="Active Requests",lo="Cancelled Requests",mo="Queued Requests Ever",po="Active Requests Ever",ho={id:"request-scheduler",throttleRequests:!0,maxRequests:6,debounceTime:0},z=class{props;stats;activeRequestCount=0;requestQueue=[];requestMap=new Map;updateTimer=null;constructor(r={}){this.props={...ho,...r},this.stats=new j({id:this.props.id}),this.stats.get(fo),this.stats.get(uo),this.stats.get(lo),this.stats.get(mo),this.stats.get(po)}scheduleRequest(r,t=()=>0){if(!this.props.throttleRequests)return Promise.resolve({done:()=>{}});if(this.requestMap.has(r))return this.requestMap.get(r);let o={handle:r,priority:0,getPriority:t},n=new Promise(s=>(o.resolve=s,o));return this.requestQueue.push(o),this.requestMap.set(r,n),this._issueNewRequests(),n}_issueRequest(r){let{handle:t,resolve:o}=r,n=!1,s=()=>{n||(n=!0,this.requestMap.delete(t),this.activeRequestCount--,this._issueNewRequests())};return this.activeRequestCount++,o?o({done:s}):Promise.resolve({done:s})}_issueNewRequests(){this.updateTimer!==null&&clearTimeout(this.updateTimer),this.updateTimer=setTimeout(()=>this._issueNewRequestsAsync(),this.props.debounceTime)}_issueNewRequestsAsync(){this.updateTimer!==null&&clearTimeout(this.updateTimer),this.updateTimer=null;let r=Math.max(this.props.maxRequests-this.activeRequestCount,0);if(r!==0){this._updateAllRequests();for(let t=0;t<r;++t){let o=this.requestQueue.shift();o&&this._issueRequest(o)}}}_updateAllRequests(){let r=this.requestQueue;for(let t=0;t<r.length;++t){let o=r[t];this._updateRequest(o)||(r.splice(t,1),this.requestMap.delete(o.handle),t--)}r.sort((t,o)=>t.priority-o.priority)}_updateRequest(r){return r.priority=r.getPriority(r.handle),r.priority<0?(r.resolve(null),!1):!0}};var Ze="",Hr={};function Xe(e){Ze=e}function er(){return Ze}function L(e){for(let r in Hr)if(e.startsWith(r)){let t=Hr[r];e=e.replace(r,t)}return!e.startsWith("http://")&&!e.startsWith("https://")&&(e=`${Ze}${e}`),e}var go="4.3.0",rr={dataType:null,batchType:null,name:"JSON",id:"json",module:"json",version:go,extensions:["json","geojson"],mimeTypes:["application/json"],category:"json",text:!0,parseTextSync:Gr,parse:async e=>Gr(new TextDecoder().decode(e)),options:{}};function Gr(e){return JSON.parse(e)}function qr(e){return e&&typeof e=="object"&&e.isBuffer}function Te(e){if(qr(e))return e;if(e instanceof ArrayBuffer)return e;if(ArrayBuffer.isView(e))return e.byteOffset===0&&e.byteLength===e.buffer.byteLength?e.buffer:e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength);if(typeof e=="string"){let r=e;return new TextEncoder().encode(r).buffer}if(e&&typeof e=="object"&&e._toArrayBuffer)return e._toArrayBuffer();throw new Error("toArrayBuffer")}var C={};Sr(C,{dirname:()=>wo,filename:()=>yo,join:()=>bo,resolve:()=>xo});function Qr(){if(typeof process<"u"&&typeof process.cwd<"u")return process.cwd();let e=window.location?.pathname;return e?.slice(0,e.lastIndexOf("/")+1)||""}function yo(e){let r=e?e.lastIndexOf("/"):-1;return r>=0?e.substr(r+1):""}function wo(e){let r=e?e.lastIndexOf("/"):-1;return r>=0?e.substr(0,r):""}function bo(...e){let r="/";return e=e.map((t,o)=>(o&&(t=t.replace(new RegExp(`^${r}`),"")),o!==e.length-1&&(t=t.replace(new RegExp(`${r}$`),"")),t)),e.join(r)}function xo(...e){let r=[];for(let s=0;s<e.length;s++)r[s]=e[s];let t="",o=!1,n;for(let s=r.length-1;s>=-1&&!o;s--){let i;s>=0?i=r[s]:(n===void 0&&(n=Qr()),i=n),i.length!==0&&(t=`${i}/${t}`,o=i.charCodeAt(0)===se)}return t=To(t,!o),o?`/${t}`:t.length>0?t:"."}var se=47,tr=46;function To(e,r){let t="",o=-1,n=0,s,i=!1;for(let a=0;a<=e.length;++a){if(a<e.length)s=e.charCodeAt(a);else{if(s===se)break;s=se}if(s===se){if(!(o===a-1||n===1))if(o!==a-1&&n===2){if(t.length<2||!i||t.charCodeAt(t.length-1)!==tr||t.charCodeAt(t.length-2)!==tr){if(t.length>2){let c=t.length-1,f=c;for(;f>=0&&t.charCodeAt(f)!==se;--f);if(f!==c){t=f===-1?"":t.slice(0,f),o=a,n=0,i=!1;continue}}else if(t.length===2||t.length===1){t="",o=a,n=0,i=!1;continue}}r&&(t.length>0?t+="/..":t="..",i=!0)}else{let c=e.slice(o+1,a);t.length>0?t+=`/${c}`:t=c,i=!1}o=a,n=0}else s===tr&&n!==-1?++n:n=-1}return t}var ie=class{handle;size;bigsize;url;constructor(r){this.handle=r instanceof ArrayBuffer?new Blob([r]):r,this.size=r instanceof ArrayBuffer?r.byteLength:r.size,this.bigsize=BigInt(this.size),this.url=r instanceof File?r.name:""}async close(){}async stat(){return{size:this.handle.size,bigsize:BigInt(this.handle.size),isDirectory:!1}}async read(r,t){return await this.handle.slice(r,r+t).arrayBuffer()}};var ae=new Error("Not implemented"),ce=class{handle;size=0;bigsize=0n;url="";constructor(r,t,o){if(globalThis.loaders?.NodeFile)return new globalThis.loaders.NodeFile(r,t,o);throw m?new Error("Can't instantiate NodeFile in browser."):new Error("Can't instantiate NodeFile. Make sure to import @loaders.gl/polyfills first.")}async read(r,t){throw ae}async write(r,t,o){throw ae}async stat(){throw ae}async truncate(r){throw ae}async append(r){throw ae}async close(){}};var Jr=e=>typeof e=="boolean",g=e=>typeof e=="function",A=e=>e!==null&&typeof e=="object",fe=e=>A(e)&&e.constructor==={}.constructor,Kr=e=>A(e)&&g(e.then),ue=e=>Boolean(e)&&typeof e[Symbol.iterator]=="function",le=e=>e&&typeof e[Symbol.asyncIterator]=="function",me=e=>e&&g(e.next),l=e=>typeof Response<"u"&&e instanceof Response||e&&e.arrayBuffer&&e.text&&e.json;var p=e=>typeof Blob<"u"&&e instanceof Blob,Yr=e=>e&&typeof e=="object"&&e.isBuffer,Ao=e=>A(e)&&g(e.abort)&&g(e.getWriter),So=e=>typeof ReadableStream<"u"&&e instanceof ReadableStream||A(e)&&g(e.tee)&&g(e.cancel)&&g(e.getReader),ko=e=>A(e)&&g(e.end)&&g(e.write)&&Jr(e.writable),_o=e=>A(e)&&g(e.read)&&g(e.pipe)&&Jr(e.readable),O=e=>So(e)||_o(e),Zr=e=>Ao(e)||ko(e);var V=class extends Error{constructor(r,t){super(r),this.reason=t.reason,this.url=t.url,this.response=t.response}reason;url;response};var Eo=/^data:([-\w.]+\/[-\w.+]+)(;|,)/,Bo=/^([-\w.]+\/[-\w.+]+)/;function or(e,r){return e.toLowerCase()===r.toLowerCase()}function Xr(e){let r=Bo.exec(e);return r?r[1]:e}function nr(e){let r=Eo.exec(e);return r?r[1]:""}var et=/\?.*/;function rt(e){let r=e.match(et);return r&&r[0]}function H(e){return e.replace(et,"")}function tt(e){if(e.length<50)return e;let r=e.slice(e.length-15);return`${e.substr(0,32)}...${r}`}function y(e){return l(e)?e.url:p(e)?e.name||"":typeof e=="string"?e:""}function pe(e){if(l(e)){let r=e,t=r.headers.get("content-type")||"",o=H(r.url);return Xr(t)||nr(o)}return p(e)?e.type||"":typeof e=="string"?nr(e):""}function ot(e){return l(e)?e.headers["content-length"]||-1:p(e)?e.size:typeof e=="string"?e.length:e instanceof ArrayBuffer||ArrayBuffer.isView(e)?e.byteLength:-1}async function Ae(e){if(l(e))return e;let r={},t=ot(e);t>=0&&(r["content-length"]=String(t));let o=y(e),n=pe(e);n&&(r["content-type"]=n);let s=await Ro(e);s&&(r["x-first-bytes"]=s),typeof e=="string"&&(e=new TextEncoder().encode(e));let i=new Response(e,{headers:r});return Object.defineProperty(i,"url",{value:o}),i}async function sr(e){if(!e.ok)throw await Lo(e)}async function Lo(e){let r=tt(e.url),t=`Failed to fetch resource (${e.status}) ${e.statusText}: ${r}`;t=t.length>100?`${t.slice(0,100)}...`:t;let o={reason:e.statusText,url:e.url,response:e};try{let n=e.headers.get("Content-Type");o.reason=!e.bodyUsed&&n?.includes("application/json")?await e.json():await e.text()}catch{}return new V(t,o)}async function Ro(e){if(typeof e=="string")return`data:,${e.slice(0,5)}`;if(e instanceof Blob){let t=e.slice(0,5);return await new Promise(o=>{let n=new FileReader;n.onload=s=>o(s?.target?.result),n.readAsDataURL(t)})}if(e instanceof ArrayBuffer){let t=e.slice(0,5);return`data:base64,${Io(t)}`}return null}function Io(e){let r="",t=new Uint8Array(e);for(let o=0;o<t.byteLength;o++)r+=String.fromCharCode(t[o]);return btoa(r)}function Fo(e){return!No(e)&&!Mo(e)}function No(e){return e.startsWith("http:")||e.startsWith("https:")}function Mo(e){return e.startsWith("data:")}async function P(e,r){if(typeof e=="string"){let t=L(e);return Fo(t)&&globalThis.loaders?.fetchNode?globalThis.loaders?.fetchNode(t,r):await fetch(t,r)}return await Ae(e)}async function nt(e,r,t){e instanceof Blob||(e=new Blob([e]));let o=e.slice(r,r+t);return await Wo(o)}async function Wo(e){return await new Promise((r,t)=>{let o=new FileReader;o.onload=n=>r(n?.target?.result),o.onerror=n=>t(n),o.readAsArrayBuffer(e)})}var ir=new x({id:"loaders.gl"}),Se=class{log(){return()=>{}}info(){return()=>{}}warn(){return()=>{}}error(){return()=>{}}},ke=class{console;constructor(){this.console=console}log(...r){return this.console.log.bind(this.console,...r)}info(...r){return this.console.info.bind(this.console,...r)}warn(...r){return this.console.warn.bind(this.console,...r)}error(...r){return this.console.error.bind(this.console,...r)}};var ar={fetch:null,mimeType:void 0,nothrow:!1,log:new ke,useLocalLibraries:!1,CDN:"https://unpkg.com/@loaders.gl",worker:!0,maxConcurrency:3,maxMobileConcurrency:1,reuseWorkers:m,_nodeWorkers:!1,_workerType:"",limit:0,_limitMB:0,batchSize:"auto",batchDebounceMs:0,metadata:!1,transforms:[]},st={throws:"nothrow",dataType:"(no longer used)",uri:"baseUri",method:"fetch.method",headers:"fetch.headers",body:"fetch.body",mode:"fetch.mode",credentials:"fetch.credentials",cache:"fetch.cache",redirect:"fetch.redirect",referrer:"fetch.referrer",referrerPolicy:"fetch.referrerPolicy",integrity:"fetch.integrity",keepalive:"fetch.keepalive",signal:"fetch.signal"};function he(){globalThis.loaders=globalThis.loaders||{};let{loaders:e}=globalThis;return e._state||(e._state={}),e._state}function _(){let e=he();return e.globalOptions=e.globalOptions||{...ar},e.globalOptions}function cr(e){let r=he(),t=_();r.globalOptions=ct(t,e),Oe(e.modules)}function G(e,r,t,o){return t=t||[],t=Array.isArray(t)?t:[t],Co(e,t),ct(r,e,o)}function Co(e,r){it(e,null,ar,st,r);for(let t of r){let o=e&&e[t.id]||{},n=t.options&&t.options[t.id]||{},s=t.deprecatedOptions&&t.deprecatedOptions[t.id]||{};it(o,t.id,n,s,r)}}function it(e,r,t,o,n){let s=r||"Top level",i=r?`${r}.`:"";for(let a in e){let c=!r&&A(e[a]),f=a==="baseUri"&&!r,k=a==="workerUrl"&&r;if(!(a in t)&&!f&&!k){if(a in o)ir.warn(`${s} loader option '${i}${a}' no longer supported, use '${o[a]}'`)();else if(!c){let E=Oo(a,n);ir.warn(`${s} loader option '${i}${a}' not recognized. ${E}`)()}}}}function Oo(e,r){let t=e.toLowerCase(),o="";for(let n of r)for(let s in n.options){if(e===s)return`Did you mean '${n.id}.${s}'?`;let i=s.toLowerCase();(t.startsWith(i)||i.startsWith(t))&&(o=o||`Did you mean '${n.id}.${s}'?`)}return o}function ct(e,r,t){let n={...e.options||{}};return Po(n,t),n.log===null&&(n.log=new Se),at(n,_()),at(n,r),n}function at(e,r){for(let t in r)if(t in r){let o=r[t];fe(o)&&fe(e[t])?e[t]={...e[t],...r[t]}:e[t]=r[t]}}function Po(e,r){r&&!("baseUri"in e)&&(e.baseUri=r)}function w(e){return e?(Array.isArray(e)&&(e=e[0]),Array.isArray(e?.extensions)):!1}function de(e){v(e,"null loader"),v(w(e),"invalid loader");let r;return Array.isArray(e)&&(r=e[1],e=e[0],e={...e,options:{...e.options,...r}}),(e?.parseTextSync||e?.parseText)&&(e.text=!0),e.text||(e.binary=!0),e}var ft=()=>{let e=he();return e.loaderRegistry=e.loaderRegistry||[],e.loaderRegistry};function ut(e){let r=ft();e=Array.isArray(e)?e:[e];for(let t of e){let o=de(t);r.find(n=>o===n)||r.unshift(o)}}function lt(){return ft()}function mt(){let e=he();e.loaderRegistry=[]}var vo=/\.([^.]+)$/;async function Q(e,r=[],t,o){if(!ht(e))return null;let n=q(e,r,{...t,nothrow:!0},o);if(n)return n;if(p(e)&&(e=await e.slice(0,10).arrayBuffer(),n=q(e,r,t,o)),!n&&!t?.nothrow)throw new Error(dt(e));return n}function q(e,r=[],t,o){if(!ht(e))return null;if(r&&!Array.isArray(r))return de(r);let n=[];r&&(n=n.concat(r)),t?.ignoreRegisteredLoaders||n.push(...lt()),$o(n);let s=Uo(e,n,t,o);if(!s&&!t?.nothrow)throw new Error(dt(e));return s}function Uo(e,r,t,o){let n=y(e),s=pe(e),i=H(n)||o?.url,a=null,c="";return t?.mimeType&&(a=fr(r,t?.mimeType),c=`match forced by supplied MIME type ${t?.mimeType}`),a=a||Do(r,i),c=c||(a?`matched url ${i}`:""),a=a||fr(r,s),c=c||(a?`matched MIME type ${s}`:""),a=a||zo(r,e),c=c||(a?`matched initial data ${gt(e)}`:""),t?.fallbackMimeType&&(a=a||fr(r,t?.fallbackMimeType),c=c||(a?`matched fallback MIME type ${s}`:"")),c&&We.log(1,`selectLoader selected ${a?.name}: ${c}.`),a}function ht(e){return!(e instanceof Response&&e.status===204)}function dt(e){let r=y(e),t=pe(e),o="No valid loader found (";o+=r?`${C.filename(r)}, `:"no url provided, ",o+=`MIME type: ${t?`"${t}"`:"not provided"}, `;let n=e?gt(e):"";return o+=n?` first bytes: "${n}"`:"first bytes: not available",o+=")",o}function $o(e){for(let r of e)de(r)}function Do(e,r){let t=r&&vo.exec(r),o=t&&t[1];return o?jo(e,o):null}function jo(e,r){r=r.toLowerCase();for(let t of e)for(let o of t.extensions)if(o.toLowerCase()===r)return t;return null}function fr(e,r){for(let t of e)if(t.mimeTypes?.some(o=>or(r,o))||or(r,`application/x.${t.id}`))return t;return null}function zo(e,r){if(!r)return null;for(let t of e)if(typeof r=="string"){if(Vo(r,t))return t}else if(ArrayBuffer.isView(r)){if(pt(r.buffer,r.byteOffset,t))return t}else if(r instanceof ArrayBuffer&&pt(r,0,t))return t;return null}function Vo(e,r){return r.testText?r.testText(e):(Array.isArray(r.tests)?r.tests:[r.tests]).some(o=>e.startsWith(o))}function pt(e,r,t){return(Array.isArray(t.tests)?t.tests:[t.tests]).some(n=>Ho(e,r,t,n))}function Ho(e,r,t,o){if(o instanceof ArrayBuffer)return Ge(o,e,o.byteLength);switch(typeof o){case"function":return o(e);case"string":let n=ur(e,r,o.length);return o===n;default:return!1}}function gt(e,r=5){return typeof e=="string"?e.slice(0,r):ArrayBuffer.isView(e)?ur(e.buffer,e.byteOffset,r):e instanceof ArrayBuffer?ur(e,0,r):""}function ur(e,r,t){if(e.byteLength<r+t)return"";let o=new DataView(e),n="";for(let s=0;s<t;s++)n+=String.fromCharCode(o.getUint8(r+s));return n}function*yt(e,r){let t=r?.chunkSize||262144,o=0,n=new TextEncoder;for(;o<e.length;){let s=Math.min(e.length-o,t),i=e.slice(o,o+s);o+=s,yield n.encode(i)}}function*wt(e,r={}){let{chunkSize:t=262144}=r,o=0;for(;o<e.byteLength;){let n=Math.min(e.byteLength-o,t),s=new ArrayBuffer(n),i=new Uint8Array(e,o,n);new Uint8Array(s).set(i),o+=n,yield s}}async function*bt(e,r){let t=r?.chunkSize||1048576,o=0;for(;o<e.size;){let n=o+t,s=await e.slice(o,n).arrayBuffer();o=n,yield s}}function lr(e,r){return m?Go(e,r):qo(e,r)}async function*Go(e,r){let t=e.getReader(),o;try{for(;;){let n=o||t.read();r?._streamReadAhead&&(o=t.read());let{done:s,value:i}=await n;if(s)return;yield Te(i)}}catch{t.releaseLock()}}async function*qo(e,r){for await(let t of e)yield Te(t)}function J(e,r){if(typeof e=="string")return yt(e,r);if(e instanceof ArrayBuffer)return wt(e,r);if(p(e))return bt(e,r);if(O(e))return lr(e,r);if(l(e))return lr(e.body,r);throw new Error("makeIterator")}var mr="Cannot convert supplied data type";function pr(e,r,t){if(r.text&&typeof e=="string")return e;if(Yr(e)&&(e=e.buffer),e instanceof ArrayBuffer){let o=e;return r.text&&!r.binary?new TextDecoder("utf8").decode(o):o}if(ArrayBuffer.isView(e)){if(r.text&&!r.binary)return new TextDecoder("utf8").decode(e);let o=e.buffer,n=e.byteLength||e.length;return(e.byteOffset!==0||n!==o.byteLength)&&(o=o.slice(e.byteOffset,e.byteOffset+n)),o}throw new Error(mr)}async function xt(e,r,t){let o=e instanceof ArrayBuffer||ArrayBuffer.isView(e);if(typeof e=="string"||o)return pr(e,r,t);if(p(e)&&(e=await Ae(e)),l(e)){let n=e;return await sr(n),r.binary?await n.arrayBuffer():await n.text()}if(O(e)&&(e=J(e,t)),ue(e)||le(e))return M(e);throw new Error(mr)}async function Tt(e,r){if(me(e))return e;if(l(e)){let t=e;await sr(t);let o=await t.body;return J(o,r)}return p(e)||O(e)?J(e,r):le(e)?e:Qo(e)}function Qo(e){if(ArrayBuffer.isView(e))return function*(){yield e.buffer}();if(e instanceof ArrayBuffer)return function*(){yield e}();if(me(e))return e;if(ue(e))return e[Symbol.iterator]();throw new Error(mr)}function K(e,r){let t=_(),o=e||t;return typeof o.fetch=="function"?o.fetch:A(o.fetch)?n=>P(n,o.fetch):r?.fetch?r?.fetch:P}function Y(e,r,t){if(t)return t;let o={fetch:K(r,e),...e};if(o.url){let n=H(o.url);o.baseUrl=n,o.queryString=rt(o.url),o.filename=C.filename(n),o.baseUrl=C.dirname(n)}return Array.isArray(o.loaders)||(o.loaders=null),o}function _e(e,r){if(e&&!Array.isArray(e))return e;let t;if(e&&(t=Array.isArray(e)?e:[e]),r&&r.loaders){let o=Array.isArray(r.loaders)?r.loaders:[r.loaders];t=t?[...t,...o]:o}return t&&t.length?t:void 0}async function S(e,r,t,o){r&&!Array.isArray(r)&&!w(r)&&(o=void 0,t=r,r=void 0),e=await e,t=t||{};let n=y(e),i=_e(r,o),a=await Q(e,i,t);return a?(t=G(t,a,i,n),o=Y({url:n,_parse:S,loaders:i},t,o||null),await Jo(a,e,t,o)):null}async function Jo(e,r,t,o){if(je(e),t=Ce(e.options,t),l(r)){let s=r,{ok:i,redirected:a,status:c,statusText:f,type:k,url:E}=s,Ar=Object.fromEntries(s.headers.entries());o.response={headers:Ar,ok:i,redirected:a,status:c,statusText:f,type:k,url:E}}r=await xt(r,e,t);let n=e;if(n.parseTextSync&&typeof r=="string")return n.parseTextSync(r,t,o);if(ze(e,t))return await Ve(e,r,t,o,S);if(n.parseText&&typeof r=="string")return await n.parseText(r,t,o);if(n.parse)return await n.parse(r,t,o);throw u(!n.parseSync),new Error(`${e.id} loader - no parser found and worker is disabled`)}function At(e,r,t,o){!Array.isArray(r)&&!w(r)&&(o=void 0,t=r,r=void 0),t=t||{};let s=_e(r,o),i=q(e,s,t);if(!i)return null;t=G(t,i,s);let a=y(e),c=()=>{throw new Error("parseSync called parse (which is async")};return o=Y({url:a,_parseSync:c,_parse:c,loaders:r},t,o||null),Ko(i,e,t,o)}function Ko(e,r,t,o){if(r=pr(r,e,t),e.parseTextSync&&typeof r=="string")return e.parseTextSync(r,t);if(e.parseSync&&r instanceof ArrayBuffer)return e.parseSync(r,t,o);throw new Error(`${e.name} loader: 'parseSync' not supported by this loader, use 'parse' instead. ${o.url||""}`)}function hr(e){switch(typeof e=="object"&&e?.shape){case"array-row-table":case"object-row-table":return Array.isArray(e.data);case"geojson-table":return Array.isArray(e.features);case"columnar-table":return e.data&&typeof e.data=="object";case"arrow-table":return Boolean(e?.data?.numRows!==void 0);default:return!1}}function dr(e){switch(e.shape){case"array-row-table":case"object-row-table":return e.data.length;case"geojson-table":return e.features.length;case"arrow-table":return e.data.numRows;case"columnar-table":for(let t of Object.values(e.data))return t.length||0;return 0;default:throw new Error("table")}}function gr(e){return{...e,length:dr(e),batchType:"data"}}async function R(e,r,t,o){let n=Array.isArray(r)?r:void 0;!Array.isArray(r)&&!w(r)&&(o=void 0,t=r,r=void 0),e=await e,t=t||{};let s=y(e),i=await Q(e,r,t);return i?(t=G(t,i,n,s),o=Y({url:s,_parseInBatches:R,_parse:S,loaders:n},t,o||null),await Yo(i,e,t,o)):[]}async function Yo(e,r,t,o){let n=await Zo(e,r,t,o);if(!t.metadata)return n;let s={shape:"metadata",batchType:"metadata",metadata:{_loader:e,_context:o},data:[],bytesUsed:0};async function*i(a){yield s,yield*a}return i(n)}async function Zo(e,r,t,o){let n=await Tt(r,t),s=await rn(n,t?.transforms||[]);return e.parseInBatches?e.parseInBatches(s,t,o):Xo(s,e,t,o)}async function*Xo(e,r,t,o){let n=await M(e),s=await S(n,r,{...t,mimeType:r.mimeTypes[0]},o);yield en(s,r)}function en(e,r){let t=hr(e)?gr(e):{shape:"unknown",batchType:"data",data:e,length:Array.isArray(e)?e.length:1};return t.mimeType=r.mimeTypes[0],t}async function rn(e,r=[]){let t=e;for await(let o of r)t=o(t);return t}async function St(e,r,t,o){let n,s;!Array.isArray(r)&&!w(r)?(n=[],s=r,o=void 0):(n=r,s=t);let i=K(s),a=e;return typeof e=="string"&&(a=await i(e)),p(e)&&(a=await i(e)),Array.isArray(n)?await S(a,n,s):await S(a,n,s)}function _t(e,r,t,o){let n;!Array.isArray(r)&&!w(r)?(o=void 0,t=r,n=void 0):n=r;let s=K(t||{});return Array.isArray(e)?e.map(a=>kt(a,n,t||{},s)):kt(e,n,t||{},s)}async function kt(e,r,t,o){if(typeof e=="string"){let s=await o(e);return Array.isArray(r)?await R(s,r,t):await R(s,r,t)}return Array.isArray(r)?await R(e,r,t):await R(e,r,t)}async function yr(e,r,t){if(r.encode)return await r.encode(e,t);if(r.encodeText){let o=await r.encodeText(e,t);return new TextEncoder().encode(o)}if(r.encodeInBatches){let o=wr(e,r,t),n=[];for await(let s of o)n.push(s);return oe(...n)}throw new Error("Writer could not encode data")}async function Et(e,r,t){if(r.text&&r.encodeText)return await r.encodeText(e,t);if(r.text){let o=await yr(e,r,t);return new TextDecoder().decode(o)}throw new Error(`Writer ${r.name} could not encode data as text`)}function wr(e,r,t){if(r.encodeInBatches){let o=tn(e);return r.encodeInBatches(o,t)}throw new Error("Writer could not encode data in batches")}function tn(e){return[{...e,start:0,end:e.length}]}async function Lt(e,r,t){let n={..._(),...t};return r.encodeURLtoURL?on(r,e,n):He(r,n)?await De(r,e,n):await r.encode(e,n)}function br(e,r,t){if(r.encodeSync)return r.encodeSync(e,t);if(r.encodeTextSync)return new TextEncoder().encode(r.encodeTextSync(e,t));throw new Error(`Writer ${r.name} could not synchronously encode data`)}async function Rt(e,r,t){if(r.encodeText)return await r.encodeText(e,t);if(r.encodeTextSync)return r.encodeTextSync(e,t);if(r.text){let o=await r.encode(e,t);return new TextDecoder().decode(o)}throw new Error(`Writer ${r.name} could not encode data as text`)}function It(e,r,t){if(r.encodeTextSync)return r.encodeTextSync(e,t);if(r.text&&r.encodeSync){let o=br(e,r,t);return new TextDecoder().decode(o)}throw new Error(`Writer ${r.name} could not encode data as text`)}function Ft(e,r,t){if(r.encodeInBatches){let o=nn(e);return r.encodeInBatches(o,t)}throw new Error(`Writer ${r.name} could not encode in batches`)}async function xr(e,r,t,o){if(e=L(e),r=L(r),m||!t.encodeURLtoURL)throw new Error;return await t.encodeURLtoURL(e,r,o)}async function on(e,r,t){if(m)throw new Error(`Writer ${e.name} not supported in browser`);let o=Bt("input");await new ce(o,"w").write(r);let s=Bt("output"),i=await xr(o,s,e,t);return(await P(i)).arrayBuffer()}function nn(e){return[{...e,start:0,end:e.length}]}function Bt(e){return`/tmp/${e}`}function Nt(e,r,t){let{type:o="auto"}=t,n=o==="auto"?sn(e,r):an(o,r);if(!n)throw new Error("Not a valid image source type");return n.createDataSource(e,t)}function sn(e,r){for(let t of r)if(t.testURL&&t.testURL(e))return t;return null}function an(e,r){for(let t of r)if(t.type===e)return t;return null}function Mt(e,r,t){let o=t?.type||"auto",n=null;if(o==="auto"){for(let s of r)if(typeof e=="string"&&s.testURL&&s.testURL(e))return s}else n=cn(o,r);if(!n&&!t?.nothrow)throw new Error("Not a valid image source type");return n}function cn(e,r){for(let t of r)if(t.type===e)return t;return null}function Wt(e,r){if(globalThis.loaders.makeNodeStream)return globalThis.loaders.makeNodeStream(e,r);let t=e[Symbol.asyncIterator]?e[Symbol.asyncIterator]():e[Symbol.iterator]();return new ReadableStream({type:"bytes",async pull(o){try{let{done:n,value:s}=await t.next();n?o.close():o.enqueue(new Uint8Array(s))}catch(n){o.error(n)}},async cancel(){await t?.return?.()}},{highWaterMark:2**24,...r})}var Ct="4.3.0",Ot={dataType:null,batchType:null,name:"Null loader",id:"null",module:"core",version:Ct,worker:!0,mimeTypes:["application/x.empty"],extensions:["null"],tests:[()=>!1],options:{null:{}}},Pt={dataType:null,batchType:null,name:"Null loader",id:"null",module:"core",version:Ct,mimeTypes:["application/x.empty"],extensions:["null"],parse:async(e,r,t)=>Tr(e,r||{},t),parseSync:Tr,parseInBatches:async function*(r,t,o){for await(let n of r)yield Tr(n,t,o)},tests:[()=>!1],options:{null:{}}};function Tr(e,r,t){return null}async function vt(e,r,t=()=>{},o=()=>{}){if(e=await e,!e.ok)return e;let n=e.body;if(!n)return e;let s=e.headers.get("content-length")||0,i=s?parseInt(s):0;if(!(i>0)||typeof ReadableStream>"u"||!n.getReader)return e;let a=new ReadableStream({async start(c){let f=n.getReader();await Ut(c,f,0,i,r,t,o)}});return new Response(a)}async function Ut(e,r,t,o,n,s,i){try{let{done:a,value:c}=await r.read();if(a){s(),e.close();return}t+=c.byteLength;let f=Math.round(t/o*100);n(f,{loadedBytes:t,totalBytes:o}),e.enqueue(c),await Ut(e,r,t,o,n,s,i)}catch(a){e.error(a),i(a)}}var Ee=class{_fetch;files={};lowerCaseFiles={};usedFiles={};constructor(r,t){this._fetch=t?.fetch||fetch;for(let o=0;o<r.length;++o){let n=r[o];this.files[n.name]=n,this.lowerCaseFiles[n.name.toLowerCase()]=n,this.usedFiles[n.name]=!1}this.fetch=this.fetch.bind(this)}async fetch(r,t){if(r.includes("://"))return this._fetch(r,t);let o=this.files[r];if(!o)return new Response(r,{status:400,statusText:"NOT FOUND"});let s=new Headers(t?.headers).get("Range"),i=s&&/bytes=($1)-($2)/.exec(s);if(i){let c=parseInt(i[1]),f=parseInt(i[2]),k=await o.slice(c,f).arrayBuffer(),E=new Response(k);return Object.defineProperty(E,"url",{value:r}),E}let a=new Response(o);return Object.defineProperty(a,"url",{value:r}),a}async readdir(r){let t=[];for(let o in this.files)t.push(o);return t}async stat(r,t){let o=this.files[r];if(!o)throw new Error(r);return{size:o.size}}async unlink(r){delete this.files[r],delete this.lowerCaseFiles[r],this.usedFiles[r]=!0}async openReadableFile(r,t){return new ie(this.files[r])}_getFile(r,t){let o=this.files[r]||this.lowerCaseFiles[r];return o&&t&&(this.usedFiles[r]=!0),o}};return Ht(fn);})();
12
+ }`}function ve(e,r=!0,t){let o=t||new Set;if(e){if(jr(e))o.add(e);else if(jr(e.buffer))o.add(e.buffer);else if(!ArrayBuffer.isView(e)){if(r&&typeof e=="object")for(let n in e)ve(e[n],r,o)}}return t===void 0?Array.from(o):[]}function jr(e){return e?e instanceof ArrayBuffer||typeof MessagePort<"u"&&e instanceof MessagePort||typeof ImageBitmap<"u"&&e instanceof ImageBitmap||typeof OffscreenCanvas<"u"&&e instanceof OffscreenCanvas:!1}function $e(e){if(e===null)return{};let r=Object.assign({},e);return Object.keys(r).forEach(t=>{typeof e[t]=="object"&&!ArrayBuffer.isView(e[t])&&!(e[t]instanceof Array)?r[t]=$e(e[t]):typeof r[t]=="function"||r[t]instanceof RegExp?r[t]={}:r[t]=e[t]}),r}var Ue=()=>{},B=class{name;source;url;terminated=!1;worker;onMessage;onError;_loadableURL="";static isSupported(){return typeof Worker<"u"&&h||typeof D<"u"&&!h}constructor(r){let{name:t,source:o,url:n}=r;u(o||n),this.name=t,this.source=o,this.url=n,this.onMessage=Ue,this.onError=s=>console.log(s),this.worker=h?this._createBrowserWorker():this._createNodeWorker()}destroy(){this.onMessage=Ue,this.onError=Ue,this.worker.terminate(),this.terminated=!0}get isRunning(){return Boolean(this.onMessage)}postMessage(r,t){t=t||ve(r),this.worker.postMessage(r,t)}_getErrorFromErrorEvent(r){let t="Failed to load ";return t+=`worker ${this.name} from ${this.url}. `,r.message&&(t+=`${r.message} in `),r.lineno&&(t+=`:${r.lineno}:${r.colno}`),new Error(t)}_createBrowserWorker(){this._loadableURL=Ur({source:this.source,url:this.url});let r=new Worker(this._loadableURL,{name:this.name});return r.onmessage=t=>{t.data?this.onMessage(t.data):this.onError(new Error("No data received"))},r.onerror=t=>{this.onError(this._getErrorFromErrorEvent(t)),this.terminated=!0},r.onmessageerror=t=>console.error(t),r}_createNodeWorker(){let r;if(this.url){let o=this.url.includes(":/")||this.url.startsWith("/")?this.url:`./${this.url}`;r=new D(o,{eval:!1})}else if(this.source)r=new D(this.source,{eval:!0});else throw new Error("no worker");return r.on("message",t=>{this.onMessage(t)}),r.on("error",t=>{this.onError(t)}),r.on("exit",t=>{}),r}};var re=class{name="unnamed";source;url;maxConcurrency=1;maxMobileConcurrency=1;onDebug=()=>{};reuseWorkers=!0;props={};jobQueue=[];idleQueue=[];count=0;isDestroyed=!1;static isSupported(){return B.isSupported()}constructor(r){this.source=r.source,this.url=r.url,this.setProps(r)}destroy(){this.idleQueue.forEach(r=>r.destroy()),this.isDestroyed=!0}setProps(r){this.props={...this.props,...r},r.name!==void 0&&(this.name=r.name),r.maxConcurrency!==void 0&&(this.maxConcurrency=r.maxConcurrency),r.maxMobileConcurrency!==void 0&&(this.maxMobileConcurrency=r.maxMobileConcurrency),r.reuseWorkers!==void 0&&(this.reuseWorkers=r.reuseWorkers),r.onDebug!==void 0&&(this.onDebug=r.onDebug)}async startJob(r,t=(n,s,i)=>n.done(i),o=(n,s)=>n.error(s)){let n=new Promise(s=>(this.jobQueue.push({name:r,onMessage:t,onError:o,onStart:s}),this));return this._startQueuedJob(),await n}async _startQueuedJob(){if(!this.jobQueue.length)return;let r=this._getAvailableWorker();if(!r)return;let t=this.jobQueue.shift();if(t){this.onDebug({message:"Starting job",name:t.name,workerThread:r,backlog:this.jobQueue.length});let o=new ee(t.name,r);r.onMessage=n=>t.onMessage(o,n.type,n.payload),r.onError=n=>t.onError(o,n),t.onStart(o);try{await o.result}catch(n){console.error(`Worker exception: ${n}`)}finally{this.returnWorkerToQueue(r)}}}returnWorkerToQueue(r){!h||this.isDestroyed||!this.reuseWorkers||this.count>this._getMaxConcurrency()?(r.destroy(),this.count--):this.idleQueue.push(r),this.isDestroyed||this._startQueuedJob()}_getAvailableWorker(){if(this.idleQueue.length>0)return this.idleQueue.shift()||null;if(this.count<this._getMaxConcurrency()){this.count++;let r=`${this.name.toLowerCase()} (#${this.count} of ${this.maxConcurrency})`;return new B({name:r,source:this.source,url:this.url})}return null}_getMaxConcurrency(){return $r?this.maxMobileConcurrency:this.maxConcurrency}};var io={maxConcurrency:3,maxMobileConcurrency:1,reuseWorkers:!0,onDebug:()=>{}},N=class{props;workerPools=new Map;static isSupported(){return B.isSupported()}static getWorkerFarm(r={}){return N._workerFarm=N._workerFarm||new N({}),N._workerFarm.setProps(r),N._workerFarm}constructor(r){this.props={...io},this.setProps(r),this.workerPools=new Map}destroy(){for(let r of this.workerPools.values())r.destroy();this.workerPools=new Map}setProps(r){this.props={...this.props,...r};for(let t of this.workerPools.values())t.setProps(this._getWorkerPoolProps())}getWorkerPool(r){let{name:t,source:o,url:n}=r,s=this.workerPools.get(t);return s||(s=new re({name:t,source:o,url:n}),s.setProps(this._getWorkerPoolProps()),this.workerPools.set(t,s)),s}_getWorkerPoolProps(){return{maxConcurrency:this.props.maxConcurrency,maxMobileConcurrency:this.props.maxMobileConcurrency,reuseWorkers:this.props.reuseWorkers,onDebug:this.props.onDebug}}},d=N;kr(d,"_workerFarm");function zr(e){let r=e.version!==X?` (worker-utils@${X})`:"";return`${e.name}@${e.version}${r}`}function te(e,r={}){let t=r[e.id]||{},o=h?`${e.id}-worker.js`:`${e.id}-worker-node.js`,n=t.workerUrl;if(!n&&e.id==="compression"&&(n=r.workerUrl),r._workerType==="test"&&(h?n=`modules/${e.module}/dist/${o}`:n=`modules/${e.module}/src/workers/${e.id}-worker-node.ts`),!n){let s=e.version;s==="latest"&&(s=Cr);let i=s?`@${s}`:"";n=`https://unpkg.com/@loaders.gl/${e.module}${i}/dist/${o}`}return u(n),n}async function De(e,r,t={},o={}){let n=zr(e),s=d.getWorkerFarm(t),{source:i}=t,a={name:n,source:i};i||(a.url=te(e,t));let c=s.getWorkerPool(a),f=t.jobName||e.name,k=await c.startJob(f,ao.bind(null,o)),E=$e(t);return k.postMessage("process",{input:r,options:E}),(await k.result).result}async function ao(e,r,t,o){switch(t){case"done":r.done(o);break;case"error":r.error(new Error(o.error));break;case"process":let{id:n,input:s,options:i}=o;try{if(!e.process){r.postMessage("error",{id:n,error:"Worker not set up to process on main thread"});return}let a=await e.process(s,i);r.postMessage("done",{id:n,result:a})}catch(a){let c=a instanceof Error?a.message:"unknown error";r.postMessage("error",{id:n,error:c})}break;default:console.warn(`process-on-worker: unknown message ${t}`)}}function je(e,r=X){u(e,"no worker provided");let t=e.version;return!(!r||!t)}function ze(e,r){return!d.isSupported()||!h&&!r?._nodeWorkers?!1:e.worker&&r?.worker}async function Ve(e,r,t,o,n){let s=e.id,i=te(e,t),c=d.getWorkerFarm(t).getWorkerPool({name:s,url:i});t=JSON.parse(JSON.stringify(t)),o=JSON.parse(JSON.stringify(o||{}));let f=await c.startJob("process-on-worker",co.bind(null,n));return f.postMessage("process",{input:r,options:t,context:o}),await(await f.result).result}async function co(e,r,t,o){switch(t){case"done":r.done(o);break;case"error":r.error(new Error(o.error));break;case"process":let{id:n,input:s,options:i}=o;try{let a=await e(s,i);r.postMessage("done",{id:n,result:a})}catch(a){let c=a instanceof Error?a.message:"unknown error";r.postMessage("error",{id:n,error:c})}break;default:console.warn(`parse-with-worker unknown message ${t}`)}}function He(e,r){return!d.isSupported()||!m&&!r?._nodeWorkers?!1:e.worker&&r?.worker}function Ge(e,r,t){if(t=t||e.byteLength,e.byteLength<t||r.byteLength<t)return!1;let o=new Uint8Array(e),n=new Uint8Array(r);for(let s=0;s<o.length;++s)if(o[s]!==n[s])return!1;return!0}function oe(...e){return Vr(e)}function Vr(e){let r=e.map(s=>s instanceof ArrayBuffer?new Uint8Array(s):s),t=r.reduce((s,i)=>s+i.byteLength,0),o=new Uint8Array(t),n=0;for(let s of r)o.set(s,n),n+=s.byteLength;return o.buffer}async function*qe(e,r={}){let t=new TextDecoder(void 0,r);for await(let o of e)yield typeof o=="string"?o:t.decode(o,{stream:!0})}async function*Qe(e){let r=new TextEncoder;for await(let t of e)yield typeof t=="string"?r.encode(t):t}async function*Je(e){let r="";for await(let t of e){r+=t;let o;for(;(o=r.indexOf(`
13
+ `))>=0;){let n=r.slice(0,o+1);r=r.slice(o+1),yield n}}r.length>0&&(yield r)}async function*Ke(e){let r=1;for await(let t of e)yield{counter:r,line:t},r++}async function Ye(e,r){for(;;){let{done:t,value:o}=await e.next();if(t){e.return();return}if(r(o))return}}async function M(e){let r=[];for await(let t of e)r.push(t);return oe(...r)}function ne(){let e;if(typeof window<"u"&&window.performance)e=window.performance.now();else if(typeof process<"u"&&process.hrtime){let r=process.hrtime();e=r[0]*1e3+r[1]/1e6}else e=Date.now();return e}var O=class{constructor(r,t){this.sampleSize=1,this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this.name=r,this.type=t,this.reset()}reset(){return this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this}setSampleSize(r){return this.sampleSize=r,this}incrementCount(){return this.addCount(1),this}decrementCount(){return this.subtractCount(1),this}addCount(r){return this._count+=r,this._samples++,this._checkSampling(),this}subtractCount(r){return this._count-=r,this._samples++,this._checkSampling(),this}addTime(r){return this._time+=r,this.lastTiming=r,this._samples++,this._checkSampling(),this}timeStart(){return this._startTime=ne(),this._timerPending=!0,this}timeEnd(){return this._timerPending?(this.addTime(ne()-this._startTime),this._timerPending=!1,this._checkSampling(),this):this}getSampleAverageCount(){return this.sampleSize>0?this.lastSampleCount/this.sampleSize:0}getSampleAverageTime(){return this.sampleSize>0?this.lastSampleTime/this.sampleSize:0}getSampleHz(){return this.lastSampleTime>0?this.sampleSize/(this.lastSampleTime/1e3):0}getAverageCount(){return this.samples>0?this.count/this.samples:0}getAverageTime(){return this.samples>0?this.time/this.samples:0}getHz(){return this.time>0?this.samples/(this.time/1e3):0}_checkSampling(){this._samples===this.sampleSize&&(this.lastSampleTime=this._time,this.lastSampleCount=this._count,this.count+=this._count,this.time+=this._time,this.samples+=this._samples,this._time=0,this._count=0,this._samples=0)}};var j=class{constructor(r){this.stats={},this.id=r.id,this.stats={},this._initializeStats(r.stats),Object.seal(this)}get(r,t="count"){return this._getOrCreate({name:r,type:t})}get size(){return Object.keys(this.stats).length}reset(){for(let r of Object.values(this.stats))r.reset();return this}forEach(r){for(let t of Object.values(this.stats))r(t)}getTable(){let r={};return this.forEach(t=>{r[t.name]={time:t.time||0,count:t.count||0,average:t.getAverageTime()||0,hz:t.getHz()||0}}),r}_initializeStats(r=[]){r.forEach(t=>this._getOrCreate(t))}_getOrCreate(r){let{name:t,type:o}=r,n=this.stats[t];return n||(r instanceof O?n=r:n=new O(t,o),this.stats[t]=n),n}};var fo="Queued Requests",uo="Active Requests",lo="Cancelled Requests",mo="Queued Requests Ever",po="Active Requests Ever",ho={id:"request-scheduler",throttleRequests:!0,maxRequests:6,debounceTime:0},z=class{props;stats;activeRequestCount=0;requestQueue=[];requestMap=new Map;updateTimer=null;constructor(r={}){this.props={...ho,...r},this.stats=new j({id:this.props.id}),this.stats.get(fo),this.stats.get(uo),this.stats.get(lo),this.stats.get(mo),this.stats.get(po)}scheduleRequest(r,t=()=>0){if(!this.props.throttleRequests)return Promise.resolve({done:()=>{}});if(this.requestMap.has(r))return this.requestMap.get(r);let o={handle:r,priority:0,getPriority:t},n=new Promise(s=>(o.resolve=s,o));return this.requestQueue.push(o),this.requestMap.set(r,n),this._issueNewRequests(),n}_issueRequest(r){let{handle:t,resolve:o}=r,n=!1,s=()=>{n||(n=!0,this.requestMap.delete(t),this.activeRequestCount--,this._issueNewRequests())};return this.activeRequestCount++,o?o({done:s}):Promise.resolve({done:s})}_issueNewRequests(){this.updateTimer!==null&&clearTimeout(this.updateTimer),this.updateTimer=setTimeout(()=>this._issueNewRequestsAsync(),this.props.debounceTime)}_issueNewRequestsAsync(){this.updateTimer!==null&&clearTimeout(this.updateTimer),this.updateTimer=null;let r=Math.max(this.props.maxRequests-this.activeRequestCount,0);if(r!==0){this._updateAllRequests();for(let t=0;t<r;++t){let o=this.requestQueue.shift();o&&this._issueRequest(o)}}}_updateAllRequests(){let r=this.requestQueue;for(let t=0;t<r.length;++t){let o=r[t];this._updateRequest(o)||(r.splice(t,1),this.requestMap.delete(o.handle),t--)}r.sort((t,o)=>t.priority-o.priority)}_updateRequest(r){return r.priority=r.getPriority(r.handle),r.priority<0?(r.resolve(null),!1):!0}};var Ze="",Hr={};function Xe(e){Ze=e}function er(){return Ze}function L(e){for(let r in Hr)if(e.startsWith(r)){let t=Hr[r];e=e.replace(r,t)}return!e.startsWith("http://")&&!e.startsWith("https://")&&(e=`${Ze}${e}`),e}var go="4.4.0-alpha.0",rr={dataType:null,batchType:null,name:"JSON",id:"json",module:"json",version:go,extensions:["json","geojson"],mimeTypes:["application/json"],category:"json",text:!0,parseTextSync:Gr,parse:async e=>Gr(new TextDecoder().decode(e)),options:{}};function Gr(e){return JSON.parse(e)}function qr(e){return e&&typeof e=="object"&&e.isBuffer}function Te(e){if(qr(e))return e;if(e instanceof ArrayBuffer)return e;if(ArrayBuffer.isView(e))return e.byteOffset===0&&e.byteLength===e.buffer.byteLength?e.buffer:e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength);if(typeof e=="string"){let r=e;return new TextEncoder().encode(r).buffer}if(e&&typeof e=="object"&&e._toArrayBuffer)return e._toArrayBuffer();throw new Error("toArrayBuffer")}var W={};Sr(W,{dirname:()=>wo,filename:()=>yo,join:()=>bo,resolve:()=>xo});function Qr(){if(typeof process<"u"&&typeof process.cwd<"u")return process.cwd();let e=window.location?.pathname;return e?.slice(0,e.lastIndexOf("/")+1)||""}function yo(e){let r=e?e.lastIndexOf("/"):-1;return r>=0?e.substr(r+1):""}function wo(e){let r=e?e.lastIndexOf("/"):-1;return r>=0?e.substr(0,r):""}function bo(...e){let r="/";return e=e.map((t,o)=>(o&&(t=t.replace(new RegExp(`^${r}`),"")),o!==e.length-1&&(t=t.replace(new RegExp(`${r}$`),"")),t)),e.join(r)}function xo(...e){let r=[];for(let s=0;s<e.length;s++)r[s]=e[s];let t="",o=!1,n;for(let s=r.length-1;s>=-1&&!o;s--){let i;s>=0?i=r[s]:(n===void 0&&(n=Qr()),i=n),i.length!==0&&(t=`${i}/${t}`,o=i.charCodeAt(0)===se)}return t=To(t,!o),o?`/${t}`:t.length>0?t:"."}var se=47,tr=46;function To(e,r){let t="",o=-1,n=0,s,i=!1;for(let a=0;a<=e.length;++a){if(a<e.length)s=e.charCodeAt(a);else{if(s===se)break;s=se}if(s===se){if(!(o===a-1||n===1))if(o!==a-1&&n===2){if(t.length<2||!i||t.charCodeAt(t.length-1)!==tr||t.charCodeAt(t.length-2)!==tr){if(t.length>2){let c=t.length-1,f=c;for(;f>=0&&t.charCodeAt(f)!==se;--f);if(f!==c){t=f===-1?"":t.slice(0,f),o=a,n=0,i=!1;continue}}else if(t.length===2||t.length===1){t="",o=a,n=0,i=!1;continue}}r&&(t.length>0?t+="/..":t="..",i=!0)}else{let c=e.slice(o+1,a);t.length>0?t+=`/${c}`:t=c,i=!1}o=a,n=0}else s===tr&&n!==-1?++n:n=-1}return t}var ie=class{handle;size;bigsize;url;constructor(r){this.handle=r instanceof ArrayBuffer?new Blob([r]):r,this.size=r instanceof ArrayBuffer?r.byteLength:r.size,this.bigsize=BigInt(this.size),this.url=r instanceof File?r.name:""}async close(){}async stat(){return{size:this.handle.size,bigsize:BigInt(this.handle.size),isDirectory:!1}}async read(r,t){return await this.handle.slice(Number(r),Number(r)+Number(t)).arrayBuffer()}};var ae=new Error("Not implemented"),ce=class{handle;size=0;bigsize=0n;url="";constructor(r,t,o){if(globalThis.loaders?.NodeFile)return new globalThis.loaders.NodeFile(r,t,o);throw m?new Error("Can't instantiate NodeFile in browser."):new Error("Can't instantiate NodeFile. Make sure to import @loaders.gl/polyfills first.")}async read(r,t){throw ae}async write(r,t,o){throw ae}async stat(){throw ae}async truncate(r){throw ae}async append(r){throw ae}async close(){}};var Jr=e=>typeof e=="boolean",g=e=>typeof e=="function",A=e=>e!==null&&typeof e=="object",fe=e=>A(e)&&e.constructor==={}.constructor,Kr=e=>A(e)&&g(e.then),ue=e=>Boolean(e)&&typeof e[Symbol.iterator]=="function",le=e=>e&&typeof e[Symbol.asyncIterator]=="function",me=e=>e&&g(e.next),l=e=>typeof Response<"u"&&e instanceof Response||e&&e.arrayBuffer&&e.text&&e.json;var p=e=>typeof Blob<"u"&&e instanceof Blob,Yr=e=>e&&typeof e=="object"&&e.isBuffer,Ao=e=>A(e)&&g(e.abort)&&g(e.getWriter),So=e=>typeof ReadableStream<"u"&&e instanceof ReadableStream||A(e)&&g(e.tee)&&g(e.cancel)&&g(e.getReader),ko=e=>A(e)&&g(e.end)&&g(e.write)&&Jr(e.writable),_o=e=>A(e)&&g(e.read)&&g(e.pipe)&&Jr(e.readable),P=e=>So(e)||_o(e),Zr=e=>Ao(e)||ko(e);var V=class extends Error{constructor(r,t){super(r),this.reason=t.reason,this.url=t.url,this.response=t.response}reason;url;response};var Eo=/^data:([-\w.]+\/[-\w.+]+)(;|,)/,Bo=/^([-\w.]+\/[-\w.+]+)/;function or(e,r){return e.toLowerCase()===r.toLowerCase()}function Xr(e){let r=Bo.exec(e);return r?r[1]:e}function nr(e){let r=Eo.exec(e);return r?r[1]:""}var et=/\?.*/;function rt(e){let r=e.match(et);return r&&r[0]}function H(e){return e.replace(et,"")}function tt(e){if(e.length<50)return e;let r=e.slice(e.length-15);return`${e.substr(0,32)}...${r}`}function y(e){return l(e)?e.url:p(e)?e.name||"":typeof e=="string"?e:""}function pe(e){if(l(e)){let r=e,t=r.headers.get("content-type")||"",o=H(r.url);return Xr(t)||nr(o)}return p(e)?e.type||"":typeof e=="string"?nr(e):""}function ot(e){return l(e)?e.headers["content-length"]||-1:p(e)?e.size:typeof e=="string"?e.length:e instanceof ArrayBuffer||ArrayBuffer.isView(e)?e.byteLength:-1}async function Ae(e){if(l(e))return e;let r={},t=ot(e);t>=0&&(r["content-length"]=String(t));let o=y(e),n=pe(e);n&&(r["content-type"]=n);let s=await Ro(e);s&&(r["x-first-bytes"]=s),typeof e=="string"&&(e=new TextEncoder().encode(e));let i=new Response(e,{headers:r});return Object.defineProperty(i,"url",{value:o}),i}async function sr(e){if(!e.ok)throw await Lo(e)}async function Lo(e){let r=tt(e.url),t=`Failed to fetch resource (${e.status}) ${e.statusText}: ${r}`;t=t.length>100?`${t.slice(0,100)}...`:t;let o={reason:e.statusText,url:e.url,response:e};try{let n=e.headers.get("Content-Type");o.reason=!e.bodyUsed&&n?.includes("application/json")?await e.json():await e.text()}catch{}return new V(t,o)}async function Ro(e){if(typeof e=="string")return`data:,${e.slice(0,5)}`;if(e instanceof Blob){let t=e.slice(0,5);return await new Promise(o=>{let n=new FileReader;n.onload=s=>o(s?.target?.result),n.readAsDataURL(t)})}if(e instanceof ArrayBuffer){let t=e.slice(0,5);return`data:base64,${Io(t)}`}return null}function Io(e){let r="",t=new Uint8Array(e);for(let o=0;o<t.byteLength;o++)r+=String.fromCharCode(t[o]);return btoa(r)}function Fo(e){return!No(e)&&!Mo(e)}function No(e){return e.startsWith("http:")||e.startsWith("https:")}function Mo(e){return e.startsWith("data:")}async function C(e,r){if(typeof e=="string"){let t=L(e);return Fo(t)&&globalThis.loaders?.fetchNode?globalThis.loaders?.fetchNode(t,r):await fetch(t,r)}return await Ae(e)}async function nt(e,r,t){e instanceof Blob||(e=new Blob([e]));let o=e.slice(r,r+t);return await Oo(o)}async function Oo(e){return await new Promise((r,t)=>{let o=new FileReader;o.onload=n=>r(n?.target?.result),o.onerror=n=>t(n),o.readAsArrayBuffer(e)})}var ir=new x({id:"loaders.gl"}),Se=class{log(){return()=>{}}info(){return()=>{}}warn(){return()=>{}}error(){return()=>{}}},ke=class{console;constructor(){this.console=console}log(...r){return this.console.log.bind(this.console,...r)}info(...r){return this.console.info.bind(this.console,...r)}warn(...r){return this.console.warn.bind(this.console,...r)}error(...r){return this.console.error.bind(this.console,...r)}};var ar={fetch:null,mimeType:void 0,nothrow:!1,log:new ke,useLocalLibraries:!1,CDN:"https://unpkg.com/@loaders.gl",worker:!0,maxConcurrency:3,maxMobileConcurrency:1,reuseWorkers:m,_nodeWorkers:!1,_workerType:"",limit:0,_limitMB:0,batchSize:"auto",batchDebounceMs:0,metadata:!1,transforms:[]},st={throws:"nothrow",dataType:"(no longer used)",uri:"baseUri",method:"fetch.method",headers:"fetch.headers",body:"fetch.body",mode:"fetch.mode",credentials:"fetch.credentials",cache:"fetch.cache",redirect:"fetch.redirect",referrer:"fetch.referrer",referrerPolicy:"fetch.referrerPolicy",integrity:"fetch.integrity",keepalive:"fetch.keepalive",signal:"fetch.signal"};function he(){globalThis.loaders=globalThis.loaders||{};let{loaders:e}=globalThis;return e._state||(e._state={}),e._state}function _(){let e=he();return e.globalOptions=e.globalOptions||{...ar},e.globalOptions}function cr(e){let r=he(),t=_();r.globalOptions=ct(t,e),Pe(e.modules)}function G(e,r,t,o){return t=t||[],t=Array.isArray(t)?t:[t],Wo(e,t),ct(r,e,o)}function Wo(e,r){it(e,null,ar,st,r);for(let t of r){let o=e&&e[t.id]||{},n=t.options&&t.options[t.id]||{},s=t.deprecatedOptions&&t.deprecatedOptions[t.id]||{};it(o,t.id,n,s,r)}}function it(e,r,t,o,n){let s=r||"Top level",i=r?`${r}.`:"";for(let a in e){let c=!r&&A(e[a]),f=a==="baseUri"&&!r,k=a==="workerUrl"&&r;if(!(a in t)&&!f&&!k){if(a in o)ir.warn(`${s} loader option '${i}${a}' no longer supported, use '${o[a]}'`)();else if(!c){let E=Po(a,n);ir.warn(`${s} loader option '${i}${a}' not recognized. ${E}`)()}}}}function Po(e,r){let t=e.toLowerCase(),o="";for(let n of r)for(let s in n.options){if(e===s)return`Did you mean '${n.id}.${s}'?`;let i=s.toLowerCase();(t.startsWith(i)||i.startsWith(t))&&(o=o||`Did you mean '${n.id}.${s}'?`)}return o}function ct(e,r,t){let n={...e.options||{}};return Co(n,t),n.log===null&&(n.log=new Se),at(n,_()),at(n,r),n}function at(e,r){for(let t in r)if(t in r){let o=r[t];fe(o)&&fe(e[t])?e[t]={...e[t],...r[t]}:e[t]=r[t]}}function Co(e,r){r&&!("baseUri"in e)&&(e.baseUri=r)}function w(e){return e?(Array.isArray(e)&&(e=e[0]),Array.isArray(e?.extensions)):!1}function de(e){v(e,"null loader"),v(w(e),"invalid loader");let r;return Array.isArray(e)&&(r=e[1],e=e[0],e={...e,options:{...e.options,...r}}),(e?.parseTextSync||e?.parseText)&&(e.text=!0),e.text||(e.binary=!0),e}var ft=()=>{let e=he();return e.loaderRegistry=e.loaderRegistry||[],e.loaderRegistry};function ut(e){let r=ft();e=Array.isArray(e)?e:[e];for(let t of e){let o=de(t);r.find(n=>o===n)||r.unshift(o)}}function lt(){return ft()}function mt(){let e=he();e.loaderRegistry=[]}var vo=/\.([^.]+)$/;async function Q(e,r=[],t,o){if(!ht(e))return null;let n=q(e,r,{...t,nothrow:!0},o);if(n)return n;if(p(e)&&(e=await e.slice(0,10).arrayBuffer(),n=q(e,r,t,o)),!n&&!t?.nothrow)throw new Error(dt(e));return n}function q(e,r=[],t,o){if(!ht(e))return null;if(r&&!Array.isArray(r))return de(r);let n=[];r&&(n=n.concat(r)),t?.ignoreRegisteredLoaders||n.push(...lt()),Uo(n);let s=$o(e,n,t,o);if(!s&&!t?.nothrow)throw new Error(dt(e));return s}function $o(e,r,t,o){let n=y(e),s=pe(e),i=H(n)||o?.url,a=null,c="";return t?.mimeType&&(a=fr(r,t?.mimeType),c=`match forced by supplied MIME type ${t?.mimeType}`),a=a||Do(r,i),c=c||(a?`matched url ${i}`:""),a=a||fr(r,s),c=c||(a?`matched MIME type ${s}`:""),a=a||zo(r,e),c=c||(a?`matched initial data ${gt(e)}`:""),t?.fallbackMimeType&&(a=a||fr(r,t?.fallbackMimeType),c=c||(a?`matched fallback MIME type ${s}`:"")),c&&Oe.log(1,`selectLoader selected ${a?.name}: ${c}.`),a}function ht(e){return!(e instanceof Response&&e.status===204)}function dt(e){let r=y(e),t=pe(e),o="No valid loader found (";o+=r?`${W.filename(r)}, `:"no url provided, ",o+=`MIME type: ${t?`"${t}"`:"not provided"}, `;let n=e?gt(e):"";return o+=n?` first bytes: "${n}"`:"first bytes: not available",o+=")",o}function Uo(e){for(let r of e)de(r)}function Do(e,r){let t=r&&vo.exec(r),o=t&&t[1];return o?jo(e,o):null}function jo(e,r){r=r.toLowerCase();for(let t of e)for(let o of t.extensions)if(o.toLowerCase()===r)return t;return null}function fr(e,r){for(let t of e)if(t.mimeTypes?.some(o=>or(r,o))||or(r,`application/x.${t.id}`))return t;return null}function zo(e,r){if(!r)return null;for(let t of e)if(typeof r=="string"){if(Vo(r,t))return t}else if(ArrayBuffer.isView(r)){if(pt(r.buffer,r.byteOffset,t))return t}else if(r instanceof ArrayBuffer&&pt(r,0,t))return t;return null}function Vo(e,r){return r.testText?r.testText(e):(Array.isArray(r.tests)?r.tests:[r.tests]).some(o=>e.startsWith(o))}function pt(e,r,t){return(Array.isArray(t.tests)?t.tests:[t.tests]).some(n=>Ho(e,r,t,n))}function Ho(e,r,t,o){if(o instanceof ArrayBuffer)return Ge(o,e,o.byteLength);switch(typeof o){case"function":return o(e);case"string":let n=ur(e,r,o.length);return o===n;default:return!1}}function gt(e,r=5){return typeof e=="string"?e.slice(0,r):ArrayBuffer.isView(e)?ur(e.buffer,e.byteOffset,r):e instanceof ArrayBuffer?ur(e,0,r):""}function ur(e,r,t){if(e.byteLength<r+t)return"";let o=new DataView(e),n="";for(let s=0;s<t;s++)n+=String.fromCharCode(o.getUint8(r+s));return n}function*yt(e,r){let t=r?.chunkSize||262144,o=0,n=new TextEncoder;for(;o<e.length;){let s=Math.min(e.length-o,t),i=e.slice(o,o+s);o+=s,yield n.encode(i)}}function*wt(e,r={}){let{chunkSize:t=262144}=r,o=0;for(;o<e.byteLength;){let n=Math.min(e.byteLength-o,t),s=new ArrayBuffer(n),i=new Uint8Array(e,o,n);new Uint8Array(s).set(i),o+=n,yield s}}async function*bt(e,r){let t=r?.chunkSize||1048576,o=0;for(;o<e.size;){let n=o+t,s=await e.slice(o,n).arrayBuffer();o=n,yield s}}function lr(e,r){return m?Go(e,r):qo(e,r)}async function*Go(e,r){let t=e.getReader(),o;try{for(;;){let n=o||t.read();r?._streamReadAhead&&(o=t.read());let{done:s,value:i}=await n;if(s)return;yield Te(i)}}catch{t.releaseLock()}}async function*qo(e,r){for await(let t of e)yield Te(t)}function J(e,r){if(typeof e=="string")return yt(e,r);if(e instanceof ArrayBuffer)return wt(e,r);if(p(e))return bt(e,r);if(P(e))return lr(e,r);if(l(e))return lr(e.body,r);throw new Error("makeIterator")}var mr="Cannot convert supplied data type";function pr(e,r,t){if(r.text&&typeof e=="string")return e;if(Yr(e)&&(e=e.buffer),e instanceof ArrayBuffer){let o=e;return r.text&&!r.binary?new TextDecoder("utf8").decode(o):o}if(ArrayBuffer.isView(e)){if(r.text&&!r.binary)return new TextDecoder("utf8").decode(e);let o=e.buffer,n=e.byteLength||e.length;return(e.byteOffset!==0||n!==o.byteLength)&&(o=o.slice(e.byteOffset,e.byteOffset+n)),o}throw new Error(mr)}async function xt(e,r,t){let o=e instanceof ArrayBuffer||ArrayBuffer.isView(e);if(typeof e=="string"||o)return pr(e,r,t);if(p(e)&&(e=await Ae(e)),l(e)){let n=e;return await sr(n),r.binary?await n.arrayBuffer():await n.text()}if(P(e)&&(e=J(e,t)),ue(e)||le(e))return M(e);throw new Error(mr)}async function Tt(e,r){if(me(e))return e;if(l(e)){let t=e;await sr(t);let o=await t.body;return J(o,r)}return p(e)||P(e)?J(e,r):le(e)?e:Qo(e)}function Qo(e){if(ArrayBuffer.isView(e))return function*(){yield e.buffer}();if(e instanceof ArrayBuffer)return function*(){yield e}();if(me(e))return e;if(ue(e))return e[Symbol.iterator]();throw new Error(mr)}function K(e,r){let t=_(),o=e||t;return typeof o.fetch=="function"?o.fetch:A(o.fetch)?n=>C(n,o.fetch):r?.fetch?r?.fetch:C}function Y(e,r,t){if(t)return t;let o={fetch:K(r,e),...e};if(o.url){let n=H(o.url);o.baseUrl=n,o.queryString=rt(o.url),o.filename=W.filename(n),o.baseUrl=W.dirname(n)}return Array.isArray(o.loaders)||(o.loaders=null),o}function _e(e,r){if(e&&!Array.isArray(e))return e;let t;if(e&&(t=Array.isArray(e)?e:[e]),r&&r.loaders){let o=Array.isArray(r.loaders)?r.loaders:[r.loaders];t=t?[...t,...o]:o}return t&&t.length?t:void 0}async function S(e,r,t,o){r&&!Array.isArray(r)&&!w(r)&&(o=void 0,t=r,r=void 0),e=await e,t=t||{};let n=y(e),i=_e(r,o),a=await Q(e,i,t);return a?(t=G(t,a,i,n),o=Y({url:n,_parse:S,loaders:i},t,o||null),await Jo(a,e,t,o)):null}async function Jo(e,r,t,o){if(je(e),t=We(e.options,t),l(r)){let s=r,{ok:i,redirected:a,status:c,statusText:f,type:k,url:E}=s,Ar=Object.fromEntries(s.headers.entries());o.response={headers:Ar,ok:i,redirected:a,status:c,statusText:f,type:k,url:E}}r=await xt(r,e,t);let n=e;if(n.parseTextSync&&typeof r=="string")return n.parseTextSync(r,t,o);if(ze(e,t))return await Ve(e,r,t,o,S);if(n.parseText&&typeof r=="string")return await n.parseText(r,t,o);if(n.parse)return await n.parse(r,t,o);throw u(!n.parseSync),new Error(`${e.id} loader - no parser found and worker is disabled`)}function At(e,r,t,o){!Array.isArray(r)&&!w(r)&&(o=void 0,t=r,r=void 0),t=t||{};let s=_e(r,o),i=q(e,s,t);if(!i)return null;t=G(t,i,s);let a=y(e),c=()=>{throw new Error("parseSync called parse (which is async")};return o=Y({url:a,_parseSync:c,_parse:c,loaders:r},t,o||null),Ko(i,e,t,o)}function Ko(e,r,t,o){if(r=pr(r,e,t),e.parseTextSync&&typeof r=="string")return e.parseTextSync(r,t);if(e.parseSync&&r instanceof ArrayBuffer)return e.parseSync(r,t,o);throw new Error(`${e.name} loader: 'parseSync' not supported by this loader, use 'parse' instead. ${o.url||""}`)}function hr(e){switch(typeof e=="object"&&e?.shape){case"array-row-table":case"object-row-table":return Array.isArray(e.data);case"geojson-table":return Array.isArray(e.features);case"columnar-table":return e.data&&typeof e.data=="object";case"arrow-table":return Boolean(e?.data?.numRows!==void 0);default:return!1}}function dr(e){switch(e.shape){case"array-row-table":case"object-row-table":return e.data.length;case"geojson-table":return e.features.length;case"arrow-table":return e.data.numRows;case"columnar-table":for(let t of Object.values(e.data))return t.length||0;return 0;default:throw new Error("table")}}function gr(e){return{...e,length:dr(e),batchType:"data"}}async function R(e,r,t,o){let n=Array.isArray(r)?r:void 0;!Array.isArray(r)&&!w(r)&&(o=void 0,t=r,r=void 0),e=await e,t=t||{};let s=y(e),i=await Q(e,r,t);return i?(t=G(t,i,n,s),o=Y({url:s,_parseInBatches:R,_parse:S,loaders:n},t,o||null),await Yo(i,e,t,o)):[]}async function Yo(e,r,t,o){let n=await Zo(e,r,t,o);if(!t.metadata)return n;let s={shape:"metadata",batchType:"metadata",metadata:{_loader:e,_context:o},data:[],bytesUsed:0};async function*i(a){yield s,yield*a}return i(n)}async function Zo(e,r,t,o){let n=await Tt(r,t),s=await rn(n,t?.transforms||[]);return e.parseInBatches?e.parseInBatches(s,t,o):Xo(s,e,t,o)}async function*Xo(e,r,t,o){let n=await M(e),s=await S(n,r,{...t,mimeType:r.mimeTypes[0]},o);yield en(s,r)}function en(e,r){let t=hr(e)?gr(e):{shape:"unknown",batchType:"data",data:e,length:Array.isArray(e)?e.length:1};return t.mimeType=r.mimeTypes[0],t}async function rn(e,r=[]){let t=e;for await(let o of r)t=o(t);return t}async function St(e,r,t,o){let n,s;!Array.isArray(r)&&!w(r)?(n=[],s=r,o=void 0):(n=r,s=t);let i=K(s),a=e;return typeof e=="string"&&(a=await i(e)),p(e)&&(a=await i(e)),Array.isArray(n)?await S(a,n,s):await S(a,n,s)}function _t(e,r,t,o){let n;!Array.isArray(r)&&!w(r)?(o=void 0,t=r,n=void 0):n=r;let s=K(t||{});return Array.isArray(e)?e.map(a=>kt(a,n,t||{},s)):kt(e,n,t||{},s)}async function kt(e,r,t,o){if(typeof e=="string"){let s=await o(e);return Array.isArray(r)?await R(s,r,t):await R(s,r,t)}return Array.isArray(r)?await R(e,r,t):await R(e,r,t)}async function yr(e,r,t){if(r.encode)return await r.encode(e,t);if(r.encodeText){let o=await r.encodeText(e,t);return new TextEncoder().encode(o)}if(r.encodeInBatches){let o=wr(e,r,t),n=[];for await(let s of o)n.push(s);return oe(...n)}throw new Error("Writer could not encode data")}async function Et(e,r,t){if(r.text&&r.encodeText)return await r.encodeText(e,t);if(r.text){let o=await yr(e,r,t);return new TextDecoder().decode(o)}throw new Error(`Writer ${r.name} could not encode data as text`)}function wr(e,r,t){if(r.encodeInBatches){let o=tn(e);return r.encodeInBatches(o,t)}throw new Error("Writer could not encode data in batches")}function tn(e){return[{...e,start:0,end:e.length}]}async function Lt(e,r,t){let n={..._(),...t};return r.encodeURLtoURL?on(r,e,n):He(r,n)?await De(r,e,n):await r.encode(e,n)}function br(e,r,t){if(r.encodeSync)return r.encodeSync(e,t);if(r.encodeTextSync)return new TextEncoder().encode(r.encodeTextSync(e,t));throw new Error(`Writer ${r.name} could not synchronously encode data`)}async function Rt(e,r,t){if(r.encodeText)return await r.encodeText(e,t);if(r.encodeTextSync)return r.encodeTextSync(e,t);if(r.text){let o=await r.encode(e,t);return new TextDecoder().decode(o)}throw new Error(`Writer ${r.name} could not encode data as text`)}function It(e,r,t){if(r.encodeTextSync)return r.encodeTextSync(e,t);if(r.text&&r.encodeSync){let o=br(e,r,t);return new TextDecoder().decode(o)}throw new Error(`Writer ${r.name} could not encode data as text`)}function Ft(e,r,t){if(r.encodeInBatches){let o=nn(e);return r.encodeInBatches(o,t)}throw new Error(`Writer ${r.name} could not encode in batches`)}async function xr(e,r,t,o){if(e=L(e),r=L(r),m||!t.encodeURLtoURL)throw new Error;return await t.encodeURLtoURL(e,r,o)}async function on(e,r,t){if(m)throw new Error(`Writer ${e.name} not supported in browser`);let o=Bt("input");await new ce(o,"w").write(r);let s=Bt("output"),i=await xr(o,s,e,t);return(await C(i)).arrayBuffer()}function nn(e){return[{...e,start:0,end:e.length}]}function Bt(e){return`/tmp/${e}`}function Nt(e,r,t){let o=t?.core?.type||t.type||"auto",n=o==="auto"?sn(e,r):an(o,r);if(!n)throw new Error("Not a valid source type");return n.createDataSource(e,t)}function sn(e,r){for(let t of r)if(t.testURL&&t.testURL(e))return t;return null}function an(e,r){for(let t of r)if(t.type===e)return t;return null}function Mt(e,r,t){let o=t?.type||"auto",n=null;if(o==="auto"){for(let s of r)if(typeof e=="string"&&s.testURL&&s.testURL(e))return s}else n=cn(o,r);if(!n&&!t?.nothrow)throw new Error("Not a valid image source type");return n}function cn(e,r){for(let t of r)if(t.type===e)return t;return null}function Ot(e,r){if(globalThis.loaders.makeNodeStream)return globalThis.loaders.makeNodeStream(e,r);let t=e[Symbol.asyncIterator]?e[Symbol.asyncIterator]():e[Symbol.iterator]();return new ReadableStream({type:"bytes",async pull(o){try{let{done:n,value:s}=await t.next();n?o.close():o.enqueue(new Uint8Array(s))}catch(n){o.error(n)}},async cancel(){await t?.return?.()}},{highWaterMark:2**24,...r})}var Wt="4.4.0-alpha.0",Pt={dataType:null,batchType:null,name:"Null loader",id:"null",module:"core",version:Wt,worker:!0,mimeTypes:["application/x.empty"],extensions:["null"],tests:[()=>!1],options:{null:{}}},Ct={dataType:null,batchType:null,name:"Null loader",id:"null",module:"core",version:Wt,mimeTypes:["application/x.empty"],extensions:["null"],parse:async(e,r,t)=>Tr(e,r||{},t),parseSync:Tr,parseInBatches:async function*(r,t,o){for await(let n of r)yield Tr(n,t,o)},tests:[()=>!1],options:{null:{}}};function Tr(e,r,t){return null}async function vt(e,r,t=()=>{},o=()=>{}){if(e=await e,!e.ok)return e;let n=e.body;if(!n)return e;let s=e.headers.get("content-length")||0,i=s?parseInt(s):0;if(!(i>0)||typeof ReadableStream>"u"||!n.getReader)return e;let a=new ReadableStream({async start(c){let f=n.getReader();await $t(c,f,0,i,r,t,o)}});return new Response(a)}async function $t(e,r,t,o,n,s,i){try{let{done:a,value:c}=await r.read();if(a){s(),e.close();return}t+=c.byteLength;let f=Math.round(t/o*100);n(f,{loadedBytes:t,totalBytes:o}),e.enqueue(c),await $t(e,r,t,o,n,s,i)}catch(a){e.error(a),i(a)}}var Ee=class{_fetch;files={};lowerCaseFiles={};usedFiles={};constructor(r,t){this._fetch=t?.fetch||fetch;for(let o=0;o<r.length;++o){let n=r[o];this.files[n.name]=n,this.lowerCaseFiles[n.name.toLowerCase()]=n,this.usedFiles[n.name]=!1}this.fetch=this.fetch.bind(this)}async fetch(r,t){if(r.includes("://"))return this._fetch(r,t);let o=this.files[r];if(!o)return new Response(r,{status:400,statusText:"NOT FOUND"});let s=new Headers(t?.headers).get("Range"),i=s&&/bytes=($1)-($2)/.exec(s);if(i){let c=parseInt(i[1]),f=parseInt(i[2]),k=await o.slice(c,f).arrayBuffer(),E=new Response(k);return Object.defineProperty(E,"url",{value:r}),E}let a=new Response(o);return Object.defineProperty(a,"url",{value:r}),a}async readdir(r){let t=[];for(let o in this.files)t.push(o);return t}async stat(r,t){let o=this.files[r];if(!o)throw new Error(r);return{size:o.size}}async unlink(r){delete this.files[r],delete this.lowerCaseFiles[r],this.usedFiles[r]=!0}async openReadableFile(r,t){return new ie(this.files[r])}_getFile(r,t){let o=this.files[r]||this.lowerCaseFiles[r];return o&&t&&(this.usedFiles[r]=!0),o}};return Ht(fn);})();
14
14
  return __exports__;
15
15
  });
package/dist/index.cjs CHANGED
@@ -1046,7 +1046,7 @@ async function parse(data, loaders, options, context) {
1046
1046
  }
1047
1047
  async function parseWithLoader(loader, data, options, context) {
1048
1048
  (0, import_worker_utils.validateWorkerVersion)(loader);
1049
- options = (0, import_loader_utils9.mergeLoaderOptions)(loader.options, options);
1049
+ options = (0, import_loader_utils9.mergeOptions)(loader.options, options);
1050
1050
  if (isResponse(data)) {
1051
1051
  const response = data;
1052
1052
  const { ok, redirected, status, statusText, type, url } = response;
@@ -1105,7 +1105,7 @@ function parseWithLoaderSync(loader, data, options, context) {
1105
1105
  }
1106
1106
 
1107
1107
  // dist/lib/api/parse-in-batches.js
1108
- var import_schema = require("@loaders.gl/schema");
1108
+ var import_schema_utils = require("@loaders.gl/schema-utils");
1109
1109
  var import_loader_utils10 = require("@loaders.gl/loader-utils");
1110
1110
  async function parseInBatches(data, loaders, options, context) {
1111
1111
  const loaderArray = Array.isArray(loaders) ? loaders : void 0;
@@ -1168,7 +1168,7 @@ async function* parseChunkInBatches(transformedIterator, loader, options, contex
1168
1168
  yield batch;
1169
1169
  }
1170
1170
  function convertDataToBatch(parsedData, loader) {
1171
- const batch = (0, import_schema.isTable)(parsedData) ? (0, import_schema.makeBatchFromTable)(parsedData) : {
1171
+ const batch = (0, import_schema_utils.isTable)(parsedData) ? (0, import_schema_utils.makeBatchFromTable)(parsedData) : {
1172
1172
  shape: "unknown",
1173
1173
  batchType: "data",
1174
1174
  data: parsedData,
@@ -1359,13 +1359,14 @@ function getTemporaryFilename(filename) {
1359
1359
  }
1360
1360
 
1361
1361
  // dist/lib/api/create-data-source.js
1362
- function createDataSource(data, sources, props) {
1363
- const { type = "auto" } = props;
1362
+ function createDataSource(data, sources, options) {
1363
+ var _a;
1364
+ const type = ((_a = options == null ? void 0 : options.core) == null ? void 0 : _a.type) || options.type || "auto";
1364
1365
  const source = type === "auto" ? selectSource(data, sources) : getSourceOfType(type, sources);
1365
1366
  if (!source) {
1366
- throw new Error("Not a valid image source type");
1367
+ throw new Error("Not a valid source type");
1367
1368
  }
1368
- return source.createDataSource(data, props);
1369
+ return source.createDataSource(data, options);
1369
1370
  }
1370
1371
  function selectSource(url, sources) {
1371
1372
  for (const service of sources) {
@@ -1455,7 +1456,7 @@ function makeStream(source, options) {
1455
1456
  }
1456
1457
 
1457
1458
  // dist/null-loader.js
1458
- var VERSION = true ? "4.3.0" : "latest";
1459
+ var VERSION = true ? "4.4.0-alpha.0" : "latest";
1459
1460
  var NullWorkerLoader = {
1460
1461
  dataType: null,
1461
1462
  batchType: null,