@loaders.gl/core 4.2.0-alpha.3 → 4.2.0-alpha.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/dist/core-addons/write-file-browser.js +62 -1
  2. package/dist/dist.dev.js +366 -332
  3. package/dist/dist.min.js +15 -0
  4. package/dist/index.cjs +55 -68
  5. package/dist/index.cjs.map +7 -0
  6. package/dist/index.d.ts +20 -20
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +18 -1
  9. package/dist/iterators/batch-iterators/timed-batch-iterator.js +18 -13
  10. package/dist/iterators/make-iterator/make-array-buffer-iterator.d.ts +1 -1
  11. package/dist/iterators/make-iterator/make-array-buffer-iterator.d.ts.map +1 -1
  12. package/dist/iterators/make-iterator/make-array-buffer-iterator.js +21 -15
  13. package/dist/iterators/make-iterator/make-blob-iterator.d.ts +1 -1
  14. package/dist/iterators/make-iterator/make-blob-iterator.d.ts.map +1 -1
  15. package/dist/iterators/make-iterator/make-blob-iterator.js +18 -10
  16. package/dist/iterators/make-iterator/make-iterator.d.ts +1 -1
  17. package/dist/iterators/make-iterator/make-iterator.d.ts.map +1 -1
  18. package/dist/iterators/make-iterator/make-iterator.js +29 -18
  19. package/dist/iterators/make-iterator/make-stream-iterator.js +86 -23
  20. package/dist/iterators/make-iterator/make-string-iterator.d.ts +1 -1
  21. package/dist/iterators/make-iterator/make-string-iterator.d.ts.map +1 -1
  22. package/dist/iterators/make-iterator/make-string-iterator.js +20 -10
  23. package/dist/iterators/make-stream/make-stream.js +47 -29
  24. package/dist/javascript-utils/is-type.js +25 -19
  25. package/dist/lib/api/encode-table.js +40 -35
  26. package/dist/lib/api/encode.js +112 -73
  27. package/dist/lib/api/load-in-batches.js +35 -21
  28. package/dist/lib/api/load.js +35 -20
  29. package/dist/lib/api/loader-options.d.ts +2 -2
  30. package/dist/lib/api/loader-options.d.ts.map +1 -1
  31. package/dist/lib/api/loader-options.js +3 -1
  32. package/dist/lib/api/parse-in-batches.js +105 -69
  33. package/dist/lib/api/parse-sync.js +42 -33
  34. package/dist/lib/api/parse.js +73 -61
  35. package/dist/lib/api/register-loaders.js +23 -14
  36. package/dist/lib/api/select-loader.js +216 -163
  37. package/dist/lib/common.js +3 -1
  38. package/dist/lib/fetch/fetch-error-message.js +17 -12
  39. package/dist/lib/fetch/fetch-file.js +26 -15
  40. package/dist/lib/fetch/read-array-buffer.js +30 -15
  41. package/dist/lib/filesystems/browser-filesystem.js +126 -69
  42. package/dist/lib/filesystems/read-array-buffer.js +14 -6
  43. package/dist/lib/init.js +13 -7
  44. package/dist/lib/loader-utils/check-errors.js +37 -16
  45. package/dist/lib/loader-utils/get-data.js +110 -88
  46. package/dist/lib/loader-utils/get-fetch-function.js +24 -13
  47. package/dist/lib/loader-utils/loader-context.js +50 -31
  48. package/dist/lib/loader-utils/loggers.js +34 -44
  49. package/dist/lib/loader-utils/normalize-loader.js +45 -32
  50. package/dist/lib/loader-utils/option-defaults.js +38 -34
  51. package/dist/lib/loader-utils/option-utils.d.ts.map +1 -1
  52. package/dist/lib/loader-utils/option-utils.js +133 -80
  53. package/dist/lib/progress/fetch-progress.js +54 -47
  54. package/dist/lib/utils/log.js +4 -4
  55. package/dist/lib/utils/mime-type-utils.js +34 -11
  56. package/dist/lib/utils/resource-utils.js +77 -45
  57. package/dist/lib/utils/response-utils.js +97 -74
  58. package/dist/lib/utils/url-utils.js +6 -4
  59. package/dist/null-loader.js +44 -30
  60. package/dist/null-worker-node.js +1 -1
  61. package/dist/null-worker.js +1 -1
  62. package/dist/workers/null-worker-node.js +3 -1
  63. package/dist/workers/null-worker.js +3 -1
  64. package/package.json +7 -7
  65. package/src/lib/loader-utils/option-utils.ts +3 -1
  66. package/dist/core-addons/README.md +0 -1
  67. package/dist/core-addons/write-file-browser.js.map +0 -1
  68. package/dist/index.js.map +0 -1
  69. package/dist/iterators/batch-iterators/timed-batch-iterator.js.map +0 -1
  70. package/dist/iterators/make-iterator/make-array-buffer-iterator.js.map +0 -1
  71. package/dist/iterators/make-iterator/make-blob-iterator.js.map +0 -1
  72. package/dist/iterators/make-iterator/make-iterator.js.map +0 -1
  73. package/dist/iterators/make-iterator/make-stream-iterator.js.map +0 -1
  74. package/dist/iterators/make-iterator/make-string-iterator.js.map +0 -1
  75. package/dist/iterators/make-stream/make-stream.js.map +0 -1
  76. package/dist/javascript-utils/is-type.js.map +0 -1
  77. package/dist/lib/api/encode-table.js.map +0 -1
  78. package/dist/lib/api/encode.js.map +0 -1
  79. package/dist/lib/api/load-in-batches.js.map +0 -1
  80. package/dist/lib/api/load.js.map +0 -1
  81. package/dist/lib/api/loader-options.js.map +0 -1
  82. package/dist/lib/api/parse-in-batches.js.map +0 -1
  83. package/dist/lib/api/parse-sync.js.map +0 -1
  84. package/dist/lib/api/parse.js.map +0 -1
  85. package/dist/lib/api/register-loaders.js.map +0 -1
  86. package/dist/lib/api/select-loader.js.map +0 -1
  87. package/dist/lib/common.js.map +0 -1
  88. package/dist/lib/fetch/fetch-error-message.js.map +0 -1
  89. package/dist/lib/fetch/fetch-file.js.map +0 -1
  90. package/dist/lib/fetch/read-array-buffer.js.map +0 -1
  91. package/dist/lib/filesystems/browser-filesystem.js.map +0 -1
  92. package/dist/lib/filesystems/read-array-buffer.js.map +0 -1
  93. package/dist/lib/init.js.map +0 -1
  94. package/dist/lib/loader-utils/check-errors.js.map +0 -1
  95. package/dist/lib/loader-utils/get-data.js.map +0 -1
  96. package/dist/lib/loader-utils/get-fetch-function.js.map +0 -1
  97. package/dist/lib/loader-utils/loader-context.js.map +0 -1
  98. package/dist/lib/loader-utils/loggers.js.map +0 -1
  99. package/dist/lib/loader-utils/normalize-loader.js.map +0 -1
  100. package/dist/lib/loader-utils/option-defaults.js.map +0 -1
  101. package/dist/lib/loader-utils/option-utils.js.map +0 -1
  102. package/dist/lib/progress/fetch-progress.js.map +0 -1
  103. package/dist/lib/utils/log.js.map +0 -1
  104. package/dist/lib/utils/mime-type-utils.js.map +0 -1
  105. package/dist/lib/utils/resource-utils.js.map +0 -1
  106. package/dist/lib/utils/response-utils.js.map +0 -1
  107. package/dist/lib/utils/url-utils.js.map +0 -1
  108. package/dist/null-loader.js.map +0 -1
  109. package/dist/workers/null-worker-node.js.map +0 -1
  110. package/dist/workers/null-worker.js.map +0 -1
@@ -0,0 +1,15 @@
1
+ (function webpackUniversalModuleDefinition(root, factory) {
2
+ if (typeof exports === 'object' && typeof module === 'object')
3
+ module.exports = factory();
4
+ else if (typeof define === 'function' && define.amd) define([], factory);
5
+ else if (typeof exports === 'object') exports['loaders'] = factory();
6
+ else root['loaders'] = factory();})(globalThis, function () {
7
+ "use strict";var __exports__=(()=>{var Le=Object.defineProperty;var Cr=Object.getOwnPropertyDescriptor;var Or=Object.getOwnPropertyNames;var Mr=Object.prototype.hasOwnProperty;var _t=(e,t)=>{for(var r in t)Le(e,r,{get:t[r],enumerable:!0})},Ur=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Or(t))!Mr.call(e,n)&&n!==r&&Le(e,n,{get:()=>t[n],enumerable:!(o=Cr(t,n))||o.enumerable});return e};var jr=e=>Ur(Le({},"__esModule",{value:!0}),e);var en={};_t(en,{JSONLoader:()=>tt,NullLoader:()=>Pr,NullWorkerLoader:()=>Fr,RequestScheduler:()=>V,_BrowserFileSystem:()=>Be,_fetchProgress:()=>Nr,_unregisterLoaders:()=>fr,assert:()=>D,concatenateArrayBuffersAsync:()=>N,document:()=>Fe,encode:()=>Er,encodeInBatches:()=>Rr,encodeSync:()=>bt,encodeTable:()=>yt,encodeTableAsText:()=>kr,encodeTableInBatches:()=>wt,encodeText:()=>Br,encodeTextSync:()=>Lr,encodeURLtoURL:()=>xt,fetchFile:()=>M,forEach:()=>Je,getLoaderOptions:()=>L,getPathPrefix:()=>et,global:()=>ve,isAsyncIterable:()=>pe,isBrowser:()=>h,isIterable:()=>me,isIterator:()=>he,isPromise:()=>Ut,isPureObject:()=>le,isReadableStream:()=>O,isResponse:()=>p,isWorker:()=>Pe,isWritableStream:()=>Dt,load:()=>Tr,loadInBatches:()=>_r,makeIterator:()=>Z,makeLineIterator:()=>qe,makeNumberedLineIterator:()=>Qe,makeStream:()=>Ir,makeTextDecoderIterator:()=>He,makeTextEncoderIterator:()=>Ge,parse:()=>E,parseInBatches:()=>P,parseSync:()=>xr,readArrayBuffer:()=>Gt,registerLoaders:()=>ar,resolvePath:()=>F,selectLoader:()=>Y,selectLoaderSync:()=>K,self:()=>Re,setLoaderOptions:()=>ct,setPathPrefix:()=>Xe,window:()=>Ie});function D(e,t){if(!e)throw new Error(t||"loader assertion failed.")}var A={self:typeof self<"u"&&self,window:typeof window<"u"&&window,global:typeof global<"u"&&global,document:typeof document<"u"&&document},Re=A.self||A.window||A.global||{},Ie=A.window||A.self||A.global||{},ve=A.global||A.self||A.window||{},Fe=A.document||{};var h=Boolean(typeof process!="object"||String(process)!=="[object process]"||process.browser),Pe=typeof importScripts=="function",kt=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version),Dr=kt&&parseFloat(kt[1])||0;function Ne(e,t){return St(e||{},t)}function St(e,t,r=0){if(r>3)return t;let o={...e};for(let[n,s]of Object.entries(t))s&&typeof s=="object"&&!Array.isArray(s)?o[n]=St(o[n]||{},t[n],r+1):o[n]=t[n];return o}var Et="latest";function $r(){return globalThis._loadersgl_?.version||(globalThis._loadersgl_=globalThis._loadersgl_||{},globalThis._loadersgl_.version="4.2.0-alpha.4"),globalThis._loadersgl_.version}var te=$r();function m(e,t){if(!e)throw new Error(t||"loaders.gl assertion failed.")}var _={self:typeof self<"u"&&self,window:typeof window<"u"&&window,global:typeof global<"u"&&global,document:typeof document<"u"&&document},cn=_.self||_.window||_.global||{},fn=_.window||_.self||_.global||{},un=_.global||_.self||_.window||{},ln=_.document||{};var g=typeof process!="object"||String(process)!=="[object process]"||process.browser;var Lt=typeof window<"u"&&typeof window.orientation<"u",Bt=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version),mn=Bt&&parseFloat(Bt[1])||0;var re=class{constructor(t,r){this.isRunning=!0,this._resolve=()=>{},this._reject=()=>{},this.name=t,this.workerThread=r,this.result=new Promise((o,n)=>{this._resolve=o,this._reject=n})}postMessage(t,r){this.workerThread.postMessage({source:"loaders.gl",type:t,payload:r})}done(t){m(this.isRunning),this.isRunning=!1,this._resolve(t)}error(t){m(this.isRunning),this.isRunning=!1,this._reject(t)}};var $=class{terminate(){}};var We=new Map;function Rt(e){m(e.source&&!e.url||!e.source&&e.url);let t=We.get(e.source||e.url);return t||(e.url&&(t=zr(e.url),We.set(e.url,t)),e.source&&(t=It(e.source),We.set(e.source,t))),m(t),t}function zr(e){if(!e.startsWith("http"))return e;let t=Vr(e);return It(t)}function It(e){let t=new Blob([e],{type:"application/javascript"});return URL.createObjectURL(t)}function Vr(e){return`try {
8
+ importScripts('${e}');
9
+ } catch (error) {
10
+ console.error(error);
11
+ throw error;
12
+ }`}function Ce(e,t=!0,r){let o=r||new Set;if(e){if(vt(e))o.add(e);else if(vt(e.buffer))o.add(e.buffer);else if(!ArrayBuffer.isView(e)){if(t&&typeof e=="object")for(let n in e)Ce(e[n],t,o)}}return r===void 0?Array.from(o):[]}function vt(e){return e?e instanceof ArrayBuffer||typeof MessagePort<"u"&&e instanceof MessagePort||typeof ImageBitmap<"u"&&e instanceof ImageBitmap||typeof OffscreenCanvas<"u"&&e instanceof OffscreenCanvas:!1}function Oe(e){if(e===null)return{};let t=Object.assign({},e);return Object.keys(t).forEach(r=>{typeof e[r]=="object"&&!ArrayBuffer.isView(e[r])&&!(e[r]instanceof Array)?t[r]=Oe(e[r]):typeof t[r]=="function"||t[r]instanceof RegExp?t[r]={}:t[r]=e[r]}),t}var Me=()=>{},I=class{static isSupported(){return typeof Worker<"u"&&g||typeof $<"u"&&!g}constructor(t){this.terminated=!1,this._loadableURL="";let{name:r,source:o,url:n}=t;m(o||n),this.name=r,this.source=o,this.url=n,this.onMessage=Me,this.onError=s=>console.log(s),this.worker=g?this._createBrowserWorker():this._createNodeWorker()}destroy(){this.onMessage=Me,this.onError=Me,this.worker.terminate(),this.terminated=!0}get isRunning(){return Boolean(this.onMessage)}postMessage(t,r){r=r||Ce(t),this.worker.postMessage(t,r)}_getErrorFromErrorEvent(t){let r="Failed to load ";return r+=`worker ${this.name} from ${this.url}. `,t.message&&(r+=`${t.message} in `),t.lineno&&(r+=`:${t.lineno}:${t.colno}`),new Error(r)}_createBrowserWorker(){this._loadableURL=Rt({source:this.source,url:this.url});let t=new Worker(this._loadableURL,{name:this.name});return t.onmessage=r=>{r.data?this.onMessage(r.data):this.onError(new Error("No data received"))},t.onerror=r=>{this.onError(this._getErrorFromErrorEvent(r)),this.terminated=!0},t.onmessageerror=r=>console.error(r),t}_createNodeWorker(){let t;if(this.url){let o=this.url.includes(":/")||this.url.startsWith("/")?this.url:`./${this.url}`;t=new $(o,{eval:!1})}else if(this.source)t=new $(this.source,{eval:!0});else throw new Error("no worker");return t.on("message",r=>{this.onMessage(r)}),t.on("error",r=>{this.onError(r)}),t.on("exit",r=>{}),t}};var oe=class{static isSupported(){return I.isSupported()}constructor(t){this.name="unnamed",this.maxConcurrency=1,this.maxMobileConcurrency=1,this.onDebug=()=>{},this.reuseWorkers=!0,this.props={},this.jobQueue=[],this.idleQueue=[],this.count=0,this.isDestroyed=!1,this.source=t.source,this.url=t.url,this.setProps(t)}destroy(){this.idleQueue.forEach(t=>t.destroy()),this.isDestroyed=!0}setProps(t){this.props={...this.props,...t},t.name!==void 0&&(this.name=t.name),t.maxConcurrency!==void 0&&(this.maxConcurrency=t.maxConcurrency),t.maxMobileConcurrency!==void 0&&(this.maxMobileConcurrency=t.maxMobileConcurrency),t.reuseWorkers!==void 0&&(this.reuseWorkers=t.reuseWorkers),t.onDebug!==void 0&&(this.onDebug=t.onDebug)}async startJob(t,r=(n,s,i)=>n.done(i),o=(n,s)=>n.error(s)){let n=new Promise(s=>(this.jobQueue.push({name:t,onMessage:r,onError:o,onStart:s}),this));return this._startQueuedJob(),await n}async _startQueuedJob(){if(!this.jobQueue.length)return;let t=this._getAvailableWorker();if(!t)return;let r=this.jobQueue.shift();if(r){this.onDebug({message:"Starting job",name:r.name,workerThread:t,backlog:this.jobQueue.length});let o=new re(r.name,t);t.onMessage=n=>r.onMessage(o,n.type,n.payload),t.onError=n=>r.onError(o,n),r.onStart(o);try{await o.result}catch(n){console.error(`Worker exception: ${n}`)}finally{this.returnWorkerToQueue(t)}}}returnWorkerToQueue(t){!g||this.isDestroyed||!this.reuseWorkers||this.count>this._getMaxConcurrency()?(t.destroy(),this.count--):this.idleQueue.push(t),this.isDestroyed||this._startQueuedJob()}_getAvailableWorker(){if(this.idleQueue.length>0)return this.idleQueue.shift()||null;if(this.count<this._getMaxConcurrency()){this.count++;let t=`${this.name.toLowerCase()} (#${this.count} of ${this.maxConcurrency})`;return new I({name:t,source:this.source,url:this.url})}return null}_getMaxConcurrency(){return Lt?this.maxMobileConcurrency:this.maxConcurrency}};var Hr={maxConcurrency:3,maxMobileConcurrency:1,reuseWorkers:!0,onDebug:()=>{}},l=class{static isSupported(){return I.isSupported()}static getWorkerFarm(t={}){return l._workerFarm=l._workerFarm||new l({}),l._workerFarm.setProps(t),l._workerFarm}constructor(t){this.workerPools=new Map,this.props={...Hr},this.setProps(t),this.workerPools=new Map}destroy(){for(let t of this.workerPools.values())t.destroy();this.workerPools=new Map}setProps(t){this.props={...this.props,...t};for(let r of this.workerPools.values())r.setProps(this._getWorkerPoolProps())}getWorkerPool(t){let{name:r,source:o,url:n}=t,s=this.workerPools.get(r);return s||(s=new oe({name:r,source:o,url:n}),s.setProps(this._getWorkerPoolProps()),this.workerPools.set(r,s)),s}_getWorkerPoolProps(){return{maxConcurrency:this.props.maxConcurrency,maxMobileConcurrency:this.props.maxMobileConcurrency,reuseWorkers:this.props.reuseWorkers,onDebug:this.props.onDebug}}};function Ft(e){let t=e.version!==te?` (worker-utils@${te})`:"";return`${e.name}@${e.version}${t}`}function ne(e,t={}){let r=t[e.id]||{},o=g?`${e.id}-worker.js`:`${e.id}-worker-node.js`,n=r.workerUrl;if(!n&&e.id==="compression"&&(n=t.workerUrl),t._workerType==="test"&&(g?n=`modules/${e.module}/dist/${o}`:n=`modules/${e.module}/src/workers/${e.id}-worker-node.ts`),!n){let s=e.version;s==="latest"&&(s=Et);let i=s?`@${s}`:"";n=`https://unpkg.com/@loaders.gl/${e.module}${i}/dist/${o}`}return m(n),n}async function Ue(e,t,r={},o={}){let n=Ft(e),s=l.getWorkerFarm(r),{source:i}=r,a={name:n,source:i};i||(a.url=ne(e,r));let c=s.getWorkerPool(a),u=r.jobName||e.name,B=await c.startJob(u,Gr.bind(null,o)),R=Oe(r);return B.postMessage("process",{input:t,options:R}),(await B.result).result}async function Gr(e,t,r,o){switch(r){case"done":t.done(o);break;case"error":t.error(new Error(o.error));break;case"process":let{id:n,input:s,options:i}=o;try{if(!e.process){t.postMessage("error",{id:n,error:"Worker not set up to process on main thread"});return}let a=await e.process(s,i);t.postMessage("done",{id:n,result:a})}catch(a){let c=a instanceof Error?a.message:"unknown error";t.postMessage("error",{id:n,error:c})}break;default:console.warn(`process-on-worker: unknown message ${r}`)}}function je(e,t=te){m(e,"no worker provided");let r=e.version;return!(!t||!r)}function De(e,t){return!l.isSupported()||!g&&!t?._nodeWorkers?!1:e.worker&&t?.worker}async function $e(e,t,r,o,n){let s=e.id,i=ne(e,r),c=l.getWorkerFarm(r).getWorkerPool({name:s,url:i});r=JSON.parse(JSON.stringify(r)),o=JSON.parse(JSON.stringify(o||{}));let u=await c.startJob("process-on-worker",qr.bind(null,n));return u.postMessage("process",{input:t,options:r,context:o}),await(await u.result).result}async function qr(e,t,r,o){switch(r){case"done":t.done(o);break;case"error":t.error(new Error(o.error));break;case"process":let{id:n,input:s,options:i}=o;try{let a=await e(s,i);t.postMessage("done",{id:n,result:a})}catch(a){let c=a instanceof Error?a.message:"unknown error";t.postMessage("error",{id:n,error:c})}break;default:console.warn(`parse-with-worker unknown message ${r}`)}}function ze(e,t){return!l.isSupported()||!h&&!t?._nodeWorkers?!1:e.worker&&t?.worker}function Ve(e,t,r){if(r=r||e.byteLength,e.byteLength<r||t.byteLength<r)return!1;let o=new Uint8Array(e),n=new Uint8Array(t);for(let s=0;s<o.length;++s)if(o[s]!==n[s])return!1;return!0}function se(...e){return Pt(e)}function Pt(e){let t=e.map(s=>s instanceof ArrayBuffer?new Uint8Array(s):s),r=t.reduce((s,i)=>s+i.byteLength,0),o=new Uint8Array(r),n=0;for(let s of t)o.set(s,n),n+=s.byteLength;return o.buffer}async function*He(e,t={}){let r=new TextDecoder(void 0,t);for await(let o of e)yield typeof o=="string"?o:r.decode(o,{stream:!0})}async function*Ge(e){let t=new TextEncoder;for await(let r of e)yield typeof r=="string"?t.encode(r):r}async function*qe(e){let t="";for await(let r of e){t+=r;let o;for(;(o=t.indexOf(`
13
+ `))>=0;){let n=t.slice(0,o+1);t=t.slice(o+1),yield n}}t.length>0&&(yield t)}async function*Qe(e){let t=1;for await(let r of e)yield{counter:t,line:r},t++}async function Je(e,t){for(;;){let{done:r,value:o}=await e.next();if(r){e.return();return}if(t(o))return}}async function N(e){let t=[];for await(let r of e)t.push(r);return se(...t)}function v(e){return v=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},v(e)}function Ke(e,t){if(v(e)!=="object"||e===null)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var o=r.call(e,t||"default");if(v(o)!=="object")return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Ye(e){var t=Ke(e,"string");return v(t)==="symbol"?t:String(t)}function f(e,t,r){return t=Ye(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function ie(){let e;if(typeof window<"u"&&window.performance)e=window.performance.now();else if(typeof process<"u"&&process.hrtime){let t=process.hrtime();e=t[0]*1e3+t[1]/1e6}else e=Date.now();return e}var W=class{constructor(t,r){f(this,"name",void 0),f(this,"type",void 0),f(this,"sampleSize",1),f(this,"time",0),f(this,"count",0),f(this,"samples",0),f(this,"lastTiming",0),f(this,"lastSampleTime",0),f(this,"lastSampleCount",0),f(this,"_count",0),f(this,"_time",0),f(this,"_samples",0),f(this,"_startTime",0),f(this,"_timerPending",!1),this.name=t,this.type=r,this.reset()}reset(){return this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this}setSampleSize(t){return this.sampleSize=t,this}incrementCount(){return this.addCount(1),this}decrementCount(){return this.subtractCount(1),this}addCount(t){return this._count+=t,this._samples++,this._checkSampling(),this}subtractCount(t){return this._count-=t,this._samples++,this._checkSampling(),this}addTime(t){return this._time+=t,this.lastTiming=t,this._samples++,this._checkSampling(),this}timeStart(){return this._startTime=ie(),this._timerPending=!0,this}timeEnd(){return this._timerPending?(this.addTime(ie()-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 z=class{constructor(t){f(this,"id",void 0),f(this,"stats",{}),this.id=t.id,this.stats={},this._initializeStats(t.stats),Object.seal(this)}get(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"count";return this._getOrCreate({name:t,type:r})}get size(){return Object.keys(this.stats).length}reset(){for(let t of Object.values(this.stats))t.reset();return this}forEach(t){for(let r of Object.values(this.stats))t(r)}getTable(){let t={};return this.forEach(r=>{t[r.name]={time:r.time||0,count:r.count||0,average:r.getAverageTime()||0,hz:r.getHz()||0}}),t}_initializeStats(){(arguments.length>0&&arguments[0]!==void 0?arguments[0]:[]).forEach(r=>this._getOrCreate(r))}_getOrCreate(t){let{name:r,type:o}=t,n=this.stats[r];return n||(t instanceof W?n=t:n=new W(r,o),this.stats[r]=n),n}};var Qr="Queued Requests",Jr="Active Requests",Kr="Cancelled Requests",Yr="Queued Requests Ever",Zr="Active Requests Ever",Xr={id:"request-scheduler",throttleRequests:!0,maxRequests:6,debounceTime:0},V=class{constructor(t={}){this.activeRequestCount=0,this.requestQueue=[],this.requestMap=new Map,this.updateTimer=null,this.props={...Xr,...t},this.stats=new z({id:this.props.id}),this.stats.get(Qr),this.stats.get(Jr),this.stats.get(Kr),this.stats.get(Yr),this.stats.get(Zr)}scheduleRequest(t,r=()=>0){if(!this.props.throttleRequests)return Promise.resolve({done:()=>{}});if(this.requestMap.has(t))return this.requestMap.get(t);let o={handle:t,priority:0,getPriority:r},n=new Promise(s=>(o.resolve=s,o));return this.requestQueue.push(o),this.requestMap.set(t,n),this._issueNewRequests(),n}_issueRequest(t){let{handle:r,resolve:o}=t,n=!1,s=()=>{n||(n=!0,this.requestMap.delete(r),this.activeRequestCount--,this._issueNewRequests())};return this.activeRequestCount++,o?o({done:s}):Promise.resolve({done:s})}_issueNewRequests(){this.updateTimer!==null&&clearTimeout(this.updateTimer),this.updateTimer=setTimeout(()=>this._issueNewRequestsAsync(),this.props.debounceTime)}_issueNewRequestsAsync(){this.updateTimer!==null&&clearTimeout(this.updateTimer),this.updateTimer=null;let t=Math.max(this.props.maxRequests-this.activeRequestCount,0);if(t!==0){this._updateAllRequests();for(let r=0;r<t;++r){let o=this.requestQueue.shift();o&&this._issueRequest(o)}}}_updateAllRequests(){let t=this.requestQueue;for(let r=0;r<t.length;++r){let o=t[r];this._updateRequest(o)||(t.splice(r,1),this.requestMap.delete(o.handle),r--)}t.sort((r,o)=>r.priority-o.priority)}_updateRequest(t){return t.priority=t.getPriority(t.handle),t.priority<0?(t.resolve(null),!1):!0}};var Ze="",Nt={};function Xe(e){Ze=e}function et(){return Ze}function F(e){for(let t in Nt)if(e.startsWith(t)){let r=Nt[t];e=e.replace(t,r)}return!e.startsWith("http://")&&!e.startsWith("https://")&&(e=`${Ze}${e}`),e}var eo="4.2.0-alpha.4",tt={name:"JSON",id:"json",module:"json",version:eo,extensions:["json","geojson"],mimeTypes:["application/json"],category:"json",text:!0,parseTextSync:Wt,parse:async e=>Wt(new TextDecoder().decode(e)),options:{}};function Wt(e){return JSON.parse(e)}function Ct(e){return e&&typeof e=="object"&&e.isBuffer}function we(e){if(Ct(e))return e;if(e instanceof ArrayBuffer)return e;if(ArrayBuffer.isView(e))return e.byteOffset===0&&e.byteLength===e.buffer.byteLength?e.buffer:e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength);if(typeof e=="string"){let t=e;return new TextEncoder().encode(t).buffer}if(e&&typeof e=="object"&&e._toArrayBuffer)return e._toArrayBuffer();throw new Error("toArrayBuffer")}var C={};_t(C,{dirname:()=>ro,filename:()=>to,join:()=>oo,resolve:()=>no});function Ot(){if(typeof process<"u"&&typeof process.cwd<"u")return process.cwd();let e=window.location?.pathname;return e?.slice(0,e.lastIndexOf("/")+1)||""}function to(e){let t=e?e.lastIndexOf("/"):-1;return t>=0?e.substr(t+1):""}function ro(e){let t=e?e.lastIndexOf("/"):-1;return t>=0?e.substr(0,t):""}function oo(...e){let t="/";return e=e.map((r,o)=>(o&&(r=r.replace(new RegExp(`^${t}`),"")),o!==e.length-1&&(r=r.replace(new RegExp(`${t}$`),"")),r)),e.join(t)}function no(...e){let t=[];for(let s=0;s<e.length;s++)t[s]=e[s];let r="",o=!1,n;for(let s=t.length-1;s>=-1&&!o;s--){let i;s>=0?i=t[s]:(n===void 0&&(n=Ot()),i=n),i.length!==0&&(r=`${i}/${r}`,o=i.charCodeAt(0)===ae)}return r=so(r,!o),o?`/${r}`:r.length>0?r:"."}var ae=47,rt=46;function so(e,t){let r="",o=-1,n=0,s,i=!1;for(let a=0;a<=e.length;++a){if(a<e.length)s=e.charCodeAt(a);else{if(s===ae)break;s=ae}if(s===ae){if(!(o===a-1||n===1))if(o!==a-1&&n===2){if(r.length<2||!i||r.charCodeAt(r.length-1)!==rt||r.charCodeAt(r.length-2)!==rt){if(r.length>2){let c=r.length-1,u=c;for(;u>=0&&r.charCodeAt(u)!==ae;--u);if(u!==c){r=u===-1?"":r.slice(0,u),o=a,n=0,i=!1;continue}}else if(r.length===2||r.length===1){r="",o=a,n=0,i=!1;continue}}t&&(r.length>0?r+="/..":r="..",i=!0)}else{let c=e.slice(o+1,a);r.length>0?r+=`/${c}`:r=c,i=!1}o=a,n=0}else s===rt&&n!==-1?++n:n=-1}return r}var ce=class{constructor(t){this.handle=t instanceof ArrayBuffer?new Blob([t]):t,this.size=t instanceof ArrayBuffer?t.byteLength:t.size,this.bigsize=BigInt(this.size),this.url=t instanceof File?t.name:""}async close(){}async stat(){return{size:this.handle.size,bigsize:BigInt(this.handle.size),isDirectory:!1}}async read(t,r){return await this.handle.slice(t,t+r).arrayBuffer()}};var fe=new Error("Not implemented"),ue=class{constructor(t,r,o){if(this.size=0,this.bigsize=0n,this.url="",globalThis.loaders?.NodeFile)return new globalThis.loaders.NodeFile(t,r,o);throw h?new Error("Can't instantiate NodeFile in browser."):new Error("Can't instantiate NodeFile. Make sure to import @loaders.gl/polyfills first.")}async read(t,r){throw fe}async write(t,r,o){throw fe}async stat(){throw fe}async truncate(t){throw fe}async append(t){throw fe}async close(){}};var Mt=e=>typeof e=="boolean",w=e=>typeof e=="function",k=e=>e!==null&&typeof e=="object",le=e=>k(e)&&e.constructor==={}.constructor,Ut=e=>k(e)&&w(e.then),me=e=>Boolean(e)&&typeof e[Symbol.iterator]=="function",pe=e=>e&&typeof e[Symbol.asyncIterator]=="function",he=e=>e&&w(e.next),p=e=>typeof Response<"u"&&e instanceof Response||e&&e.arrayBuffer&&e.text&&e.json;var d=e=>typeof Blob<"u"&&e instanceof Blob,jt=e=>e&&typeof e=="object"&&e.isBuffer,io=e=>k(e)&&w(e.abort)&&w(e.getWriter),ao=e=>typeof ReadableStream<"u"&&e instanceof ReadableStream||k(e)&&w(e.tee)&&w(e.cancel)&&w(e.getReader),co=e=>k(e)&&w(e.end)&&w(e.write)&&Mt(e.writable),fo=e=>k(e)&&w(e.read)&&w(e.pipe)&&Mt(e.readable),O=e=>ao(e)||fo(e),Dt=e=>io(e)||co(e);var uo=/^data:([-\w.]+\/[-\w.+]+)(;|,)/,lo=/^([-\w.]+\/[-\w.+]+)/;function $t(e){let t=lo.exec(e);return t?t[1]:e}function ot(e){let t=uo.exec(e);return t?t[1]:""}var zt=/\?.*/;function Vt(e){let t=e.match(zt);return t&&t[0]}function H(e){return e.replace(zt,"")}function b(e){return p(e)?e.url:d(e)?e.name||"":typeof e=="string"?e:""}function de(e){if(p(e)){let t=e,r=t.headers.get("content-type")||"",o=H(t.url);return $t(r)||ot(o)}return d(e)?e.type||"":typeof e=="string"?ot(e):""}function Ht(e){return p(e)?e.headers["content-length"]||-1:d(e)?e.size:typeof e=="string"?e.length:e instanceof ArrayBuffer||ArrayBuffer.isView(e)?e.byteLength:-1}async function be(e){if(p(e))return e;let t={},r=Ht(e);r>=0&&(t["content-length"]=String(r));let o=b(e),n=de(e);n&&(t["content-type"]=n);let s=await po(e);s&&(t["x-first-bytes"]=s),typeof e=="string"&&(e=new TextEncoder().encode(e));let i=new Response(e,{headers:t});return Object.defineProperty(i,"url",{value:o}),i}async function nt(e){if(!e.ok){let t=await mo(e);throw new Error(t)}}async function mo(e){let t=`Failed to fetch resource ${e.url} (${e.status}): `;try{let r=e.headers.get("Content-Type"),o=e.statusText;r?.includes("application/json")&&(o+=` ${await e.text()}`),t+=o,t=t.length>60?`${t.slice(0,60)}...`:t}catch{}return t}async function po(e){if(typeof e=="string")return`data:,${e.slice(0,5)}`;if(e instanceof Blob){let r=e.slice(0,5);return await new Promise(o=>{let n=new FileReader;n.onload=s=>o(s?.target?.result),n.readAsDataURL(r)})}if(e instanceof ArrayBuffer){let r=e.slice(0,5);return`data:base64,${ho(r)}`}return null}function ho(e){let t="",r=new Uint8Array(e);for(let o=0;o<r.byteLength;o++)t+=String.fromCharCode(r[o]);return btoa(t)}function go(e){return!yo(e)&&!wo(e)}function yo(e){return e.startsWith("http:")||e.startsWith("https:")}function wo(e){return e.startsWith("data:")}async function M(e,t){if(typeof e=="string"){let r=F(e);return go(r)&&globalThis.loaders?.fetchNode?globalThis.loaders?.fetchNode(r,t):await fetch(r,t)}return await be(e)}async function Gt(e,t,r){e instanceof Blob||(e=new Blob([e]));let o=e.slice(t,t+r);return await bo(o)}async function bo(e){return await new Promise((t,r)=>{let o=new FileReader;o.onload=n=>t(n?.target?.result),o.onerror=n=>r(n),o.readAsArrayBuffer(e)})}function st(e){if(typeof window<"u"&&typeof window.process=="object"&&window.process.type==="renderer"||typeof process<"u"&&typeof process.versions=="object"&&Boolean(process.versions.electron))return!0;let t=typeof navigator=="object"&&typeof navigator.userAgent=="string"&&navigator.userAgent,r=e||t;return!!(r&&r.indexOf("Electron")>=0)}function x(){return!(typeof process=="object"&&String(process)==="[object process]"&&!process.browser)||st()}var xo=globalThis.self||globalThis.window||globalThis.global,G=globalThis.window||globalThis.self||globalThis.global,To=globalThis.document||{},U=globalThis.process||{},Ao=globalThis.console,bi=globalThis.navigator||{};var xe=typeof __VERSION__<"u"?__VERSION__:"untranspiled source",Ai=x();function _o(e){try{let t=window[e],r="__storage_test__";return t.setItem(r,r),t.removeItem(r),t}catch{return null}}var Te=class{constructor(t,r){let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"sessionStorage";f(this,"storage",void 0),f(this,"id",void 0),f(this,"config",void 0),this.storage=_o(o),this.id=t,this.config=r,this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(t){if(Object.assign(this.config,t),this.storage){let r=JSON.stringify(this.config);this.storage.setItem(this.id,r)}}_loadConfiguration(){let t={};if(this.storage){let r=this.storage.getItem(this.id);t=r?JSON.parse(r):{}}return Object.assign(this.config,t),this}};function qt(e){let t;return e<10?t="".concat(e.toFixed(2),"ms"):e<100?t="".concat(e.toFixed(1),"ms"):e<1e3?t="".concat(e.toFixed(0),"ms"):t="".concat((e/1e3).toFixed(2),"s"),t}function Qt(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:8,r=Math.max(t-e.length,0);return"".concat(" ".repeat(r)).concat(e)}function Ae(e,t,r){let o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:600,n=e.src.replace(/\(/g,"%28").replace(/\)/g,"%29");e.width>o&&(r=Math.min(r,o/e.width));let s=e.width*r,i=e.height*r,a=["font-size:1px;","padding:".concat(Math.floor(i/2),"px ").concat(Math.floor(s/2),"px;"),"line-height:".concat(i,"px;"),"background:url(".concat(n,");"),"background-size:".concat(s,"px ").concat(i,"px;"),"color:transparent;"].join("");return["".concat(t," %c+"),a]}var _e;(function(e){e[e.BLACK=30]="BLACK",e[e.RED=31]="RED",e[e.GREEN=32]="GREEN",e[e.YELLOW=33]="YELLOW",e[e.BLUE=34]="BLUE",e[e.MAGENTA=35]="MAGENTA",e[e.CYAN=36]="CYAN",e[e.WHITE=37]="WHITE",e[e.BRIGHT_BLACK=90]="BRIGHT_BLACK",e[e.BRIGHT_RED=91]="BRIGHT_RED",e[e.BRIGHT_GREEN=92]="BRIGHT_GREEN",e[e.BRIGHT_YELLOW=93]="BRIGHT_YELLOW",e[e.BRIGHT_BLUE=94]="BRIGHT_BLUE",e[e.BRIGHT_MAGENTA=95]="BRIGHT_MAGENTA",e[e.BRIGHT_CYAN=96]="BRIGHT_CYAN",e[e.BRIGHT_WHITE=97]="BRIGHT_WHITE"})(_e||(_e={}));var ko=10;function Jt(e){return typeof e!="string"?e:(e=e.toUpperCase(),_e[e]||_e.WHITE)}function Kt(e,t,r){if(!x&&typeof e=="string"){if(t){let o=Jt(t);e="\x1B[".concat(o,"m").concat(e,"\x1B[39m")}if(r){let o=Jt(r);e="\x1B[".concat(o+ko,"m").concat(e,"\x1B[49m")}}return e}function Yt(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:["constructor"],r=Object.getPrototypeOf(e),o=Object.getOwnPropertyNames(r),n=e;for(let s of o){let i=n[s];typeof i=="function"&&(t.find(a=>s===a)||(n[s]=i.bind(e)))}}function q(e,t){if(!e)throw new Error(t||"Assertion failed")}function j(){let e;if(x()&&G.performance){var t,r;e=G===null||G===void 0||(t=G.performance)===null||t===void 0||(r=t.now)===null||r===void 0?void 0:r.call(t)}else if("hrtime"in U){var o;let n=U===null||U===void 0||(o=U.hrtime)===null||o===void 0?void 0:o.call(U);e=n[0]*1e3+n[1]/1e6}else e=Date.now();return e}var Q={debug:x()&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},So={enabled:!0,level:0};function y(){}var Zt={},Xt={once:!0},S=class{constructor(){let{id:t}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{id:""};f(this,"id",void 0),f(this,"VERSION",xe),f(this,"_startTs",j()),f(this,"_deltaTs",j()),f(this,"_storage",void 0),f(this,"userData",{}),f(this,"LOG_THROTTLE_TIMEOUT",0),this.id=t,this.userData={},this._storage=new Te("__probe-".concat(this.id,"__"),So),this.timeStamp("".concat(this.id," started")),Yt(this),Object.seal(this)}set level(t){this.setLevel(t)}get level(){return this.getLevel()}isEnabled(){return this._storage.config.enabled}getLevel(){return this._storage.config.level}getTotal(){return Number((j()-this._startTs).toPrecision(10))}getDelta(){return Number((j()-this._deltaTs).toPrecision(10))}set priority(t){this.level=t}get priority(){return this.level}getPriority(){return this.level}enable(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return this._storage.setConfiguration({enabled:t}),this}setLevel(t){return this._storage.setConfiguration({level:t}),this}get(t){return this._storage.config[t]}set(t,r){this._storage.setConfiguration({[t]:r})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert(t,r){q(t,r)}warn(t){return this._getLogFunction(0,t,Q.warn,arguments,Xt)}error(t){return this._getLogFunction(0,t,Q.error,arguments)}deprecated(t,r){return this.warn("`".concat(t,"` is deprecated and will be removed in a later version. Use `").concat(r,"` instead"))}removed(t,r){return this.error("`".concat(t,"` has been removed. Use `").concat(r,"` instead"))}probe(t,r){return this._getLogFunction(t,r,Q.log,arguments,{time:!0,once:!0})}log(t,r){return this._getLogFunction(t,r,Q.debug,arguments)}info(t,r){return this._getLogFunction(t,r,console.info,arguments)}once(t,r){return this._getLogFunction(t,r,Q.debug||Q.info,arguments,Xt)}table(t,r,o){return r?this._getLogFunction(t,r,console.table||y,o&&[o],{tag:Ro(r)}):y}image(t){let{logLevel:r,priority:o,image:n,message:s="",scale:i=1}=t;return this._shouldLog(r||o)?x()?Lo({image:n,message:s,scale:i}):Bo({image:n,message:s,scale:i}):y}time(t,r){return this._getLogFunction(t,r,console.time?console.time:console.info)}timeEnd(t,r){return this._getLogFunction(t,r,console.timeEnd?console.timeEnd:console.info)}timeStamp(t,r){return this._getLogFunction(t,r,console.timeStamp||y)}group(t,r){let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{collapsed:!1},n=er({logLevel:t,message:r,opts:o}),{collapsed:s}=o;return n.method=(s?console.groupCollapsed:console.group)||console.info,this._getLogFunction(n)}groupCollapsed(t,r){let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.group(t,r,Object.assign({},o,{collapsed:!0}))}groupEnd(t){return this._getLogFunction(t,"",console.groupEnd||y)}withGroup(t,r,o){this.group(t,r)();try{o()}finally{this.groupEnd(t)()}}trace(){console.trace&&console.trace()}_shouldLog(t){return this.isEnabled()&&this.getLevel()>=tr(t)}_getLogFunction(t,r,o,n,s){if(this._shouldLog(t)){s=er({logLevel:t,message:r,args:n,opts:s}),o=o||s.method,q(o),s.total=this.getTotal(),s.delta=this.getDelta(),this._deltaTs=j();let i=s.tag||s.message;if(s.once&&i)if(!Zt[i])Zt[i]=j();else return y;return r=Eo(this.id,s.message,s),o.bind(console,r,...s.args)}return y}};f(S,"VERSION",xe);function tr(e){if(!e)return 0;let t;switch(typeof e){case"number":t=e;break;case"object":t=e.logLevel||e.priority||0;break;default:return 0}return q(Number.isFinite(t)&&t>=0),t}function er(e){let{logLevel:t,message:r}=e;e.logLevel=tr(t);let o=e.args?Array.from(e.args):[];for(;o.length&&o.shift()!==r;);switch(typeof t){case"string":case"function":r!==void 0&&o.unshift(r),e.message=t;break;case"object":Object.assign(e,t);break;default:}typeof e.message=="function"&&(e.message=e.message());let n=typeof e.message;return q(n==="string"||n==="object"),Object.assign(e,{args:o},e.opts)}function Eo(e,t,r){if(typeof t=="string"){let o=r.time?Qt(qt(r.total)):"";t=r.time?"".concat(e,": ").concat(o," ").concat(t):"".concat(e,": ").concat(t),t=Kt(t,r.color,r.background)}return t}function Bo(e){let{image:t,message:r="",scale:o=1}=e;return console.warn("removed"),y}function Lo(e){let{image:t,message:r="",scale:o=1}=e;if(typeof t=="string"){let s=new Image;return s.onload=()=>{let i=Ae(s,r,o);console.log(...i)},s.src=t,y}let n=t.nodeName||"";if(n.toLowerCase()==="img")return console.log(...Ae(t,r,o)),y;if(n.toLowerCase()==="canvas"){let s=new Image;return s.onload=()=>console.log(...Ae(s,r,o)),s.src=t.toDataURL(),y}return y}function Ro(e){for(let t in e)for(let r in e[t])return r||"untitled";return"empty"}var Ji=new S({id:"@probe.gl/log"});var it=new S({id:"loaders.gl"}),ke=class{log(){return()=>{}}info(){return()=>{}}warn(){return()=>{}}error(){return()=>{}}},Se=class{constructor(){this.console=console}log(...t){return this.console.log.bind(this.console,...t)}info(...t){return this.console.info.bind(this.console,...t)}warn(...t){return this.console.warn.bind(this.console,...t)}error(...t){return this.console.error.bind(this.console,...t)}};var at={fetch:null,mimeType:void 0,nothrow:!1,log:new Se,useLocalLibraries:!1,CDN:"https://unpkg.com/@loaders.gl",worker:!0,maxConcurrency:3,maxMobileConcurrency:1,reuseWorkers:h,_nodeWorkers:!1,_workerType:"",limit:0,_limitMB:0,batchSize:"auto",batchDebounceMs:0,metadata:!1,transforms:[]},rr={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 ge(){globalThis.loaders=globalThis.loaders||{};let{loaders:e}=globalThis;return e._state||(e._state={}),e._state}function L(){let e=ge();return e.globalOptions=e.globalOptions||{...at},e.globalOptions}function ct(e){let t=ge(),r=L();t.globalOptions=sr(r,e)}function J(e,t,r,o){return r=r||[],r=Array.isArray(r)?r:[r],Io(e,r),sr(t,e,o)}function Io(e,t){or(e,null,at,rr,t);for(let r of t){let o=e&&e[r.id]||{},n=r.options&&r.options[r.id]||{},s=r.deprecatedOptions&&r.deprecatedOptions[r.id]||{};or(o,r.id,n,s,t)}}function or(e,t,r,o,n){let s=t||"Top level",i=t?`${t}.`:"";for(let a in e){let c=!t&&k(e[a]),u=a==="baseUri"&&!t,B=a==="workerUrl"&&t;if(!(a in r)&&!u&&!B){if(a in o)it.warn(`${s} loader option '${i}${a}' no longer supported, use '${o[a]}'`)();else if(!c){let R=vo(a,n);it.warn(`${s} loader option '${i}${a}' not recognized. ${R}`)()}}}}function vo(e,t){let r=e.toLowerCase(),o="";for(let n of t)for(let s in n.options){if(e===s)return`Did you mean '${n.id}.${s}'?`;let i=s.toLowerCase();(r.startsWith(i)||i.startsWith(r))&&(o=o||`Did you mean '${n.id}.${s}'?`)}return o}function sr(e,t,r){let n={...e.options||{}};return Fo(n,r),n.log===null&&(n.log=new ke),nr(n,L()),nr(n,t),n}function nr(e,t){for(let r in t)if(r in t){let o=t[r];le(o)&&le(e[r])?e[r]={...e[r],...t[r]}:e[r]=t[r]}}function Fo(e,t){t&&!("baseUri"in e)&&(e.baseUri=t)}function T(e){return e?(Array.isArray(e)&&(e=e[0]),Array.isArray(e?.extensions)):!1}function ye(e){D(e,"null loader"),D(T(e),"invalid loader");let t;return Array.isArray(e)&&(t=e[1],e=e[0],e={...e,options:{...e.options,...t}}),(e?.parseTextSync||e?.parseText)&&(e.text=!0),e.text||(e.binary=!0),e}var ir=()=>{let e=ge();return e.loaderRegistry=e.loaderRegistry||[],e.loaderRegistry};function ar(e){let t=ir();e=Array.isArray(e)?e:[e];for(let r of e){let o=ye(r);t.find(n=>o===n)||t.unshift(o)}}function cr(){return ir()}function fr(){let e=ge();e.loaderRegistry=[]}var ur=new S({id:"loaders.gl"});var Po=/\.([^.]+)$/;async function Y(e,t=[],r,o){if(!mr(e))return null;let n=K(e,t,{...r,nothrow:!0},o);if(n)return n;if(d(e)&&(e=await e.slice(0,10).arrayBuffer(),n=K(e,t,r,o)),!n&&!r?.nothrow)throw new Error(pr(e));return n}function K(e,t=[],r,o){if(!mr(e))return null;if(t&&!Array.isArray(t))return ye(t);let n=[];t&&(n=n.concat(t)),r?.ignoreRegisteredLoaders||n.push(...cr()),Wo(n);let s=No(e,n,r,o);if(!s&&!r?.nothrow)throw new Error(pr(e));return s}function No(e,t,r,o){let n=b(e),s=de(e),i=H(n)||o?.url,a=null,c="";return r?.mimeType&&(a=ft(t,r?.mimeType),c=`match forced by supplied MIME type ${r?.mimeType}`),a=a||Co(t,i),c=c||(a?`matched url ${i}`:""),a=a||ft(t,s),c=c||(a?`matched MIME type ${s}`:""),a=a||Mo(t,e),c=c||(a?`matched initial data ${hr(e)}`:""),r?.fallbackMimeType&&(a=a||ft(t,r?.fallbackMimeType),c=c||(a?`matched fallback MIME type ${s}`:"")),c&&ur.log(1,`selectLoader selected ${a?.name}: ${c}.`),a}function mr(e){return!(e instanceof Response&&e.status===204)}function pr(e){let t=b(e),r=de(e),o="No valid loader found (";o+=t?`${C.filename(t)}, `:"no url provided, ",o+=`MIME type: ${r?`"${r}"`:"not provided"}, `;let n=e?hr(e):"";return o+=n?` first bytes: "${n}"`:"first bytes: not available",o+=")",o}function Wo(e){for(let t of e)ye(t)}function Co(e,t){let r=t&&Po.exec(t),o=r&&r[1];return o?Oo(e,o):null}function Oo(e,t){t=t.toLowerCase();for(let r of e)for(let o of r.extensions)if(o.toLowerCase()===t)return r;return null}function ft(e,t){for(let r of e)if(r.mimeTypes&&r.mimeTypes.includes(t)||t===`application/x.${r.id}`)return r;return null}function Mo(e,t){if(!t)return null;for(let r of e)if(typeof t=="string"){if(Uo(t,r))return r}else if(ArrayBuffer.isView(t)){if(lr(t.buffer,t.byteOffset,r))return r}else if(t instanceof ArrayBuffer&&lr(t,0,r))return r;return null}function Uo(e,t){return t.testText?t.testText(e):(Array.isArray(t.tests)?t.tests:[t.tests]).some(o=>e.startsWith(o))}function lr(e,t,r){return(Array.isArray(r.tests)?r.tests:[r.tests]).some(n=>jo(e,t,r,n))}function jo(e,t,r,o){if(o instanceof ArrayBuffer)return Ve(o,e,o.byteLength);switch(typeof o){case"function":return o(e);case"string":let n=ut(e,t,o.length);return o===n;default:return!1}}function hr(e,t=5){return typeof e=="string"?e.slice(0,t):ArrayBuffer.isView(e)?ut(e.buffer,e.byteOffset,t):e instanceof ArrayBuffer?ut(e,0,t):""}function ut(e,t,r){if(e.byteLength<t+r)return"";let o=new DataView(e),n="";for(let s=0;s<r;s++)n+=String.fromCharCode(o.getUint8(t+s));return n}function*dr(e,t){let r=t?.chunkSize||262144,o=0,n=new TextEncoder;for(;o<e.length;){let s=Math.min(e.length-o,r),i=e.slice(o,o+s);o+=s,yield n.encode(i)}}function*gr(e,t={}){let{chunkSize:r=262144}=t,o=0;for(;o<e.byteLength;){let n=Math.min(e.byteLength-o,r),s=new ArrayBuffer(n),i=new Uint8Array(e,o,n);new Uint8Array(s).set(i),o+=n,yield s}}async function*yr(e,t){let r=t?.chunkSize||1048576,o=0;for(;o<e.size;){let n=o+r,s=await e.slice(o,n).arrayBuffer();o=n,yield s}}function lt(e,t){return h?Do(e,t):$o(e,t)}async function*Do(e,t){let r=e.getReader(),o;try{for(;;){let n=o||r.read();t?._streamReadAhead&&(o=r.read());let{done:s,value:i}=await n;if(s)return;yield we(i)}}catch{r.releaseLock()}}async function*$o(e,t){for await(let r of e)yield we(r)}function Z(e,t){if(typeof e=="string")return dr(e,t);if(e instanceof ArrayBuffer)return gr(e,t);if(d(e))return yr(e,t);if(O(e))return lt(e,t);if(p(e))return lt(e.body,t);throw new Error("makeIterator")}var mt="Cannot convert supplied data type";function pt(e,t,r){if(t.text&&typeof e=="string")return e;if(jt(e)&&(e=e.buffer),e instanceof ArrayBuffer){let o=e;return t.text&&!t.binary?new TextDecoder("utf8").decode(o):o}if(ArrayBuffer.isView(e)){if(t.text&&!t.binary)return new TextDecoder("utf8").decode(e);let o=e.buffer,n=e.byteLength||e.length;return(e.byteOffset!==0||n!==o.byteLength)&&(o=o.slice(e.byteOffset,e.byteOffset+n)),o}throw new Error(mt)}async function wr(e,t,r){let o=e instanceof ArrayBuffer||ArrayBuffer.isView(e);if(typeof e=="string"||o)return pt(e,t,r);if(d(e)&&(e=await be(e)),p(e)){let n=e;return await nt(n),t.binary?await n.arrayBuffer():await n.text()}if(O(e)&&(e=Z(e,r)),me(e)||pe(e))return N(e);throw new Error(mt)}async function br(e,t){if(he(e))return e;if(p(e)){let r=e;await nt(r);let o=await r.body;return Z(o,t)}return d(e)||O(e)?Z(e,t):pe(e)?e:zo(e)}function zo(e){if(ArrayBuffer.isView(e))return function*(){yield e.buffer}();if(e instanceof ArrayBuffer)return function*(){yield e}();if(he(e))return e;if(me(e))return e[Symbol.iterator]();throw new Error(mt)}function X(e,t){let r=L(),o=e||r;return typeof o.fetch=="function"?o.fetch:k(o.fetch)?n=>M(n,o.fetch):t?.fetch?t?.fetch:M}function ee(e,t,r){if(r)return r;let o={fetch:X(t,e),...e};if(o.url){let n=H(o.url);o.baseUrl=n,o.queryString=Vt(o.url),o.filename=C.filename(n),o.baseUrl=C.dirname(n)}return Array.isArray(o.loaders)||(o.loaders=null),o}function Ee(e,t){if(e&&!Array.isArray(e))return e;let r;if(e&&(r=Array.isArray(e)?e:[e]),t&&t.loaders){let o=Array.isArray(t.loaders)?t.loaders:[t.loaders];r=r?[...r,...o]:o}return r&&r.length?r:void 0}async function E(e,t,r,o){t&&!Array.isArray(t)&&!T(t)&&(o=void 0,r=t,t=void 0),e=await e,r=r||{};let n=b(e),i=Ee(t,o),a=await Y(e,i,r);return a?(r=J(r,a,i,n),o=ee({url:n,_parse:E,loaders:i},r,o||null),await Vo(a,e,r,o)):null}async function Vo(e,t,r,o){if(je(e),r=Ne(e.options,r),p(t)){let s=t,{ok:i,redirected:a,status:c,statusText:u,type:B,url:R}=s,At=Object.fromEntries(s.headers.entries());o.response={headers:At,ok:i,redirected:a,status:c,statusText:u,type:B,url:R}}t=await wr(t,e,r);let n=e;if(n.parseTextSync&&typeof t=="string")return n.parseTextSync(t,r,o);if(De(e,r))return await $e(e,t,r,o,E);if(n.parseText&&typeof t=="string")return await n.parseText(t,r,o);if(n.parse)return await n.parse(t,r,o);throw m(!n.parseSync),new Error(`${e.id} loader - no parser found and worker is disabled`)}function xr(e,t,r,o){!Array.isArray(t)&&!T(t)&&(o=void 0,r=t,t=void 0),r=r||{};let s=Ee(t,o),i=K(e,s,r);if(!i)return null;r=J(r,i,s);let a=b(e),c=()=>{throw new Error("parseSync called parse (which is async")};return o=ee({url:a,_parseSync:c,_parse:c,loaders:t},r,o||null),Ho(i,e,r,o)}function Ho(e,t,r,o){if(t=pt(t,e,r),e.parseTextSync&&typeof t=="string")return e.parseTextSync(t,r);if(e.parseSync&&t instanceof ArrayBuffer)return e.parseSync(t,r,o);throw new Error(`${e.name} loader: 'parseSync' not supported by this loader, use 'parse' instead. ${o.url||""}`)}function ht(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 dt(e){switch(e.shape){case"array-row-table":case"object-row-table":return e.data.length;case"geojson-table":return e.features.length;case"arrow-table":return e.data.numRows;case"columnar-table":for(let r of Object.values(e.data))return r.length||0;return 0;default:throw new Error("table")}}function gt(e){return{...e,length:dt(e),batchType:"data"}}async function P(e,t,r,o){let n=Array.isArray(t)?t:void 0;!Array.isArray(t)&&!T(t)&&(o=void 0,r=t,t=void 0),e=await e,r=r||{};let s=b(e),i=await Y(e,t,r);return i?(r=J(r,i,n,s),o=ee({url:s,_parseInBatches:P,_parse:E,loaders:n},r,o||null),await Go(i,e,r,o)):[]}async function Go(e,t,r,o){let n=await qo(e,t,r,o);if(!r.metadata)return n;let s={shape:"metadata",batchType:"metadata",metadata:{_loader:e,_context:o},data:[],bytesUsed:0};async function*i(a){yield s,yield*a}return i(n)}async function qo(e,t,r,o){let n=await br(t,r),s=await Ko(n,r?.transforms||[]);return e.parseInBatches?e.parseInBatches(s,r,o):Qo(s,e,r,o)}async function*Qo(e,t,r,o){let n=await N(e),s=await E(n,t,{...r,mimeType:t.mimeTypes[0]},o);yield Jo(s,t)}function Jo(e,t){let r=ht(e)?gt(e):{shape:"unknown",batchType:"data",data:e,length:Array.isArray(e)?e.length:1};return r.mimeType=t.mimeTypes[0],r}async function Ko(e,t=[]){let r=e;for await(let o of t)r=o(r);return r}async function Tr(e,t,r,o){let n,s;!Array.isArray(t)&&!T(t)?(n=[],s=t,o=void 0):(n=t,s=r);let i=X(s),a=e;return typeof e=="string"&&(a=await i(e)),d(e)&&(a=await i(e)),Array.isArray(n)?await E(a,n,s):await E(a,n,s)}function _r(e,t,r,o){let n;!Array.isArray(t)&&!T(t)?(o=void 0,r=t,n=void 0):n=t;let s=X(r||{});return Array.isArray(e)?e.map(a=>Ar(a,n,r||{},s)):Ar(e,n,r||{},s)}async function Ar(e,t,r,o){if(typeof e=="string"){let s=await o(e);return Array.isArray(t)?await P(s,t,r):await P(s,t,r)}return Array.isArray(t)?await P(e,t,r):await P(e,t,r)}async function yt(e,t,r){if(t.encode)return await t.encode(e,r);if(t.encodeText){let o=await t.encodeText(e,r);return new TextEncoder().encode(o)}if(t.encodeInBatches){let o=wt(e,t,r),n=[];for await(let s of o)n.push(s);return se(...n)}throw new Error("Writer could not encode data")}async function kr(e,t,r){if(t.text&&t.encodeText)return await t.encodeText(e,r);if(t.text){let o=await yt(e,t,r);return new TextDecoder().decode(o)}throw new Error(`Writer ${t.name} could not encode data as text`)}function wt(e,t,r){if(t.encodeInBatches){let o=Yo(e);return t.encodeInBatches(o,r)}throw new Error("Writer could not encode data in batches")}function Yo(e){return[{...e,start:0,end:e.length}]}async function Er(e,t,r){return r={...L(),...r},t.encodeURLtoURL?Zo(t,e,r):ze(t,r)?await Ue(t,e,r):await t.encode(e,r)}function bt(e,t,r){if(t.encodeSync)return t.encodeSync(e,r);if(t.encodeTextSync)return new TextEncoder().encode(t.encodeTextSync(e,r));throw new Error(`Writer ${t.name} could not synchronously encode data`)}async function Br(e,t,r){if(t.encodeText)return await t.encodeText(e,r);if(t.encodeTextSync)return t.encodeTextSync(e,r);if(t.text){let o=await t.encode(e,r);return new TextDecoder().decode(o)}throw new Error(`Writer ${t.name} could not encode data as text`)}function Lr(e,t,r){if(t.encodeTextSync)return t.encodeTextSync(e,r);if(t.text&&t.encodeSync){let o=bt(e,t,r);return new TextDecoder().decode(o)}throw new Error(`Writer ${t.name} could not encode data as text`)}function Rr(e,t,r){if(t.encodeInBatches){let o=Xo(e);return t.encodeInBatches(o,r)}throw new Error(`Writer ${t.name} could not encode in batches`)}async function xt(e,t,r,o){if(e=F(e),t=F(t),h||!r.encodeURLtoURL)throw new Error;return await r.encodeURLtoURL(e,t,o)}async function Zo(e,t,r){if(h)throw new Error(`Writer ${e.name} not supported in browser`);let o=Sr("input");await new ue(o,"w").write(t);let s=Sr("output"),i=await xt(o,s,e,r);return(await M(i)).arrayBuffer()}function Xo(e){return[{...e,start:0,end:e.length}]}function Sr(e){return`/tmp/${e}`}function Ir(e,t){if(globalThis.loaders.makeNodeStream)return globalThis.loaders.makeNodeStream(e,t);let r=e[Symbol.asyncIterator]?e[Symbol.asyncIterator]():e[Symbol.iterator]();return new ReadableStream({type:"bytes",async pull(o){try{let{done:n,value:s}=await r.next();n?o.close():o.enqueue(new Uint8Array(s))}catch(n){o.error(n)}},async cancel(){await r?.return?.()}},{highWaterMark:2**24,...t})}var vr="4.2.0-alpha.4",Fr={name:"Null loader",id:"null",module:"core",version:vr,worker:!0,mimeTypes:["application/x.empty"],extensions:["null"],tests:[()=>!1],options:{null:{}}},Pr={name:"Null loader",id:"null",module:"core",version:vr,mimeTypes:["application/x.empty"],extensions:["null"],parse:async(e,t,r)=>Tt(e,t||{},r),parseSync:Tt,parseInBatches:async function*(t,r,o){for await(let n of t)yield Tt(n,r,o)},tests:[()=>!1],options:{null:{}}};function Tt(e,t,r){return null}async function Nr(e,t,r=()=>{},o=()=>{}){if(e=await e,!e.ok)return e;let n=e.body;if(!n)return e;let s=e.headers.get("content-length")||0,i=s?parseInt(s):0;if(!(i>0)||typeof ReadableStream>"u"||!n.getReader)return e;let a=new ReadableStream({async start(c){let u=n.getReader();await Wr(c,u,0,i,t,r,o)}});return new Response(a)}async function Wr(e,t,r,o,n,s,i){try{let{done:a,value:c}=await t.read();if(a){s(),e.close();return}r+=c.byteLength;let u=Math.round(r/o*100);n(u,{loadedBytes:r,totalBytes:o}),e.enqueue(c),await Wr(e,t,r,o,n,s,i)}catch(a){e.error(a),i(a)}}var Be=class{constructor(t,r){this.files={},this.lowerCaseFiles={},this.usedFiles={},this._fetch=r?.fetch||fetch;for(let o=0;o<t.length;++o){let n=t[o];this.files[n.name]=n,this.lowerCaseFiles[n.name.toLowerCase()]=n,this.usedFiles[n.name]=!1}this.fetch=this.fetch.bind(this)}async fetch(t,r){if(t.includes("://"))return this._fetch(t,r);let o=this.files[t];if(!o)return new Response(t,{status:400,statusText:"NOT FOUND"});let s=new Headers(r?.headers).get("Range"),i=s&&/bytes=($1)-($2)/.exec(s);if(i){let c=parseInt(i[1]),u=parseInt(i[2]),B=await o.slice(c,u).arrayBuffer(),R=new Response(B);return Object.defineProperty(R,"url",{value:t}),R}let a=new Response(o);return Object.defineProperty(a,"url",{value:t}),a}async readdir(t){let r=[];for(let o in this.files)r.push(o);return r}async stat(t,r){let o=this.files[t];if(!o)throw new Error(t);return{size:o.size}}async unlink(t){delete this.files[t],delete this.lowerCaseFiles[t],this.usedFiles[t]=!0}async openReadableFile(t,r){return new ce(this.files[t])}_getFile(t,r){let o=this.files[t]||this.lowerCaseFiles[t];return o&&r&&(this.usedFiles[t]=!0),o}};return jr(en);})();
14
+ return __exports__;
15
+ });
package/dist/index.cjs CHANGED
@@ -17,9 +17,9 @@ var __copyProps = (to, from, except, desc) => {
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
 
20
- // src/index.ts
21
- var src_exports = {};
22
- __export(src_exports, {
20
+ // dist/index.js
21
+ var dist_exports = {};
22
+ __export(dist_exports, {
23
23
  JSONLoader: () => import_loader_utils17.JSONLoader,
24
24
  NullLoader: () => NullLoader,
25
25
  NullWorkerLoader: () => NullWorkerLoader,
@@ -75,12 +75,12 @@ __export(src_exports, {
75
75
  setPathPrefix: () => import_loader_utils15.setPathPrefix,
76
76
  window: () => import_loader_utils18.window
77
77
  });
78
- module.exports = __toCommonJS(src_exports);
78
+ module.exports = __toCommonJS(dist_exports);
79
79
 
80
- // src/lib/fetch/fetch-file.ts
80
+ // dist/lib/fetch/fetch-file.js
81
81
  var import_loader_utils = require("@loaders.gl/loader-utils");
82
82
 
83
- // src/javascript-utils/is-type.ts
83
+ // dist/javascript-utils/is-type.js
84
84
  var isBoolean = (x) => typeof x === "boolean";
85
85
  var isFunction = (x) => typeof x === "function";
86
86
  var isObject = (x) => x !== null && typeof x === "object";
@@ -99,7 +99,7 @@ var isReadableNodeStream = (x) => isObject(x) && isFunction(x.read) && isFunctio
99
99
  var isReadableStream = (x) => isReadableDOMStream(x) || isReadableNodeStream(x);
100
100
  var isWritableStream = (x) => isWritableDOMStream(x) || isWritableNodeStream(x);
101
101
 
102
- // src/lib/utils/mime-type-utils.ts
102
+ // dist/lib/utils/mime-type-utils.js
103
103
  var DATA_URL_PATTERN = /^data:([-\w.]+\/[-\w.+]+)(;|,)/;
104
104
  var MIME_TYPE_PATTERN = /^([-\w.]+\/[-\w.+]+)/;
105
105
  function parseMIMEType(mimeString) {
@@ -117,7 +117,7 @@ function parseMIMETypeFromURL(url) {
117
117
  return "";
118
118
  }
119
119
 
120
- // src/lib/utils/url-utils.ts
120
+ // dist/lib/utils/url-utils.js
121
121
  var QUERY_STRING_PATTERN = /\?.*/;
122
122
  function extractQueryString(url) {
123
123
  const matches = url.match(QUERY_STRING_PATTERN);
@@ -127,7 +127,7 @@ function stripQueryString(url) {
127
127
  return url.replace(QUERY_STRING_PATTERN, "");
128
128
  }
129
129
 
130
- // src/lib/utils/resource-utils.ts
130
+ // dist/lib/utils/resource-utils.js
131
131
  function getResourceUrl(resource) {
132
132
  if (isResponse(resource)) {
133
133
  const response = resource;
@@ -179,7 +179,7 @@ function getResourceContentLength(resource) {
179
179
  return -1;
180
180
  }
181
181
 
182
- // src/lib/utils/response-utils.ts
182
+ // dist/lib/utils/response-utils.js
183
183
  async function makeResponse(resource) {
184
184
  if (isResponse(resource)) {
185
185
  return resource;
@@ -257,7 +257,7 @@ function arrayBufferToBase64(buffer) {
257
257
  return btoa(binary);
258
258
  }
259
259
 
260
- // src/lib/fetch/fetch-file.ts
260
+ // dist/lib/fetch/fetch-file.js
261
261
  function isNodePath(url) {
262
262
  return !isRequestURL(url) && !isDataURL(url);
263
263
  }
@@ -281,7 +281,7 @@ async function fetchFile(urlOrData, fetchOptions) {
281
281
  return await makeResponse(urlOrData);
282
282
  }
283
283
 
284
- // src/lib/fetch/read-array-buffer.ts
284
+ // dist/lib/fetch/read-array-buffer.js
285
285
  async function readArrayBuffer(file, start, length) {
286
286
  if (!(file instanceof Blob)) {
287
287
  file = new Blob([file]);
@@ -301,7 +301,7 @@ async function readBlob(blob) {
301
301
  });
302
302
  }
303
303
 
304
- // src/lib/loader-utils/loggers.ts
304
+ // dist/lib/loader-utils/loggers.js
305
305
  var import_log = require("@probe.gl/log");
306
306
  var probeLog = new import_log.Log({ id: "loaders.gl" });
307
307
  var NullLog = class {
@@ -340,7 +340,7 @@ var ConsoleLog = class {
340
340
  }
341
341
  };
342
342
 
343
- // src/lib/loader-utils/option-defaults.ts
343
+ // dist/lib/loader-utils/option-defaults.js
344
344
  var import_loader_utils2 = require("@loaders.gl/loader-utils");
345
345
  var DEFAULT_LOADER_OPTIONS = {
346
346
  // baseUri
@@ -390,11 +390,13 @@ var REMOVED_LOADER_OPTIONS = {
390
390
  signal: "fetch.signal"
391
391
  };
392
392
 
393
- // src/lib/loader-utils/option-utils.ts
393
+ // dist/lib/loader-utils/option-utils.js
394
394
  function getGlobalLoaderState() {
395
395
  globalThis.loaders = globalThis.loaders || {};
396
396
  const { loaders } = globalThis;
397
- loaders._state = loaders._state || {};
397
+ if (!loaders._state) {
398
+ loaders._state = {};
399
+ }
398
400
  return loaders._state;
399
401
  }
400
402
  function getGlobalLoaderOptions() {
@@ -431,14 +433,10 @@ function validateOptionsObject(options, id, defaultOptions, deprecatedOptions, l
431
433
  const isWorkerUrlOption = key === "workerUrl" && id;
432
434
  if (!(key in defaultOptions) && !isBaseUriOption && !isWorkerUrlOption) {
433
435
  if (key in deprecatedOptions) {
434
- probeLog.warn(
435
- `${loaderName} loader option '${prefix}${key}' no longer supported, use '${deprecatedOptions[key]}'`
436
- )();
436
+ probeLog.warn(`${loaderName} loader option '${prefix}${key}' no longer supported, use '${deprecatedOptions[key]}'`)();
437
437
  } else if (!isSubOptions) {
438
438
  const suggestion = findSimilarOption(key, loaders);
439
- probeLog.warn(
440
- `${loaderName} loader option '${prefix}${key}' not recognized. ${suggestion}`
441
- )();
439
+ probeLog.warn(`${loaderName} loader option '${prefix}${key}' not recognized. ${suggestion}`)();
442
440
  }
443
441
  }
444
442
  }
@@ -492,7 +490,7 @@ function addUrlOptions(options, url) {
492
490
  }
493
491
  }
494
492
 
495
- // src/lib/loader-utils/normalize-loader.ts
493
+ // dist/lib/loader-utils/normalize-loader.js
496
494
  var import_loader_utils3 = require("@loaders.gl/loader-utils");
497
495
  function isLoaderObject(loader) {
498
496
  if (!loader) {
@@ -525,7 +523,7 @@ function normalizeLoader(loader) {
525
523
  return loader;
526
524
  }
527
525
 
528
- // src/lib/api/register-loaders.ts
526
+ // dist/lib/api/register-loaders.js
529
527
  var getGlobalLoaderRegistry = () => {
530
528
  const state = getGlobalLoaderState();
531
529
  state.loaderRegistry = state.loaderRegistry || [];
@@ -549,14 +547,14 @@ function _unregisterLoaders() {
549
547
  state.loaderRegistry = [];
550
548
  }
551
549
 
552
- // src/lib/api/select-loader.ts
550
+ // dist/lib/api/select-loader.js
553
551
  var import_loader_utils4 = require("@loaders.gl/loader-utils");
554
552
 
555
- // src/lib/utils/log.ts
553
+ // dist/lib/utils/log.js
556
554
  var import_log2 = require("@probe.gl/log");
557
555
  var log = new import_log2.Log({ id: "loaders.gl" });
558
556
 
559
- // src/lib/api/select-loader.ts
557
+ // dist/lib/api/select-loader.js
560
558
  var EXT_PATTERN = /\.([^.]+)$/;
561
559
  async function selectLoader(data, loaders = [], options, context) {
562
560
  if (!validHTTPResponse(data)) {
@@ -742,15 +740,15 @@ function getMagicString(arrayBuffer, byteOffset, length) {
742
740
  return magic;
743
741
  }
744
742
 
745
- // src/lib/api/parse.ts
743
+ // dist/lib/api/parse.js
746
744
  var import_loader_utils8 = require("@loaders.gl/loader-utils");
747
745
  var import_worker_utils = require("@loaders.gl/worker-utils");
748
746
  var import_loader_utils9 = require("@loaders.gl/loader-utils");
749
747
 
750
- // src/lib/loader-utils/get-data.ts
748
+ // dist/lib/loader-utils/get-data.js
751
749
  var import_loader_utils6 = require("@loaders.gl/loader-utils");
752
750
 
753
- // src/iterators/make-iterator/make-string-iterator.ts
751
+ // dist/iterators/make-iterator/make-string-iterator.js
754
752
  var DEFAULT_CHUNK_SIZE = 256 * 1024;
755
753
  function* makeStringIterator(string, options) {
756
754
  const chunkSize = (options == null ? void 0 : options.chunkSize) || DEFAULT_CHUNK_SIZE;
@@ -764,7 +762,7 @@ function* makeStringIterator(string, options) {
764
762
  }
765
763
  }
766
764
 
767
- // src/iterators/make-iterator/make-array-buffer-iterator.ts
765
+ // dist/iterators/make-iterator/make-array-buffer-iterator.js
768
766
  var DEFAULT_CHUNK_SIZE2 = 256 * 1024;
769
767
  function* makeArrayBufferIterator(arrayBuffer, options = {}) {
770
768
  const { chunkSize = DEFAULT_CHUNK_SIZE2 } = options;
@@ -780,7 +778,7 @@ function* makeArrayBufferIterator(arrayBuffer, options = {}) {
780
778
  }
781
779
  }
782
780
 
783
- // src/iterators/make-iterator/make-blob-iterator.ts
781
+ // dist/iterators/make-iterator/make-blob-iterator.js
784
782
  var DEFAULT_CHUNK_SIZE3 = 1024 * 1024;
785
783
  async function* makeBlobIterator(blob, options) {
786
784
  const chunkSize = (options == null ? void 0 : options.chunkSize) || DEFAULT_CHUNK_SIZE3;
@@ -793,7 +791,7 @@ async function* makeBlobIterator(blob, options) {
793
791
  }
794
792
  }
795
793
 
796
- // src/iterators/make-iterator/make-stream-iterator.ts
794
+ // dist/iterators/make-iterator/make-stream-iterator.js
797
795
  var import_loader_utils5 = require("@loaders.gl/loader-utils");
798
796
  function makeStreamIterator(stream, options) {
799
797
  return import_loader_utils5.isBrowser ? makeBrowserStreamIterator(stream, options) : makeNodeStreamIterator(stream, options);
@@ -823,7 +821,7 @@ async function* makeNodeStreamIterator(stream, options) {
823
821
  }
824
822
  }
825
823
 
826
- // src/iterators/make-iterator/make-iterator.ts
824
+ // dist/iterators/make-iterator/make-iterator.js
827
825
  function makeIterator(data, options) {
828
826
  if (typeof data === "string") {
829
827
  return makeStringIterator(data, options);
@@ -844,7 +842,7 @@ function makeIterator(data, options) {
844
842
  throw new Error("makeIterator");
845
843
  }
846
844
 
847
- // src/lib/loader-utils/get-data.ts
845
+ // dist/lib/loader-utils/get-data.js
848
846
  var ERR_DATA = "Cannot convert supplied data type";
849
847
  function getArrayBufferOrStringFromDataSync(data, loader, options) {
850
848
  if (loader.text && typeof data === "string") {
@@ -934,7 +932,7 @@ function getIterableFromData(data) {
934
932
  throw new Error(ERR_DATA);
935
933
  }
936
934
 
937
- // src/lib/loader-utils/get-fetch-function.ts
935
+ // dist/lib/loader-utils/get-fetch-function.js
938
936
  function getFetchFunction(options, context) {
939
937
  const globalOptions = getGlobalLoaderOptions();
940
938
  const loaderOptions = options || globalOptions;
@@ -950,7 +948,7 @@ function getFetchFunction(options, context) {
950
948
  return fetchFile;
951
949
  }
952
950
 
953
- // src/lib/loader-utils/loader-context.ts
951
+ // dist/lib/loader-utils/loader-context.js
954
952
  var import_loader_utils7 = require("@loaders.gl/loader-utils");
955
953
  function getLoaderContext(context, options, parentContext) {
956
954
  if (parentContext) {
@@ -987,7 +985,7 @@ function getLoadersFromContext(loaders, context) {
987
985
  return candidateLoaders && candidateLoaders.length ? candidateLoaders : void 0;
988
986
  }
989
987
 
990
- // src/lib/api/parse.ts
988
+ // dist/lib/api/parse.js
991
989
  async function parse(data, loaders, options, context) {
992
990
  if (loaders && !Array.isArray(loaders) && !isLoaderObject(loaders)) {
993
991
  context = void 0;
@@ -1039,7 +1037,7 @@ async function parseWithLoader(loader, data, options, context) {
1039
1037
  throw new Error(`${loader.id} loader - no parser found and worker is disabled`);
1040
1038
  }
1041
1039
 
1042
- // src/lib/api/parse-sync.ts
1040
+ // dist/lib/api/parse-sync.js
1043
1041
  function parseSync(data, loaders, options, context) {
1044
1042
  if (!Array.isArray(loaders) && !isLoaderObject(loaders)) {
1045
1043
  context = void 0;
@@ -1058,11 +1056,7 @@ function parseSync(data, loaders, options, context) {
1058
1056
  const parse2 = () => {
1059
1057
  throw new Error("parseSync called parse (which is async");
1060
1058
  };
1061
- context = getLoaderContext(
1062
- { url, _parseSync: parse2, _parse: parse2, loaders },
1063
- options,
1064
- context || null
1065
- );
1059
+ context = getLoaderContext({ url, _parseSync: parse2, _parse: parse2, loaders }, options, context || null);
1066
1060
  return parseWithLoaderSync(loader, data, options, context);
1067
1061
  }
1068
1062
  function parseWithLoaderSync(loader, data, options, context) {
@@ -1073,12 +1067,10 @@ function parseWithLoaderSync(loader, data, options, context) {
1073
1067
  if (loader.parseSync && data instanceof ArrayBuffer) {
1074
1068
  return loader.parseSync(data, options, context);
1075
1069
  }
1076
- throw new Error(
1077
- `${loader.name} loader: 'parseSync' not supported by this loader, use 'parse' instead. ${context.url || ""}`
1078
- );
1070
+ throw new Error(`${loader.name} loader: 'parseSync' not supported by this loader, use 'parse' instead. ${context.url || ""}`);
1079
1071
  }
1080
1072
 
1081
- // src/lib/api/parse-in-batches.ts
1073
+ // dist/lib/api/parse-in-batches.js
1082
1074
  var import_schema = require("@loaders.gl/schema");
1083
1075
  var import_loader_utils10 = require("@loaders.gl/loader-utils");
1084
1076
  async function parseInBatches(data, loaders, options, context) {
@@ -1096,11 +1088,7 @@ async function parseInBatches(data, loaders, options, context) {
1096
1088
  return [];
1097
1089
  }
1098
1090
  options = normalizeOptions(options, loader, loaderArray, url);
1099
- context = getLoaderContext(
1100
- { url, _parseInBatches: parseInBatches, _parse: parse, loaders: loaderArray },
1101
- options,
1102
- context || null
1103
- );
1091
+ context = getLoaderContext({ url, _parseInBatches: parseInBatches, _parse: parse, loaders: loaderArray }, options, context || null);
1104
1092
  return await parseWithLoaderInBatches(loader, data, options, context);
1105
1093
  }
1106
1094
  async function parseWithLoaderInBatches(loader, data, options, context) {
@@ -1163,7 +1151,7 @@ async function applyInputTransforms(inputIterator, transforms = []) {
1163
1151
  return iteratorChain;
1164
1152
  }
1165
1153
 
1166
- // src/lib/api/load.ts
1154
+ // dist/lib/api/load.js
1167
1155
  async function load(url, loaders, options, context) {
1168
1156
  let resolvedLoaders;
1169
1157
  let resolvedOptions;
@@ -1186,7 +1174,7 @@ async function load(url, loaders, options, context) {
1186
1174
  return Array.isArray(resolvedLoaders) ? await parse(data, resolvedLoaders, resolvedOptions) : await parse(data, resolvedLoaders, resolvedOptions);
1187
1175
  }
1188
1176
 
1189
- // src/lib/api/load-in-batches.ts
1177
+ // dist/lib/api/load-in-batches.js
1190
1178
  function loadInBatches(files, loaders, options, context) {
1191
1179
  let loadersArray;
1192
1180
  if (!Array.isArray(loaders) && !isLoaderObject(loaders)) {
@@ -1200,9 +1188,7 @@ function loadInBatches(files, loaders, options, context) {
1200
1188
  if (!Array.isArray(files)) {
1201
1189
  return loadOneFileInBatches(files, loadersArray, options || {}, fetch2);
1202
1190
  }
1203
- const promises = files.map(
1204
- (file) => loadOneFileInBatches(file, loadersArray, options || {}, fetch2)
1205
- );
1191
+ const promises = files.map((file) => loadOneFileInBatches(file, loadersArray, options || {}, fetch2));
1206
1192
  return promises;
1207
1193
  }
1208
1194
  async function loadOneFileInBatches(file, loaders, options, fetch2) {
@@ -1214,7 +1200,7 @@ async function loadOneFileInBatches(file, loaders, options, fetch2) {
1214
1200
  return Array.isArray(loaders) ? await parseInBatches(file, loaders, options) : await parseInBatches(file, loaders, options);
1215
1201
  }
1216
1202
 
1217
- // src/lib/api/encode-table.ts
1203
+ // dist/lib/api/encode-table.js
1218
1204
  var import_loader_utils11 = require("@loaders.gl/loader-utils");
1219
1205
  async function encodeTable(data, writer, options) {
1220
1206
  if (writer.encode) {
@@ -1256,7 +1242,7 @@ function getIterator(data) {
1256
1242
  return dataIterator;
1257
1243
  }
1258
1244
 
1259
- // src/lib/api/encode.ts
1245
+ // dist/lib/api/encode.js
1260
1246
  var import_loader_utils12 = require("@loaders.gl/loader-utils");
1261
1247
  var import_worker_utils2 = require("@loaders.gl/worker-utils");
1262
1248
  var import_loader_utils13 = require("@loaders.gl/loader-utils");
@@ -1339,11 +1325,11 @@ function getTemporaryFilename(filename) {
1339
1325
  return `/tmp/${filename}`;
1340
1326
  }
1341
1327
 
1342
- // src/index.ts
1328
+ // dist/index.js
1343
1329
  var import_loader_utils15 = require("@loaders.gl/loader-utils");
1344
1330
  var import_loader_utils16 = require("@loaders.gl/loader-utils");
1345
1331
 
1346
- // src/iterators/make-stream/make-stream.ts
1332
+ // dist/iterators/make-stream/make-stream.js
1347
1333
  function makeStream(source, options) {
1348
1334
  if (globalThis.loaders.makeNodeStream) {
1349
1335
  return globalThis.loaders.makeNodeStream(source, options);
@@ -1382,8 +1368,8 @@ function makeStream(source, options) {
1382
1368
  );
1383
1369
  }
1384
1370
 
1385
- // src/null-loader.ts
1386
- var VERSION = typeof __VERSION__ !== "undefined" ? __VERSION__ : "latest";
1371
+ // dist/null-loader.js
1372
+ var VERSION = true ? "4.2.0-alpha.4" : "latest";
1387
1373
  var NullWorkerLoader = {
1388
1374
  name: "Null loader",
1389
1375
  id: "null",
@@ -1420,10 +1406,10 @@ function parseSync2(arrayBuffer, options, context) {
1420
1406
  return null;
1421
1407
  }
1422
1408
 
1423
- // src/index.ts
1409
+ // dist/index.js
1424
1410
  var import_loader_utils17 = require("@loaders.gl/loader-utils");
1425
1411
 
1426
- // src/lib/progress/fetch-progress.ts
1412
+ // dist/lib/progress/fetch-progress.js
1427
1413
  async function fetchProgress(response, onProgress, onDone = () => {
1428
1414
  }, onError = () => {
1429
1415
  }) {
@@ -1470,7 +1456,7 @@ async function read(controller, reader, loadedBytes, totalBytes, onProgress, onD
1470
1456
  }
1471
1457
  }
1472
1458
 
1473
- // src/lib/filesystems/browser-filesystem.ts
1459
+ // dist/lib/filesystems/browser-filesystem.js
1474
1460
  var import_loader_utils14 = require("@loaders.gl/loader-utils");
1475
1461
  var BrowserFileSystem = class {
1476
1462
  /**
@@ -1565,8 +1551,9 @@ var BrowserFileSystem = class {
1565
1551
  }
1566
1552
  };
1567
1553
 
1568
- // src/index.ts
1554
+ // dist/index.js
1569
1555
  var import_loader_utils18 = require("@loaders.gl/loader-utils");
1570
1556
  var import_loader_utils19 = require("@loaders.gl/loader-utils");
1571
1557
  var import_loader_utils20 = require("@loaders.gl/loader-utils");
1572
1558
  var import_loader_utils21 = require("@loaders.gl/loader-utils");
1559
+ //# sourceMappingURL=index.cjs.map