@loaders.gl/pmtiles 4.2.0-alpha.5 → 4.2.0-alpha.6

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
@@ -881,8 +881,13 @@ var __exports__ = (() => {
881
881
 
882
882
  // ../loader-utils/src/lib/sources/data-source.ts
883
883
  var DataSource = class {
884
+ /** A resolved fetch function extracted from loadOptions prop */
885
+ fetch;
886
+ /** The actual load options, if calling a loaders.gl loader */
887
+ loadOptions;
888
+ _needsRefresh = true;
889
+ props;
884
890
  constructor(props) {
885
- this._needsRefresh = true;
886
891
  this.props = { ...props };
887
892
  this.loadOptions = { ...props.loadOptions };
888
893
  this.fetch = getFetchFunction(this.loadOptions);
@@ -2186,6 +2191,14 @@ var __exports__ = (() => {
2186
2191
 
2187
2192
  // ../mvt/src/lib/mapbox-vector-tile/vector-tile-feature.ts
2188
2193
  var VectorTileFeature = class {
2194
+ properties;
2195
+ extent;
2196
+ type;
2197
+ id;
2198
+ _pbf;
2199
+ _geometry;
2200
+ _keys;
2201
+ _values;
2189
2202
  static get types() {
2190
2203
  return ["Unknown", "Point", "LineString", "Polygon"];
2191
2204
  }
@@ -2345,6 +2358,14 @@ var __exports__ = (() => {
2345
2358
 
2346
2359
  // ../mvt/src/lib/mapbox-vector-tile/vector-tile-layer.ts
2347
2360
  var VectorTileLayer = class {
2361
+ version;
2362
+ name;
2363
+ extent;
2364
+ length;
2365
+ _pbf;
2366
+ _keys;
2367
+ _values;
2368
+ _features;
2348
2369
  constructor(pbf, end) {
2349
2370
  this.version = 1;
2350
2371
  this.name = "";
@@ -2399,6 +2420,7 @@ var __exports__ = (() => {
2399
2420
 
2400
2421
  // ../mvt/src/lib/mapbox-vector-tile/vector-tile.ts
2401
2422
  var VectorTile = class {
2423
+ layers;
2402
2424
  constructor(pbf, end) {
2403
2425
  this.layers = pbf.readFields(readTile, {}, end);
2404
2426
  }
@@ -2501,6 +2523,15 @@ var __exports__ = (() => {
2501
2523
  var y;
2502
2524
  var i;
2503
2525
  var VectorTileFeature2 = class {
2526
+ properties;
2527
+ extent;
2528
+ type;
2529
+ id;
2530
+ _pbf;
2531
+ _geometry;
2532
+ _keys;
2533
+ _values;
2534
+ _geometryInfo;
2504
2535
  // eslint-disable-next-line max-params
2505
2536
  constructor(pbf, end, extent, keys, values, geometryInfo) {
2506
2537
  this.properties = {};
@@ -2607,6 +2638,14 @@ var __exports__ = (() => {
2607
2638
 
2608
2639
  // ../mvt/src/lib/binary-vector-tile/vector-tile-layer.ts
2609
2640
  var VectorTileLayer2 = class {
2641
+ version;
2642
+ name;
2643
+ extent;
2644
+ length;
2645
+ _pbf;
2646
+ _keys;
2647
+ _values;
2648
+ _features;
2610
2649
  constructor(pbf, end) {
2611
2650
  this.version = 1;
2612
2651
  this.name = "";
@@ -2670,6 +2709,7 @@ var __exports__ = (() => {
2670
2709
 
2671
2710
  // ../mvt/src/lib/binary-vector-tile/vector-tile.ts
2672
2711
  var VectorTile2 = class {
2712
+ layers;
2673
2713
  constructor(pbf, end) {
2674
2714
  this.layers = pbf.readFields(readTile2, {}, end);
2675
2715
  }
@@ -4773,6 +4813,8 @@ var __exports__ = (() => {
4773
4813
 
4774
4814
  // src/lib/blob-source.ts
4775
4815
  var BlobSource = class {
4816
+ blob;
4817
+ key;
4776
4818
  constructor(blob, key) {
4777
4819
  this.blob = blob;
4778
4820
  this.key = key;
@@ -4796,9 +4838,13 @@ var __exports__ = (() => {
4796
4838
  // src/pmtiles-source.ts
4797
4839
  var { PMTiles: PMTiles2 } = dist_exports;
4798
4840
  var PMTilesSource = class extends DataSource {
4841
+ data;
4842
+ props;
4843
+ mimeType = null;
4844
+ pmtiles;
4845
+ metadata;
4799
4846
  constructor(props) {
4800
4847
  super(props);
4801
- this.mimeType = null;
4802
4848
  this.props = props;
4803
4849
  const url = typeof props.url === "string" ? resolvePath(props.url) : new BlobSource(props.url, "pmtiles");
4804
4850
  this.data = props.url;
package/dist/dist.min.js CHANGED
@@ -4,7 +4,7 @@
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 nr=Object.create;var Ve=Object.defineProperty;var rr=Object.getOwnPropertyDescriptor;var ir=Object.getOwnPropertyNames;var or=Object.getPrototypeOf,sr=Object.prototype.hasOwnProperty;var We=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ut=(e,t)=>{for(var n in t)Ve(e,n,{get:t[n],enumerable:!0})},De=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of ir(t))!sr.call(e,i)&&i!==n&&Ve(e,i,{get:()=>t[i],enumerable:!(r=rr(t,i))||r.enumerable});return e},Ae=(e,t,n)=>(De(e,t,"default"),n&&De(n,t,"default")),_t=(e,t,n)=>(n=e!=null?nr(or(e)):{},De(t||!e||!e.__esModule?Ve(n,"default",{value:e,enumerable:!0}):n,e)),ar=e=>De(Ve({},"__esModule",{value:!0}),e);var kt=We((Ro,Lt)=>{Lt.exports=globalThis.loaders});var tn=We(ct=>{ct.read=function(e,t,n,r,i){var o,s,a=i*8-r-1,l=(1<<a)-1,c=l>>1,f=-7,u=n?i-1:0,h=n?-1:1,d=e[t+u];for(u+=h,o=d&(1<<-f)-1,d>>=-f,f+=a;f>0;o=o*256+e[t+u],u+=h,f-=8);for(s=o&(1<<-f)-1,o>>=-f,f+=r;f>0;s=s*256+e[t+u],u+=h,f-=8);if(o===0)o=1-c;else{if(o===l)return s?NaN:(d?-1:1)*(1/0);s=s+Math.pow(2,r),o=o-c}return(d?-1:1)*s*Math.pow(2,o-r)};ct.write=function(e,t,n,r,i,o){var s,a,l,c=o*8-i-1,f=(1<<c)-1,u=f>>1,h=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,d=r?0:o-1,p=r?1:-1,m=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,s=f):(s=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-s))<1&&(s--,l*=2),s+u>=1?t+=h/l:t+=h*Math.pow(2,1-u),t*l>=2&&(s++,l/=2),s+u>=f?(a=0,s=f):s+u>=1?(a=(t*l-1)*Math.pow(2,i),s=s+u):(a=t*Math.pow(2,u-1)*Math.pow(2,i),s=0));i>=8;e[n+d]=a&255,d+=p,a/=256,i-=8);for(s=s<<i|a,c+=i;c>0;e[n+d]=s&255,d+=p,s/=256,c-=8);e[n+d-p]|=m*128}});var ln=We((Ta,an)=>{"use strict";an.exports=x;var Le=tn();function x(e){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(e)?e:new Uint8Array(e||0),this.pos=0,this.type=0,this.length=this.buf.length}x.Varint=0;x.Fixed64=1;x.Bytes=2;x.Fixed32=5;var ft=(1<<16)*(1<<16),nn=1/ft,pi=12,sn=typeof TextDecoder>"u"?null:new TextDecoder("utf8");x.prototype={destroy:function(){this.buf=null},readFields:function(e,t,n){for(n=n||this.length;this.pos<n;){var r=this.readVarint(),i=r>>3,o=this.pos;this.type=r&7,e(i,t,this),this.pos===o&&this.skip(r)}return t},readMessage:function(e,t){return this.readFields(e,t,this.readVarint()+this.pos)},readFixed32:function(){var e=ke(this.buf,this.pos);return this.pos+=4,e},readSFixed32:function(){var e=on(this.buf,this.pos);return this.pos+=4,e},readFixed64:function(){var e=ke(this.buf,this.pos)+ke(this.buf,this.pos+4)*ft;return this.pos+=8,e},readSFixed64:function(){var e=ke(this.buf,this.pos)+on(this.buf,this.pos+4)*ft;return this.pos+=8,e},readFloat:function(){var e=Le.read(this.buf,this.pos,!0,23,4);return this.pos+=4,e},readDouble:function(){var e=Le.read(this.buf,this.pos,!0,52,8);return this.pos+=8,e},readVarint:function(e){var t=this.buf,n,r;return r=t[this.pos++],n=r&127,r<128||(r=t[this.pos++],n|=(r&127)<<7,r<128)||(r=t[this.pos++],n|=(r&127)<<14,r<128)||(r=t[this.pos++],n|=(r&127)<<21,r<128)?n:(r=t[this.pos],n|=(r&15)<<28,gi(n,e,this))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var e=this.readVarint();return e%2===1?(e+1)/-2:e/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var e=this.readVarint()+this.pos,t=this.pos;return this.pos=e,e-t>=pi&&sn?Bi(this.buf,t,e):Ai(this.buf,t,e)},readBytes:function(){var e=this.readVarint()+this.pos,t=this.buf.subarray(this.pos,e);return this.pos=e,t},readPackedVarint:function(e,t){if(this.type!==x.Bytes)return e.push(this.readVarint(t));var n=z(this);for(e=e||[];this.pos<n;)e.push(this.readVarint(t));return e},readPackedSVarint:function(e){if(this.type!==x.Bytes)return e.push(this.readSVarint());var t=z(this);for(e=e||[];this.pos<t;)e.push(this.readSVarint());return e},readPackedBoolean:function(e){if(this.type!==x.Bytes)return e.push(this.readBoolean());var t=z(this);for(e=e||[];this.pos<t;)e.push(this.readBoolean());return e},readPackedFloat:function(e){if(this.type!==x.Bytes)return e.push(this.readFloat());var t=z(this);for(e=e||[];this.pos<t;)e.push(this.readFloat());return e},readPackedDouble:function(e){if(this.type!==x.Bytes)return e.push(this.readDouble());var t=z(this);for(e=e||[];this.pos<t;)e.push(this.readDouble());return e},readPackedFixed32:function(e){if(this.type!==x.Bytes)return e.push(this.readFixed32());var t=z(this);for(e=e||[];this.pos<t;)e.push(this.readFixed32());return e},readPackedSFixed32:function(e){if(this.type!==x.Bytes)return e.push(this.readSFixed32());var t=z(this);for(e=e||[];this.pos<t;)e.push(this.readSFixed32());return e},readPackedFixed64:function(e){if(this.type!==x.Bytes)return e.push(this.readFixed64());var t=z(this);for(e=e||[];this.pos<t;)e.push(this.readFixed64());return e},readPackedSFixed64:function(e){if(this.type!==x.Bytes)return e.push(this.readSFixed64());var t=z(this);for(e=e||[];this.pos<t;)e.push(this.readSFixed64());return e},skip:function(e){var t=e&7;if(t===x.Varint)for(;this.buf[this.pos++]>127;);else if(t===x.Bytes)this.pos=this.readVarint()+this.pos;else if(t===x.Fixed32)this.pos+=4;else if(t===x.Fixed64)this.pos+=8;else throw new Error("Unimplemented type: "+t)},writeTag:function(e,t){this.writeVarint(e<<3|t)},realloc:function(e){for(var t=this.length||16;t<this.pos+e;)t*=2;if(t!==this.length){var n=new Uint8Array(t);n.set(this.buf),this.buf=n,this.length=t}},finish:function(){return this.length=this.pos,this.pos=0,this.buf.subarray(0,this.length)},writeFixed32:function(e){this.realloc(4),Q(this.buf,e,this.pos),this.pos+=4},writeSFixed32:function(e){this.realloc(4),Q(this.buf,e,this.pos),this.pos+=4},writeFixed64:function(e){this.realloc(8),Q(this.buf,e&-1,this.pos),Q(this.buf,Math.floor(e*nn),this.pos+4),this.pos+=8},writeSFixed64:function(e){this.realloc(8),Q(this.buf,e&-1,this.pos),Q(this.buf,Math.floor(e*nn),this.pos+4),this.pos+=8},writeVarint:function(e){if(e=+e||0,e>268435455||e<0){yi(e,this);return}this.realloc(4),this.buf[this.pos++]=e&127|(e>127?128:0),!(e<=127)&&(this.buf[this.pos++]=(e>>>=7)&127|(e>127?128:0),!(e<=127)&&(this.buf[this.pos++]=(e>>>=7)&127|(e>127?128:0),!(e<=127)&&(this.buf[this.pos++]=e>>>7&127)))},writeSVarint:function(e){this.writeVarint(e<0?-e*2-1:e*2)},writeBoolean:function(e){this.writeVarint(Boolean(e))},writeString:function(e){e=String(e),this.realloc(e.length*4),this.pos++;var t=this.pos;this.pos=Ei(this.buf,e,this.pos);var n=this.pos-t;n>=128&&rn(t,n,this),this.pos=t-1,this.writeVarint(n),this.pos+=n},writeFloat:function(e){this.realloc(4),Le.write(this.buf,e,this.pos,!0,23,4),this.pos+=4},writeDouble:function(e){this.realloc(8),Le.write(this.buf,e,this.pos,!0,52,8),this.pos+=8},writeBytes:function(e){var t=e.length;this.writeVarint(t),this.realloc(t);for(var n=0;n<t;n++)this.buf[this.pos++]=e[n]},writeRawMessage:function(e,t){this.pos++;var n=this.pos;e(t,this);var r=this.pos-n;r>=128&&rn(n,r,this),this.pos=n-1,this.writeVarint(r),this.pos+=r},writeMessage:function(e,t,n){this.writeTag(e,x.Bytes),this.writeRawMessage(t,n)},writePackedVarint:function(e,t){t.length&&this.writeMessage(e,wi,t)},writePackedSVarint:function(e,t){t.length&&this.writeMessage(e,vi,t)},writePackedBoolean:function(e,t){t.length&&this.writeMessage(e,Ii,t)},writePackedFloat:function(e,t){t.length&&this.writeMessage(e,Pi,t)},writePackedDouble:function(e,t){t.length&&this.writeMessage(e,Fi,t)},writePackedFixed32:function(e,t){t.length&&this.writeMessage(e,Ti,t)},writePackedSFixed32:function(e,t){t.length&&this.writeMessage(e,Si,t)},writePackedFixed64:function(e,t){t.length&&this.writeMessage(e,Di,t)},writePackedSFixed64:function(e,t){t.length&&this.writeMessage(e,Vi,t)},writeBytesField:function(e,t){this.writeTag(e,x.Bytes),this.writeBytes(t)},writeFixed32Field:function(e,t){this.writeTag(e,x.Fixed32),this.writeFixed32(t)},writeSFixed32Field:function(e,t){this.writeTag(e,x.Fixed32),this.writeSFixed32(t)},writeFixed64Field:function(e,t){this.writeTag(e,x.Fixed64),this.writeFixed64(t)},writeSFixed64Field:function(e,t){this.writeTag(e,x.Fixed64),this.writeSFixed64(t)},writeVarintField:function(e,t){this.writeTag(e,x.Varint),this.writeVarint(t)},writeSVarintField:function(e,t){this.writeTag(e,x.Varint),this.writeSVarint(t)},writeStringField:function(e,t){this.writeTag(e,x.Bytes),this.writeString(t)},writeFloatField:function(e,t){this.writeTag(e,x.Fixed32),this.writeFloat(t)},writeDoubleField:function(e,t){this.writeTag(e,x.Fixed64),this.writeDouble(t)},writeBooleanField:function(e,t){this.writeVarintField(e,Boolean(t))}};function gi(e,t,n){var r=n.buf,i,o;if(o=r[n.pos++],i=(o&112)>>4,o<128||(o=r[n.pos++],i|=(o&127)<<3,o<128)||(o=r[n.pos++],i|=(o&127)<<10,o<128)||(o=r[n.pos++],i|=(o&127)<<17,o<128)||(o=r[n.pos++],i|=(o&127)<<24,o<128)||(o=r[n.pos++],i|=(o&1)<<31,o<128))return Y(e,i,t);throw new Error("Expected varint not more than 10 bytes")}function z(e){return e.type===x.Bytes?e.readVarint()+e.pos:e.pos+1}function Y(e,t,n){return n?t*4294967296+(e>>>0):(t>>>0)*4294967296+(e>>>0)}function yi(e,t){var n,r;if(e>=0?(n=e%4294967296|0,r=e/4294967296|0):(n=~(-e%4294967296),r=~(-e/4294967296),n^4294967295?n=n+1|0:(n=0,r=r+1|0)),e>=18446744073709552e3||e<-18446744073709552e3)throw new Error("Given varint doesn't fit into 10 bytes");t.realloc(10),mi(n,r,t),xi(r,t)}function mi(e,t,n){n.buf[n.pos++]=e&127|128,e>>>=7,n.buf[n.pos++]=e&127|128,e>>>=7,n.buf[n.pos++]=e&127|128,e>>>=7,n.buf[n.pos++]=e&127|128,e>>>=7,n.buf[n.pos]=e&127}function xi(e,t){var n=(e&7)<<4;t.buf[t.pos++]|=n|((e>>>=3)?128:0),e&&(t.buf[t.pos++]=e&127|((e>>>=7)?128:0),e&&(t.buf[t.pos++]=e&127|((e>>>=7)?128:0),e&&(t.buf[t.pos++]=e&127|((e>>>=7)?128:0),e&&(t.buf[t.pos++]=e&127|((e>>>=7)?128:0),e&&(t.buf[t.pos++]=e&127)))))}function rn(e,t,n){var r=t<=16383?1:t<=2097151?2:t<=268435455?3:Math.floor(Math.log(t)/(Math.LN2*7));n.realloc(r);for(var i=n.pos-1;i>=e;i--)n.buf[i+r]=n.buf[i]}function wi(e,t){for(var n=0;n<e.length;n++)t.writeVarint(e[n])}function vi(e,t){for(var n=0;n<e.length;n++)t.writeSVarint(e[n])}function Pi(e,t){for(var n=0;n<e.length;n++)t.writeFloat(e[n])}function Fi(e,t){for(var n=0;n<e.length;n++)t.writeDouble(e[n])}function Ii(e,t){for(var n=0;n<e.length;n++)t.writeBoolean(e[n])}function Ti(e,t){for(var n=0;n<e.length;n++)t.writeFixed32(e[n])}function Si(e,t){for(var n=0;n<e.length;n++)t.writeSFixed32(e[n])}function Di(e,t){for(var n=0;n<e.length;n++)t.writeFixed64(e[n])}function Vi(e,t){for(var n=0;n<e.length;n++)t.writeSFixed64(e[n])}function ke(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16)+e[t+3]*16777216}function Q(e,t,n){e[n]=t,e[n+1]=t>>>8,e[n+2]=t>>>16,e[n+3]=t>>>24}function on(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16)+(e[t+3]<<24)}function Ai(e,t,n){for(var r="",i=t;i<n;){var o=e[i],s=null,a=o>239?4:o>223?3:o>191?2:1;if(i+a>n)break;var l,c,f;a===1?o<128&&(s=o):a===2?(l=e[i+1],(l&192)===128&&(s=(o&31)<<6|l&63,s<=127&&(s=null))):a===3?(l=e[i+1],c=e[i+2],(l&192)===128&&(c&192)===128&&(s=(o&15)<<12|(l&63)<<6|c&63,(s<=2047||s>=55296&&s<=57343)&&(s=null))):a===4&&(l=e[i+1],c=e[i+2],f=e[i+3],(l&192)===128&&(c&192)===128&&(f&192)===128&&(s=(o&15)<<18|(l&63)<<12|(c&63)<<6|f&63,(s<=65535||s>=1114112)&&(s=null))),s===null?(s=65533,a=1):s>65535&&(s-=65536,r+=String.fromCharCode(s>>>10&1023|55296),s=56320|s&1023),r+=String.fromCharCode(s),i+=a}return r}function Bi(e,t,n){return sn.decode(e.subarray(t,n))}function Ei(e,t,n){for(var r=0,i,o;r<t.length;r++){if(i=t.charCodeAt(r),i>55295&&i<57344)if(o)if(i<56320){e[n++]=239,e[n++]=191,e[n++]=189,o=i;continue}else i=o-55296<<10|i-56320|65536,o=null;else{i>56319||r+1===t.length?(e[n++]=239,e[n++]=191,e[n++]=189):o=i;continue}else o&&(e[n++]=239,e[n++]=191,e[n++]=189,o=null);i<128?e[n++]=i:(i<2048?e[n++]=i>>6|192:(i<65536?e[n++]=i>>12|224:(e[n++]=i>>18|240,e[n++]=i>>12&63|128),e[n++]=i>>6&63|128),e[n++]=i&63|128)}return n}});var Te={};Ut(Te,{PMTilesSource:()=>Re});Ae(Te,_t(kt(),1));function re(e,t){if(!e)throw new Error(t||"loader assertion failed.")}var O={self:typeof self<"u"&&self,window:typeof window<"u"&&window,global:typeof global<"u"&&global,document:typeof document<"u"&&document},lr=O.self||O.window||O.global||{},cr=O.window||O.self||O.global||{},fr=O.global||O.self||O.window||{},ur=O.document||{};var $e=Boolean(typeof process!="object"||String(process)!=="[object process]"||process.browser);var Ct=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version),hr=Ct&&parseFloat(Ct[1])||0;function R(e){return R=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},R(e)}function Ke(e,t){if(R(e)!=="object"||e===null)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||"default");if(R(r)!=="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Xe(e){var t=Ke(e,"string");return R(t)==="symbol"?t:String(t)}function E(e,t,n){return t=Xe(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var dr="",Ot={};function Ye(e){for(let t in Ot)if(e.startsWith(t)){let n=Ot[t];e=e.replace(t,n)}return!e.startsWith("http://")&&!e.startsWith("https://")&&(e=`${dr}${e}`),e}var ie=class{constructor(t){this._needsRefresh=!0,this.props={...t},this.loadOptions={...t.loadOptions},this.fetch=pr(this.loadOptions)}setProps(t){this.props=Object.assign(this.props,t),this.setNeedsRefresh()}setNeedsRefresh(){this._needsRefresh=!0}getNeedsRefresh(t=!0){let n=this._needsRefresh;return t&&(this._needsRefresh=!1),n}};function pr(e){let t=e?.fetch;if(t&&typeof t=="function")return(r,i)=>t(r,i);let n=e?.fetch;return n&&typeof n!="function"?r=>fetch(r,n):r=>fetch(r)}var Nt="4.2.0-alpha.4";var gr=globalThis.loaders?.parseImageNode,Qe=typeof Image<"u",qe=typeof ImageBitmap<"u",yr=Boolean(gr),et=$e?!0:yr;function zt(e){switch(e){case"auto":return qe||Qe||et;case"imagebitmap":return qe;case"image":return Qe;case"data":return et;default:throw new Error(`@loaders.gl/images: image ${e} not supported in this environment`)}}function Zt(){if(qe)return"imagebitmap";if(Qe)return"image";if(et)return"data";throw new Error("Install '@loaders.gl/polyfills' to parse images under Node.js")}function mr(e){let t=xr(e);if(!t)throw new Error("Not an image");return t}function Rt(e){switch(mr(e)){case"data":return e;case"image":case"imagebitmap":let t=document.createElement("canvas"),n=t.getContext("2d");if(!n)throw new Error("getImageData");return t.width=e.width,t.height=e.height,n.drawImage(e,0,0),n.getImageData(0,0,e.width,e.height);default:throw new Error("getImageData")}}function xr(e){return typeof ImageBitmap<"u"&&e instanceof ImageBitmap?"imagebitmap":typeof Image<"u"&&e instanceof Image?"image":e&&typeof e=="object"&&e.data&&e.width&&e.height?"data":null}var wr=/^data:image\/svg\+xml/,vr=/\.svg((\?|#).*)?$/;function Be(e){return e&&(wr.test(e)||vr.test(e))}function jt(e,t){if(Be(t)){let r=new TextDecoder().decode(e);try{typeof unescape=="function"&&typeof encodeURIComponent=="function"&&(r=unescape(encodeURIComponent(r)))}catch(o){throw new Error(o.message)}return`data:image/svg+xml;base64,${btoa(r)}`}return tt(e,t)}function tt(e,t){if(Be(t))throw new Error("SVG cannot be parsed directly to imagebitmap");return new Blob([new Uint8Array(e)])}async function Ee(e,t,n){let r=jt(e,n),i=self.URL||self.webkitURL,o=typeof r!="string"&&i.createObjectURL(r);try{return await Pr(o||r,t)}finally{o&&i.revokeObjectURL(o)}}async function Pr(e,t){let n=new Image;return n.src=e,t.image&&t.image.decode&&n.decode?(await n.decode(),n):await new Promise((r,i)=>{try{n.onload=()=>r(n),n.onerror=o=>{let s=o instanceof Error?o.message:"error";i(new Error(s))}}catch(o){i(o)}})}var Fr={},Gt=!0;async function Ht(e,t,n){let r;Be(n)?r=await Ee(e,t,n):r=tt(e,n);let i=t&&t.imagebitmap;return await Ir(r,i)}async function Ir(e,t=null){if((Tr(t)||!Gt)&&(t=null),t)try{return await createImageBitmap(e,t)}catch(n){console.warn(n),Gt=!1}return await createImageBitmap(e)}function Tr(e){for(let t in e||Fr)return!1;return!0}function Jt(e){return!Ar(e,"ftyp",4)||!(e[8]&96)?null:Sr(e)}function Sr(e){switch(Dr(e,8,12).replace("\0"," ").trim()){case"avif":case"avis":return{extension:"avif",mimeType:"image/avif"};default:return null}}function Dr(e,t,n){return String.fromCharCode(...e.slice(t,n))}function Vr(e){return[...e].map(t=>t.charCodeAt(0))}function Ar(e,t,n=0){let r=Vr(t);for(let i=0;i<r.length;++i)if(r[i]!==e[i+n])return!1;return!0}var N=!1,oe=!0;function be(e){let t=se(e);return Er(t)||Ur(t)||br(t)||Mr(t)||Br(t)}function Br(e){let t=new Uint8Array(e instanceof DataView?e.buffer:e),n=Jt(t);return n?{mimeType:n.mimeType,width:0,height:0}:null}function Er(e){let t=se(e);return t.byteLength>=24&&t.getUint32(0,N)===2303741511?{mimeType:"image/png",width:t.getUint32(16,N),height:t.getUint32(20,N)}:null}function br(e){let t=se(e);return t.byteLength>=10&&t.getUint32(0,N)===1195984440?{mimeType:"image/gif",width:t.getUint16(6,oe),height:t.getUint16(8,oe)}:null}function Mr(e){let t=se(e);return t.byteLength>=14&&t.getUint16(0,N)===16973&&t.getUint32(2,oe)===t.byteLength?{mimeType:"image/bmp",width:t.getUint32(18,oe),height:t.getUint32(22,oe)}:null}function Ur(e){let t=se(e);if(!(t.byteLength>=3&&t.getUint16(0,N)===65496&&t.getUint8(2)===255))return null;let{tableMarkers:r,sofMarkers:i}=_r(),o=2;for(;o+9<t.byteLength;){let s=t.getUint16(o,N);if(i.has(s))return{mimeType:"image/jpeg",height:t.getUint16(o+5,N),width:t.getUint16(o+7,N)};if(!r.has(s))return null;o+=2,o+=t.getUint16(o,N)}return null}function _r(){let e=new Set([65499,65476,65484,65501,65534]);for(let n=65504;n<65520;++n)e.add(n);return{tableMarkers:e,sofMarkers:new Set([65472,65473,65474,65475,65477,65478,65479,65481,65482,65483,65485,65486,65487,65502])}}function se(e){if(e instanceof DataView)return e;if(ArrayBuffer.isView(e))return new DataView(e.buffer);if(e instanceof ArrayBuffer)return new DataView(e);throw new Error("toDataView")}async function Wt(e,t){let{mimeType:n}=be(e)||{},r=globalThis.loaders?.parseImageNode;return re(r),await r(e,n)}async function $t(e,t,n){t=t||{};let i=(t.image||{}).type||"auto",{url:o}=n||{},s=Lr(i),a;switch(s){case"imagebitmap":a=await Ht(e,t,o);break;case"image":a=await Ee(e,t,o);break;case"data":a=await Wt(e,t);break;default:re(!1)}return i==="data"&&(a=Rt(a)),a}function Lr(e){switch(e){case"auto":case"data":return Zt();default:return zt(e),e}}var kr=["png","jpg","jpeg","gif","webp","bmp","ico","svg","avif"],Cr=["image/png","image/jpeg","image/gif","image/webp","image/avif","image/bmp","image/vnd.microsoft.icon","image/svg+xml"],Or={image:{type:"auto",decode:!0}},nt={id:"image",module:"images",name:"Images",version:Nt,mimeTypes:Cr,extensions:kr,parse:$t,tests:[e=>Boolean(be(new DataView(e)))],options:Or};var ae={x:0,y:1,z:2};function j(e,t={}){let{start:n=0,end:r=e.length,plane:i="xy"}=t,o=t.size||2,s=0,a=ae[i[0]],l=ae[i[1]];for(let c=n,f=r-o;c<r;c+=o)s+=(e[c+a]-e[f+a])*(e[c+l]+e[f+l]),f=c;return s/2}function it(e,t,n=2,r,i="xy"){let o=t&&t.length,s=o?t[0]*n:e.length,a=Xt(e,0,s,n,!0,r&&r[0],i),l=[];if(!a||a.next===a.prev)return l;let c,f,u,h,d,p,m;if(o&&(a=Hr(e,t,a,n,r,i)),e.length>80*n){h=f=e[0],d=u=e[1];for(let F=n;F<s;F+=n)p=e[F],m=e[F+1],p<h&&(h=p),m<d&&(d=m),p>f&&(f=p),m>u&&(u=m);c=Math.max(f-h,u-d),c=c!==0?32767/c:0}return le(a,l,n,h,d,c,0),l}function Xt(e,t,n,r,i,o,s){let a,l;o===void 0&&(o=j(e,{start:t,end:n,size:r,plane:s}));let c=ae[s[0]],f=ae[s[1]];if(i===o<0)for(a=t;a<n;a+=r)l=Kt(a,e[a+c],e[a+f],l);else for(a=n-r;a>=t;a-=r)l=Kt(a,e[a+c],e[a+f],l);return l&&_e(l,l.next)&&(fe(l),l=l.next),l}function G(e,t){if(!e)return e;t||(t=e);let n=e,r;do if(r=!1,!n.steiner&&(_e(n,n.next)||P(n.prev,n,n.next)===0)){if(fe(n),n=t=n.prev,n===n.next)break;r=!0}else n=n.next;while(r||n!==t);return t}function le(e,t,n,r,i,o,s){if(!e)return;!s&&o&&Xr(e,r,i,o);let a=e,l,c;for(;e.prev!==e.next;){if(l=e.prev,c=e.next,o?Rr(e,r,i,o):Zr(e)){t.push(l.i/n|0),t.push(e.i/n|0),t.push(c.i/n|0),fe(e),e=c.next,a=c.next;continue}if(e=c,e===a){s?s===1?(e=jr(G(e),t,n),le(e,t,n,r,i,o,2)):s===2&&Gr(e,t,n,r,i,o):le(G(e),t,n,r,i,o,1);break}}}function Zr(e){let t=e.prev,n=e,r=e.next;if(P(t,n,r)>=0)return!1;let i=t.x,o=n.x,s=r.x,a=t.y,l=n.y,c=r.y,f=i<o?i<s?i:s:o<s?o:s,u=a<l?a<c?a:c:l<c?l:c,h=i>o?i>s?i:s:o>s?o:s,d=a>l?a>c?a:c:l>c?l:c,p=r.next;for(;p!==t;){if(p.x>=f&&p.x<=h&&p.y>=u&&p.y<=d&&X(i,a,o,l,s,c,p.x,p.y)&&P(p.prev,p,p.next)>=0)return!1;p=p.next}return!0}function Rr(e,t,n,r){let i=e.prev,o=e,s=e.next;if(P(i,o,s)>=0)return!1;let a=i.x,l=o.x,c=s.x,f=i.y,u=o.y,h=s.y,d=a<l?a<c?a:c:l<c?l:c,p=f<u?f<h?f:h:u<h?u:h,m=a>l?a>c?a:c:l>c?l:c,F=f>u?f>h?f:h:u>h?u:h,M=rt(d,p,t,n,r),v=rt(m,F,t,n,r),y=e.prevZ,g=e.nextZ;for(;y&&y.z>=M&&g&&g.z<=v;){if(y.x>=d&&y.x<=m&&y.y>=p&&y.y<=F&&y!==i&&y!==s&&X(a,f,l,u,c,h,y.x,y.y)&&P(y.prev,y,y.next)>=0||(y=y.prevZ,g.x>=d&&g.x<=m&&g.y>=p&&g.y<=F&&g!==i&&g!==s&&X(a,f,l,u,c,h,g.x,g.y)&&P(g.prev,g,g.next)>=0))return!1;g=g.nextZ}for(;y&&y.z>=M;){if(y.x>=d&&y.x<=m&&y.y>=p&&y.y<=F&&y!==i&&y!==s&&X(a,f,l,u,c,h,y.x,y.y)&&P(y.prev,y,y.next)>=0)return!1;y=y.prevZ}for(;g&&g.z<=v;){if(g.x>=d&&g.x<=m&&g.y>=p&&g.y<=F&&g!==i&&g!==s&&X(a,f,l,u,c,h,g.x,g.y)&&P(g.prev,g,g.next)>=0)return!1;g=g.nextZ}return!0}function jr(e,t,n){let r=e;do{let i=r.prev,o=r.next.next;!_e(i,o)&&Yt(i,r,r.next,o)&&ce(i,o)&&ce(o,i)&&(t.push(i.i/n|0),t.push(r.i/n|0),t.push(o.i/n|0),fe(r),fe(r.next),r=e=o),r=r.next}while(r!==e);return G(r)}function Gr(e,t,n,r,i,o){let s=e;do{let a=s.next.next;for(;a!==s.prev;){if(s.i!==a.i&&qr(s,a)){let l=Qt(s,a);s=G(s,s.next),l=G(l,l.next),le(s,t,n,r,i,o,0),le(l,t,n,r,i,o,0);return}a=a.next}s=s.next}while(s!==e)}function Hr(e,t,n,r,i,o){let s=[],a,l,c,f,u;for(a=0,l=t.length;a<l;a++)c=t[a]*r,f=a<l-1?t[a+1]*r:e.length,u=Xt(e,c,f,r,!1,i&&i[a+1],o),u===u.next&&(u.steiner=!0),s.push(Qr(u));for(s.sort(Jr),a=0;a<s.length;a++)n=Wr(s[a],n);return n}function Jr(e,t){return e.x-t.x}function Wr(e,t){let n=$r(e,t);if(!n)return t;let r=Qt(n,e);return G(r,r.next),G(n,n.next)}function $r(e,t){let n=t,r=e.x,i=e.y,o=-1/0,s;do{if(i<=n.y&&i>=n.next.y&&n.next.y!==n.y){let h=n.x+(i-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(h<=r&&h>o&&(o=h,s=n.x<n.next.x?n:n.next,h===r))return s}n=n.next}while(n!==t);if(!s)return null;let a=s,l=s.x,c=s.y,f=1/0,u;n=s;do r>=n.x&&n.x>=l&&r!==n.x&&X(i<c?r:o,i,l,c,i<c?o:r,i,n.x,n.y)&&(u=Math.abs(i-n.y)/(r-n.x),ce(n,e)&&(u<f||u===f&&(n.x>s.x||n.x===s.x&&Kr(s,n)))&&(s=n,f=u)),n=n.next;while(n!==a);return s}function Kr(e,t){return P(e.prev,e,t.prev)<0&&P(t.next,e,e.next)<0}function Xr(e,t,n,r){let i=e;do i.z===0&&(i.z=rt(i.x,i.y,t,n,r)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next;while(i!==e);i.prevZ.nextZ=null,i.prevZ=null,Yr(i)}function Yr(e){let t,n,r=1,i,o,s,a,l,c;do{for(o=e,e=null,c=null,i=0;o;){for(i++,a=o,s=0,n=0;n<r&&(s++,a=a.nextZ,!!a);n++);for(l=r;s>0||l>0&&a;)s!==0&&(l===0||!a||o.z<=a.z)?(t=o,o=o.nextZ,s--):(t=a,a=a.nextZ,l--),c?c.nextZ=t:e=t,t.prevZ=c,c=t;o=a}c.nextZ=null,r*=2}while(i>1);return e}function rt(e,t,n,r,i){return e=(e-n)*i|0,t=(t-r)*i|0,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e|t<<1}function Qr(e){let t=e,n=e;do(t.x<n.x||t.x===n.x&&t.y<n.y)&&(n=t),t=t.next;while(t!==e);return n}function X(e,t,n,r,i,o,s,a){return(i-s)*(t-a)>=(e-s)*(o-a)&&(e-s)*(r-a)>=(n-s)*(t-a)&&(n-s)*(o-a)>=(i-s)*(r-a)}function qr(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!ei(e,t)&&(ce(e,t)&&ce(t,e)&&ti(e,t)&&(P(e.prev,e,t.prev)||P(e,t.prev,t))||_e(e,t)&&P(e.prev,e,e.next)>0&&P(t.prev,t,t.next)>0)}function P(e,t,n){return(t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function _e(e,t){return e.x===t.x&&e.y===t.y}function Yt(e,t,n,r){let i=Ue(P(e,t,n)),o=Ue(P(e,t,r)),s=Ue(P(n,r,e)),a=Ue(P(n,r,t));return!!(i!==o&&s!==a||i===0&&Me(e,n,t)||o===0&&Me(e,r,t)||s===0&&Me(n,e,r)||a===0&&Me(n,t,r))}function Me(e,t,n){return t.x<=Math.max(e.x,n.x)&&t.x>=Math.min(e.x,n.x)&&t.y<=Math.max(e.y,n.y)&&t.y>=Math.min(e.y,n.y)}function Ue(e){return e>0?1:e<0?-1:0}function ei(e,t){let n=e;do{if(n.i!==e.i&&n.next.i!==e.i&&n.i!==t.i&&n.next.i!==t.i&&Yt(n,n.next,e,t))return!0;n=n.next}while(n!==e);return!1}function ce(e,t){return P(e.prev,e,e.next)<0?P(e,t,e.next)>=0&&P(e,e.prev,t)>=0:P(e,t,e.prev)<0||P(e,e.next,t)<0}function ti(e,t){let n=e,r=!1,i=(e.x+t.x)/2,o=(e.y+t.y)/2;do n.y>o!=n.next.y>o&&n.next.y!==n.y&&i<(n.next.x-n.x)*(o-n.y)/(n.next.y-n.y)+n.x&&(r=!r),n=n.next;while(n!==e);return r}function Qt(e,t){let n=new ue(e.i,e.x,e.y),r=new ue(t.i,t.x,t.y),i=e.next,o=t.prev;return e.next=t,t.prev=e,n.next=i,i.prev=n,r.next=n,n.prev=r,o.next=r,r.prev=o,r}function Kt(e,t,n,r){let i=new ue(e,t,n);return r?(i.next=r.next,i.prev=r,r.next.prev=i,r.next=i):(i.prev=i,i.next=i),i}function fe(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}var ue=class{constructor(t,n,r){E(this,"i",void 0),E(this,"x",void 0),E(this,"y",void 0),E(this,"prev",null),E(this,"next",null),E(this,"z",0),E(this,"prevZ",null),E(this,"nextZ",null),E(this,"steiner",!1),this.i=t,this.x=n,this.y=r}};function at(e,t,n){let r=si(e),i=Object.keys(r).filter(o=>r[o]!==Array);return ai(e,{propArrayTypes:r,...t},{numericPropKeys:n&&n.numericPropKeys||i,PositionDataType:n?n.PositionDataType:Float32Array,triangulate:n?n.triangulate:!0})}function si(e){let t={};for(let n of e)if(n.properties)for(let r in n.properties){let i=n.properties[r];t[r]=di(i,t[r])}return t}function ai(e,t,n){let{pointPositionsCount:r,pointFeaturesCount:i,linePositionsCount:o,linePathsCount:s,lineFeaturesCount:a,polygonPositionsCount:l,polygonObjectsCount:c,polygonRingsCount:f,polygonFeaturesCount:u,propArrayTypes:h,coordLength:d}=t,{numericPropKeys:p=[],PositionDataType:m=Float32Array,triangulate:F=!0}=n,M=e[0]&&"id"in e[0],v=e.length>65535?Uint32Array:Uint16Array,y={type:"Point",positions:new m(r*d),globalFeatureIds:new v(r),featureIds:i>65535?new Uint32Array(r):new Uint16Array(r),numericProps:{},properties:[],fields:[]},g={type:"LineString",pathIndices:o>65535?new Uint32Array(s+1):new Uint16Array(s+1),positions:new m(o*d),globalFeatureIds:new v(o),featureIds:a>65535?new Uint32Array(o):new Uint16Array(o),numericProps:{},properties:[],fields:[]},V={type:"Polygon",polygonIndices:l>65535?new Uint32Array(c+1):new Uint16Array(c+1),primitivePolygonIndices:l>65535?new Uint32Array(f+1):new Uint16Array(f+1),positions:new m(l*d),globalFeatureIds:new v(l),featureIds:u>65535?new Uint32Array(l):new Uint16Array(l),numericProps:{},properties:[],fields:[]};F&&(V.triangles=[]);for(let U of[y,g,V])for(let T of p){let A=h[T];U.numericProps[T]=new A(U.positions.length/d)}g.pathIndices[s]=o,V.polygonIndices[c]=l,V.primitivePolygonIndices[f]=l;let C={pointPosition:0,pointFeature:0,linePosition:0,linePath:0,lineFeature:0,polygonPosition:0,polygonObject:0,polygonRing:0,polygonFeature:0,feature:0};for(let U of e){let T=U.geometry,A=U.properties||{};switch(T.type){case"Point":li(T,y,C,d,A),y.properties.push(st(A,p)),M&&y.fields.push({id:U.id}),C.pointFeature++;break;case"LineString":ci(T,g,C,d,A),g.properties.push(st(A,p)),M&&g.fields.push({id:U.id}),C.lineFeature++;break;case"Polygon":fi(T,V,C,d,A),V.properties.push(st(A,p)),M&&V.fields.push({id:U.id}),C.polygonFeature++;break;default:throw new Error("Invalid geometry type")}C.feature++}return hi(y,g,V,d)}function li(e,t,n,r,i){t.positions.set(e.data,n.pointPosition*r);let o=e.data.length/r;lt(t,i,n.pointPosition,o),t.globalFeatureIds.fill(n.feature,n.pointPosition,n.pointPosition+o),t.featureIds.fill(n.pointFeature,n.pointPosition,n.pointPosition+o),n.pointPosition+=o}function ci(e,t,n,r,i){t.positions.set(e.data,n.linePosition*r);let o=e.data.length/r;lt(t,i,n.linePosition,o),t.globalFeatureIds.fill(n.feature,n.linePosition,n.linePosition+o),t.featureIds.fill(n.lineFeature,n.linePosition,n.linePosition+o);for(let s=0,a=e.indices.length;s<a;++s){let l=e.indices[s],c=s===a-1?e.data.length:e.indices[s+1];t.pathIndices[n.linePath++]=n.linePosition,n.linePosition+=(c-l)/r}}function fi(e,t,n,r,i){t.positions.set(e.data,n.polygonPosition*r);let o=e.data.length/r;lt(t,i,n.polygonPosition,o),t.globalFeatureIds.fill(n.feature,n.polygonPosition,n.polygonPosition+o),t.featureIds.fill(n.polygonFeature,n.polygonPosition,n.polygonPosition+o);for(let s=0,a=e.indices.length;s<a;++s){let l=n.polygonPosition;t.polygonIndices[n.polygonObject++]=l;let c=e.areas[s],f=e.indices[s],u=e.indices[s+1];for(let d=0,p=f.length;d<p;++d){let m=f[d],F=d===p-1?u===void 0?e.data.length:u[0]:f[d+1];t.primitivePolygonIndices[n.polygonRing++]=n.polygonPosition,n.polygonPosition+=(F-m)/r}let h=n.polygonPosition;ui(t,c,f,{startPosition:l,endPosition:h,coordLength:r})}}function ui(e,t,n,{startPosition:r,endPosition:i,coordLength:o}){if(!e.triangles)return;let s=r*o,a=i*o,l=e.positions.subarray(s,a),c=n[0],f=n.slice(1).map(h=>(h-c)/o),u=it(l,f,o,t);for(let h=0,d=u.length;h<d;++h)e.triangles.push(r+u[h])}function ot(e,t){let n={};for(let r in e)n[r]={value:e[r],size:t};return n}function hi(e,t,n,r){let i={shape:"binary-feature-collection",points:{...e,positions:{value:e.positions,size:r},globalFeatureIds:{value:e.globalFeatureIds,size:1},featureIds:{value:e.featureIds,size:1},numericProps:ot(e.numericProps,1)},lines:{...t,positions:{value:t.positions,size:r},pathIndices:{value:t.pathIndices,size:1},globalFeatureIds:{value:t.globalFeatureIds,size:1},featureIds:{value:t.featureIds,size:1},numericProps:ot(t.numericProps,1)},polygons:{...n,positions:{value:n.positions,size:r},polygonIndices:{value:n.polygonIndices,size:1},primitivePolygonIndices:{value:n.primitivePolygonIndices,size:1},globalFeatureIds:{value:n.globalFeatureIds,size:1},featureIds:{value:n.featureIds,size:1},numericProps:ot(n.numericProps,1)}};return i.polygons&&n.triangles&&(i.polygons.triangles={value:new Uint32Array(n.triangles),size:1}),i}function lt(e,t,n,r){for(let i in e.numericProps)if(i in t){let o=t[i];e.numericProps[i].fill(o,n,n+r)}}function st(e,t){let n={};for(let r in e)t.includes(r)||(n[r]=e[r]);return n}function di(e,t){return t===Array||!Number.isFinite(e)?Array:t===Float64Array||Math.fround(e)!==e?Float64Array:Float32Array}var gt=_t(ln(),1);function cn(e){let t=e.length;if(t<=1)return[e];let n=[],r,i;for(let o=0;o<t;o++){let s=bi(e[o]);s!==0&&(i===void 0&&(i=s<0),i===s<0?(r&&n.push(r),r=[e[o]]):r&&r.push(e[o]))}return r&&n.push(r),n}function bi(e){let t=0;for(let n=0,r=e.length-1,i,o;n<e.length;r=n++)i=e[n],o=e[r],t+=(o[0]-i[0])*(i[1]+o[1]);return t}function fn(e,t,n){t&&n&&(e===1?t.id=n.readVarint():e===2?Mi(n,t):e===3?t.type=n.readVarint():e===4&&(t._geometry=n.pos))}function Mi(e,t){let n=e.readVarint()+e.pos;for(;e.pos<n;){let r=t._keys[e.readVarint()],i=t._values[e.readVarint()];t.properties[r]=i}}var H=class{static get types(){return["Unknown","Point","LineString","Polygon"]}constructor(t,n,r,i,o){this.properties={},this.extent=r,this.type=0,this.id=null,this._pbf=t,this._geometry=-1,this._keys=i,this._values=o,t.readFields(fn,this,n)}loadGeometry(){let t=this._pbf;t.pos=this._geometry;let n=t.readVarint()+t.pos,r=1,i=0,o=0,s=0,a=[],l;for(;t.pos<n;){if(i<=0){let c=t.readVarint();r=c&7,i=c>>3}if(i--,r===1||r===2)o+=t.readSVarint(),s+=t.readSVarint(),r===1&&(l&&a.push(l),l=[]),l&&l.push([o,s]);else if(r===7)l&&l.push(l[0].slice());else throw new Error(`unknown command ${r}`)}return l&&a.push(l),a}bbox(){let t=this._pbf;t.pos=this._geometry;let n=t.readVarint()+t.pos,r=1,i=0,o=0,s=0,a=1/0,l=-1/0,c=1/0,f=-1/0;for(;t.pos<n;){if(i<=0){let u=t.readVarint();r=u&7,i=u>>3}if(i--,r===1||r===2)o+=t.readSVarint(),s+=t.readSVarint(),o<a&&(a=o),o>l&&(l=o),s<c&&(c=s),s>f&&(f=s);else if(r!==7)throw new Error(`unknown command ${r}`)}return[a,c,l,f]}_toGeoJSON(t){let n=this.loadGeometry(),r=H.types[this.type],i,o;switch(this.type){case 1:let a=[];for(i=0;i<n.length;i++)a[i]=n[i][0];n=a,t(n,this);break;case 2:for(i=0;i<n.length;i++)t(n[i],this);break;case 3:for(n=cn(n),i=0;i<n.length;i++)for(o=0;o<n[i].length;o++)t(n[i][o],this);break}n.length===1?n=n[0]:r=`Multi${r}`;let s={type:"Feature",geometry:{type:r,coordinates:n},properties:this.properties};return this.id!==null&&(s.id=this.id),s}toGeoJSON(t){if(typeof t=="function")return this._toGeoJSON(t);let{x:n,y:r,z:i}=t,o=this.extent*Math.pow(2,i),s=this.extent*n,a=this.extent*r;function l(c){for(let f=0;f<c.length;f++){let u=c[f];u[0]=(u[0]+s)*360/o-180;let h=180-(u[1]+a)*360/o;u[1]=360/Math.PI*Math.atan(Math.exp(h*Math.PI/180))-90}}return this._toGeoJSON(l)}};var he=class{constructor(t,n){this.version=1,this.name="",this.extent=4096,this.length=0,this._pbf=t,this._keys=[],this._values=[],this._features=[],t.readFields(Ui,this,n),this.length=this._features.length}feature(t){if(t<0||t>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[t];let n=this._pbf.readVarint()+this._pbf.pos;return new H(this._pbf,n,this.extent,this._keys,this._values)}};function Ui(e,t,n){t&&n&&(e===15?t.version=n.readVarint():e===1?t.name=n.readString():e===5?t.extent=n.readVarint():e===2?t._features.push(n.pos):e===3?t._keys.push(n.readString()):e===4&&t._values.push(_i(n)))}function _i(e){let t=null,n=e.readVarint()+e.pos;for(;e.pos<n;){let r=e.readVarint()>>3;t=r===1?e.readString():r===2?e.readFloat():r===3?e.readDouble():r===4?e.readVarint64():r===5?e.readVarint():r===6?e.readSVarint():r===7?e.readBoolean():null}return t}var de=class{constructor(t,n){this.layers=t.readFields(Li,{},n)}};function Li(e,t,n){if(e===3&&n){let r=new he(n,n.readVarint()+n.pos);r.length&&t&&(t[r.name]=r)}}function un(e){let t=e.indices.length,n="Polygon";if(t<=1)return{type:n,data:e.data,areas:[[j(e.data)]],indices:[e.indices]};let r=[],i=[],o=[],s=[],a,l=0;for(let c,f=0,u;f<t;f++){u=e.indices[f]-l,c=e.indices[f+1]-l||e.data.length;let h=e.data.slice(u,c),d=j(h);if(d===0){let p=e.data.slice(0,u),m=e.data.slice(c);e.data=p.concat(m),l+=c-u;continue}a===void 0&&(a=d<0),a===d<0?(s.length&&(r.push(o),i.push(s)),s=[u],o=[d]):(o.push(d),s.push(u))}return o&&r.push(o),s.length&&i.push(s),{type:n,areas:r,indices:i,data:e.data}}function hn(e,t,n,r){for(let i=0,o=e.length;i<o;i+=2){e[i]=(e[i]+t)*360/r-180;let s=180-(e[i+1]+n)*360/r;e[i+1]=360/Math.PI*Math.atan(Math.exp(s*Math.PI/180))-90}}function dn(e,t,n){t&&n&&(e===1?t.id=n.readVarint():e===2?ki(n,t):e===3?t.type=n.readVarint():e===4&&(t._geometry=n.pos))}function ki(e,t){let n=e.readVarint()+e.pos;for(;e.pos<n;){let r=t._keys[e.readVarint()],i=t._values[e.readVarint()];t.properties[r]=i}}var pn,J,ut,Ce,ht,dt,pe;var ge=class{constructor(t,n,r,i,o,s){this.properties={},this.extent=r,this.type=0,this.id=null,this._pbf=t,this._geometry=-1,this._keys=i,this._values=o,this._geometryInfo=s,t.readFields(dn,this,n)}loadGeometry(){let t=this._pbf;t.pos=this._geometry,pn=t.readVarint()+t.pos,J=1,Ce=0,ht=0,dt=0,pe=0;let n=[],r=[];for(;t.pos<pn;)if(Ce<=0&&(ut=t.readVarint(),J=ut&7,Ce=ut>>3),Ce--,J===1||J===2)ht+=t.readSVarint(),dt+=t.readSVarint(),J===1&&n.push(pe),r.push(ht,dt),pe+=2;else if(J===7){if(pe>0){let i=n[n.length-1];r.push(r[i],r[i+1]),pe+=2}}else throw new Error(`unknown command ${J}`);return{data:r,indices:n}}_toBinaryCoordinates(t){let n=this.loadGeometry(),r;t(n.data,this);let i=2;switch(this.type){case 1:this._geometryInfo.pointFeaturesCount++,this._geometryInfo.pointPositionsCount+=n.indices.length,r={type:"Point",...n};break;case 2:this._geometryInfo.lineFeaturesCount++,this._geometryInfo.linePathsCount+=n.indices.length,this._geometryInfo.linePositionsCount+=n.data.length/i,r={type:"LineString",...n};break;case 3:r=un(n),this._geometryInfo.polygonFeaturesCount++,this._geometryInfo.polygonObjectsCount+=r.indices.length;for(let s of r.indices)this._geometryInfo.polygonRingsCount+=s.length;this._geometryInfo.polygonPositionsCount+=r.data.length/i;break;default:throw new Error(`Invalid geometry type: ${this.type}`)}let o={type:"Feature",geometry:r,properties:this.properties};return this.id!==null&&(o.id=this.id),o}toBinaryCoordinates(t){if(typeof t=="function")return this._toBinaryCoordinates(t);let{x:n,y:r,z:i}=t,o=this.extent*Math.pow(2,i),s=this.extent*n,a=this.extent*r;return this._toBinaryCoordinates(l=>hn(l,s,a,o))}};var ye=class{constructor(t,n){this.version=1,this.name="",this.extent=4096,this.length=0,this._pbf=t,this._keys=[],this._values=[],this._features=[],t.readFields(Ci,this,n),this.length=this._features.length}feature(t,n){if(t<0||t>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[t];let r=this._pbf.readVarint()+this._pbf.pos;return new ge(this._pbf,r,this.extent,this._keys,this._values,n)}};function Ci(e,t,n){t&&n&&(e===15?t.version=n.readVarint():e===1?t.name=n.readString():e===5?t.extent=n.readVarint():e===2?t._features.push(n.pos):e===3?t._keys.push(n.readString()):e===4&&t._values.push(Oi(n)))}function Oi(e){let t=null,n=e.readVarint()+e.pos;for(;e.pos<n;){let r=e.readVarint()>>3;t=r===1?e.readString():r===2?e.readFloat():r===3?e.readDouble():r===4?e.readVarint64():r===5?e.readVarint():r===6?e.readSVarint():r===7?e.readBoolean():null}return t}var me=class{constructor(t,n){this.layers=t.readFields(Ni,{},n)}};function Ni(e,t,n){if(e===3&&n){let r=new ye(n,n.readVarint()+n.pos);r.length&&t&&(t[r.name]=r)}}function Oe(e,t){let n=Zi(t),r=t?.gis?.format||t?.mvt?.shape||t?.shape;switch(r){case"columnar-table":return{shape:"columnar-table",data:pt(e,n)};case"geojson-table":return{shape:"geojson-table",type:"FeatureCollection",features:gn(e,n)};case"geojson":return gn(e,n);case"binary-geometry":return pt(e,n);case"binary":return pt(e,n);default:throw new Error(r||"undefined shape")}}function pt(e,t){let[n,r]=zi(e,t),i=at(n,r);return i.byteLength=e.byteLength,i}function zi(e,t){let n=[],r={coordLength:2,pointPositionsCount:0,pointFeaturesCount:0,linePositionsCount:0,linePathsCount:0,lineFeaturesCount:0,polygonPositionsCount:0,polygonObjectsCount:0,polygonRingsCount:0,polygonFeaturesCount:0};if(e.byteLength<=0)return[n,r];let i=new me(new gt.default(e));return(t&&Array.isArray(t.layers)?t.layers:Object.keys(i.layers)).forEach(s=>{let a=i.layers[s];if(a)for(let l=0;l<a.length;l++){let c=a.feature(l,r),f=ji(c,t,s);n.push(f)}}),[n,r]}function gn(e,t){if(e.byteLength<=0)return[];let n=[],r=new de(new gt.default(e));return(Array.isArray(t.layers)?t.layers:Object.keys(r.layers)).forEach(o=>{let s=r.layers[o];if(s)for(let a=0;a<s.length;a++){let l=s.feature(a),c=Ri(l,t,o);n.push(c)}}),n}function Zi(e){if(!e?.mvt)throw new Error("mvt options required");let t=e.mvt?.coordinates==="wgs84",{tileIndex:n}=e.mvt,r=n&&Number.isFinite(n.x)&&Number.isFinite(n.y)&&Number.isFinite(n.z);if(t&&!r)throw new Error("MVT Loader: WGS84 coordinates need tileIndex property");return e.mvt}function Ri(e,t,n){let r=e.toGeoJSON(t.coordinates==="wgs84"?t.tileIndex:Gi);return t.layerProperty&&(r.properties[t.layerProperty]=n),r}function ji(e,t,n){let r=e.toBinaryCoordinates(t.coordinates==="wgs84"?t.tileIndex:Hi);return t.layerProperty&&r.properties&&(r.properties[t.layerProperty]=n),r}function Gi(e,t){let{extent:n}=t;for(let r=0;r<e.length;r++){let i=e[r];i[0]/=n,i[1]/=n}}function Hi(e,t){let{extent:n}=t;for(let r=0,i=e.length;r<i;++r)e[r]/=n}var Ji="4.2.0-alpha.4",yn={name:"Mapbox Vector Tile",id:"mvt",module:"mvt",version:Ji,extensions:["mvt","pbf"],mimeTypes:["application/vnd.mapbox-vector-tile","application/x-protobuf"],worker:!0,category:"geometry",options:{mvt:{shape:"geojson",coordinates:"local",layerProperty:"layerName",layers:void 0,tileIndex:null}}},yt={...yn,parse:async(e,t)=>Oe(e,t),parseSync:Oe,binary:!0};var vn=e=>e!==null&&typeof e=="object";function mt(e,t){if(!e||!vn(e))return null;let n={name:e.name||"",description:e.description||""};if(typeof e.generator=="string"&&(n.generator=e.generator),typeof e.generator_options=="string"&&(n.generatorOptions=e.generator_options),n.boundingBox=mn(e.bounds)||mn(e.antimeridian_adjusted_bounds),n.center=Qi(e.center),n.maxZoom=xn(e.maxzoom),n.minZoom=xn(e.minzoom),typeof e?.json=="string")try{n.metaJson=JSON.parse(e.json)}catch(a){console.warn("Failed to parse tilejson.json field",a)}let r=e.tilestats||n.metaJson?.tilestats,i=Ki(r,t),o=Wi(e.vector_layers),s=Yi(o,i);return n={...n,layers:s},n.maxZoom===null&&s.length>0&&(n.maxZoom=s[0].maxZoom||null),n.minZoom===null&&s.length>0&&(n.minZoom=s[0].minZoom||null),n}function Wi(e){return Array.isArray(e)?e.map(t=>$i(t)):[]}function $i(e){let t=Object.entries(e.fields||[]).map(([r,i])=>({name:r,...Tn(String(i))})),n={...e};return delete n.fields,{name:e.id||"",...n,fields:t}}function Ki(e,t){return vn(e)&&Array.isArray(e.layers)?e.layers.map(n=>Xi(n,t)):[]}function Xi(e,t){let n=[],r={},i=e.attributes||[];for(let o of i){let s=o.attribute;if(typeof s=="string")if(s.split("|").length>1){let a=s.split("|")[0];r[a]=r[a]||[],r[a].push(o),console.warn("ignoring tilestats indexed field",a)}else n[s]||n.push(eo(o,t))}return{name:e.layer||"",dominantGeometry:e.geometry,fields:n}}function Yi(e,t){return e.map(n=>{let r=t.find(s=>s.name===n.name),i=r?.fields||[],o={...n};return delete o.fields,{...o,...r,fields:i}})}function mn(e){let t=In(e);if(Array.isArray(t)&&t.length===4&&[t[0],t[2]].every(Fn)&&[t[1],t[3]].every(Pn))return[[t[0],t[1]],[t[2],t[3]]]}function Qi(e){let t=In(e);return Array.isArray(t)&&t.length===3&&Fn(t[0])&&Pn(t[1])&&qi(t[2])?t:null}function xn(e){let t=typeof e=="string"?parseFloat(e):typeof e=="number"?e:null;return t===null||isNaN(t)?null:t}function Pn(e){return Number.isFinite(e)&&e<=90&&e>=-90}function Fn(e){return Number.isFinite(e)&&e<=180&&e>=-180}function qi(e){return Number.isFinite(e)&&e>=0&&e<=22}function In(e){return typeof e=="string"?e.split(",").map(parseFloat):Array.isArray(e)?e:null}var wn={number:{type:"float32"},numeric:{type:"float32"},string:{type:"utf8"},vachar:{type:"utf8"},float:{type:"float32"},int:{type:"int32"},int4:{type:"int32"},boolean:{type:"boolean"},bool:{type:"boolean"}};function eo(e={},t){let n=Tn(e.type),r={name:e.attribute,...n};return typeof e.min=="number"&&(r.min=e.min),typeof e.max=="number"&&(r.max=e.max),typeof e.count=="number"&&(r.uniqueValueCount=e.count),e.values&&(r.values=e.values),r.values&&typeof t.maxValues=="number"&&(r.values=r.values?.slice(0,t.maxValues)),r}function Tn(e){let t=e.toLowerCase();return!t||wn[t],wn[t]||{type:"string"}}var to="4.2.0-alpha.4",xe={name:"TileJSON",id:"tilejson",module:"pmtiles",version:to,worker:!0,extensions:["json"],mimeTypes:["application/json"],text:!0,options:{tilejson:{maxValues:void 0}},parse:async(e,t)=>{let n=new TextDecoder().decode(e),r=JSON.parse(n),i={...xe.options.tilejson,...t?.tilejson};return mt(r,i)},parseTextSync:(e,t)=>{let n=JSON.parse(e),r={...xe.options.tilejson,...t?.tilejson};return mt(n,r)}};var Fe={};Ut(Fe,{Compression:()=>Zn,EtagMismatch:()=>ze,FetchSource:()=>Gn,FileSource:()=>ko,PMTiles:()=>Ft,Protocol:()=>Eo,ResolvedValueCache:()=>Oo,SharedPromiseCache:()=>Kn,TileType:()=>Rn,bytesToHeader:()=>Hn,findTile:()=>jn,getUint64:()=>b,leafletRasterLayer:()=>Ao,readVarint:()=>ee,tileIdToZxy:()=>_o,zxyToTileId:()=>zn});var W=Math.pow,I=(e,t,n)=>new Promise((r,i)=>{var o=l=>{try{a(n.next(l))}catch(c){i(c)}},s=l=>{try{a(n.throw(l))}catch(c){i(c)}},a=l=>l.done?r(l.value):Promise.resolve(l.value).then(o,s);a((n=n.apply(e,t)).next())}),D=Uint8Array,te=Uint16Array,no=Int32Array,Vn=new D([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),An=new D([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),ro=new D([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Bn=function(e,t){for(var n=new te(31),r=0;r<31;++r)n[r]=t+=1<<e[r-1];for(var i=new no(n[30]),r=1;r<30;++r)for(var o=n[r];o<n[r+1];++o)i[o]=o-n[r]<<5|r;return{b:n,r:i}},En=Bn(Vn,2),bn=En.b,io=En.r;bn[28]=258,io[258]=28;var Mn=Bn(An,0),oo=Mn.b,Qa=Mn.r,vt=new te(32768);for(w=0;w<32768;++w)Z=(w&43690)>>1|(w&21845)<<1,Z=(Z&52428)>>2|(Z&13107)<<2,Z=(Z&61680)>>4|(Z&3855)<<4,vt[w]=((Z&65280)>>8|(Z&255)<<8)>>1;var Z,w,ve=function(e,t,n){for(var r=e.length,i=0,o=new te(t);i<r;++i)e[i]&&++o[e[i]-1];var s=new te(t);for(i=1;i<t;++i)s[i]=s[i-1]+o[i-1]<<1;var a;if(n){a=new te(1<<t);var l=15-t;for(i=0;i<r;++i)if(e[i])for(var c=i<<4|e[i],f=t-e[i],u=s[e[i]-1]++<<f,h=u|(1<<f)-1;u<=h;++u)a[vt[u]>>l]=c}else for(a=new te(r),i=0;i<r;++i)e[i]&&(a[i]=vt[s[e[i]-1]++]>>15-e[i]);return a},Pe=new D(288);for(w=0;w<144;++w)Pe[w]=8;var w;for(w=144;w<256;++w)Pe[w]=9;var w;for(w=256;w<280;++w)Pe[w]=7;var w;for(w=280;w<288;++w)Pe[w]=8;var w,Un=new D(32);for(w=0;w<32;++w)Un[w]=5;var w,so=ve(Pe,9,1),ao=ve(Un,5,1),xt=function(e){for(var t=e[0],n=1;n<e.length;++n)e[n]>t&&(t=e[n]);return t},k=function(e,t,n){var r=t/8|0;return(e[r]|e[r+1]<<8)>>(t&7)&n},wt=function(e,t){var n=t/8|0;return(e[n]|e[n+1]<<8|e[n+2]<<16)>>(t&7)},lo=function(e){return(e+7)/8|0},co=function(e,t,n){(t==null||t<0)&&(t=0),(n==null||n>e.length)&&(n=e.length);var r=new D(n-t);return r.set(e.subarray(t,n)),r},fo=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],S=function(e,t,n){var r=new Error(t||fo[e]);if(r.code=e,Error.captureStackTrace&&Error.captureStackTrace(r,S),!n)throw r;return r},It=function(e,t,n,r){var i=e.length,o=r?r.length:0;if(!i||t.f&&!t.l)return n||new D(0);var s=!n||t.i!=2,a=t.i;n||(n=new D(i*3));var l=function(Et){var bt=n.length;if(Et>bt){var Mt=new D(Math.max(bt*2,Et));Mt.set(n),n=Mt}},c=t.f||0,f=t.p||0,u=t.b||0,h=t.l,d=t.d,p=t.m,m=t.n,F=i*8;do{if(!h){c=k(e,f,1);var M=k(e,f+1,3);if(f+=3,M)if(M==1)h=so,d=ao,p=9,m=5;else if(M==2){var V=k(e,f,31)+257,C=k(e,f+10,15)+4,U=V+k(e,f+5,31)+1;f+=14;for(var T=new D(U),A=new D(19),B=0;B<C;++B)A[ro[B]]=k(e,f+B*3,7);f+=C*3;for(var St=xt(A),Yn=(1<<St)-1,Qn=ve(A,St,1),B=0;B<U;){var Dt=Qn[k(e,f,Yn)];f+=Dt&15;var v=Dt>>4;if(v<16)T[B++]=v;else{var $=0,Se=0;for(v==16?(Se=3+k(e,f,3),f+=2,$=T[B-1]):v==17?(Se=3+k(e,f,7),f+=3):v==18&&(Se=11+k(e,f,127),f+=7);Se--;)T[B++]=$}}var Vt=T.subarray(0,V),_=T.subarray(V);p=xt(Vt),m=xt(_),h=ve(Vt,p,1),d=ve(_,m,1)}else S(1);else{var v=lo(f)+4,y=e[v-4]|e[v-3]<<8,g=v+y;if(g>i){a&&S(0);break}s&&l(u+y),n.set(e.subarray(v,g),u),t.b=u+=y,t.p=f=g*8,t.f=c;continue}if(f>F){a&&S(0);break}}s&&l(u+131072);for(var qn=(1<<p)-1,er=(1<<m)-1,je=f;;je=f){var $=h[wt(e,f)&qn],K=$>>4;if(f+=$&15,f>F){a&&S(0);break}if($||S(2),K<256)n[u++]=K;else if(K==256){je=f,h=null;break}else{var At=K-254;if(K>264){var B=K-257,ne=Vn[B];At=k(e,f,(1<<ne)-1)+bn[B],f+=ne}var Ge=d[wt(e,f)&er],He=Ge>>4;Ge||S(3),f+=Ge&15;var _=oo[He];if(He>3){var ne=An[He];_+=wt(e,f)&(1<<ne)-1,f+=ne}if(f>F){a&&S(0);break}s&&l(u+131072);var Je=u+At;if(u<_){var Bt=o-_,tr=Math.min(_,Je);for(Bt+u<0&&S(3);u<tr;++u)n[u]=r[Bt+u]}for(;u<Je;u+=4)n[u]=n[u-_],n[u+1]=n[u+1-_],n[u+2]=n[u+2-_],n[u+3]=n[u+3-_];u=Je}}t.l=h,t.p=je,t.b=u,t.f=c,h&&(c=1,t.m=p,t.d=d,t.n=m)}while(!c);return u==n.length?n:co(n,0,u)},uo=new D(0),ho=function(e){(e[0]!=31||e[1]!=139||e[2]!=8)&&S(6,"invalid gzip data");var t=e[3],n=10;t&4&&(n+=(e[10]|e[11]<<8)+2);for(var r=(t>>3&1)+(t>>4&1);r>0;r-=!e[n++]);return n+(t&2)},po=function(e){var t=e.length;return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0},go=function(e,t){return((e[0]&15)!=8||e[0]>>4>7||(e[0]<<8|e[1])%31)&&S(6,"invalid zlib data"),(e[1]>>5&1)==+!t&&S(6,"invalid zlib data: "+(e[1]&32?"need":"unexpected")+" dictionary"),(e[1]>>3&4)+2};function yo(e,t){return It(e,{i:2},t&&t.out,t&&t.dictionary)}function mo(e,t){var n=ho(e);return n+8>e.length&&S(6,"invalid gzip data"),It(e.subarray(n,-8),{i:2},t&&t.out||new D(po(e)),t&&t.dictionary)}function xo(e,t){return It(e.subarray(go(e,t&&t.dictionary),-4),{i:2},t&&t.out,t&&t.dictionary)}function Pt(e,t){return e[0]==31&&e[1]==139&&e[2]==8?mo(e,t):(e[0]&15)!=8||e[0]>>4>7||(e[0]<<8|e[1])%31?yo(e,t):xo(e,t)}var wo=typeof TextDecoder<"u"&&new TextDecoder,vo=0;try{wo.decode(uo,{stream:!0}),vo=1}catch{}var _n=(e,t)=>e*W(2,t),we=(e,t)=>Math.floor(e/W(2,t)),Ne=(e,t)=>_n(e.getUint16(t+1,!0),8)+e.getUint8(t),Ln=(e,t)=>_n(e.getUint32(t+2,!0),16)+e.getUint16(t,!0),Po=(e,t,n,r,i)=>{if(e!==r.getUint8(i))return e-r.getUint8(i);let o=Ne(r,i+1);if(t!==o)return t-o;let s=Ne(r,i+4);return n!==s?n-s:0},Fo=(e,t,n,r)=>{let i=kn(e,t|128,n,r);return i?{z:t,x:n,y:r,offset:i[0],length:i[1],isDir:!0}:null},Sn=(e,t,n,r)=>{let i=kn(e,t,n,r);return i?{z:t,x:n,y:r,offset:i[0],length:i[1],isDir:!1}:null},kn=(e,t,n,r)=>{let i=0,o=e.byteLength/17-1;for(;i<=o;){let s=o+i>>1,a=Po(t,n,r,e,s*17);if(a>0)i=s+1;else if(a<0)o=s-1;else return[Ln(e,s*17+7),e.getUint32(s*17+13,!0)]}return null},Io=(e,t)=>e.isDir&&!t.isDir?1:!e.isDir&&t.isDir?-1:e.z!==t.z?e.z-t.z:e.x!==t.x?e.x-t.x:e.y-t.y,Cn=(e,t)=>{let n=e.getUint8(t*17);return{z:n&127,x:Ne(e,t*17+1),y:Ne(e,t*17+4),offset:Ln(e,t*17+7),length:e.getUint32(t*17+13,!0),isDir:n>>7===1}},Dn=e=>{let t=[],n=new DataView(e);for(let r=0;r<n.byteLength/17;r++)t.push(Cn(n,r));return To(t)},To=e=>{e.sort(Io);let t=new ArrayBuffer(17*e.length),n=new Uint8Array(t);for(let r=0;r<e.length;r++){let i=e[r],o=i.z;i.isDir&&(o=o|128),n[r*17]=o,n[r*17+1]=i.x&255,n[r*17+2]=i.x>>8&255,n[r*17+3]=i.x>>16&255,n[r*17+4]=i.y&255,n[r*17+5]=i.y>>8&255,n[r*17+6]=i.y>>16&255,n[r*17+7]=i.offset&255,n[r*17+8]=we(i.offset,8)&255,n[r*17+9]=we(i.offset,16)&255,n[r*17+10]=we(i.offset,24)&255,n[r*17+11]=we(i.offset,32)&255,n[r*17+12]=we(i.offset,48)&255,n[r*17+13]=i.length&255,n[r*17+14]=i.length>>8&255,n[r*17+15]=i.length>>16&255,n[r*17+16]=i.length>>24&255}return t},So=(e,t)=>{if(e.byteLength<17)return null;let n=e.byteLength/17,r=Cn(e,n-1);if(r.isDir){let i=r.z,o=t.z-i,s=Math.trunc(t.x/(1<<o)),a=Math.trunc(t.y/(1<<o));return{z:i,x:s,y:a}}return null};function Do(e){return I(this,null,function*(){let t=yield e.getBytes(0,512e3),n=new DataView(t.data),r=n.getUint32(4,!0),i=n.getUint16(8,!0),o=new TextDecoder("utf-8"),s=JSON.parse(o.decode(new DataView(t.data,10,r))),a=0;s.compression==="gzip"&&(a=2);let l=0;"minzoom"in s&&(l=+s.minzoom);let c=0;"maxzoom"in s&&(c=+s.maxzoom);let f=0,u=0,h=0,d=-180,p=-85,m=180,F=85;if(s.bounds){let v=s.bounds.split(",");d=+v[0],p=+v[1],m=+v[2],F=+v[3]}if(s.center){let v=s.center.split(",");f=+v[0],u=+v[1],h=+v[2]}return{specVersion:n.getUint16(2,!0),rootDirectoryOffset:10+r,rootDirectoryLength:i*17,jsonMetadataOffset:10,jsonMetadataLength:r,leafDirectoryOffset:0,leafDirectoryLength:void 0,tileDataOffset:0,tileDataLength:void 0,numAddressedTiles:0,numTileEntries:0,numTileContents:0,clustered:!1,internalCompression:1,tileCompression:a,tileType:1,minZoom:l,maxZoom:c,minLon:d,minLat:p,maxLon:m,maxLat:F,centerZoom:h,centerLon:f,centerLat:u,etag:t.etag}})}function Vo(e,t,n,r,i,o,s){return I(this,null,function*(){let a=yield n.getArrayBuffer(t,e.rootDirectoryOffset,e.rootDirectoryLength,e);e.specVersion===1&&(a=Dn(a));let l=Sn(new DataView(a),r,i,o);if(l){let u=(yield t.getBytes(l.offset,l.length,s)).data,h=new DataView(u);return h.getUint8(0)===31&&h.getUint8(1)===139&&(u=Pt(new Uint8Array(u))),{data:u}}let c=So(new DataView(a),{z:r,x:i,y:o});if(c){let f=Fo(new DataView(a),c.z,c.x,c.y);if(f){let u=yield n.getArrayBuffer(t,f.offset,f.length,e);e.specVersion===1&&(u=Dn(u));let h=Sn(new DataView(u),r,i,o);if(h){let p=(yield t.getBytes(h.offset,h.length,s)).data,m=new DataView(p);return m.getUint8(0)===31&&m.getUint8(1)===139&&(p=Pt(new Uint8Array(p))),{data:p}}}}})}var On={getHeader:Do,getZxy:Vo},Ao=(e,t)=>{let n=!1,r="",i=L.GridLayer.extend({createTile:(o,s)=>{let a=document.createElement("img"),l=new AbortController,c=l.signal;return a.cancel=()=>{l.abort()},n||(e.getHeader().then(f=>{f.tileType===1?console.error("Error: archive contains MVT vector tiles, but leafletRasterLayer is for displaying raster tiles. See https://github.com/protomaps/PMTiles/tree/main/js for details."):f.tileType===2?r="image/png":f.tileType===3?r="image/jpeg":f.tileType===4?r="image/webp":f.tileType===5&&(r="image/avif")}),n=!0),e.getZxy(o.z,o.x,o.y,c).then(f=>{if(f){let u=new Blob([f.data],{type:r}),h=window.URL.createObjectURL(u);a.src=h,a.cancel=void 0,s(void 0,a)}}).catch(f=>{if(f.name!=="AbortError")throw f}),a},_removeTile:function(o){let s=this._tiles[o];s&&(s.el.cancel&&s.el.cancel(),s.el.width=0,s.el.height=0,s.el.deleted=!0,L.DomUtil.remove(s.el),delete this._tiles[o],this.fire("tileunload",{tile:s.el,coords:this._keyToTileCoords(o)}))}});return new i(t)},Bo=e=>(t,n)=>{if(n instanceof AbortController)return e(t,n);let r=new AbortController;return e(t,r).then(i=>n(void 0,i.data,i.cacheControl||"",i.expires||""),i=>n(i)).catch(i=>n(i)),{cancel:()=>r.abort()}},Eo=class{constructor(){this.tilev4=(e,t)=>I(this,null,function*(){if(e.type==="json"){let u=e.url.substr(10),h=this.tiles.get(u);h||(h=new Ft(u),this.tiles.set(u,h));let d=yield h.getHeader();return{data:{tiles:[`${e.url}/{z}/{x}/{y}`],minzoom:d.minZoom,maxzoom:d.maxZoom,bounds:[d.minLon,d.minLat,d.maxLon,d.maxLat]}}}let n=new RegExp(/pmtiles:\/\/(.+)\/(\d+)\/(\d+)\/(\d+)/),r=e.url.match(n);if(!r)throw new Error("Invalid PMTiles protocol URL");let i=r[1],o=this.tiles.get(i);o||(o=new Ft(i),this.tiles.set(i,o));let s=r[2],a=r[3],l=r[4],c=yield o.getHeader(),f=yield o?.getZxy(+s,+a,+l,t.signal);return f?{data:new Uint8Array(f.data),cacheControl:f.cacheControl,expires:f.expires}:c.tileType===1?{data:new Uint8Array}:{data:null}}),this.tile=Bo(this.tilev4),this.tiles=new Map}add(e){this.tiles.set(e.source.getKey(),e)}get(e){return this.tiles.get(e)}};function q(e,t){return(t>>>0)*4294967296+(e>>>0)}function bo(e,t){let n=t.buf,r=n[t.pos++],i=(r&112)>>4;if(r<128||(r=n[t.pos++],i|=(r&127)<<3,r<128)||(r=n[t.pos++],i|=(r&127)<<10,r<128)||(r=n[t.pos++],i|=(r&127)<<17,r<128)||(r=n[t.pos++],i|=(r&127)<<24,r<128)||(r=n[t.pos++],i|=(r&1)<<31,r<128))return q(e,i);throw new Error("Expected varint not more than 10 bytes")}function ee(e){let t=e.buf,n=t[e.pos++],r=n&127;return n<128||(n=t[e.pos++],r|=(n&127)<<7,n<128)||(n=t[e.pos++],r|=(n&127)<<14,n<128)||(n=t[e.pos++],r|=(n&127)<<21,n<128)?r:(n=t[e.pos],r|=(n&15)<<28,bo(r,e))}function Nn(e,t,n,r){if(r===0){n===1&&(t[0]=e-1-t[0],t[1]=e-1-t[1]);let i=t[0];t[0]=t[1],t[1]=i}}function Mo(e,t){let n=W(2,e),r=t,i=t,o=t,s=[0,0],a=1;for(;a<n;)r=1&o/2,i=1&(o^r),Nn(a,s,r,i),s[0]+=a*r,s[1]+=a*i,o=o/4,a*=2;return[e,s[0],s[1]]}var Uo=[0,1,5,21,85,341,1365,5461,21845,87381,349525,1398101,5592405,22369621,89478485,357913941,1431655765,5726623061,22906492245,91625968981,366503875925,1466015503701,5864062014805,23456248059221,93824992236885,375299968947541,0x5555555555555];function zn(e,t,n){if(e>26)throw Error("Tile zoom level exceeds max safe number limit (26)");if(t>W(2,e)-1||n>W(2,e)-1)throw Error("tile x/y outside zoom level bounds");let r=Uo[e],i=W(2,e),o=0,s=0,a=0,l=[t,n],c=i/2;for(;c>0;)o=(l[0]&c)>0?1:0,s=(l[1]&c)>0?1:0,a+=c*c*(3*o^s),Nn(c,l,o,s),c=c/2;return r+a}function _o(e){let t=0,n=0;for(let r=0;r<27;r++){let i=(1<<r)*(1<<r);if(t+i>e)return Mo(r,e-t);t+=i}throw Error("Tile zoom level exceeds max safe number limit (26)")}var Zn=(e=>(e[e.Unknown=0]="Unknown",e[e.None=1]="None",e[e.Gzip=2]="Gzip",e[e.Brotli=3]="Brotli",e[e.Zstd=4]="Zstd",e))(Zn||{});function Tt(e,t){return I(this,null,function*(){if(t===1||t===0)return e;if(t===2){if(typeof globalThis.DecompressionStream>"u")return Pt(new Uint8Array(e));let n=new Response(e).body;if(!n)throw Error("Failed to read response stream");let r=n.pipeThrough(new globalThis.DecompressionStream("gzip"));return new Response(r).arrayBuffer()}throw Error("Compression method not supported")})}var Rn=(e=>(e[e.Unknown=0]="Unknown",e[e.Mvt=1]="Mvt",e[e.Png=2]="Png",e[e.Jpeg=3]="Jpeg",e[e.Webp=4]="Webp",e[e.Avif=5]="Avif",e))(Rn||{}),Lo=127;function jn(e,t){let n=0,r=e.length-1;for(;n<=r;){let i=r+n>>1,o=t-e[i].tileId;if(o>0)n=i+1;else if(o<0)r=i-1;else return e[i]}return r>=0&&(e[r].runLength===0||t-e[r].tileId<e[r].runLength)?e[r]:null}var ko=class{constructor(e){this.file=e}getKey(){return this.file.name}getBytes(e,t){return I(this,null,function*(){return{data:yield this.file.slice(e,e+t).arrayBuffer()}})}},Gn=class{constructor(e,t=new Headers){this.url=e,this.customHeaders=t,this.mustReload=!1}getKey(){return this.url}setHeaders(e){this.customHeaders=e}getBytes(e,t,n,r){return I(this,null,function*(){let i,o;n?o=n:(i=new AbortController,o=i.signal);let s=new Headers(this.customHeaders);s.set("range",`bytes=${e}-${e+t-1}`);let a;this.mustReload&&(a="reload");let l=yield fetch(this.url,{signal:o,cache:a,headers:s});if(e===0&&l.status===416){let h=l.headers.get("Content-Range");if(!h||!h.startsWith("bytes */"))throw Error("Missing content-length on 416 response");let d=+h.substr(8);l=yield fetch(this.url,{signal:o,cache:"reload",headers:{range:`bytes=0-${d-1}`}})}let c=l.headers.get("Etag");if(c?.startsWith("W/")&&(c=null),l.status===416||r&&c&&c!==r)throw this.mustReload=!0,new ze(r);if(l.status>=300)throw Error(`Bad response code: ${l.status}`);let f=l.headers.get("Content-Length");if(l.status===200&&(!f||+f>t))throw i&&i.abort(),Error("Server returned no content-length header or content-length exceeding request. Check that your storage backend supports HTTP Byte Serving.");return{data:yield l.arrayBuffer(),etag:c||void 0,cacheControl:l.headers.get("Cache-Control")||void 0,expires:l.headers.get("Expires")||void 0}})}};function b(e,t){let n=e.getUint32(t+4,!0),r=e.getUint32(t+0,!0);return n*W(2,32)+r}function Hn(e,t){let n=new DataView(e),r=n.getUint8(7);if(r>3)throw Error(`Archive is spec version ${r} but this library supports up to spec version 3`);return{specVersion:r,rootDirectoryOffset:b(n,8),rootDirectoryLength:b(n,16),jsonMetadataOffset:b(n,24),jsonMetadataLength:b(n,32),leafDirectoryOffset:b(n,40),leafDirectoryLength:b(n,48),tileDataOffset:b(n,56),tileDataLength:b(n,64),numAddressedTiles:b(n,72),numTileEntries:b(n,80),numTileContents:b(n,88),clustered:n.getUint8(96)===1,internalCompression:n.getUint8(97),tileCompression:n.getUint8(98),tileType:n.getUint8(99),minZoom:n.getUint8(100),maxZoom:n.getUint8(101),minLon:n.getInt32(102,!0)/1e7,minLat:n.getInt32(106,!0)/1e7,maxLon:n.getInt32(110,!0)/1e7,maxLat:n.getInt32(114,!0)/1e7,centerZoom:n.getUint8(118),centerLon:n.getInt32(119,!0)/1e7,centerLat:n.getInt32(123,!0)/1e7,etag:t}}function Jn(e){let t={buf:new Uint8Array(e),pos:0},n=ee(t),r=[],i=0;for(let o=0;o<n;o++){let s=ee(t);r.push({tileId:i+s,offset:0,length:0,runLength:1}),i+=s}for(let o=0;o<n;o++)r[o].runLength=ee(t);for(let o=0;o<n;o++)r[o].length=ee(t);for(let o=0;o<n;o++){let s=ee(t);s===0&&o>0?r[o].offset=r[o-1].offset+r[o-1].length:r[o].offset=s-1}return r}function Co(e){let t=new DataView(e);return t.getUint16(2,!0)===2?(console.warn("PMTiles spec version 2 has been deprecated; please see github.com/protomaps/PMTiles for tools to upgrade"),2):t.getUint16(2,!0)===1?(console.warn("PMTiles spec version 1 has been deprecated; please see github.com/protomaps/PMTiles for tools to upgrade"),1):3}var ze=class extends Error{};function Wn(e,t){return I(this,null,function*(){let n=yield e.getBytes(0,16384);if(new DataView(n.data).getUint16(0,!0)!==19792)throw new Error("Wrong magic number for PMTiles archive");if(Co(n.data)<3)return[yield On.getHeader(e)];let i=n.data.slice(0,Lo),o=Hn(i,n.etag),s=n.data.slice(o.rootDirectoryOffset,o.rootDirectoryOffset+o.rootDirectoryLength),a=`${e.getKey()}|${o.etag||""}|${o.rootDirectoryOffset}|${o.rootDirectoryLength}`,l=Jn(yield t(s,o.internalCompression));return[o,[a,l.length,l]]})}function $n(e,t,n,r,i){return I(this,null,function*(){let o=yield e.getBytes(n,r,void 0,i.etag),s=yield t(o.data,i.internalCompression),a=Jn(s);if(a.length===0)throw new Error("Empty directory is invalid");return a})}var Oo=class{constructor(e=100,t=!0,n=Tt){this.cache=new Map,this.maxCacheEntries=e,this.counter=1,this.decompress=n}getHeader(e){return I(this,null,function*(){let t=e.getKey(),n=this.cache.get(t);if(n)return n.lastUsed=this.counter++,n.data;let r=yield Wn(e,this.decompress);return r[1]&&this.cache.set(r[1][0],{lastUsed:this.counter++,data:r[1][2]}),this.cache.set(t,{lastUsed:this.counter++,data:r[0]}),this.prune(),r[0]})}getDirectory(e,t,n,r){return I(this,null,function*(){let i=`${e.getKey()}|${r.etag||""}|${t}|${n}`,o=this.cache.get(i);if(o)return o.lastUsed=this.counter++,o.data;let s=yield $n(e,this.decompress,t,n,r);return this.cache.set(i,{lastUsed:this.counter++,data:s}),this.prune(),s})}getArrayBuffer(e,t,n,r){return I(this,null,function*(){let i=`${e.getKey()}|${r.etag||""}|${t}|${n}`,o=this.cache.get(i);if(o)return o.lastUsed=this.counter++,yield o.data;let s=yield e.getBytes(t,n,void 0,r.etag);return this.cache.set(i,{lastUsed:this.counter++,data:s.data}),this.prune(),s.data})}prune(){if(this.cache.size>this.maxCacheEntries){let e=1/0,t;this.cache.forEach((n,r)=>{n.lastUsed<e&&(e=n.lastUsed,t=r)}),t&&this.cache.delete(t)}}invalidate(e){return I(this,null,function*(){this.cache.delete(e.getKey())})}},Kn=class{constructor(e=100,t=!0,n=Tt){this.cache=new Map,this.invalidations=new Map,this.maxCacheEntries=e,this.counter=1,this.decompress=n}getHeader(e){return I(this,null,function*(){let t=e.getKey(),n=this.cache.get(t);if(n)return n.lastUsed=this.counter++,yield n.data;let r=new Promise((i,o)=>{Wn(e,this.decompress).then(s=>{s[1]&&this.cache.set(s[1][0],{lastUsed:this.counter++,data:Promise.resolve(s[1][2])}),i(s[0]),this.prune()}).catch(s=>{o(s)})});return this.cache.set(t,{lastUsed:this.counter++,data:r}),r})}getDirectory(e,t,n,r){return I(this,null,function*(){let i=`${e.getKey()}|${r.etag||""}|${t}|${n}`,o=this.cache.get(i);if(o)return o.lastUsed=this.counter++,yield o.data;let s=new Promise((a,l)=>{$n(e,this.decompress,t,n,r).then(c=>{a(c),this.prune()}).catch(c=>{l(c)})});return this.cache.set(i,{lastUsed:this.counter++,data:s}),s})}getArrayBuffer(e,t,n,r){return I(this,null,function*(){let i=`${e.getKey()}|${r.etag||""}|${t}|${n}`,o=this.cache.get(i);if(o)return o.lastUsed=this.counter++,yield o.data;let s=new Promise((a,l)=>{e.getBytes(t,n,void 0,r.etag).then(c=>{a(c.data),this.cache.has(i),this.prune()}).catch(c=>{l(c)})});return this.cache.set(i,{lastUsed:this.counter++,data:s}),s})}prune(){if(this.cache.size>=this.maxCacheEntries){let e=1/0,t;this.cache.forEach((n,r)=>{n.lastUsed<e&&(e=n.lastUsed,t=r)}),t&&this.cache.delete(t)}}invalidate(e){return I(this,null,function*(){let t=e.getKey();if(this.invalidations.get(t))return yield this.invalidations.get(t);this.cache.delete(e.getKey());let n=new Promise((r,i)=>{this.getHeader(e).then(o=>{r(),this.invalidations.delete(t)}).catch(o=>{i(o)})});this.invalidations.set(t,n)})}},Ft=class{constructor(e,t,n){typeof e=="string"?this.source=new Gn(e):this.source=e,n?this.decompress=n:this.decompress=Tt,t?this.cache=t:this.cache=new Kn}getHeader(){return I(this,null,function*(){return yield this.cache.getHeader(this.source)})}getZxyAttempt(e,t,n,r){return I(this,null,function*(){let i=zn(e,t,n),o=yield this.cache.getHeader(this.source);if(o.specVersion<3)return On.getZxy(o,this.source,this.cache,e,t,n,r);if(e<o.minZoom||e>o.maxZoom)return;let s=o.rootDirectoryOffset,a=o.rootDirectoryLength;for(let l=0;l<=3;l++){let c=yield this.cache.getDirectory(this.source,s,a,o),f=jn(c,i);if(f){if(f.runLength>0){let u=yield this.source.getBytes(o.tileDataOffset+f.offset,f.length,r,o.etag);return{data:yield this.decompress(u.data,o.tileCompression),cacheControl:u.cacheControl,expires:u.expires}}s=o.leafDirectoryOffset+f.offset,a=f.length}else return}throw Error("Maximum directory depth exceeded")})}getZxy(e,t,n,r){return I(this,null,function*(){try{return yield this.getZxyAttempt(e,t,n,r)}catch(i){if(i instanceof ze)return this.cache.invalidate(this.source),yield this.getZxyAttempt(e,t,n,r);throw i}})}getMetadataAttempt(){return I(this,null,function*(){let e=yield this.cache.getHeader(this.source),t=yield this.source.getBytes(e.jsonMetadataOffset,e.jsonMetadataLength,void 0,e.etag),n=yield this.decompress(t.data,e.internalCompression),r=new TextDecoder("utf-8");return JSON.parse(r.decode(n))})}getMetadata(){return I(this,null,function*(){try{return yield this.getMetadataAttempt()}catch(e){if(e instanceof ze)return this.cache.invalidate(this.source),yield this.getMetadataAttempt();throw e}})}};var{TileType:Ie}=Fe;function Xn(e,t,n,r){let i=t,o=null;if(i)try{let l=JSON.stringify(i);o=xe.parseTextSync?.(l,r)||null}catch(l){console.warn("PMTiles metadata could not be interpreted as TileJSON",l)}let s={};typeof o?.name=="string"&&(s.name=o.name),typeof o?.htmlAttribution=="string"&&(s.attributions=[o.htmlAttribution]);let a={...s,format:"pmtiles",formatVersion:e.specVersion,attributions:[],tileMIMEType:No(e.tileType),minZoom:e.minZoom,maxZoom:e.maxZoom,boundingBox:[[e.minLon,e.minLat],[e.maxLon,e.maxLat]],center:[e.centerLon,e.centerLat],centerZoom:e.centerZoom,etag:e.etag};return o&&(a.tilejson=o),n?.includeFormatHeader&&(a.formatHeader=e,a.formatMetadata=a),a}function No(e){switch(e){case Ie.Mvt:return"application/vnd.mapbox-vector-tile";case Ie.Png:return"image/png";case Ie.Jpeg:return"image/jpeg";case Ie.Webp:return"image/webp";case Ie.Avif:return"image/avif";default:return"application/octet-stream"}}var Ze=class{constructor(t,n){this.blob=t,this.key=n}getKey(){return this.blob.url||""}async getBytes(t,n,r){return{data:await this.blob.slice(t,t+n).arrayBuffer()}}};var{PMTiles:zo}=Fe;var Re=class extends ie{constructor(t){super(t),this.mimeType=null,this.props=t;let n=typeof t.url=="string"?Ye(t.url):new Ze(t.url,"pmtiles");this.data=t.url,this.pmtiles=new zo(n),this.getTileData=this.getTileData.bind(this),this.metadata=this.getMetadata()}async getMetadata(){let t=await this.pmtiles.getHeader(),n=await this.pmtiles.getMetadata(),r=Xn(t,n,{includeFormatHeader:!1},this.loadOptions);return this.props.attributions&&(r.attributions=[...this.props.attributions,...r.attributions||[]]),r?.tileMIMEType&&(this.mimeType=r?.tileMIMEType),r}async getTile(t){let{x:n,y:r,zoom:i}=t,s=(await this.pmtiles.getZxy(i,n,r))?.data;return s||null}async getTileData(t){let{x:n,y:r,z:i}=t.index;switch((await this.metadata).tileMIMEType){case"application/vnd.mapbox-vector-tile":return await this.getVectorTile({x:n,y:r,zoom:i,layers:[]});default:return await this.getImageTile({x:n,y:r,zoom:i,layers:[]})}}async getImageTile(t){let n=await this.getTile(t);return n?await nt.parse(n,this.loadOptions):null}async getVectorTile(t){let n=await this.getTile(t),r={shape:"geojson-table",mvt:{coordinates:"wgs84",tileIndex:{x:t.x,y:t.y,z:t.zoom},...this.loadOptions?.mvt},...this.loadOptions};return n?await yt.parse(n,r):null}};return ar(Te);})();
7
+ "use strict";var __exports__=(()=>{var nr=Object.create;var Ve=Object.defineProperty;var rr=Object.getOwnPropertyDescriptor;var ir=Object.getOwnPropertyNames;var or=Object.getPrototypeOf,sr=Object.prototype.hasOwnProperty;var We=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Mt=(e,t)=>{for(var n in t)Ve(e,n,{get:t[n],enumerable:!0})},De=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of ir(t))!sr.call(e,i)&&i!==n&&Ve(e,i,{get:()=>t[i],enumerable:!(r=rr(t,i))||r.enumerable});return e},be=(e,t,n)=>(De(e,t,"default"),n&&De(n,t,"default")),Ut=(e,t,n)=>(n=e!=null?nr(or(e)):{},De(t||!e||!e.__esModule?Ve(n,"default",{value:e,enumerable:!0}):n,e)),ar=e=>De(Ve({},"__esModule",{value:!0}),e);var kt=We((Ro,Lt)=>{Lt.exports=globalThis.loaders});var tn=We(ct=>{ct.read=function(e,t,n,r,i){var o,s,a=i*8-r-1,l=(1<<a)-1,c=l>>1,f=-7,u=n?i-1:0,h=n?-1:1,d=e[t+u];for(u+=h,o=d&(1<<-f)-1,d>>=-f,f+=a;f>0;o=o*256+e[t+u],u+=h,f-=8);for(s=o&(1<<-f)-1,o>>=-f,f+=r;f>0;s=s*256+e[t+u],u+=h,f-=8);if(o===0)o=1-c;else{if(o===l)return s?NaN:(d?-1:1)*(1/0);s=s+Math.pow(2,r),o=o-c}return(d?-1:1)*s*Math.pow(2,o-r)};ct.write=function(e,t,n,r,i,o){var s,a,l,c=o*8-i-1,f=(1<<c)-1,u=f>>1,h=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,d=r?0:o-1,p=r?1:-1,m=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,s=f):(s=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-s))<1&&(s--,l*=2),s+u>=1?t+=h/l:t+=h*Math.pow(2,1-u),t*l>=2&&(s++,l/=2),s+u>=f?(a=0,s=f):s+u>=1?(a=(t*l-1)*Math.pow(2,i),s=s+u):(a=t*Math.pow(2,u-1)*Math.pow(2,i),s=0));i>=8;e[n+d]=a&255,d+=p,a/=256,i-=8);for(s=s<<i|a,c+=i;c>0;e[n+d]=s&255,d+=p,s/=256,c-=8);e[n+d-p]|=m*128}});var ln=We((Ta,an)=>{"use strict";an.exports=x;var Le=tn();function x(e){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(e)?e:new Uint8Array(e||0),this.pos=0,this.type=0,this.length=this.buf.length}x.Varint=0;x.Fixed64=1;x.Bytes=2;x.Fixed32=5;var ft=(1<<16)*(1<<16),nn=1/ft,pi=12,sn=typeof TextDecoder>"u"?null:new TextDecoder("utf8");x.prototype={destroy:function(){this.buf=null},readFields:function(e,t,n){for(n=n||this.length;this.pos<n;){var r=this.readVarint(),i=r>>3,o=this.pos;this.type=r&7,e(i,t,this),this.pos===o&&this.skip(r)}return t},readMessage:function(e,t){return this.readFields(e,t,this.readVarint()+this.pos)},readFixed32:function(){var e=ke(this.buf,this.pos);return this.pos+=4,e},readSFixed32:function(){var e=on(this.buf,this.pos);return this.pos+=4,e},readFixed64:function(){var e=ke(this.buf,this.pos)+ke(this.buf,this.pos+4)*ft;return this.pos+=8,e},readSFixed64:function(){var e=ke(this.buf,this.pos)+on(this.buf,this.pos+4)*ft;return this.pos+=8,e},readFloat:function(){var e=Le.read(this.buf,this.pos,!0,23,4);return this.pos+=4,e},readDouble:function(){var e=Le.read(this.buf,this.pos,!0,52,8);return this.pos+=8,e},readVarint:function(e){var t=this.buf,n,r;return r=t[this.pos++],n=r&127,r<128||(r=t[this.pos++],n|=(r&127)<<7,r<128)||(r=t[this.pos++],n|=(r&127)<<14,r<128)||(r=t[this.pos++],n|=(r&127)<<21,r<128)?n:(r=t[this.pos],n|=(r&15)<<28,gi(n,e,this))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var e=this.readVarint();return e%2===1?(e+1)/-2:e/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var e=this.readVarint()+this.pos,t=this.pos;return this.pos=e,e-t>=pi&&sn?Ai(this.buf,t,e):bi(this.buf,t,e)},readBytes:function(){var e=this.readVarint()+this.pos,t=this.buf.subarray(this.pos,e);return this.pos=e,t},readPackedVarint:function(e,t){if(this.type!==x.Bytes)return e.push(this.readVarint(t));var n=z(this);for(e=e||[];this.pos<n;)e.push(this.readVarint(t));return e},readPackedSVarint:function(e){if(this.type!==x.Bytes)return e.push(this.readSVarint());var t=z(this);for(e=e||[];this.pos<t;)e.push(this.readSVarint());return e},readPackedBoolean:function(e){if(this.type!==x.Bytes)return e.push(this.readBoolean());var t=z(this);for(e=e||[];this.pos<t;)e.push(this.readBoolean());return e},readPackedFloat:function(e){if(this.type!==x.Bytes)return e.push(this.readFloat());var t=z(this);for(e=e||[];this.pos<t;)e.push(this.readFloat());return e},readPackedDouble:function(e){if(this.type!==x.Bytes)return e.push(this.readDouble());var t=z(this);for(e=e||[];this.pos<t;)e.push(this.readDouble());return e},readPackedFixed32:function(e){if(this.type!==x.Bytes)return e.push(this.readFixed32());var t=z(this);for(e=e||[];this.pos<t;)e.push(this.readFixed32());return e},readPackedSFixed32:function(e){if(this.type!==x.Bytes)return e.push(this.readSFixed32());var t=z(this);for(e=e||[];this.pos<t;)e.push(this.readSFixed32());return e},readPackedFixed64:function(e){if(this.type!==x.Bytes)return e.push(this.readFixed64());var t=z(this);for(e=e||[];this.pos<t;)e.push(this.readFixed64());return e},readPackedSFixed64:function(e){if(this.type!==x.Bytes)return e.push(this.readSFixed64());var t=z(this);for(e=e||[];this.pos<t;)e.push(this.readSFixed64());return e},skip:function(e){var t=e&7;if(t===x.Varint)for(;this.buf[this.pos++]>127;);else if(t===x.Bytes)this.pos=this.readVarint()+this.pos;else if(t===x.Fixed32)this.pos+=4;else if(t===x.Fixed64)this.pos+=8;else throw new Error("Unimplemented type: "+t)},writeTag:function(e,t){this.writeVarint(e<<3|t)},realloc:function(e){for(var t=this.length||16;t<this.pos+e;)t*=2;if(t!==this.length){var n=new Uint8Array(t);n.set(this.buf),this.buf=n,this.length=t}},finish:function(){return this.length=this.pos,this.pos=0,this.buf.subarray(0,this.length)},writeFixed32:function(e){this.realloc(4),Q(this.buf,e,this.pos),this.pos+=4},writeSFixed32:function(e){this.realloc(4),Q(this.buf,e,this.pos),this.pos+=4},writeFixed64:function(e){this.realloc(8),Q(this.buf,e&-1,this.pos),Q(this.buf,Math.floor(e*nn),this.pos+4),this.pos+=8},writeSFixed64:function(e){this.realloc(8),Q(this.buf,e&-1,this.pos),Q(this.buf,Math.floor(e*nn),this.pos+4),this.pos+=8},writeVarint:function(e){if(e=+e||0,e>268435455||e<0){yi(e,this);return}this.realloc(4),this.buf[this.pos++]=e&127|(e>127?128:0),!(e<=127)&&(this.buf[this.pos++]=(e>>>=7)&127|(e>127?128:0),!(e<=127)&&(this.buf[this.pos++]=(e>>>=7)&127|(e>127?128:0),!(e<=127)&&(this.buf[this.pos++]=e>>>7&127)))},writeSVarint:function(e){this.writeVarint(e<0?-e*2-1:e*2)},writeBoolean:function(e){this.writeVarint(Boolean(e))},writeString:function(e){e=String(e),this.realloc(e.length*4),this.pos++;var t=this.pos;this.pos=Bi(this.buf,e,this.pos);var n=this.pos-t;n>=128&&rn(t,n,this),this.pos=t-1,this.writeVarint(n),this.pos+=n},writeFloat:function(e){this.realloc(4),Le.write(this.buf,e,this.pos,!0,23,4),this.pos+=4},writeDouble:function(e){this.realloc(8),Le.write(this.buf,e,this.pos,!0,52,8),this.pos+=8},writeBytes:function(e){var t=e.length;this.writeVarint(t),this.realloc(t);for(var n=0;n<t;n++)this.buf[this.pos++]=e[n]},writeRawMessage:function(e,t){this.pos++;var n=this.pos;e(t,this);var r=this.pos-n;r>=128&&rn(n,r,this),this.pos=n-1,this.writeVarint(r),this.pos+=r},writeMessage:function(e,t,n){this.writeTag(e,x.Bytes),this.writeRawMessage(t,n)},writePackedVarint:function(e,t){t.length&&this.writeMessage(e,wi,t)},writePackedSVarint:function(e,t){t.length&&this.writeMessage(e,vi,t)},writePackedBoolean:function(e,t){t.length&&this.writeMessage(e,Ii,t)},writePackedFloat:function(e,t){t.length&&this.writeMessage(e,Pi,t)},writePackedDouble:function(e,t){t.length&&this.writeMessage(e,Fi,t)},writePackedFixed32:function(e,t){t.length&&this.writeMessage(e,Ti,t)},writePackedSFixed32:function(e,t){t.length&&this.writeMessage(e,Si,t)},writePackedFixed64:function(e,t){t.length&&this.writeMessage(e,Di,t)},writePackedSFixed64:function(e,t){t.length&&this.writeMessage(e,Vi,t)},writeBytesField:function(e,t){this.writeTag(e,x.Bytes),this.writeBytes(t)},writeFixed32Field:function(e,t){this.writeTag(e,x.Fixed32),this.writeFixed32(t)},writeSFixed32Field:function(e,t){this.writeTag(e,x.Fixed32),this.writeSFixed32(t)},writeFixed64Field:function(e,t){this.writeTag(e,x.Fixed64),this.writeFixed64(t)},writeSFixed64Field:function(e,t){this.writeTag(e,x.Fixed64),this.writeSFixed64(t)},writeVarintField:function(e,t){this.writeTag(e,x.Varint),this.writeVarint(t)},writeSVarintField:function(e,t){this.writeTag(e,x.Varint),this.writeSVarint(t)},writeStringField:function(e,t){this.writeTag(e,x.Bytes),this.writeString(t)},writeFloatField:function(e,t){this.writeTag(e,x.Fixed32),this.writeFloat(t)},writeDoubleField:function(e,t){this.writeTag(e,x.Fixed64),this.writeDouble(t)},writeBooleanField:function(e,t){this.writeVarintField(e,Boolean(t))}};function gi(e,t,n){var r=n.buf,i,o;if(o=r[n.pos++],i=(o&112)>>4,o<128||(o=r[n.pos++],i|=(o&127)<<3,o<128)||(o=r[n.pos++],i|=(o&127)<<10,o<128)||(o=r[n.pos++],i|=(o&127)<<17,o<128)||(o=r[n.pos++],i|=(o&127)<<24,o<128)||(o=r[n.pos++],i|=(o&1)<<31,o<128))return Y(e,i,t);throw new Error("Expected varint not more than 10 bytes")}function z(e){return e.type===x.Bytes?e.readVarint()+e.pos:e.pos+1}function Y(e,t,n){return n?t*4294967296+(e>>>0):(t>>>0)*4294967296+(e>>>0)}function yi(e,t){var n,r;if(e>=0?(n=e%4294967296|0,r=e/4294967296|0):(n=~(-e%4294967296),r=~(-e/4294967296),n^4294967295?n=n+1|0:(n=0,r=r+1|0)),e>=18446744073709552e3||e<-18446744073709552e3)throw new Error("Given varint doesn't fit into 10 bytes");t.realloc(10),mi(n,r,t),xi(r,t)}function mi(e,t,n){n.buf[n.pos++]=e&127|128,e>>>=7,n.buf[n.pos++]=e&127|128,e>>>=7,n.buf[n.pos++]=e&127|128,e>>>=7,n.buf[n.pos++]=e&127|128,e>>>=7,n.buf[n.pos]=e&127}function xi(e,t){var n=(e&7)<<4;t.buf[t.pos++]|=n|((e>>>=3)?128:0),e&&(t.buf[t.pos++]=e&127|((e>>>=7)?128:0),e&&(t.buf[t.pos++]=e&127|((e>>>=7)?128:0),e&&(t.buf[t.pos++]=e&127|((e>>>=7)?128:0),e&&(t.buf[t.pos++]=e&127|((e>>>=7)?128:0),e&&(t.buf[t.pos++]=e&127)))))}function rn(e,t,n){var r=t<=16383?1:t<=2097151?2:t<=268435455?3:Math.floor(Math.log(t)/(Math.LN2*7));n.realloc(r);for(var i=n.pos-1;i>=e;i--)n.buf[i+r]=n.buf[i]}function wi(e,t){for(var n=0;n<e.length;n++)t.writeVarint(e[n])}function vi(e,t){for(var n=0;n<e.length;n++)t.writeSVarint(e[n])}function Pi(e,t){for(var n=0;n<e.length;n++)t.writeFloat(e[n])}function Fi(e,t){for(var n=0;n<e.length;n++)t.writeDouble(e[n])}function Ii(e,t){for(var n=0;n<e.length;n++)t.writeBoolean(e[n])}function Ti(e,t){for(var n=0;n<e.length;n++)t.writeFixed32(e[n])}function Si(e,t){for(var n=0;n<e.length;n++)t.writeSFixed32(e[n])}function Di(e,t){for(var n=0;n<e.length;n++)t.writeFixed64(e[n])}function Vi(e,t){for(var n=0;n<e.length;n++)t.writeSFixed64(e[n])}function ke(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16)+e[t+3]*16777216}function Q(e,t,n){e[n]=t,e[n+1]=t>>>8,e[n+2]=t>>>16,e[n+3]=t>>>24}function on(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16)+(e[t+3]<<24)}function bi(e,t,n){for(var r="",i=t;i<n;){var o=e[i],s=null,a=o>239?4:o>223?3:o>191?2:1;if(i+a>n)break;var l,c,f;a===1?o<128&&(s=o):a===2?(l=e[i+1],(l&192)===128&&(s=(o&31)<<6|l&63,s<=127&&(s=null))):a===3?(l=e[i+1],c=e[i+2],(l&192)===128&&(c&192)===128&&(s=(o&15)<<12|(l&63)<<6|c&63,(s<=2047||s>=55296&&s<=57343)&&(s=null))):a===4&&(l=e[i+1],c=e[i+2],f=e[i+3],(l&192)===128&&(c&192)===128&&(f&192)===128&&(s=(o&15)<<18|(l&63)<<12|(c&63)<<6|f&63,(s<=65535||s>=1114112)&&(s=null))),s===null?(s=65533,a=1):s>65535&&(s-=65536,r+=String.fromCharCode(s>>>10&1023|55296),s=56320|s&1023),r+=String.fromCharCode(s),i+=a}return r}function Ai(e,t,n){return sn.decode(e.subarray(t,n))}function Bi(e,t,n){for(var r=0,i,o;r<t.length;r++){if(i=t.charCodeAt(r),i>55295&&i<57344)if(o)if(i<56320){e[n++]=239,e[n++]=191,e[n++]=189,o=i;continue}else i=o-55296<<10|i-56320|65536,o=null;else{i>56319||r+1===t.length?(e[n++]=239,e[n++]=191,e[n++]=189):o=i;continue}else o&&(e[n++]=239,e[n++]=191,e[n++]=189,o=null);i<128?e[n++]=i:(i<2048?e[n++]=i>>6|192:(i<65536?e[n++]=i>>12|224:(e[n++]=i>>18|240,e[n++]=i>>12&63|128),e[n++]=i>>6&63|128),e[n++]=i&63|128)}return n}});var Te={};Mt(Te,{PMTilesSource:()=>Re});be(Te,Ut(kt(),1));function re(e,t){if(!e)throw new Error(t||"loader assertion failed.")}var O={self:typeof self<"u"&&self,window:typeof window<"u"&&window,global:typeof global<"u"&&global,document:typeof document<"u"&&document},lr=O.self||O.window||O.global||{},cr=O.window||O.self||O.global||{},fr=O.global||O.self||O.window||{},ur=O.document||{};var $e=Boolean(typeof process!="object"||String(process)!=="[object process]"||process.browser);var Ct=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version),hr=Ct&&parseFloat(Ct[1])||0;function R(e){return R=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},R(e)}function Ke(e,t){if(R(e)!=="object"||e===null)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||"default");if(R(r)!=="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Xe(e){var t=Ke(e,"string");return R(t)==="symbol"?t:String(t)}function B(e,t,n){return t=Xe(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var dr="",Ot={};function Ye(e){for(let t in Ot)if(e.startsWith(t)){let n=Ot[t];e=e.replace(t,n)}return!e.startsWith("http://")&&!e.startsWith("https://")&&(e=`${dr}${e}`),e}var ie=class{fetch;loadOptions;_needsRefresh=!0;props;constructor(t){this.props={...t},this.loadOptions={...t.loadOptions},this.fetch=pr(this.loadOptions)}setProps(t){this.props=Object.assign(this.props,t),this.setNeedsRefresh()}setNeedsRefresh(){this._needsRefresh=!0}getNeedsRefresh(t=!0){let n=this._needsRefresh;return t&&(this._needsRefresh=!1),n}};function pr(e){let t=e?.fetch;if(t&&typeof t=="function")return(r,i)=>t(r,i);let n=e?.fetch;return n&&typeof n!="function"?r=>fetch(r,n):r=>fetch(r)}var Nt="4.2.0-alpha.5";var gr=globalThis.loaders?.parseImageNode,Qe=typeof Image<"u",qe=typeof ImageBitmap<"u",yr=Boolean(gr),et=$e?!0:yr;function zt(e){switch(e){case"auto":return qe||Qe||et;case"imagebitmap":return qe;case"image":return Qe;case"data":return et;default:throw new Error(`@loaders.gl/images: image ${e} not supported in this environment`)}}function Zt(){if(qe)return"imagebitmap";if(Qe)return"image";if(et)return"data";throw new Error("Install '@loaders.gl/polyfills' to parse images under Node.js")}function mr(e){let t=xr(e);if(!t)throw new Error("Not an image");return t}function Rt(e){switch(mr(e)){case"data":return e;case"image":case"imagebitmap":let t=document.createElement("canvas"),n=t.getContext("2d");if(!n)throw new Error("getImageData");return t.width=e.width,t.height=e.height,n.drawImage(e,0,0),n.getImageData(0,0,e.width,e.height);default:throw new Error("getImageData")}}function xr(e){return typeof ImageBitmap<"u"&&e instanceof ImageBitmap?"imagebitmap":typeof Image<"u"&&e instanceof Image?"image":e&&typeof e=="object"&&e.data&&e.width&&e.height?"data":null}var wr=/^data:image\/svg\+xml/,vr=/\.svg((\?|#).*)?$/;function Ae(e){return e&&(wr.test(e)||vr.test(e))}function jt(e,t){if(Ae(t)){let r=new TextDecoder().decode(e);try{typeof unescape=="function"&&typeof encodeURIComponent=="function"&&(r=unescape(encodeURIComponent(r)))}catch(o){throw new Error(o.message)}return`data:image/svg+xml;base64,${btoa(r)}`}return tt(e,t)}function tt(e,t){if(Ae(t))throw new Error("SVG cannot be parsed directly to imagebitmap");return new Blob([new Uint8Array(e)])}async function Be(e,t,n){let r=jt(e,n),i=self.URL||self.webkitURL,o=typeof r!="string"&&i.createObjectURL(r);try{return await Pr(o||r,t)}finally{o&&i.revokeObjectURL(o)}}async function Pr(e,t){let n=new Image;return n.src=e,t.image&&t.image.decode&&n.decode?(await n.decode(),n):await new Promise((r,i)=>{try{n.onload=()=>r(n),n.onerror=o=>{let s=o instanceof Error?o.message:"error";i(new Error(s))}}catch(o){i(o)}})}var Fr={},Gt=!0;async function Ht(e,t,n){let r;Ae(n)?r=await Be(e,t,n):r=tt(e,n);let i=t&&t.imagebitmap;return await Ir(r,i)}async function Ir(e,t=null){if((Tr(t)||!Gt)&&(t=null),t)try{return await createImageBitmap(e,t)}catch(n){console.warn(n),Gt=!1}return await createImageBitmap(e)}function Tr(e){for(let t in e||Fr)return!1;return!0}function Jt(e){return!br(e,"ftyp",4)||!(e[8]&96)?null:Sr(e)}function Sr(e){switch(Dr(e,8,12).replace("\0"," ").trim()){case"avif":case"avis":return{extension:"avif",mimeType:"image/avif"};default:return null}}function Dr(e,t,n){return String.fromCharCode(...e.slice(t,n))}function Vr(e){return[...e].map(t=>t.charCodeAt(0))}function br(e,t,n=0){let r=Vr(t);for(let i=0;i<r.length;++i)if(r[i]!==e[i+n])return!1;return!0}var N=!1,oe=!0;function Ee(e){let t=se(e);return Br(t)||Mr(t)||Er(t)||_r(t)||Ar(t)}function Ar(e){let t=new Uint8Array(e instanceof DataView?e.buffer:e),n=Jt(t);return n?{mimeType:n.mimeType,width:0,height:0}:null}function Br(e){let t=se(e);return t.byteLength>=24&&t.getUint32(0,N)===2303741511?{mimeType:"image/png",width:t.getUint32(16,N),height:t.getUint32(20,N)}:null}function Er(e){let t=se(e);return t.byteLength>=10&&t.getUint32(0,N)===1195984440?{mimeType:"image/gif",width:t.getUint16(6,oe),height:t.getUint16(8,oe)}:null}function _r(e){let t=se(e);return t.byteLength>=14&&t.getUint16(0,N)===16973&&t.getUint32(2,oe)===t.byteLength?{mimeType:"image/bmp",width:t.getUint32(18,oe),height:t.getUint32(22,oe)}:null}function Mr(e){let t=se(e);if(!(t.byteLength>=3&&t.getUint16(0,N)===65496&&t.getUint8(2)===255))return null;let{tableMarkers:r,sofMarkers:i}=Ur(),o=2;for(;o+9<t.byteLength;){let s=t.getUint16(o,N);if(i.has(s))return{mimeType:"image/jpeg",height:t.getUint16(o+5,N),width:t.getUint16(o+7,N)};if(!r.has(s))return null;o+=2,o+=t.getUint16(o,N)}return null}function Ur(){let e=new Set([65499,65476,65484,65501,65534]);for(let n=65504;n<65520;++n)e.add(n);return{tableMarkers:e,sofMarkers:new Set([65472,65473,65474,65475,65477,65478,65479,65481,65482,65483,65485,65486,65487,65502])}}function se(e){if(e instanceof DataView)return e;if(ArrayBuffer.isView(e))return new DataView(e.buffer);if(e instanceof ArrayBuffer)return new DataView(e);throw new Error("toDataView")}async function Wt(e,t){let{mimeType:n}=Ee(e)||{},r=globalThis.loaders?.parseImageNode;return re(r),await r(e,n)}async function $t(e,t,n){t=t||{};let i=(t.image||{}).type||"auto",{url:o}=n||{},s=Lr(i),a;switch(s){case"imagebitmap":a=await Ht(e,t,o);break;case"image":a=await Be(e,t,o);break;case"data":a=await Wt(e,t);break;default:re(!1)}return i==="data"&&(a=Rt(a)),a}function Lr(e){switch(e){case"auto":case"data":return Zt();default:return zt(e),e}}var kr=["png","jpg","jpeg","gif","webp","bmp","ico","svg","avif"],Cr=["image/png","image/jpeg","image/gif","image/webp","image/avif","image/bmp","image/vnd.microsoft.icon","image/svg+xml"],Or={image:{type:"auto",decode:!0}},nt={id:"image",module:"images",name:"Images",version:Nt,mimeTypes:Cr,extensions:kr,parse:$t,tests:[e=>Boolean(Ee(new DataView(e)))],options:Or};var ae={x:0,y:1,z:2};function j(e,t={}){let{start:n=0,end:r=e.length,plane:i="xy"}=t,o=t.size||2,s=0,a=ae[i[0]],l=ae[i[1]];for(let c=n,f=r-o;c<r;c+=o)s+=(e[c+a]-e[f+a])*(e[c+l]+e[f+l]),f=c;return s/2}function it(e,t,n=2,r,i="xy"){let o=t&&t.length,s=o?t[0]*n:e.length,a=Xt(e,0,s,n,!0,r&&r[0],i),l=[];if(!a||a.next===a.prev)return l;let c,f,u,h,d,p,m;if(o&&(a=Hr(e,t,a,n,r,i)),e.length>80*n){h=f=e[0],d=u=e[1];for(let F=n;F<s;F+=n)p=e[F],m=e[F+1],p<h&&(h=p),m<d&&(d=m),p>f&&(f=p),m>u&&(u=m);c=Math.max(f-h,u-d),c=c!==0?32767/c:0}return le(a,l,n,h,d,c,0),l}function Xt(e,t,n,r,i,o,s){let a,l;o===void 0&&(o=j(e,{start:t,end:n,size:r,plane:s}));let c=ae[s[0]],f=ae[s[1]];if(i===o<0)for(a=t;a<n;a+=r)l=Kt(a,e[a+c],e[a+f],l);else for(a=n-r;a>=t;a-=r)l=Kt(a,e[a+c],e[a+f],l);return l&&Ue(l,l.next)&&(fe(l),l=l.next),l}function G(e,t){if(!e)return e;t||(t=e);let n=e,r;do if(r=!1,!n.steiner&&(Ue(n,n.next)||P(n.prev,n,n.next)===0)){if(fe(n),n=t=n.prev,n===n.next)break;r=!0}else n=n.next;while(r||n!==t);return t}function le(e,t,n,r,i,o,s){if(!e)return;!s&&o&&Xr(e,r,i,o);let a=e,l,c;for(;e.prev!==e.next;){if(l=e.prev,c=e.next,o?Rr(e,r,i,o):Zr(e)){t.push(l.i/n|0),t.push(e.i/n|0),t.push(c.i/n|0),fe(e),e=c.next,a=c.next;continue}if(e=c,e===a){s?s===1?(e=jr(G(e),t,n),le(e,t,n,r,i,o,2)):s===2&&Gr(e,t,n,r,i,o):le(G(e),t,n,r,i,o,1);break}}}function Zr(e){let t=e.prev,n=e,r=e.next;if(P(t,n,r)>=0)return!1;let i=t.x,o=n.x,s=r.x,a=t.y,l=n.y,c=r.y,f=i<o?i<s?i:s:o<s?o:s,u=a<l?a<c?a:c:l<c?l:c,h=i>o?i>s?i:s:o>s?o:s,d=a>l?a>c?a:c:l>c?l:c,p=r.next;for(;p!==t;){if(p.x>=f&&p.x<=h&&p.y>=u&&p.y<=d&&X(i,a,o,l,s,c,p.x,p.y)&&P(p.prev,p,p.next)>=0)return!1;p=p.next}return!0}function Rr(e,t,n,r){let i=e.prev,o=e,s=e.next;if(P(i,o,s)>=0)return!1;let a=i.x,l=o.x,c=s.x,f=i.y,u=o.y,h=s.y,d=a<l?a<c?a:c:l<c?l:c,p=f<u?f<h?f:h:u<h?u:h,m=a>l?a>c?a:c:l>c?l:c,F=f>u?f>h?f:h:u>h?u:h,_=rt(d,p,t,n,r),v=rt(m,F,t,n,r),y=e.prevZ,g=e.nextZ;for(;y&&y.z>=_&&g&&g.z<=v;){if(y.x>=d&&y.x<=m&&y.y>=p&&y.y<=F&&y!==i&&y!==s&&X(a,f,l,u,c,h,y.x,y.y)&&P(y.prev,y,y.next)>=0||(y=y.prevZ,g.x>=d&&g.x<=m&&g.y>=p&&g.y<=F&&g!==i&&g!==s&&X(a,f,l,u,c,h,g.x,g.y)&&P(g.prev,g,g.next)>=0))return!1;g=g.nextZ}for(;y&&y.z>=_;){if(y.x>=d&&y.x<=m&&y.y>=p&&y.y<=F&&y!==i&&y!==s&&X(a,f,l,u,c,h,y.x,y.y)&&P(y.prev,y,y.next)>=0)return!1;y=y.prevZ}for(;g&&g.z<=v;){if(g.x>=d&&g.x<=m&&g.y>=p&&g.y<=F&&g!==i&&g!==s&&X(a,f,l,u,c,h,g.x,g.y)&&P(g.prev,g,g.next)>=0)return!1;g=g.nextZ}return!0}function jr(e,t,n){let r=e;do{let i=r.prev,o=r.next.next;!Ue(i,o)&&Yt(i,r,r.next,o)&&ce(i,o)&&ce(o,i)&&(t.push(i.i/n|0),t.push(r.i/n|0),t.push(o.i/n|0),fe(r),fe(r.next),r=e=o),r=r.next}while(r!==e);return G(r)}function Gr(e,t,n,r,i,o){let s=e;do{let a=s.next.next;for(;a!==s.prev;){if(s.i!==a.i&&qr(s,a)){let l=Qt(s,a);s=G(s,s.next),l=G(l,l.next),le(s,t,n,r,i,o,0),le(l,t,n,r,i,o,0);return}a=a.next}s=s.next}while(s!==e)}function Hr(e,t,n,r,i,o){let s=[],a,l,c,f,u;for(a=0,l=t.length;a<l;a++)c=t[a]*r,f=a<l-1?t[a+1]*r:e.length,u=Xt(e,c,f,r,!1,i&&i[a+1],o),u===u.next&&(u.steiner=!0),s.push(Qr(u));for(s.sort(Jr),a=0;a<s.length;a++)n=Wr(s[a],n);return n}function Jr(e,t){return e.x-t.x}function Wr(e,t){let n=$r(e,t);if(!n)return t;let r=Qt(n,e);return G(r,r.next),G(n,n.next)}function $r(e,t){let n=t,r=e.x,i=e.y,o=-1/0,s;do{if(i<=n.y&&i>=n.next.y&&n.next.y!==n.y){let h=n.x+(i-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(h<=r&&h>o&&(o=h,s=n.x<n.next.x?n:n.next,h===r))return s}n=n.next}while(n!==t);if(!s)return null;let a=s,l=s.x,c=s.y,f=1/0,u;n=s;do r>=n.x&&n.x>=l&&r!==n.x&&X(i<c?r:o,i,l,c,i<c?o:r,i,n.x,n.y)&&(u=Math.abs(i-n.y)/(r-n.x),ce(n,e)&&(u<f||u===f&&(n.x>s.x||n.x===s.x&&Kr(s,n)))&&(s=n,f=u)),n=n.next;while(n!==a);return s}function Kr(e,t){return P(e.prev,e,t.prev)<0&&P(t.next,e,e.next)<0}function Xr(e,t,n,r){let i=e;do i.z===0&&(i.z=rt(i.x,i.y,t,n,r)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next;while(i!==e);i.prevZ.nextZ=null,i.prevZ=null,Yr(i)}function Yr(e){let t,n,r=1,i,o,s,a,l,c;do{for(o=e,e=null,c=null,i=0;o;){for(i++,a=o,s=0,n=0;n<r&&(s++,a=a.nextZ,!!a);n++);for(l=r;s>0||l>0&&a;)s!==0&&(l===0||!a||o.z<=a.z)?(t=o,o=o.nextZ,s--):(t=a,a=a.nextZ,l--),c?c.nextZ=t:e=t,t.prevZ=c,c=t;o=a}c.nextZ=null,r*=2}while(i>1);return e}function rt(e,t,n,r,i){return e=(e-n)*i|0,t=(t-r)*i|0,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e|t<<1}function Qr(e){let t=e,n=e;do(t.x<n.x||t.x===n.x&&t.y<n.y)&&(n=t),t=t.next;while(t!==e);return n}function X(e,t,n,r,i,o,s,a){return(i-s)*(t-a)>=(e-s)*(o-a)&&(e-s)*(r-a)>=(n-s)*(t-a)&&(n-s)*(o-a)>=(i-s)*(r-a)}function qr(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!ei(e,t)&&(ce(e,t)&&ce(t,e)&&ti(e,t)&&(P(e.prev,e,t.prev)||P(e,t.prev,t))||Ue(e,t)&&P(e.prev,e,e.next)>0&&P(t.prev,t,t.next)>0)}function P(e,t,n){return(t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function Ue(e,t){return e.x===t.x&&e.y===t.y}function Yt(e,t,n,r){let i=Me(P(e,t,n)),o=Me(P(e,t,r)),s=Me(P(n,r,e)),a=Me(P(n,r,t));return!!(i!==o&&s!==a||i===0&&_e(e,n,t)||o===0&&_e(e,r,t)||s===0&&_e(n,e,r)||a===0&&_e(n,t,r))}function _e(e,t,n){return t.x<=Math.max(e.x,n.x)&&t.x>=Math.min(e.x,n.x)&&t.y<=Math.max(e.y,n.y)&&t.y>=Math.min(e.y,n.y)}function Me(e){return e>0?1:e<0?-1:0}function ei(e,t){let n=e;do{if(n.i!==e.i&&n.next.i!==e.i&&n.i!==t.i&&n.next.i!==t.i&&Yt(n,n.next,e,t))return!0;n=n.next}while(n!==e);return!1}function ce(e,t){return P(e.prev,e,e.next)<0?P(e,t,e.next)>=0&&P(e,e.prev,t)>=0:P(e,t,e.prev)<0||P(e,e.next,t)<0}function ti(e,t){let n=e,r=!1,i=(e.x+t.x)/2,o=(e.y+t.y)/2;do n.y>o!=n.next.y>o&&n.next.y!==n.y&&i<(n.next.x-n.x)*(o-n.y)/(n.next.y-n.y)+n.x&&(r=!r),n=n.next;while(n!==e);return r}function Qt(e,t){let n=new ue(e.i,e.x,e.y),r=new ue(t.i,t.x,t.y),i=e.next,o=t.prev;return e.next=t,t.prev=e,n.next=i,i.prev=n,r.next=n,n.prev=r,o.next=r,r.prev=o,r}function Kt(e,t,n,r){let i=new ue(e,t,n);return r?(i.next=r.next,i.prev=r,r.next.prev=i,r.next=i):(i.prev=i,i.next=i),i}function fe(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}var ue=class{constructor(t,n,r){B(this,"i",void 0),B(this,"x",void 0),B(this,"y",void 0),B(this,"prev",null),B(this,"next",null),B(this,"z",0),B(this,"prevZ",null),B(this,"nextZ",null),B(this,"steiner",!1),this.i=t,this.x=n,this.y=r}};function at(e,t,n){let r=si(e),i=Object.keys(r).filter(o=>r[o]!==Array);return ai(e,{propArrayTypes:r,...t},{numericPropKeys:n&&n.numericPropKeys||i,PositionDataType:n?n.PositionDataType:Float32Array,triangulate:n?n.triangulate:!0})}function si(e){let t={};for(let n of e)if(n.properties)for(let r in n.properties){let i=n.properties[r];t[r]=di(i,t[r])}return t}function ai(e,t,n){let{pointPositionsCount:r,pointFeaturesCount:i,linePositionsCount:o,linePathsCount:s,lineFeaturesCount:a,polygonPositionsCount:l,polygonObjectsCount:c,polygonRingsCount:f,polygonFeaturesCount:u,propArrayTypes:h,coordLength:d}=t,{numericPropKeys:p=[],PositionDataType:m=Float32Array,triangulate:F=!0}=n,_=e[0]&&"id"in e[0],v=e.length>65535?Uint32Array:Uint16Array,y={type:"Point",positions:new m(r*d),globalFeatureIds:new v(r),featureIds:i>65535?new Uint32Array(r):new Uint16Array(r),numericProps:{},properties:[],fields:[]},g={type:"LineString",pathIndices:o>65535?new Uint32Array(s+1):new Uint16Array(s+1),positions:new m(o*d),globalFeatureIds:new v(o),featureIds:a>65535?new Uint32Array(o):new Uint16Array(o),numericProps:{},properties:[],fields:[]},V={type:"Polygon",polygonIndices:l>65535?new Uint32Array(c+1):new Uint16Array(c+1),primitivePolygonIndices:l>65535?new Uint32Array(f+1):new Uint16Array(f+1),positions:new m(l*d),globalFeatureIds:new v(l),featureIds:u>65535?new Uint32Array(l):new Uint16Array(l),numericProps:{},properties:[],fields:[]};F&&(V.triangles=[]);for(let M of[y,g,V])for(let T of p){let b=h[T];M.numericProps[T]=new b(M.positions.length/d)}g.pathIndices[s]=o,V.polygonIndices[c]=l,V.primitivePolygonIndices[f]=l;let C={pointPosition:0,pointFeature:0,linePosition:0,linePath:0,lineFeature:0,polygonPosition:0,polygonObject:0,polygonRing:0,polygonFeature:0,feature:0};for(let M of e){let T=M.geometry,b=M.properties||{};switch(T.type){case"Point":li(T,y,C,d,b),y.properties.push(st(b,p)),_&&y.fields.push({id:M.id}),C.pointFeature++;break;case"LineString":ci(T,g,C,d,b),g.properties.push(st(b,p)),_&&g.fields.push({id:M.id}),C.lineFeature++;break;case"Polygon":fi(T,V,C,d,b),V.properties.push(st(b,p)),_&&V.fields.push({id:M.id}),C.polygonFeature++;break;default:throw new Error("Invalid geometry type")}C.feature++}return hi(y,g,V,d)}function li(e,t,n,r,i){t.positions.set(e.data,n.pointPosition*r);let o=e.data.length/r;lt(t,i,n.pointPosition,o),t.globalFeatureIds.fill(n.feature,n.pointPosition,n.pointPosition+o),t.featureIds.fill(n.pointFeature,n.pointPosition,n.pointPosition+o),n.pointPosition+=o}function ci(e,t,n,r,i){t.positions.set(e.data,n.linePosition*r);let o=e.data.length/r;lt(t,i,n.linePosition,o),t.globalFeatureIds.fill(n.feature,n.linePosition,n.linePosition+o),t.featureIds.fill(n.lineFeature,n.linePosition,n.linePosition+o);for(let s=0,a=e.indices.length;s<a;++s){let l=e.indices[s],c=s===a-1?e.data.length:e.indices[s+1];t.pathIndices[n.linePath++]=n.linePosition,n.linePosition+=(c-l)/r}}function fi(e,t,n,r,i){t.positions.set(e.data,n.polygonPosition*r);let o=e.data.length/r;lt(t,i,n.polygonPosition,o),t.globalFeatureIds.fill(n.feature,n.polygonPosition,n.polygonPosition+o),t.featureIds.fill(n.polygonFeature,n.polygonPosition,n.polygonPosition+o);for(let s=0,a=e.indices.length;s<a;++s){let l=n.polygonPosition;t.polygonIndices[n.polygonObject++]=l;let c=e.areas[s],f=e.indices[s],u=e.indices[s+1];for(let d=0,p=f.length;d<p;++d){let m=f[d],F=d===p-1?u===void 0?e.data.length:u[0]:f[d+1];t.primitivePolygonIndices[n.polygonRing++]=n.polygonPosition,n.polygonPosition+=(F-m)/r}let h=n.polygonPosition;ui(t,c,f,{startPosition:l,endPosition:h,coordLength:r})}}function ui(e,t,n,{startPosition:r,endPosition:i,coordLength:o}){if(!e.triangles)return;let s=r*o,a=i*o,l=e.positions.subarray(s,a),c=n[0],f=n.slice(1).map(h=>(h-c)/o),u=it(l,f,o,t);for(let h=0,d=u.length;h<d;++h)e.triangles.push(r+u[h])}function ot(e,t){let n={};for(let r in e)n[r]={value:e[r],size:t};return n}function hi(e,t,n,r){let i={shape:"binary-feature-collection",points:{...e,positions:{value:e.positions,size:r},globalFeatureIds:{value:e.globalFeatureIds,size:1},featureIds:{value:e.featureIds,size:1},numericProps:ot(e.numericProps,1)},lines:{...t,positions:{value:t.positions,size:r},pathIndices:{value:t.pathIndices,size:1},globalFeatureIds:{value:t.globalFeatureIds,size:1},featureIds:{value:t.featureIds,size:1},numericProps:ot(t.numericProps,1)},polygons:{...n,positions:{value:n.positions,size:r},polygonIndices:{value:n.polygonIndices,size:1},primitivePolygonIndices:{value:n.primitivePolygonIndices,size:1},globalFeatureIds:{value:n.globalFeatureIds,size:1},featureIds:{value:n.featureIds,size:1},numericProps:ot(n.numericProps,1)}};return i.polygons&&n.triangles&&(i.polygons.triangles={value:new Uint32Array(n.triangles),size:1}),i}function lt(e,t,n,r){for(let i in e.numericProps)if(i in t){let o=t[i];e.numericProps[i].fill(o,n,n+r)}}function st(e,t){let n={};for(let r in e)t.includes(r)||(n[r]=e[r]);return n}function di(e,t){return t===Array||!Number.isFinite(e)?Array:t===Float64Array||Math.fround(e)!==e?Float64Array:Float32Array}var gt=Ut(ln(),1);function cn(e){let t=e.length;if(t<=1)return[e];let n=[],r,i;for(let o=0;o<t;o++){let s=Ei(e[o]);s!==0&&(i===void 0&&(i=s<0),i===s<0?(r&&n.push(r),r=[e[o]]):r&&r.push(e[o]))}return r&&n.push(r),n}function Ei(e){let t=0;for(let n=0,r=e.length-1,i,o;n<e.length;r=n++)i=e[n],o=e[r],t+=(o[0]-i[0])*(i[1]+o[1]);return t}function fn(e,t,n){t&&n&&(e===1?t.id=n.readVarint():e===2?_i(n,t):e===3?t.type=n.readVarint():e===4&&(t._geometry=n.pos))}function _i(e,t){let n=e.readVarint()+e.pos;for(;e.pos<n;){let r=t._keys[e.readVarint()],i=t._values[e.readVarint()];t.properties[r]=i}}var H=class{properties;extent;type;id;_pbf;_geometry;_keys;_values;static get types(){return["Unknown","Point","LineString","Polygon"]}constructor(t,n,r,i,o){this.properties={},this.extent=r,this.type=0,this.id=null,this._pbf=t,this._geometry=-1,this._keys=i,this._values=o,t.readFields(fn,this,n)}loadGeometry(){let t=this._pbf;t.pos=this._geometry;let n=t.readVarint()+t.pos,r=1,i=0,o=0,s=0,a=[],l;for(;t.pos<n;){if(i<=0){let c=t.readVarint();r=c&7,i=c>>3}if(i--,r===1||r===2)o+=t.readSVarint(),s+=t.readSVarint(),r===1&&(l&&a.push(l),l=[]),l&&l.push([o,s]);else if(r===7)l&&l.push(l[0].slice());else throw new Error(`unknown command ${r}`)}return l&&a.push(l),a}bbox(){let t=this._pbf;t.pos=this._geometry;let n=t.readVarint()+t.pos,r=1,i=0,o=0,s=0,a=1/0,l=-1/0,c=1/0,f=-1/0;for(;t.pos<n;){if(i<=0){let u=t.readVarint();r=u&7,i=u>>3}if(i--,r===1||r===2)o+=t.readSVarint(),s+=t.readSVarint(),o<a&&(a=o),o>l&&(l=o),s<c&&(c=s),s>f&&(f=s);else if(r!==7)throw new Error(`unknown command ${r}`)}return[a,c,l,f]}_toGeoJSON(t){let n=this.loadGeometry(),r=H.types[this.type],i,o;switch(this.type){case 1:let a=[];for(i=0;i<n.length;i++)a[i]=n[i][0];n=a,t(n,this);break;case 2:for(i=0;i<n.length;i++)t(n[i],this);break;case 3:for(n=cn(n),i=0;i<n.length;i++)for(o=0;o<n[i].length;o++)t(n[i][o],this);break}n.length===1?n=n[0]:r=`Multi${r}`;let s={type:"Feature",geometry:{type:r,coordinates:n},properties:this.properties};return this.id!==null&&(s.id=this.id),s}toGeoJSON(t){if(typeof t=="function")return this._toGeoJSON(t);let{x:n,y:r,z:i}=t,o=this.extent*Math.pow(2,i),s=this.extent*n,a=this.extent*r;function l(c){for(let f=0;f<c.length;f++){let u=c[f];u[0]=(u[0]+s)*360/o-180;let h=180-(u[1]+a)*360/o;u[1]=360/Math.PI*Math.atan(Math.exp(h*Math.PI/180))-90}}return this._toGeoJSON(l)}};var he=class{version;name;extent;length;_pbf;_keys;_values;_features;constructor(t,n){this.version=1,this.name="",this.extent=4096,this.length=0,this._pbf=t,this._keys=[],this._values=[],this._features=[],t.readFields(Mi,this,n),this.length=this._features.length}feature(t){if(t<0||t>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[t];let n=this._pbf.readVarint()+this._pbf.pos;return new H(this._pbf,n,this.extent,this._keys,this._values)}};function Mi(e,t,n){t&&n&&(e===15?t.version=n.readVarint():e===1?t.name=n.readString():e===5?t.extent=n.readVarint():e===2?t._features.push(n.pos):e===3?t._keys.push(n.readString()):e===4&&t._values.push(Ui(n)))}function Ui(e){let t=null,n=e.readVarint()+e.pos;for(;e.pos<n;){let r=e.readVarint()>>3;t=r===1?e.readString():r===2?e.readFloat():r===3?e.readDouble():r===4?e.readVarint64():r===5?e.readVarint():r===6?e.readSVarint():r===7?e.readBoolean():null}return t}var de=class{layers;constructor(t,n){this.layers=t.readFields(Li,{},n)}};function Li(e,t,n){if(e===3&&n){let r=new he(n,n.readVarint()+n.pos);r.length&&t&&(t[r.name]=r)}}function un(e){let t=e.indices.length,n="Polygon";if(t<=1)return{type:n,data:e.data,areas:[[j(e.data)]],indices:[e.indices]};let r=[],i=[],o=[],s=[],a,l=0;for(let c,f=0,u;f<t;f++){u=e.indices[f]-l,c=e.indices[f+1]-l||e.data.length;let h=e.data.slice(u,c),d=j(h);if(d===0){let p=e.data.slice(0,u),m=e.data.slice(c);e.data=p.concat(m),l+=c-u;continue}a===void 0&&(a=d<0),a===d<0?(s.length&&(r.push(o),i.push(s)),s=[u],o=[d]):(o.push(d),s.push(u))}return o&&r.push(o),s.length&&i.push(s),{type:n,areas:r,indices:i,data:e.data}}function hn(e,t,n,r){for(let i=0,o=e.length;i<o;i+=2){e[i]=(e[i]+t)*360/r-180;let s=180-(e[i+1]+n)*360/r;e[i+1]=360/Math.PI*Math.atan(Math.exp(s*Math.PI/180))-90}}function dn(e,t,n){t&&n&&(e===1?t.id=n.readVarint():e===2?ki(n,t):e===3?t.type=n.readVarint():e===4&&(t._geometry=n.pos))}function ki(e,t){let n=e.readVarint()+e.pos;for(;e.pos<n;){let r=t._keys[e.readVarint()],i=t._values[e.readVarint()];t.properties[r]=i}}var pn,J,ut,Ce,ht,dt,pe;var ge=class{properties;extent;type;id;_pbf;_geometry;_keys;_values;_geometryInfo;constructor(t,n,r,i,o,s){this.properties={},this.extent=r,this.type=0,this.id=null,this._pbf=t,this._geometry=-1,this._keys=i,this._values=o,this._geometryInfo=s,t.readFields(dn,this,n)}loadGeometry(){let t=this._pbf;t.pos=this._geometry,pn=t.readVarint()+t.pos,J=1,Ce=0,ht=0,dt=0,pe=0;let n=[],r=[];for(;t.pos<pn;)if(Ce<=0&&(ut=t.readVarint(),J=ut&7,Ce=ut>>3),Ce--,J===1||J===2)ht+=t.readSVarint(),dt+=t.readSVarint(),J===1&&n.push(pe),r.push(ht,dt),pe+=2;else if(J===7){if(pe>0){let i=n[n.length-1];r.push(r[i],r[i+1]),pe+=2}}else throw new Error(`unknown command ${J}`);return{data:r,indices:n}}_toBinaryCoordinates(t){let n=this.loadGeometry(),r;t(n.data,this);let i=2;switch(this.type){case 1:this._geometryInfo.pointFeaturesCount++,this._geometryInfo.pointPositionsCount+=n.indices.length,r={type:"Point",...n};break;case 2:this._geometryInfo.lineFeaturesCount++,this._geometryInfo.linePathsCount+=n.indices.length,this._geometryInfo.linePositionsCount+=n.data.length/i,r={type:"LineString",...n};break;case 3:r=un(n),this._geometryInfo.polygonFeaturesCount++,this._geometryInfo.polygonObjectsCount+=r.indices.length;for(let s of r.indices)this._geometryInfo.polygonRingsCount+=s.length;this._geometryInfo.polygonPositionsCount+=r.data.length/i;break;default:throw new Error(`Invalid geometry type: ${this.type}`)}let o={type:"Feature",geometry:r,properties:this.properties};return this.id!==null&&(o.id=this.id),o}toBinaryCoordinates(t){if(typeof t=="function")return this._toBinaryCoordinates(t);let{x:n,y:r,z:i}=t,o=this.extent*Math.pow(2,i),s=this.extent*n,a=this.extent*r;return this._toBinaryCoordinates(l=>hn(l,s,a,o))}};var ye=class{version;name;extent;length;_pbf;_keys;_values;_features;constructor(t,n){this.version=1,this.name="",this.extent=4096,this.length=0,this._pbf=t,this._keys=[],this._values=[],this._features=[],t.readFields(Ci,this,n),this.length=this._features.length}feature(t,n){if(t<0||t>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[t];let r=this._pbf.readVarint()+this._pbf.pos;return new ge(this._pbf,r,this.extent,this._keys,this._values,n)}};function Ci(e,t,n){t&&n&&(e===15?t.version=n.readVarint():e===1?t.name=n.readString():e===5?t.extent=n.readVarint():e===2?t._features.push(n.pos):e===3?t._keys.push(n.readString()):e===4&&t._values.push(Oi(n)))}function Oi(e){let t=null,n=e.readVarint()+e.pos;for(;e.pos<n;){let r=e.readVarint()>>3;t=r===1?e.readString():r===2?e.readFloat():r===3?e.readDouble():r===4?e.readVarint64():r===5?e.readVarint():r===6?e.readSVarint():r===7?e.readBoolean():null}return t}var me=class{layers;constructor(t,n){this.layers=t.readFields(Ni,{},n)}};function Ni(e,t,n){if(e===3&&n){let r=new ye(n,n.readVarint()+n.pos);r.length&&t&&(t[r.name]=r)}}function Oe(e,t){let n=Zi(t),r=t?.gis?.format||t?.mvt?.shape||t?.shape;switch(r){case"columnar-table":return{shape:"columnar-table",data:pt(e,n)};case"geojson-table":return{shape:"geojson-table",type:"FeatureCollection",features:gn(e,n)};case"geojson":return gn(e,n);case"binary-geometry":return pt(e,n);case"binary":return pt(e,n);default:throw new Error(r||"undefined shape")}}function pt(e,t){let[n,r]=zi(e,t),i=at(n,r);return i.byteLength=e.byteLength,i}function zi(e,t){let n=[],r={coordLength:2,pointPositionsCount:0,pointFeaturesCount:0,linePositionsCount:0,linePathsCount:0,lineFeaturesCount:0,polygonPositionsCount:0,polygonObjectsCount:0,polygonRingsCount:0,polygonFeaturesCount:0};if(e.byteLength<=0)return[n,r];let i=new me(new gt.default(e));return(t&&Array.isArray(t.layers)?t.layers:Object.keys(i.layers)).forEach(s=>{let a=i.layers[s];if(a)for(let l=0;l<a.length;l++){let c=a.feature(l,r),f=ji(c,t,s);n.push(f)}}),[n,r]}function gn(e,t){if(e.byteLength<=0)return[];let n=[],r=new de(new gt.default(e));return(Array.isArray(t.layers)?t.layers:Object.keys(r.layers)).forEach(o=>{let s=r.layers[o];if(s)for(let a=0;a<s.length;a++){let l=s.feature(a),c=Ri(l,t,o);n.push(c)}}),n}function Zi(e){if(!e?.mvt)throw new Error("mvt options required");let t=e.mvt?.coordinates==="wgs84",{tileIndex:n}=e.mvt,r=n&&Number.isFinite(n.x)&&Number.isFinite(n.y)&&Number.isFinite(n.z);if(t&&!r)throw new Error("MVT Loader: WGS84 coordinates need tileIndex property");return e.mvt}function Ri(e,t,n){let r=e.toGeoJSON(t.coordinates==="wgs84"?t.tileIndex:Gi);return t.layerProperty&&(r.properties[t.layerProperty]=n),r}function ji(e,t,n){let r=e.toBinaryCoordinates(t.coordinates==="wgs84"?t.tileIndex:Hi);return t.layerProperty&&r.properties&&(r.properties[t.layerProperty]=n),r}function Gi(e,t){let{extent:n}=t;for(let r=0;r<e.length;r++){let i=e[r];i[0]/=n,i[1]/=n}}function Hi(e,t){let{extent:n}=t;for(let r=0,i=e.length;r<i;++r)e[r]/=n}var Ji="4.2.0-alpha.5",yn={name:"Mapbox Vector Tile",id:"mvt",module:"mvt",version:Ji,extensions:["mvt","pbf"],mimeTypes:["application/vnd.mapbox-vector-tile","application/x-protobuf"],worker:!0,category:"geometry",options:{mvt:{shape:"geojson",coordinates:"local",layerProperty:"layerName",layers:void 0,tileIndex:null}}},yt={...yn,parse:async(e,t)=>Oe(e,t),parseSync:Oe,binary:!0};var vn=e=>e!==null&&typeof e=="object";function mt(e,t){if(!e||!vn(e))return null;let n={name:e.name||"",description:e.description||""};if(typeof e.generator=="string"&&(n.generator=e.generator),typeof e.generator_options=="string"&&(n.generatorOptions=e.generator_options),n.boundingBox=mn(e.bounds)||mn(e.antimeridian_adjusted_bounds),n.center=Qi(e.center),n.maxZoom=xn(e.maxzoom),n.minZoom=xn(e.minzoom),typeof e?.json=="string")try{n.metaJson=JSON.parse(e.json)}catch(a){console.warn("Failed to parse tilejson.json field",a)}let r=e.tilestats||n.metaJson?.tilestats,i=Ki(r,t),o=Wi(e.vector_layers),s=Yi(o,i);return n={...n,layers:s},n.maxZoom===null&&s.length>0&&(n.maxZoom=s[0].maxZoom||null),n.minZoom===null&&s.length>0&&(n.minZoom=s[0].minZoom||null),n}function Wi(e){return Array.isArray(e)?e.map(t=>$i(t)):[]}function $i(e){let t=Object.entries(e.fields||[]).map(([r,i])=>({name:r,...Tn(String(i))})),n={...e};return delete n.fields,{name:e.id||"",...n,fields:t}}function Ki(e,t){return vn(e)&&Array.isArray(e.layers)?e.layers.map(n=>Xi(n,t)):[]}function Xi(e,t){let n=[],r={},i=e.attributes||[];for(let o of i){let s=o.attribute;if(typeof s=="string")if(s.split("|").length>1){let a=s.split("|")[0];r[a]=r[a]||[],r[a].push(o),console.warn("ignoring tilestats indexed field",a)}else n[s]||n.push(eo(o,t))}return{name:e.layer||"",dominantGeometry:e.geometry,fields:n}}function Yi(e,t){return e.map(n=>{let r=t.find(s=>s.name===n.name),i=r?.fields||[],o={...n};return delete o.fields,{...o,...r,fields:i}})}function mn(e){let t=In(e);if(Array.isArray(t)&&t.length===4&&[t[0],t[2]].every(Fn)&&[t[1],t[3]].every(Pn))return[[t[0],t[1]],[t[2],t[3]]]}function Qi(e){let t=In(e);return Array.isArray(t)&&t.length===3&&Fn(t[0])&&Pn(t[1])&&qi(t[2])?t:null}function xn(e){let t=typeof e=="string"?parseFloat(e):typeof e=="number"?e:null;return t===null||isNaN(t)?null:t}function Pn(e){return Number.isFinite(e)&&e<=90&&e>=-90}function Fn(e){return Number.isFinite(e)&&e<=180&&e>=-180}function qi(e){return Number.isFinite(e)&&e>=0&&e<=22}function In(e){return typeof e=="string"?e.split(",").map(parseFloat):Array.isArray(e)?e:null}var wn={number:{type:"float32"},numeric:{type:"float32"},string:{type:"utf8"},vachar:{type:"utf8"},float:{type:"float32"},int:{type:"int32"},int4:{type:"int32"},boolean:{type:"boolean"},bool:{type:"boolean"}};function eo(e={},t){let n=Tn(e.type),r={name:e.attribute,...n};return typeof e.min=="number"&&(r.min=e.min),typeof e.max=="number"&&(r.max=e.max),typeof e.count=="number"&&(r.uniqueValueCount=e.count),e.values&&(r.values=e.values),r.values&&typeof t.maxValues=="number"&&(r.values=r.values?.slice(0,t.maxValues)),r}function Tn(e){let t=e.toLowerCase();return!t||wn[t],wn[t]||{type:"string"}}var to="4.2.0-alpha.5",xe={name:"TileJSON",id:"tilejson",module:"pmtiles",version:to,worker:!0,extensions:["json"],mimeTypes:["application/json"],text:!0,options:{tilejson:{maxValues:void 0}},parse:async(e,t)=>{let n=new TextDecoder().decode(e),r=JSON.parse(n),i={...xe.options.tilejson,...t?.tilejson};return mt(r,i)},parseTextSync:(e,t)=>{let n=JSON.parse(e),r={...xe.options.tilejson,...t?.tilejson};return mt(n,r)}};var Fe={};Mt(Fe,{Compression:()=>Zn,EtagMismatch:()=>ze,FetchSource:()=>Gn,FileSource:()=>ko,PMTiles:()=>Ft,Protocol:()=>Bo,ResolvedValueCache:()=>Oo,SharedPromiseCache:()=>Kn,TileType:()=>Rn,bytesToHeader:()=>Hn,findTile:()=>jn,getUint64:()=>E,leafletRasterLayer:()=>bo,readVarint:()=>ee,tileIdToZxy:()=>Uo,zxyToTileId:()=>zn});var W=Math.pow,I=(e,t,n)=>new Promise((r,i)=>{var o=l=>{try{a(n.next(l))}catch(c){i(c)}},s=l=>{try{a(n.throw(l))}catch(c){i(c)}},a=l=>l.done?r(l.value):Promise.resolve(l.value).then(o,s);a((n=n.apply(e,t)).next())}),D=Uint8Array,te=Uint16Array,no=Int32Array,Vn=new D([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),bn=new D([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),ro=new D([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),An=function(e,t){for(var n=new te(31),r=0;r<31;++r)n[r]=t+=1<<e[r-1];for(var i=new no(n[30]),r=1;r<30;++r)for(var o=n[r];o<n[r+1];++o)i[o]=o-n[r]<<5|r;return{b:n,r:i}},Bn=An(Vn,2),En=Bn.b,io=Bn.r;En[28]=258,io[258]=28;var _n=An(bn,0),oo=_n.b,Qa=_n.r,vt=new te(32768);for(w=0;w<32768;++w)Z=(w&43690)>>1|(w&21845)<<1,Z=(Z&52428)>>2|(Z&13107)<<2,Z=(Z&61680)>>4|(Z&3855)<<4,vt[w]=((Z&65280)>>8|(Z&255)<<8)>>1;var Z,w,ve=function(e,t,n){for(var r=e.length,i=0,o=new te(t);i<r;++i)e[i]&&++o[e[i]-1];var s=new te(t);for(i=1;i<t;++i)s[i]=s[i-1]+o[i-1]<<1;var a;if(n){a=new te(1<<t);var l=15-t;for(i=0;i<r;++i)if(e[i])for(var c=i<<4|e[i],f=t-e[i],u=s[e[i]-1]++<<f,h=u|(1<<f)-1;u<=h;++u)a[vt[u]>>l]=c}else for(a=new te(r),i=0;i<r;++i)e[i]&&(a[i]=vt[s[e[i]-1]++]>>15-e[i]);return a},Pe=new D(288);for(w=0;w<144;++w)Pe[w]=8;var w;for(w=144;w<256;++w)Pe[w]=9;var w;for(w=256;w<280;++w)Pe[w]=7;var w;for(w=280;w<288;++w)Pe[w]=8;var w,Mn=new D(32);for(w=0;w<32;++w)Mn[w]=5;var w,so=ve(Pe,9,1),ao=ve(Mn,5,1),xt=function(e){for(var t=e[0],n=1;n<e.length;++n)e[n]>t&&(t=e[n]);return t},k=function(e,t,n){var r=t/8|0;return(e[r]|e[r+1]<<8)>>(t&7)&n},wt=function(e,t){var n=t/8|0;return(e[n]|e[n+1]<<8|e[n+2]<<16)>>(t&7)},lo=function(e){return(e+7)/8|0},co=function(e,t,n){(t==null||t<0)&&(t=0),(n==null||n>e.length)&&(n=e.length);var r=new D(n-t);return r.set(e.subarray(t,n)),r},fo=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],S=function(e,t,n){var r=new Error(t||fo[e]);if(r.code=e,Error.captureStackTrace&&Error.captureStackTrace(r,S),!n)throw r;return r},It=function(e,t,n,r){var i=e.length,o=r?r.length:0;if(!i||t.f&&!t.l)return n||new D(0);var s=!n||t.i!=2,a=t.i;n||(n=new D(i*3));var l=function(Bt){var Et=n.length;if(Bt>Et){var _t=new D(Math.max(Et*2,Bt));_t.set(n),n=_t}},c=t.f||0,f=t.p||0,u=t.b||0,h=t.l,d=t.d,p=t.m,m=t.n,F=i*8;do{if(!h){c=k(e,f,1);var _=k(e,f+1,3);if(f+=3,_)if(_==1)h=so,d=ao,p=9,m=5;else if(_==2){var V=k(e,f,31)+257,C=k(e,f+10,15)+4,M=V+k(e,f+5,31)+1;f+=14;for(var T=new D(M),b=new D(19),A=0;A<C;++A)b[ro[A]]=k(e,f+A*3,7);f+=C*3;for(var St=xt(b),Yn=(1<<St)-1,Qn=ve(b,St,1),A=0;A<M;){var Dt=Qn[k(e,f,Yn)];f+=Dt&15;var v=Dt>>4;if(v<16)T[A++]=v;else{var $=0,Se=0;for(v==16?(Se=3+k(e,f,3),f+=2,$=T[A-1]):v==17?(Se=3+k(e,f,7),f+=3):v==18&&(Se=11+k(e,f,127),f+=7);Se--;)T[A++]=$}}var Vt=T.subarray(0,V),U=T.subarray(V);p=xt(Vt),m=xt(U),h=ve(Vt,p,1),d=ve(U,m,1)}else S(1);else{var v=lo(f)+4,y=e[v-4]|e[v-3]<<8,g=v+y;if(g>i){a&&S(0);break}s&&l(u+y),n.set(e.subarray(v,g),u),t.b=u+=y,t.p=f=g*8,t.f=c;continue}if(f>F){a&&S(0);break}}s&&l(u+131072);for(var qn=(1<<p)-1,er=(1<<m)-1,je=f;;je=f){var $=h[wt(e,f)&qn],K=$>>4;if(f+=$&15,f>F){a&&S(0);break}if($||S(2),K<256)n[u++]=K;else if(K==256){je=f,h=null;break}else{var bt=K-254;if(K>264){var A=K-257,ne=Vn[A];bt=k(e,f,(1<<ne)-1)+En[A],f+=ne}var Ge=d[wt(e,f)&er],He=Ge>>4;Ge||S(3),f+=Ge&15;var U=oo[He];if(He>3){var ne=bn[He];U+=wt(e,f)&(1<<ne)-1,f+=ne}if(f>F){a&&S(0);break}s&&l(u+131072);var Je=u+bt;if(u<U){var At=o-U,tr=Math.min(U,Je);for(At+u<0&&S(3);u<tr;++u)n[u]=r[At+u]}for(;u<Je;u+=4)n[u]=n[u-U],n[u+1]=n[u+1-U],n[u+2]=n[u+2-U],n[u+3]=n[u+3-U];u=Je}}t.l=h,t.p=je,t.b=u,t.f=c,h&&(c=1,t.m=p,t.d=d,t.n=m)}while(!c);return u==n.length?n:co(n,0,u)},uo=new D(0),ho=function(e){(e[0]!=31||e[1]!=139||e[2]!=8)&&S(6,"invalid gzip data");var t=e[3],n=10;t&4&&(n+=(e[10]|e[11]<<8)+2);for(var r=(t>>3&1)+(t>>4&1);r>0;r-=!e[n++]);return n+(t&2)},po=function(e){var t=e.length;return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0},go=function(e,t){return((e[0]&15)!=8||e[0]>>4>7||(e[0]<<8|e[1])%31)&&S(6,"invalid zlib data"),(e[1]>>5&1)==+!t&&S(6,"invalid zlib data: "+(e[1]&32?"need":"unexpected")+" dictionary"),(e[1]>>3&4)+2};function yo(e,t){return It(e,{i:2},t&&t.out,t&&t.dictionary)}function mo(e,t){var n=ho(e);return n+8>e.length&&S(6,"invalid gzip data"),It(e.subarray(n,-8),{i:2},t&&t.out||new D(po(e)),t&&t.dictionary)}function xo(e,t){return It(e.subarray(go(e,t&&t.dictionary),-4),{i:2},t&&t.out,t&&t.dictionary)}function Pt(e,t){return e[0]==31&&e[1]==139&&e[2]==8?mo(e,t):(e[0]&15)!=8||e[0]>>4>7||(e[0]<<8|e[1])%31?yo(e,t):xo(e,t)}var wo=typeof TextDecoder<"u"&&new TextDecoder,vo=0;try{wo.decode(uo,{stream:!0}),vo=1}catch{}var Un=(e,t)=>e*W(2,t),we=(e,t)=>Math.floor(e/W(2,t)),Ne=(e,t)=>Un(e.getUint16(t+1,!0),8)+e.getUint8(t),Ln=(e,t)=>Un(e.getUint32(t+2,!0),16)+e.getUint16(t,!0),Po=(e,t,n,r,i)=>{if(e!==r.getUint8(i))return e-r.getUint8(i);let o=Ne(r,i+1);if(t!==o)return t-o;let s=Ne(r,i+4);return n!==s?n-s:0},Fo=(e,t,n,r)=>{let i=kn(e,t|128,n,r);return i?{z:t,x:n,y:r,offset:i[0],length:i[1],isDir:!0}:null},Sn=(e,t,n,r)=>{let i=kn(e,t,n,r);return i?{z:t,x:n,y:r,offset:i[0],length:i[1],isDir:!1}:null},kn=(e,t,n,r)=>{let i=0,o=e.byteLength/17-1;for(;i<=o;){let s=o+i>>1,a=Po(t,n,r,e,s*17);if(a>0)i=s+1;else if(a<0)o=s-1;else return[Ln(e,s*17+7),e.getUint32(s*17+13,!0)]}return null},Io=(e,t)=>e.isDir&&!t.isDir?1:!e.isDir&&t.isDir?-1:e.z!==t.z?e.z-t.z:e.x!==t.x?e.x-t.x:e.y-t.y,Cn=(e,t)=>{let n=e.getUint8(t*17);return{z:n&127,x:Ne(e,t*17+1),y:Ne(e,t*17+4),offset:Ln(e,t*17+7),length:e.getUint32(t*17+13,!0),isDir:n>>7===1}},Dn=e=>{let t=[],n=new DataView(e);for(let r=0;r<n.byteLength/17;r++)t.push(Cn(n,r));return To(t)},To=e=>{e.sort(Io);let t=new ArrayBuffer(17*e.length),n=new Uint8Array(t);for(let r=0;r<e.length;r++){let i=e[r],o=i.z;i.isDir&&(o=o|128),n[r*17]=o,n[r*17+1]=i.x&255,n[r*17+2]=i.x>>8&255,n[r*17+3]=i.x>>16&255,n[r*17+4]=i.y&255,n[r*17+5]=i.y>>8&255,n[r*17+6]=i.y>>16&255,n[r*17+7]=i.offset&255,n[r*17+8]=we(i.offset,8)&255,n[r*17+9]=we(i.offset,16)&255,n[r*17+10]=we(i.offset,24)&255,n[r*17+11]=we(i.offset,32)&255,n[r*17+12]=we(i.offset,48)&255,n[r*17+13]=i.length&255,n[r*17+14]=i.length>>8&255,n[r*17+15]=i.length>>16&255,n[r*17+16]=i.length>>24&255}return t},So=(e,t)=>{if(e.byteLength<17)return null;let n=e.byteLength/17,r=Cn(e,n-1);if(r.isDir){let i=r.z,o=t.z-i,s=Math.trunc(t.x/(1<<o)),a=Math.trunc(t.y/(1<<o));return{z:i,x:s,y:a}}return null};function Do(e){return I(this,null,function*(){let t=yield e.getBytes(0,512e3),n=new DataView(t.data),r=n.getUint32(4,!0),i=n.getUint16(8,!0),o=new TextDecoder("utf-8"),s=JSON.parse(o.decode(new DataView(t.data,10,r))),a=0;s.compression==="gzip"&&(a=2);let l=0;"minzoom"in s&&(l=+s.minzoom);let c=0;"maxzoom"in s&&(c=+s.maxzoom);let f=0,u=0,h=0,d=-180,p=-85,m=180,F=85;if(s.bounds){let v=s.bounds.split(",");d=+v[0],p=+v[1],m=+v[2],F=+v[3]}if(s.center){let v=s.center.split(",");f=+v[0],u=+v[1],h=+v[2]}return{specVersion:n.getUint16(2,!0),rootDirectoryOffset:10+r,rootDirectoryLength:i*17,jsonMetadataOffset:10,jsonMetadataLength:r,leafDirectoryOffset:0,leafDirectoryLength:void 0,tileDataOffset:0,tileDataLength:void 0,numAddressedTiles:0,numTileEntries:0,numTileContents:0,clustered:!1,internalCompression:1,tileCompression:a,tileType:1,minZoom:l,maxZoom:c,minLon:d,minLat:p,maxLon:m,maxLat:F,centerZoom:h,centerLon:f,centerLat:u,etag:t.etag}})}function Vo(e,t,n,r,i,o,s){return I(this,null,function*(){let a=yield n.getArrayBuffer(t,e.rootDirectoryOffset,e.rootDirectoryLength,e);e.specVersion===1&&(a=Dn(a));let l=Sn(new DataView(a),r,i,o);if(l){let u=(yield t.getBytes(l.offset,l.length,s)).data,h=new DataView(u);return h.getUint8(0)===31&&h.getUint8(1)===139&&(u=Pt(new Uint8Array(u))),{data:u}}let c=So(new DataView(a),{z:r,x:i,y:o});if(c){let f=Fo(new DataView(a),c.z,c.x,c.y);if(f){let u=yield n.getArrayBuffer(t,f.offset,f.length,e);e.specVersion===1&&(u=Dn(u));let h=Sn(new DataView(u),r,i,o);if(h){let p=(yield t.getBytes(h.offset,h.length,s)).data,m=new DataView(p);return m.getUint8(0)===31&&m.getUint8(1)===139&&(p=Pt(new Uint8Array(p))),{data:p}}}}})}var On={getHeader:Do,getZxy:Vo},bo=(e,t)=>{let n=!1,r="",i=L.GridLayer.extend({createTile:(o,s)=>{let a=document.createElement("img"),l=new AbortController,c=l.signal;return a.cancel=()=>{l.abort()},n||(e.getHeader().then(f=>{f.tileType===1?console.error("Error: archive contains MVT vector tiles, but leafletRasterLayer is for displaying raster tiles. See https://github.com/protomaps/PMTiles/tree/main/js for details."):f.tileType===2?r="image/png":f.tileType===3?r="image/jpeg":f.tileType===4?r="image/webp":f.tileType===5&&(r="image/avif")}),n=!0),e.getZxy(o.z,o.x,o.y,c).then(f=>{if(f){let u=new Blob([f.data],{type:r}),h=window.URL.createObjectURL(u);a.src=h,a.cancel=void 0,s(void 0,a)}}).catch(f=>{if(f.name!=="AbortError")throw f}),a},_removeTile:function(o){let s=this._tiles[o];s&&(s.el.cancel&&s.el.cancel(),s.el.width=0,s.el.height=0,s.el.deleted=!0,L.DomUtil.remove(s.el),delete this._tiles[o],this.fire("tileunload",{tile:s.el,coords:this._keyToTileCoords(o)}))}});return new i(t)},Ao=e=>(t,n)=>{if(n instanceof AbortController)return e(t,n);let r=new AbortController;return e(t,r).then(i=>n(void 0,i.data,i.cacheControl||"",i.expires||""),i=>n(i)).catch(i=>n(i)),{cancel:()=>r.abort()}},Bo=class{constructor(){this.tilev4=(e,t)=>I(this,null,function*(){if(e.type==="json"){let u=e.url.substr(10),h=this.tiles.get(u);h||(h=new Ft(u),this.tiles.set(u,h));let d=yield h.getHeader();return{data:{tiles:[`${e.url}/{z}/{x}/{y}`],minzoom:d.minZoom,maxzoom:d.maxZoom,bounds:[d.minLon,d.minLat,d.maxLon,d.maxLat]}}}let n=new RegExp(/pmtiles:\/\/(.+)\/(\d+)\/(\d+)\/(\d+)/),r=e.url.match(n);if(!r)throw new Error("Invalid PMTiles protocol URL");let i=r[1],o=this.tiles.get(i);o||(o=new Ft(i),this.tiles.set(i,o));let s=r[2],a=r[3],l=r[4],c=yield o.getHeader(),f=yield o?.getZxy(+s,+a,+l,t.signal);return f?{data:new Uint8Array(f.data),cacheControl:f.cacheControl,expires:f.expires}:c.tileType===1?{data:new Uint8Array}:{data:null}}),this.tile=Ao(this.tilev4),this.tiles=new Map}add(e){this.tiles.set(e.source.getKey(),e)}get(e){return this.tiles.get(e)}};function q(e,t){return(t>>>0)*4294967296+(e>>>0)}function Eo(e,t){let n=t.buf,r=n[t.pos++],i=(r&112)>>4;if(r<128||(r=n[t.pos++],i|=(r&127)<<3,r<128)||(r=n[t.pos++],i|=(r&127)<<10,r<128)||(r=n[t.pos++],i|=(r&127)<<17,r<128)||(r=n[t.pos++],i|=(r&127)<<24,r<128)||(r=n[t.pos++],i|=(r&1)<<31,r<128))return q(e,i);throw new Error("Expected varint not more than 10 bytes")}function ee(e){let t=e.buf,n=t[e.pos++],r=n&127;return n<128||(n=t[e.pos++],r|=(n&127)<<7,n<128)||(n=t[e.pos++],r|=(n&127)<<14,n<128)||(n=t[e.pos++],r|=(n&127)<<21,n<128)?r:(n=t[e.pos],r|=(n&15)<<28,Eo(r,e))}function Nn(e,t,n,r){if(r===0){n===1&&(t[0]=e-1-t[0],t[1]=e-1-t[1]);let i=t[0];t[0]=t[1],t[1]=i}}function _o(e,t){let n=W(2,e),r=t,i=t,o=t,s=[0,0],a=1;for(;a<n;)r=1&o/2,i=1&(o^r),Nn(a,s,r,i),s[0]+=a*r,s[1]+=a*i,o=o/4,a*=2;return[e,s[0],s[1]]}var Mo=[0,1,5,21,85,341,1365,5461,21845,87381,349525,1398101,5592405,22369621,89478485,357913941,1431655765,5726623061,22906492245,91625968981,366503875925,1466015503701,5864062014805,23456248059221,93824992236885,375299968947541,0x5555555555555];function zn(e,t,n){if(e>26)throw Error("Tile zoom level exceeds max safe number limit (26)");if(t>W(2,e)-1||n>W(2,e)-1)throw Error("tile x/y outside zoom level bounds");let r=Mo[e],i=W(2,e),o=0,s=0,a=0,l=[t,n],c=i/2;for(;c>0;)o=(l[0]&c)>0?1:0,s=(l[1]&c)>0?1:0,a+=c*c*(3*o^s),Nn(c,l,o,s),c=c/2;return r+a}function Uo(e){let t=0,n=0;for(let r=0;r<27;r++){let i=(1<<r)*(1<<r);if(t+i>e)return _o(r,e-t);t+=i}throw Error("Tile zoom level exceeds max safe number limit (26)")}var Zn=(e=>(e[e.Unknown=0]="Unknown",e[e.None=1]="None",e[e.Gzip=2]="Gzip",e[e.Brotli=3]="Brotli",e[e.Zstd=4]="Zstd",e))(Zn||{});function Tt(e,t){return I(this,null,function*(){if(t===1||t===0)return e;if(t===2){if(typeof globalThis.DecompressionStream>"u")return Pt(new Uint8Array(e));let n=new Response(e).body;if(!n)throw Error("Failed to read response stream");let r=n.pipeThrough(new globalThis.DecompressionStream("gzip"));return new Response(r).arrayBuffer()}throw Error("Compression method not supported")})}var Rn=(e=>(e[e.Unknown=0]="Unknown",e[e.Mvt=1]="Mvt",e[e.Png=2]="Png",e[e.Jpeg=3]="Jpeg",e[e.Webp=4]="Webp",e[e.Avif=5]="Avif",e))(Rn||{}),Lo=127;function jn(e,t){let n=0,r=e.length-1;for(;n<=r;){let i=r+n>>1,o=t-e[i].tileId;if(o>0)n=i+1;else if(o<0)r=i-1;else return e[i]}return r>=0&&(e[r].runLength===0||t-e[r].tileId<e[r].runLength)?e[r]:null}var ko=class{constructor(e){this.file=e}getKey(){return this.file.name}getBytes(e,t){return I(this,null,function*(){return{data:yield this.file.slice(e,e+t).arrayBuffer()}})}},Gn=class{constructor(e,t=new Headers){this.url=e,this.customHeaders=t,this.mustReload=!1}getKey(){return this.url}setHeaders(e){this.customHeaders=e}getBytes(e,t,n,r){return I(this,null,function*(){let i,o;n?o=n:(i=new AbortController,o=i.signal);let s=new Headers(this.customHeaders);s.set("range",`bytes=${e}-${e+t-1}`);let a;this.mustReload&&(a="reload");let l=yield fetch(this.url,{signal:o,cache:a,headers:s});if(e===0&&l.status===416){let h=l.headers.get("Content-Range");if(!h||!h.startsWith("bytes */"))throw Error("Missing content-length on 416 response");let d=+h.substr(8);l=yield fetch(this.url,{signal:o,cache:"reload",headers:{range:`bytes=0-${d-1}`}})}let c=l.headers.get("Etag");if(c?.startsWith("W/")&&(c=null),l.status===416||r&&c&&c!==r)throw this.mustReload=!0,new ze(r);if(l.status>=300)throw Error(`Bad response code: ${l.status}`);let f=l.headers.get("Content-Length");if(l.status===200&&(!f||+f>t))throw i&&i.abort(),Error("Server returned no content-length header or content-length exceeding request. Check that your storage backend supports HTTP Byte Serving.");return{data:yield l.arrayBuffer(),etag:c||void 0,cacheControl:l.headers.get("Cache-Control")||void 0,expires:l.headers.get("Expires")||void 0}})}};function E(e,t){let n=e.getUint32(t+4,!0),r=e.getUint32(t+0,!0);return n*W(2,32)+r}function Hn(e,t){let n=new DataView(e),r=n.getUint8(7);if(r>3)throw Error(`Archive is spec version ${r} but this library supports up to spec version 3`);return{specVersion:r,rootDirectoryOffset:E(n,8),rootDirectoryLength:E(n,16),jsonMetadataOffset:E(n,24),jsonMetadataLength:E(n,32),leafDirectoryOffset:E(n,40),leafDirectoryLength:E(n,48),tileDataOffset:E(n,56),tileDataLength:E(n,64),numAddressedTiles:E(n,72),numTileEntries:E(n,80),numTileContents:E(n,88),clustered:n.getUint8(96)===1,internalCompression:n.getUint8(97),tileCompression:n.getUint8(98),tileType:n.getUint8(99),minZoom:n.getUint8(100),maxZoom:n.getUint8(101),minLon:n.getInt32(102,!0)/1e7,minLat:n.getInt32(106,!0)/1e7,maxLon:n.getInt32(110,!0)/1e7,maxLat:n.getInt32(114,!0)/1e7,centerZoom:n.getUint8(118),centerLon:n.getInt32(119,!0)/1e7,centerLat:n.getInt32(123,!0)/1e7,etag:t}}function Jn(e){let t={buf:new Uint8Array(e),pos:0},n=ee(t),r=[],i=0;for(let o=0;o<n;o++){let s=ee(t);r.push({tileId:i+s,offset:0,length:0,runLength:1}),i+=s}for(let o=0;o<n;o++)r[o].runLength=ee(t);for(let o=0;o<n;o++)r[o].length=ee(t);for(let o=0;o<n;o++){let s=ee(t);s===0&&o>0?r[o].offset=r[o-1].offset+r[o-1].length:r[o].offset=s-1}return r}function Co(e){let t=new DataView(e);return t.getUint16(2,!0)===2?(console.warn("PMTiles spec version 2 has been deprecated; please see github.com/protomaps/PMTiles for tools to upgrade"),2):t.getUint16(2,!0)===1?(console.warn("PMTiles spec version 1 has been deprecated; please see github.com/protomaps/PMTiles for tools to upgrade"),1):3}var ze=class extends Error{};function Wn(e,t){return I(this,null,function*(){let n=yield e.getBytes(0,16384);if(new DataView(n.data).getUint16(0,!0)!==19792)throw new Error("Wrong magic number for PMTiles archive");if(Co(n.data)<3)return[yield On.getHeader(e)];let i=n.data.slice(0,Lo),o=Hn(i,n.etag),s=n.data.slice(o.rootDirectoryOffset,o.rootDirectoryOffset+o.rootDirectoryLength),a=`${e.getKey()}|${o.etag||""}|${o.rootDirectoryOffset}|${o.rootDirectoryLength}`,l=Jn(yield t(s,o.internalCompression));return[o,[a,l.length,l]]})}function $n(e,t,n,r,i){return I(this,null,function*(){let o=yield e.getBytes(n,r,void 0,i.etag),s=yield t(o.data,i.internalCompression),a=Jn(s);if(a.length===0)throw new Error("Empty directory is invalid");return a})}var Oo=class{constructor(e=100,t=!0,n=Tt){this.cache=new Map,this.maxCacheEntries=e,this.counter=1,this.decompress=n}getHeader(e){return I(this,null,function*(){let t=e.getKey(),n=this.cache.get(t);if(n)return n.lastUsed=this.counter++,n.data;let r=yield Wn(e,this.decompress);return r[1]&&this.cache.set(r[1][0],{lastUsed:this.counter++,data:r[1][2]}),this.cache.set(t,{lastUsed:this.counter++,data:r[0]}),this.prune(),r[0]})}getDirectory(e,t,n,r){return I(this,null,function*(){let i=`${e.getKey()}|${r.etag||""}|${t}|${n}`,o=this.cache.get(i);if(o)return o.lastUsed=this.counter++,o.data;let s=yield $n(e,this.decompress,t,n,r);return this.cache.set(i,{lastUsed:this.counter++,data:s}),this.prune(),s})}getArrayBuffer(e,t,n,r){return I(this,null,function*(){let i=`${e.getKey()}|${r.etag||""}|${t}|${n}`,o=this.cache.get(i);if(o)return o.lastUsed=this.counter++,yield o.data;let s=yield e.getBytes(t,n,void 0,r.etag);return this.cache.set(i,{lastUsed:this.counter++,data:s.data}),this.prune(),s.data})}prune(){if(this.cache.size>this.maxCacheEntries){let e=1/0,t;this.cache.forEach((n,r)=>{n.lastUsed<e&&(e=n.lastUsed,t=r)}),t&&this.cache.delete(t)}}invalidate(e){return I(this,null,function*(){this.cache.delete(e.getKey())})}},Kn=class{constructor(e=100,t=!0,n=Tt){this.cache=new Map,this.invalidations=new Map,this.maxCacheEntries=e,this.counter=1,this.decompress=n}getHeader(e){return I(this,null,function*(){let t=e.getKey(),n=this.cache.get(t);if(n)return n.lastUsed=this.counter++,yield n.data;let r=new Promise((i,o)=>{Wn(e,this.decompress).then(s=>{s[1]&&this.cache.set(s[1][0],{lastUsed:this.counter++,data:Promise.resolve(s[1][2])}),i(s[0]),this.prune()}).catch(s=>{o(s)})});return this.cache.set(t,{lastUsed:this.counter++,data:r}),r})}getDirectory(e,t,n,r){return I(this,null,function*(){let i=`${e.getKey()}|${r.etag||""}|${t}|${n}`,o=this.cache.get(i);if(o)return o.lastUsed=this.counter++,yield o.data;let s=new Promise((a,l)=>{$n(e,this.decompress,t,n,r).then(c=>{a(c),this.prune()}).catch(c=>{l(c)})});return this.cache.set(i,{lastUsed:this.counter++,data:s}),s})}getArrayBuffer(e,t,n,r){return I(this,null,function*(){let i=`${e.getKey()}|${r.etag||""}|${t}|${n}`,o=this.cache.get(i);if(o)return o.lastUsed=this.counter++,yield o.data;let s=new Promise((a,l)=>{e.getBytes(t,n,void 0,r.etag).then(c=>{a(c.data),this.cache.has(i),this.prune()}).catch(c=>{l(c)})});return this.cache.set(i,{lastUsed:this.counter++,data:s}),s})}prune(){if(this.cache.size>=this.maxCacheEntries){let e=1/0,t;this.cache.forEach((n,r)=>{n.lastUsed<e&&(e=n.lastUsed,t=r)}),t&&this.cache.delete(t)}}invalidate(e){return I(this,null,function*(){let t=e.getKey();if(this.invalidations.get(t))return yield this.invalidations.get(t);this.cache.delete(e.getKey());let n=new Promise((r,i)=>{this.getHeader(e).then(o=>{r(),this.invalidations.delete(t)}).catch(o=>{i(o)})});this.invalidations.set(t,n)})}},Ft=class{constructor(e,t,n){typeof e=="string"?this.source=new Gn(e):this.source=e,n?this.decompress=n:this.decompress=Tt,t?this.cache=t:this.cache=new Kn}getHeader(){return I(this,null,function*(){return yield this.cache.getHeader(this.source)})}getZxyAttempt(e,t,n,r){return I(this,null,function*(){let i=zn(e,t,n),o=yield this.cache.getHeader(this.source);if(o.specVersion<3)return On.getZxy(o,this.source,this.cache,e,t,n,r);if(e<o.minZoom||e>o.maxZoom)return;let s=o.rootDirectoryOffset,a=o.rootDirectoryLength;for(let l=0;l<=3;l++){let c=yield this.cache.getDirectory(this.source,s,a,o),f=jn(c,i);if(f){if(f.runLength>0){let u=yield this.source.getBytes(o.tileDataOffset+f.offset,f.length,r,o.etag);return{data:yield this.decompress(u.data,o.tileCompression),cacheControl:u.cacheControl,expires:u.expires}}s=o.leafDirectoryOffset+f.offset,a=f.length}else return}throw Error("Maximum directory depth exceeded")})}getZxy(e,t,n,r){return I(this,null,function*(){try{return yield this.getZxyAttempt(e,t,n,r)}catch(i){if(i instanceof ze)return this.cache.invalidate(this.source),yield this.getZxyAttempt(e,t,n,r);throw i}})}getMetadataAttempt(){return I(this,null,function*(){let e=yield this.cache.getHeader(this.source),t=yield this.source.getBytes(e.jsonMetadataOffset,e.jsonMetadataLength,void 0,e.etag),n=yield this.decompress(t.data,e.internalCompression),r=new TextDecoder("utf-8");return JSON.parse(r.decode(n))})}getMetadata(){return I(this,null,function*(){try{return yield this.getMetadataAttempt()}catch(e){if(e instanceof ze)return this.cache.invalidate(this.source),yield this.getMetadataAttempt();throw e}})}};var{TileType:Ie}=Fe;function Xn(e,t,n,r){let i=t,o=null;if(i)try{let l=JSON.stringify(i);o=xe.parseTextSync?.(l,r)||null}catch(l){console.warn("PMTiles metadata could not be interpreted as TileJSON",l)}let s={};typeof o?.name=="string"&&(s.name=o.name),typeof o?.htmlAttribution=="string"&&(s.attributions=[o.htmlAttribution]);let a={...s,format:"pmtiles",formatVersion:e.specVersion,attributions:[],tileMIMEType:No(e.tileType),minZoom:e.minZoom,maxZoom:e.maxZoom,boundingBox:[[e.minLon,e.minLat],[e.maxLon,e.maxLat]],center:[e.centerLon,e.centerLat],centerZoom:e.centerZoom,etag:e.etag};return o&&(a.tilejson=o),n?.includeFormatHeader&&(a.formatHeader=e,a.formatMetadata=a),a}function No(e){switch(e){case Ie.Mvt:return"application/vnd.mapbox-vector-tile";case Ie.Png:return"image/png";case Ie.Jpeg:return"image/jpeg";case Ie.Webp:return"image/webp";case Ie.Avif:return"image/avif";default:return"application/octet-stream"}}var Ze=class{blob;key;constructor(t,n){this.blob=t,this.key=n}getKey(){return this.blob.url||""}async getBytes(t,n,r){return{data:await this.blob.slice(t,t+n).arrayBuffer()}}};var{PMTiles:zo}=Fe;var Re=class extends ie{data;props;mimeType=null;pmtiles;metadata;constructor(t){super(t),this.props=t;let n=typeof t.url=="string"?Ye(t.url):new Ze(t.url,"pmtiles");this.data=t.url,this.pmtiles=new zo(n),this.getTileData=this.getTileData.bind(this),this.metadata=this.getMetadata()}async getMetadata(){let t=await this.pmtiles.getHeader(),n=await this.pmtiles.getMetadata(),r=Xn(t,n,{includeFormatHeader:!1},this.loadOptions);return this.props.attributions&&(r.attributions=[...this.props.attributions,...r.attributions||[]]),r?.tileMIMEType&&(this.mimeType=r?.tileMIMEType),r}async getTile(t){let{x:n,y:r,zoom:i}=t,s=(await this.pmtiles.getZxy(i,n,r))?.data;return s||null}async getTileData(t){let{x:n,y:r,z:i}=t.index;switch((await this.metadata).tileMIMEType){case"application/vnd.mapbox-vector-tile":return await this.getVectorTile({x:n,y:r,zoom:i,layers:[]});default:return await this.getImageTile({x:n,y:r,zoom:i,layers:[]})}}async getImageTile(t){let n=await this.getTile(t);return n?await nt.parse(n,this.loadOptions):null}async getVectorTile(t){let n=await this.getTile(t),r={shape:"geojson-table",mvt:{coordinates:"wgs84",tileIndex:{x:t.x,y:t.y,z:t.zoom},...this.loadOptions?.mvt},...this.loadOptions};return n?await yt.parse(n,r):null}};return ar(Te);})();
8
8
  /*! Bundled license information:
9
9
 
10
10
  ieee754/index.js:
package/dist/index.cjs CHANGED
@@ -107,6 +107,8 @@ function decodeTileType(tileType) {
107
107
 
108
108
  // dist/lib/blob-source.js
109
109
  var BlobSource = class {
110
+ blob;
111
+ key;
110
112
  constructor(blob, key) {
111
113
  this.blob = blob;
112
114
  this.key = key;
@@ -130,9 +132,13 @@ var BlobSource = class {
130
132
  // dist/pmtiles-source.js
131
133
  var { PMTiles } = pmtiles2;
132
134
  var PMTilesSource = class extends import_loader_utils.DataSource {
135
+ data;
136
+ props;
137
+ mimeType = null;
138
+ pmtiles;
139
+ metadata;
133
140
  constructor(props) {
134
141
  super(props);
135
- this.mimeType = null;
136
142
  this.props = props;
137
143
  const url = typeof props.url === "string" ? (0, import_loader_utils.resolvePath)(props.url) : new BlobSource(props.url, "pmtiles");
138
144
  this.data = props.url;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["index.js", "pmtiles-source.js", "lib/parse-pmtiles.js", "lib/blob-source.js"],
4
- "sourcesContent": ["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nexport { PMTilesSource } from \"./pmtiles-source.js\";\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { DataSource, resolvePath } from '@loaders.gl/loader-utils';\nimport { ImageLoader } from '@loaders.gl/images';\nimport { MVTLoader } from '@loaders.gl/mvt';\nimport * as pmtiles from 'pmtiles';\nconst { PMTiles } = pmtiles;\nimport { parsePMTilesHeader } from \"./lib/parse-pmtiles.js\";\nimport { BlobSource } from \"./lib/blob-source.js\";\nconst VERSION = '1.0.0';\nexport const PMTilesService = {\n name: 'PMTiles',\n id: 'pmtiles',\n module: 'pmtiles',\n version: VERSION,\n extensions: ['pmtiles'],\n mimeTypes: ['application/octet-stream'],\n options: {\n pmtiles: {}\n },\n createSource: (props) => new PMTilesSource(props)\n};\n/**\n * A PMTiles data source\n * @note Can be either a raster or vector tile source depending on the contents of the PMTiles file.\n */\nexport class PMTilesSource extends DataSource {\n constructor(props) {\n super(props);\n this.mimeType = null;\n this.props = props;\n const url = typeof props.url === 'string' ? resolvePath(props.url) : new BlobSource(props.url, 'pmtiles');\n this.data = props.url;\n this.pmtiles = new PMTiles(url);\n this.getTileData = this.getTileData.bind(this);\n this.metadata = this.getMetadata();\n }\n async getMetadata() {\n const pmtilesHeader = await this.pmtiles.getHeader();\n const pmtilesMetadata = await this.pmtiles.getMetadata();\n const metadata = parsePMTilesHeader(pmtilesHeader, pmtilesMetadata, { includeFormatHeader: false }, this.loadOptions);\n // Add additional attribution if necessary\n if (this.props.attributions) {\n metadata.attributions = [...this.props.attributions, ...(metadata.attributions || [])];\n }\n if (metadata?.tileMIMEType) {\n this.mimeType = metadata?.tileMIMEType;\n }\n // TODO - do we need to allow tileSize to be overridden? Some PMTiles examples seem to suggest it.\n return metadata;\n }\n async getTile(tileParams) {\n const { x, y, zoom: z } = tileParams;\n const rangeResponse = await this.pmtiles.getZxy(z, x, y);\n const arrayBuffer = rangeResponse?.data;\n if (!arrayBuffer) {\n // console.error('No arrayBuffer', tileParams);\n return null;\n }\n return arrayBuffer;\n }\n // Tile Source interface implementation: deck.gl compatible API\n // TODO - currently only handles image tiles, not vector tiles\n async getTileData(tileParams) {\n const { x, y, z } = tileParams.index;\n const metadata = await this.metadata;\n switch (metadata.tileMIMEType) {\n case 'application/vnd.mapbox-vector-tile':\n return await this.getVectorTile({ x, y, zoom: z, layers: [] });\n default:\n return await this.getImageTile({ x, y, zoom: z, layers: [] });\n }\n }\n // ImageTileSource interface implementation\n async getImageTile(tileParams) {\n const arrayBuffer = await this.getTile(tileParams);\n return arrayBuffer ? await ImageLoader.parse(arrayBuffer, this.loadOptions) : null;\n }\n // VectorTileSource interface implementation\n async getVectorTile(tileParams) {\n const arrayBuffer = await this.getTile(tileParams);\n const loadOptions = {\n shape: 'geojson-table',\n mvt: {\n coordinates: 'wgs84',\n tileIndex: { x: tileParams.x, y: tileParams.y, z: tileParams.zoom },\n ...this.loadOptions?.mvt\n },\n ...this.loadOptions\n };\n return arrayBuffer ? await MVTLoader.parse(arrayBuffer, loadOptions) : null;\n }\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { TileJSONLoader } from '@loaders.gl/mvt';\n// import {Source, PMTiles, Header, TileType} from 'pmtiles';\nimport * as pmtiles from 'pmtiles';\nconst { TileType } = pmtiles;\n/**\n * Parse PMTiles metdata from a PMTiles file\n * @param header\n * @param tilejsonMetadata\n * @param options\n * @param loadOptions\n * @returns\n */\nexport function parsePMTilesHeader(header, pmmetadata, options, loadOptions) {\n const pmtilesMetadata = pmmetadata;\n // Ironically, to use the TileJSON loader we need to stringify the metadata again.\n // This is the price of integrating with the existing pmtiles library.\n // TODO - provide a non-standard TileJSONLoader parsers that accepts a JSON object?\n let tilejson = null;\n if (pmtilesMetadata) {\n try {\n const string = JSON.stringify(pmtilesMetadata);\n tilejson = TileJSONLoader.parseTextSync?.(string, loadOptions) || null;\n }\n catch (error) {\n // eslint-disable-next-line no-console\n console.warn('PMTiles metadata could not be interpreted as TileJSON', error);\n }\n }\n const partialMetadata = {};\n if (typeof tilejson?.name === 'string') {\n partialMetadata.name = tilejson.name;\n }\n if (typeof tilejson?.htmlAttribution === 'string') {\n partialMetadata.attributions = [tilejson.htmlAttribution];\n }\n const metadata = {\n ...partialMetadata,\n format: 'pmtiles',\n formatVersion: header.specVersion,\n attributions: [],\n tileMIMEType: decodeTileType(header.tileType),\n minZoom: header.minZoom,\n maxZoom: header.maxZoom,\n boundingBox: [\n [header.minLon, header.minLat],\n [header.maxLon, header.maxLat]\n ],\n center: [header.centerLon, header.centerLat],\n centerZoom: header.centerZoom,\n etag: header.etag\n };\n if (tilejson) {\n metadata.tilejson = tilejson;\n }\n // Application can optionally include the raw header and metadata.\n if (options?.includeFormatHeader) {\n metadata.formatHeader = header;\n metadata.formatMetadata = metadata;\n }\n return metadata;\n}\n/** Extract a MIME type for tiles from vector tile header */\nfunction decodeTileType(tileType) {\n switch (tileType) {\n case TileType.Mvt:\n return 'application/vnd.mapbox-vector-tile';\n case TileType.Png:\n return 'image/png';\n case TileType.Jpeg:\n return 'image/jpeg';\n case TileType.Webp:\n return 'image/webp';\n case TileType.Avif:\n return 'image/avif';\n default:\n return 'application/octet-stream';\n }\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n/**\n * A PMTiles library compatible source that reads from blobs\n * @deprecated TODO - reimplement as ReadableFileSource\n * Use loaders.gl HTTP range requests instead\n */\nexport class BlobSource {\n constructor(blob, key) {\n this.blob = blob;\n this.key = key;\n }\n // TODO - how is this used?\n getKey() {\n // @ts-expect-error url is only defined on File subclass\n return this.blob.url || '';\n }\n async getBytes(offset, length, signal) {\n const slice = this.blob.slice(offset, offset + length);\n const data = await slice.arrayBuffer();\n return {\n data\n // etag: response.headers.get('ETag') || undefined,\n // cacheControl: response.headers.get('Cache-Control') || undefined,\n // expires: response.headers.get('Expires') || undefined\n };\n }\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nexport { PMTilesSource } from \"./pmtiles-source.js\";\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { DataSource, resolvePath } from '@loaders.gl/loader-utils';\nimport { ImageLoader } from '@loaders.gl/images';\nimport { MVTLoader } from '@loaders.gl/mvt';\nimport * as pmtiles from 'pmtiles';\nconst { PMTiles } = pmtiles;\nimport { parsePMTilesHeader } from \"./lib/parse-pmtiles.js\";\nimport { BlobSource } from \"./lib/blob-source.js\";\nconst VERSION = '1.0.0';\nexport const PMTilesService = {\n name: 'PMTiles',\n id: 'pmtiles',\n module: 'pmtiles',\n version: VERSION,\n extensions: ['pmtiles'],\n mimeTypes: ['application/octet-stream'],\n options: {\n pmtiles: {}\n },\n createSource: (props) => new PMTilesSource(props)\n};\n/**\n * A PMTiles data source\n * @note Can be either a raster or vector tile source depending on the contents of the PMTiles file.\n */\nexport class PMTilesSource extends DataSource {\n data;\n props;\n mimeType = null;\n pmtiles;\n metadata;\n constructor(props) {\n super(props);\n this.props = props;\n const url = typeof props.url === 'string' ? resolvePath(props.url) : new BlobSource(props.url, 'pmtiles');\n this.data = props.url;\n this.pmtiles = new PMTiles(url);\n this.getTileData = this.getTileData.bind(this);\n this.metadata = this.getMetadata();\n }\n async getMetadata() {\n const pmtilesHeader = await this.pmtiles.getHeader();\n const pmtilesMetadata = await this.pmtiles.getMetadata();\n const metadata = parsePMTilesHeader(pmtilesHeader, pmtilesMetadata, { includeFormatHeader: false }, this.loadOptions);\n // Add additional attribution if necessary\n if (this.props.attributions) {\n metadata.attributions = [...this.props.attributions, ...(metadata.attributions || [])];\n }\n if (metadata?.tileMIMEType) {\n this.mimeType = metadata?.tileMIMEType;\n }\n // TODO - do we need to allow tileSize to be overridden? Some PMTiles examples seem to suggest it.\n return metadata;\n }\n async getTile(tileParams) {\n const { x, y, zoom: z } = tileParams;\n const rangeResponse = await this.pmtiles.getZxy(z, x, y);\n const arrayBuffer = rangeResponse?.data;\n if (!arrayBuffer) {\n // console.error('No arrayBuffer', tileParams);\n return null;\n }\n return arrayBuffer;\n }\n // Tile Source interface implementation: deck.gl compatible API\n // TODO - currently only handles image tiles, not vector tiles\n async getTileData(tileParams) {\n const { x, y, z } = tileParams.index;\n const metadata = await this.metadata;\n switch (metadata.tileMIMEType) {\n case 'application/vnd.mapbox-vector-tile':\n return await this.getVectorTile({ x, y, zoom: z, layers: [] });\n default:\n return await this.getImageTile({ x, y, zoom: z, layers: [] });\n }\n }\n // ImageTileSource interface implementation\n async getImageTile(tileParams) {\n const arrayBuffer = await this.getTile(tileParams);\n return arrayBuffer ? await ImageLoader.parse(arrayBuffer, this.loadOptions) : null;\n }\n // VectorTileSource interface implementation\n async getVectorTile(tileParams) {\n const arrayBuffer = await this.getTile(tileParams);\n const loadOptions = {\n shape: 'geojson-table',\n mvt: {\n coordinates: 'wgs84',\n tileIndex: { x: tileParams.x, y: tileParams.y, z: tileParams.zoom },\n ...this.loadOptions?.mvt\n },\n ...this.loadOptions\n };\n return arrayBuffer ? await MVTLoader.parse(arrayBuffer, loadOptions) : null;\n }\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { TileJSONLoader } from '@loaders.gl/mvt';\n// import {Source, PMTiles, Header, TileType} from 'pmtiles';\nimport * as pmtiles from 'pmtiles';\nconst { TileType } = pmtiles;\n/**\n * Parse PMTiles metdata from a PMTiles file\n * @param header\n * @param tilejsonMetadata\n * @param options\n * @param loadOptions\n * @returns\n */\nexport function parsePMTilesHeader(header, pmmetadata, options, loadOptions) {\n const pmtilesMetadata = pmmetadata;\n // Ironically, to use the TileJSON loader we need to stringify the metadata again.\n // This is the price of integrating with the existing pmtiles library.\n // TODO - provide a non-standard TileJSONLoader parsers that accepts a JSON object?\n let tilejson = null;\n if (pmtilesMetadata) {\n try {\n const string = JSON.stringify(pmtilesMetadata);\n tilejson = TileJSONLoader.parseTextSync?.(string, loadOptions) || null;\n }\n catch (error) {\n // eslint-disable-next-line no-console\n console.warn('PMTiles metadata could not be interpreted as TileJSON', error);\n }\n }\n const partialMetadata = {};\n if (typeof tilejson?.name === 'string') {\n partialMetadata.name = tilejson.name;\n }\n if (typeof tilejson?.htmlAttribution === 'string') {\n partialMetadata.attributions = [tilejson.htmlAttribution];\n }\n const metadata = {\n ...partialMetadata,\n format: 'pmtiles',\n formatVersion: header.specVersion,\n attributions: [],\n tileMIMEType: decodeTileType(header.tileType),\n minZoom: header.minZoom,\n maxZoom: header.maxZoom,\n boundingBox: [\n [header.minLon, header.minLat],\n [header.maxLon, header.maxLat]\n ],\n center: [header.centerLon, header.centerLat],\n centerZoom: header.centerZoom,\n etag: header.etag\n };\n if (tilejson) {\n metadata.tilejson = tilejson;\n }\n // Application can optionally include the raw header and metadata.\n if (options?.includeFormatHeader) {\n metadata.formatHeader = header;\n metadata.formatMetadata = metadata;\n }\n return metadata;\n}\n/** Extract a MIME type for tiles from vector tile header */\nfunction decodeTileType(tileType) {\n switch (tileType) {\n case TileType.Mvt:\n return 'application/vnd.mapbox-vector-tile';\n case TileType.Png:\n return 'image/png';\n case TileType.Jpeg:\n return 'image/jpeg';\n case TileType.Webp:\n return 'image/webp';\n case TileType.Avif:\n return 'image/avif';\n default:\n return 'application/octet-stream';\n }\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n/**\n * A PMTiles library compatible source that reads from blobs\n * @deprecated TODO - reimplement as ReadableFileSource\n * Use loaders.gl HTTP range requests instead\n */\nexport class BlobSource {\n blob;\n key;\n constructor(blob, key) {\n this.blob = blob;\n this.key = key;\n }\n // TODO - how is this used?\n getKey() {\n // @ts-expect-error url is only defined on File subclass\n return this.blob.url || '';\n }\n async getBytes(offset, length, signal) {\n const slice = this.blob.slice(offset, offset + length);\n const data = await slice.arrayBuffer();\n return {\n data\n // etag: response.headers.get('ETag') || undefined,\n // cacheControl: response.headers.get('Cache-Control') || undefined,\n // expires: response.headers.get('Expires') || undefined\n };\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_mvt", "pmtiles", "pmtiles"]
7
7
  }
@@ -7,6 +7,8 @@
7
7
  * Use loaders.gl HTTP range requests instead
8
8
  */
9
9
  export class BlobSource {
10
+ blob;
11
+ key;
10
12
  constructor(blob, key) {
11
13
  this.blob = blob;
12
14
  this.key = key;
@@ -26,9 +26,13 @@ export const PMTilesService = {
26
26
  * @note Can be either a raster or vector tile source depending on the contents of the PMTiles file.
27
27
  */
28
28
  export class PMTilesSource extends DataSource {
29
+ data;
30
+ props;
31
+ mimeType = null;
32
+ pmtiles;
33
+ metadata;
29
34
  constructor(props) {
30
35
  super(props);
31
- this.mimeType = null;
32
36
  this.props = props;
33
37
  const url = typeof props.url === 'string' ? resolvePath(props.url) : new BlobSource(props.url, 'pmtiles');
34
38
  this.data = props.url;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loaders.gl/pmtiles",
3
- "version": "4.2.0-alpha.5",
3
+ "version": "4.2.0-alpha.6",
4
4
  "description": "Framework-independent loader for the pmtiles format",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -46,14 +46,14 @@
46
46
  "build-bundle-dev": "ocular-bundle ./bundle.ts --env=dev --output=dist/dist.dev.js"
47
47
  },
48
48
  "dependencies": {
49
- "@loaders.gl/images": "4.2.0-alpha.5",
50
- "@loaders.gl/loader-utils": "4.2.0-alpha.5",
51
- "@loaders.gl/mvt": "4.2.0-alpha.5",
52
- "@loaders.gl/schema": "4.2.0-alpha.5",
49
+ "@loaders.gl/images": "4.2.0-alpha.6",
50
+ "@loaders.gl/loader-utils": "4.2.0-alpha.6",
51
+ "@loaders.gl/mvt": "4.2.0-alpha.6",
52
+ "@loaders.gl/schema": "4.2.0-alpha.6",
53
53
  "pmtiles": "^3.0.4"
54
54
  },
55
55
  "peerDependencies": {
56
56
  "@loaders.gl/core": "^4.0.0"
57
57
  },
58
- "gitHead": "32d95a81971f104e4dfeb88ab57065f05321a76a"
58
+ "gitHead": "37bd8ca71763529f18727ee4bf29dd176aa914ca"
59
59
  }