2 lines
No EOL
19 KiB
JavaScript
2 lines
No EOL
19 KiB
JavaScript
"use strict";var pmtiles=(()=>{var V=Object.defineProperty;var Je=Object.getOwnPropertyDescriptor;var Ye=Object.getOwnPropertyNames;var Qe=Object.prototype.hasOwnProperty;var Me=Math.pow;var f=(r,e)=>V(r,"name",{value:e,configurable:!0});var Xe=(r,e)=>{for(var t in e)V(r,t,{get:e[t],enumerable:!0})},_e=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Ye(e))!Qe.call(r,i)&&i!==t&&V(r,i,{get:()=>e[i],enumerable:!(n=Je(e,i))||n.enumerable});return r};var et=r=>_e(V({},"__esModule",{value:!0}),r);var m=(r,e,t)=>new Promise((n,i)=>{var a=l=>{try{o(t.next(l))}catch(h){i(h)}},s=l=>{try{o(t.throw(l))}catch(h){i(h)}},o=l=>l.done?n(l.value):Promise.resolve(l.value).then(a,s);o((t=t.apply(r,e)).next())});var Dt={};Xe(Dt,{Compression:()=>Ze,EtagMismatch:()=>B,FetchSource:()=>k,FileSource:()=>se,PMTiles:()=>P,Protocol:()=>ne,ResolvedValueCache:()=>oe,SharedPromiseCache:()=>K,TileType:()=>ae,bytesToHeader:()=>$e,findTile:()=>Fe,getUint64:()=>b,leafletRasterLayer:()=>wt,readVarint:()=>R,tileIdToZxy:()=>At,tileTypeExt:()=>Oe,zxyToTileId:()=>Ie});var w=Uint8Array,E=Uint16Array,tt=Int32Array,Ce=new w([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]),Ue=new w([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]),rt=new w([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Ee=f(function(r,e){for(var t=new E(31),n=0;n<31;++n)t[n]=e+=1<<r[n-1];for(var i=new tt(t[30]),n=1;n<30;++n)for(var a=t[n];a<t[n+1];++a)i[a]=a-t[n]<<5|n;return{b:t,r:i}},"freb"),Le=Ee(Ce,2),Pe=Le.b,nt=Le.r;Pe[28]=258,nt[258]=28;var Se=Ee(Ue,0),it=Se.b,Ct=Se.r,te=new E(32768);for(g=0;g<32768;++g)T=(g&43690)>>1|(g&21845)<<1,T=(T&52428)>>2|(T&13107)<<2,T=(T&61680)>>4|(T&3855)<<4,te[g]=((T&65280)>>8|(T&255)<<8)>>1;var T,g,O=f(function(r,e,t){for(var n=r.length,i=0,a=new E(e);i<n;++i)r[i]&&++a[r[i]-1];var s=new E(e);for(i=1;i<e;++i)s[i]=s[i-1]+a[i-1]<<1;var o;if(t){o=new E(1<<e);var l=15-e;for(i=0;i<n;++i)if(r[i])for(var h=i<<4|r[i],c=e-r[i],u=s[r[i]-1]++<<c,v=u|(1<<c)-1;u<=v;++u)o[te[u]>>l]=h}else for(o=new E(n),i=0;i<n;++i)r[i]&&(o[i]=te[s[r[i]-1]++]>>15-r[i]);return o},"hMap"),F=new w(288);for(g=0;g<144;++g)F[g]=8;var g;for(g=144;g<256;++g)F[g]=9;var g;for(g=256;g<280;++g)F[g]=7;var g;for(g=280;g<288;++g)F[g]=8;var g,Re=new w(32);for(g=0;g<32;++g)Re[g]=5;var g;var at=O(F,9,1);var st=O(Re,5,1),_=f(function(r){for(var e=r[0],t=1;t<r.length;++t)r[t]>e&&(e=r[t]);return e},"max"),z=f(function(r,e,t){var n=e/8|0;return(r[n]|r[n+1]<<8)>>(e&7)&t},"bits"),ee=f(function(r,e){var t=e/8|0;return(r[t]|r[t+1]<<8|r[t+2]<<16)>>(e&7)},"bits16"),ot=f(function(r){return(r+7)/8|0},"shft"),ut=f(function(r,e,t){return(e==null||e<0)&&(e=0),(t==null||t>r.length)&&(t=r.length),new w(r.subarray(e,t))},"slc");var ft=["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"],d=f(function(r,e,t){var n=new Error(e||ft[r]);if(n.code=r,Error.captureStackTrace&&Error.captureStackTrace(n,d),!t)throw n;return n},"err"),re=f(function(r,e,t,n){var i=r.length,a=n?n.length:0;if(!i||e.f&&!e.l)return t||new w(0);var s=!t,o=s||e.i!=2,l=e.i;s&&(t=new w(i*3));var h=f(function(Ae){var Te=t.length;if(Ae>Te){var De=new w(Math.max(Te*2,Ae));De.set(t),t=De}},"cbuf"),c=e.f||0,u=e.p||0,v=e.b||0,y=e.l,p=e.d,M=e.m,H=e.n,G=i*8;do{if(!y){c=z(r,u,1);var q=z(r,u+1,3);if(u+=3,q)if(q==1)y=at,p=st,M=9,H=5;else if(q==2){var N=z(r,u,31)+257,pe=z(r,u+10,15)+4,me=N+z(r,u+5,31)+1;u+=14;for(var I=new w(me),J=new w(19),x=0;x<pe;++x)J[rt[x]]=z(r,u+x*3,7);u+=pe*3;for(var ye=_(J),Ge=(1<<ye)-1,qe=O(J,ye,1),x=0;x<me;){var de=qe[z(r,u,Ge)];u+=de&15;var A=de>>4;if(A<16)I[x++]=A;else{var C=0,$=0;for(A==16?($=3+z(r,u,3),u+=2,C=I[x-1]):A==17?($=3+z(r,u,7),u+=3):A==18&&($=11+z(r,u,127),u+=7);$--;)I[x++]=C}}var we=I.subarray(0,N),D=I.subarray(N);M=_(we),H=_(D),y=O(we,M,1),p=O(D,H,1)}else d(1);else{var A=ot(u)+4,j=r[A-4]|r[A-3]<<8,W=A+j;if(W>i){l&&d(0);break}o&&h(v+j),t.set(r.subarray(A,W),v),e.b=v+=j,e.p=u=W*8,e.f=c;continue}if(u>G){l&&d(0);break}}o&&h(v+131072);for(var je=(1<<M)-1,We=(1<<H)-1,Y=u;;Y=u){var C=y[ee(r,u)&je],U=C>>4;if(u+=C&15,u>G){l&&d(0);break}if(C||d(2),U<256)t[v++]=U;else if(U==256){Y=u,y=null;break}else{var xe=U-254;if(U>264){var x=U-257,Z=Ce[x];xe=z(r,u,(1<<Z)-1)+Pe[x],u+=Z}var Q=p[ee(r,u)&We],X=Q>>4;Q||d(3),u+=Q&15;var D=it[X];if(X>3){var Z=Ue[X];D+=ee(r,u)&(1<<Z)-1,u+=Z}if(u>G){l&&d(0);break}o&&h(v+131072);var be=v+xe;if(v<D){var ze=a-D,Ne=Math.min(D,be);for(ze+v<0&&d(3);v<Ne;++v)t[v]=n[ze+v]}for(;v<be;++v)t[v]=t[v-D]}}e.l=y,e.p=Y,e.b=v,e.f=c,y&&(c=1,e.m=M,e.d=p,e.n=H)}while(!c);return v!=t.length&&s?ut(t,0,v):t.subarray(0,v)},"inflt");var lt=new w(0);var ht=f(function(r){(r[0]!=31||r[1]!=139||r[2]!=8)&&d(6,"invalid gzip data");var e=r[3],t=10;e&4&&(t+=(r[10]|r[11]<<8)+2);for(var n=(e>>3&1)+(e>>4&1);n>0;n-=!r[t++]);return t+(e&2)},"gzs"),ct=f(function(r){var e=r.length;return(r[e-4]|r[e-3]<<8|r[e-2]<<16|r[e-1]<<24)>>>0},"gzl");var vt=f(function(r,e){return((r[0]&15)!=8||r[0]>>4>7||(r[0]<<8|r[1])%31)&&d(6,"invalid zlib data"),(r[1]>>5&1)==+!e&&d(6,"invalid zlib data: "+(r[1]&32?"need":"unexpected")+" dictionary"),(r[1]>>3&4)+2},"zls");function gt(r,e){return re(r,{i:2},e&&e.out,e&&e.dictionary)}f(gt,"inflateSync");function pt(r,e){var t=ht(r);return t+8>r.length&&d(6,"invalid gzip data"),re(r.subarray(t,-8),{i:2},e&&e.out||new w(ct(r)),e&&e.dictionary)}f(pt,"gunzipSync");function mt(r,e){return re(r.subarray(vt(r,e&&e.dictionary),-4),{i:2},e&&e.out,e&&e.dictionary)}f(mt,"unzlibSync");function Be(r,e){return r[0]==31&&r[1]==139&&r[2]==8?pt(r,e):(r[0]&15)!=8||r[0]>>4>7||(r[0]<<8|r[1])%31?gt(r,e):mt(r,e)}f(Be,"decompressSync");var yt=typeof TextDecoder!="undefined"&&new TextDecoder,dt=0;try{yt.decode(lt,{stream:!0}),dt=1}catch(r){}var wt=f((r,e)=>{let t=!1,n="",i=L.GridLayer.extend({createTile:f((a,s)=>{let o=document.createElement("img"),l=new AbortController,h=l.signal;return o.cancel=()=>{l.abort()},t||(r.getHeader().then(c=>{c.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."):c.tileType===2?n="image/png":c.tileType===3?n="image/jpeg":c.tileType===4?n="image/webp":c.tileType===5&&(n="image/avif")}),t=!0),r.getZxy(a.z,a.x,a.y,h).then(c=>{if(c){let u=new Blob([c.data],{type:n}),v=window.URL.createObjectURL(u);o.src=v}else o.style.display="none";o.cancel=void 0,s(void 0,o)}).catch(c=>{if(c.name!=="AbortError")throw c}),o},"createTile"),_removeTile:f(function(a){let s=this._tiles[a];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[a],this.fire("tileunload",{tile:s.el,coords:this._keyToTileCoords(a)}))},"_removeTile")});return new i(e)},"leafletRasterLayer"),xt=f(r=>(e,t)=>{if(t instanceof AbortController)return r(e,t);let n=new AbortController;return r(e,n).then(i=>t(void 0,i.data,i.cacheControl||"",i.expires||""),i=>t(i)).catch(i=>t(i)),{cancel:f(()=>n.abort(),"cancel")}},"v3compat"),ie=class ie{constructor(e){this.tilev4=f((e,t)=>m(this,null,function*(){if(e.type==="json"){let v=e.url.substr(10),y=this.tiles.get(v);if(y||(y=new P(v),this.tiles.set(v,y)),this.metadata){let M=yield y.getTileJson(e.url);return t.signal.throwIfAborted(),{data:M}}let p=yield y.getHeader();return t.signal.throwIfAborted(),(p.minLon>=p.maxLon||p.minLat>=p.maxLat)&&console.error(`Bounds of PMTiles archive ${p.minLon},${p.minLat},${p.maxLon},${p.maxLat} are not valid.`),{data:{tiles:[`${e.url}/{z}/{x}/{y}`],minzoom:p.minZoom,maxzoom:p.maxZoom,bounds:[p.minLon,p.minLat,p.maxLon,p.maxLat]}}}let n=new RegExp(/pmtiles:\/\/(.+)\/(\d+)\/(\d+)\/(\d+)/),i=e.url.match(n);if(!i)throw new Error("Invalid PMTiles protocol URL");let a=i[1],s=this.tiles.get(a);s||(s=new P(a),this.tiles.set(a,s));let o=i[2],l=i[3],h=i[4],c=yield s.getHeader(),u=yield s==null?void 0:s.getZxy(+o,+l,+h,t.signal);if(t.signal.throwIfAborted(),u)return{data:new Uint8Array(u.data),cacheControl:u.cacheControl,expires:u.expires};if(c.tileType===1){if(this.errorOnMissingTile)throw new Error("Tile not found.");return{data:new Uint8Array}}return{data:null}}),"tilev4");this.tile=xt(this.tilev4);this.tiles=new Map,this.metadata=(e==null?void 0:e.metadata)||!1,this.errorOnMissingTile=(e==null?void 0:e.errorOnMissingTile)||!1}add(e){this.tiles.set(e.source.getKey(),e)}get(e){return this.tiles.get(e)}};f(ie,"Protocol");var ne=ie;function S(r,e){return(e>>>0)*4294967296+(r>>>0)}f(S,"toNum");function bt(r,e){let t=e.buf,n=t[e.pos++],i=(n&112)>>4;if(n<128||(n=t[e.pos++],i|=(n&127)<<3,n<128)||(n=t[e.pos++],i|=(n&127)<<10,n<128)||(n=t[e.pos++],i|=(n&127)<<17,n<128)||(n=t[e.pos++],i|=(n&127)<<24,n<128)||(n=t[e.pos++],i|=(n&1)<<31,n<128))return S(r,i);throw new Error("Expected varint not more than 10 bytes")}f(bt,"readVarintRemainder");function R(r){let e=r.buf,t=e[r.pos++],n=t&127;return t<128||(t=e[r.pos++],n|=(t&127)<<7,t<128)||(t=e[r.pos++],n|=(t&127)<<14,t<128)||(t=e[r.pos++],n|=(t&127)<<21,t<128)?n:(t=e[r.pos],n|=(t&15)<<28,bt(n,r))}f(R,"readVarint");function He(r,e,t,n,i){return i===0?n!==0?[r-1-t,r-1-e]:[t,e]:[e,t]}f(He,"rotate");function Ie(r,e,t){if(r>26)throw new Error("Tile zoom level exceeds max safe number limit (26)");if(e>=1<<r||t>=1<<r)throw new Error("tile x/y outside zoom level bounds");let n=((1<<r)*(1<<r)-1)/3,i=r-1,[a,s]=[e,t];for(let o=1<<i;o>0;o>>=1){let l=a&o,h=s&o;n+=(3*l^h)*(1<<i),[a,s]=He(o,a,s,l,h),i--}return n}f(Ie,"zxyToTileId");function zt(r){let e=3*r+1;return e<4294967296?31-Math.clz32(e):63-Math.clz32(e/4294967296)}f(zt,"tileIdToZ");function At(r){let e=zt(r)>>1;if(e>26)throw new Error("Tile zoom level exceeds max safe number limit (26)");let t=((1<<e)*(1<<e)-1)/3,n=r-t,i=0,a=0,s=1<<e;for(let o=1;o<s;o<<=1){let l=o&n/2,h=o&(n^l);[i,a]=He(o,i,a,l,h),n=n/2,i+=l,a+=h}return[e,i,a]}f(At,"tileIdToZxy");var Ze=(a=>(a[a.Unknown=0]="Unknown",a[a.None=1]="None",a[a.Gzip=2]="Gzip",a[a.Brotli=3]="Brotli",a[a.Zstd=4]="Zstd",a))(Ze||{});function ue(r,e){return m(this,null,function*(){if(e===1||e===0)return r;if(e===2){if(typeof globalThis.DecompressionStream=="undefined")return Be(new Uint8Array(r));let t=new Response(r).body;if(!t)throw new Error("Failed to read response stream");let n=t.pipeThrough(new globalThis.DecompressionStream("gzip"));return new Response(n).arrayBuffer()}throw new Error("Compression method not supported")})}f(ue,"defaultDecompress");var ae=(o=>(o[o.Unknown=0]="Unknown",o[o.Mvt=1]="Mvt",o[o.Png=2]="Png",o[o.Jpeg=3]="Jpeg",o[o.Webp=4]="Webp",o[o.Avif=5]="Avif",o[o.Mlt=6]="Mlt",o))(ae||{});function Oe(r){return r===1?".mvt":r===2?".png":r===3?".jpg":r===4?".webp":r===5?".avif":r===6?".mlt":""}f(Oe,"tileTypeExt");var Tt=127;function Fe(r,e){let t=0,n=r.length-1;for(;t<=n;){let i=n+t>>1,a=e-r[i].tileId;if(a>0)t=i+1;else if(a<0)n=i-1;else return r[i]}return n>=0&&(r[n].runLength===0||e-r[n].tileId<r[n].runLength)?r[n]:null}f(Fe,"findTile");var fe=class fe{constructor(e){this.file=e}getKey(){return this.file.name}getBytes(e,t){return m(this,null,function*(){return{data:yield this.file.slice(e,e+t).arrayBuffer()}})}};f(fe,"FileSource");var se=fe,le=class le{constructor(e,t=new Headers){var s,o;this.url=e,this.customHeaders=t,this.mustReload=!1;let n="";"navigator"in globalThis&&(n=(o=(s=globalThis.navigator)==null?void 0:s.userAgent)!=null?o:"");let i=n.indexOf("Windows")>-1,a=/Chrome|Chromium|Edg|OPR|Brave/.test(n);this.chromeWindowsNoCache=!1,i&&a&&(this.chromeWindowsNoCache=!0)}getKey(){return this.url}setHeaders(e){this.customHeaders=e}getBytes(e,t,n,i){return m(this,null,function*(){let a,s;n?s=n:(a=new AbortController,s=a.signal);let o=new Headers(this.customHeaders);o.set("range",`bytes=${e}-${e+t-1}`);let l;this.mustReload?l="reload":this.chromeWindowsNoCache&&(l="no-store");let h=yield fetch(this.url,{signal:s,cache:l,headers:o});if(e===0&&h.status===416){let y=h.headers.get("Content-Range");if(!y||!y.startsWith("bytes */"))throw new Error("Missing content-length on 416 response");let p=+y.substr(8);h=yield fetch(this.url,{signal:s,cache:"reload",headers:{range:`bytes=0-${p-1}`}})}let c=h.headers.get("Etag");if(c!=null&&c.startsWith("W/")&&(c=null),h.status===416||i&&c&&c!==i)throw this.mustReload=!0,new B(`Server returned non-matching ETag ${i} after one retry. Check browser extensions and servers for issues that may affect correct ETag headers.`);if(h.status>=300)throw new Error(`Bad response code: ${h.status}`);let u=h.headers.get("Content-Length");if(h.status===200&&(!u||+u>t))throw a&&a.abort(),new Error("Server returned no content-length header or content-length exceeding request. Check that your storage backend supports HTTP Byte Serving.");return{data:yield h.arrayBuffer(),etag:c||void 0,cacheControl:h.headers.get("Cache-Control")||void 0,expires:h.headers.get("Expires")||void 0}})}};f(le,"FetchSource");var k=le;function b(r,e){let t=r.getUint32(e+4,!0),n=r.getUint32(e+0,!0);return t*Me(2,32)+n}f(b,"getUint64");function $e(r,e){let t=new DataView(r),n=t.getUint8(7);if(n>3)throw new Error(`Archive is spec version ${n} but this library supports up to spec version 3`);return{specVersion:n,rootDirectoryOffset:b(t,8),rootDirectoryLength:b(t,16),jsonMetadataOffset:b(t,24),jsonMetadataLength:b(t,32),leafDirectoryOffset:b(t,40),leafDirectoryLength:b(t,48),tileDataOffset:b(t,56),tileDataLength:b(t,64),numAddressedTiles:b(t,72),numTileEntries:b(t,80),numTileContents:b(t,88),clustered:t.getUint8(96)===1,internalCompression:t.getUint8(97),tileCompression:t.getUint8(98),tileType:t.getUint8(99),minZoom:t.getUint8(100),maxZoom:t.getUint8(101),minLon:t.getInt32(102,!0)/1e7,minLat:t.getInt32(106,!0)/1e7,maxLon:t.getInt32(110,!0)/1e7,maxLat:t.getInt32(114,!0)/1e7,centerZoom:t.getUint8(118),centerLon:t.getInt32(119,!0)/1e7,centerLat:t.getInt32(123,!0)/1e7,etag:e}}f($e,"bytesToHeader");function Ve(r){let e={buf:new Uint8Array(r),pos:0},t=R(e),n=[],i=0;for(let a=0;a<t;a++){let s=R(e);n.push({tileId:i+s,offset:0,length:0,runLength:1}),i+=s}for(let a=0;a<t;a++)n[a].runLength=R(e);for(let a=0;a<t;a++)n[a].length=R(e);for(let a=0;a<t;a++){let s=R(e);s===0&&a>0?n[a].offset=n[a-1].offset+n[a-1].length:n[a].offset=s-1}return n}f(Ve,"deserializeIndex");var he=class he extends Error{};f(he,"EtagMismatch");var B=he;function ke(r,e){return m(this,null,function*(){let t=yield r.getBytes(0,16384);if(new DataView(t.data).getUint16(0,!0)!==19792)throw new Error("Wrong magic number for PMTiles archive");let i=t.data.slice(0,Tt),a=$e(i,t.etag),s=t.data.slice(a.rootDirectoryOffset,a.rootDirectoryOffset+a.rootDirectoryLength),o=`${r.getKey()}|${a.etag||""}|${a.rootDirectoryOffset}|${a.rootDirectoryLength}`,l=Ve(yield e(s,a.internalCompression));return[a,[o,l.length,l]]})}f(ke,"getHeaderAndRoot");function Ke(r,e,t,n,i){return m(this,null,function*(){let a=yield r.getBytes(t,n,void 0,i.etag),s=yield e(a.data,i.internalCompression),o=Ve(s);if(o.length===0)throw new Error("Empty directory is invalid");return o})}f(Ke,"getDirectory");var ce=class ce{constructor(e=100,t=!0,n=ue){this.cache=new Map,this.maxCacheEntries=e,this.counter=1,this.decompress=n}getHeader(e){return m(this,null,function*(){let t=e.getKey(),n=this.cache.get(t);if(n)return n.lastUsed=this.counter++,n.data;let i=yield ke(e,this.decompress);return i[1]&&this.cache.set(i[1][0],{lastUsed:this.counter++,data:i[1][2]}),this.cache.set(t,{lastUsed:this.counter++,data:i[0]}),this.prune(),i[0]})}getDirectory(e,t,n,i){return m(this,null,function*(){let a=`${e.getKey()}|${i.etag||""}|${t}|${n}`,s=this.cache.get(a);if(s)return s.lastUsed=this.counter++,s.data;let o=yield Ke(e,this.decompress,t,n,i);return this.cache.set(a,{lastUsed:this.counter++,data:o}),this.prune(),o})}prune(){if(this.cache.size>this.maxCacheEntries){let e=1/0,t;this.cache.forEach((n,i)=>{n.lastUsed<e&&(e=n.lastUsed,t=i)}),t&&this.cache.delete(t)}}invalidate(e){return m(this,null,function*(){this.cache.delete(e.getKey())})}};f(ce,"ResolvedValueCache");var oe=ce,ve=class ve{constructor(e=100,t=!0,n=ue){this.cache=new Map,this.invalidations=new Map,this.maxCacheEntries=e,this.counter=1,this.decompress=n}getHeader(e){return m(this,null,function*(){let t=e.getKey(),n=this.cache.get(t);if(n)return n.lastUsed=this.counter++,yield n.data;let i=new Promise((a,s)=>{ke(e,this.decompress).then(o=>{o[1]&&this.cache.set(o[1][0],{lastUsed:this.counter++,data:Promise.resolve(o[1][2])}),a(o[0]),this.prune()}).catch(o=>{s(o)})});return this.cache.set(t,{lastUsed:this.counter++,data:i}),i})}getDirectory(e,t,n,i){return m(this,null,function*(){let a=`${e.getKey()}|${i.etag||""}|${t}|${n}`,s=this.cache.get(a);if(s)return s.lastUsed=this.counter++,yield s.data;let o=new Promise((l,h)=>{Ke(e,this.decompress,t,n,i).then(c=>{l(c),this.prune()}).catch(c=>{h(c)})});return this.cache.set(a,{lastUsed:this.counter++,data:o}),o})}prune(){if(this.cache.size>=this.maxCacheEntries){let e=1/0,t;this.cache.forEach((n,i)=>{n.lastUsed<e&&(e=n.lastUsed,t=i)}),t&&this.cache.delete(t)}}invalidate(e){return m(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((i,a)=>{this.getHeader(e).then(s=>{i(),this.invalidations.delete(t)}).catch(s=>{a(s)})});this.invalidations.set(t,n)})}};f(ve,"SharedPromiseCache");var K=ve,ge=class ge{constructor(e,t,n){typeof e=="string"?this.source=new k(e):this.source=e,n?this.decompress=n:this.decompress=ue,t?this.cache=t:this.cache=new K}getHeader(){return m(this,null,function*(){return yield this.cache.getHeader(this.source)})}getZxyAttempt(e,t,n,i){return m(this,null,function*(){let a=Ie(e,t,n),s=yield this.cache.getHeader(this.source);if(e<s.minZoom||e>s.maxZoom)return;let o=s.rootDirectoryOffset,l=s.rootDirectoryLength;for(let h=0;h<=3;h++){let c=yield this.cache.getDirectory(this.source,o,l,s),u=Fe(c,a);if(u){if(u.runLength>0){let v=yield this.source.getBytes(s.tileDataOffset+u.offset,u.length,i,s.etag);return{data:yield this.decompress(v.data,s.tileCompression),cacheControl:v.cacheControl,expires:v.expires}}o=s.leafDirectoryOffset+u.offset,l=u.length}else return}throw new Error("Maximum directory depth exceeded")})}getZxy(e,t,n,i){return m(this,null,function*(){try{return yield this.getZxyAttempt(e,t,n,i)}catch(a){if(a instanceof B)return this.cache.invalidate(this.source),yield this.getZxyAttempt(e,t,n,i);throw a}})}getMetadataAttempt(){return m(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),i=new TextDecoder("utf-8");return JSON.parse(i.decode(n))})}getMetadata(){return m(this,null,function*(){try{return yield this.getMetadataAttempt()}catch(e){if(e instanceof B)return this.cache.invalidate(this.source),yield this.getMetadataAttempt();throw e}})}getTileJson(e){return m(this,null,function*(){let t=yield this.getHeader(),n=yield this.getMetadata(),i=Oe(t.tileType);return{tilejson:"3.0.0",scheme:"xyz",tiles:[`${e}/{z}/{x}/{y}${i}`],vector_layers:n.vector_layers,attribution:n.attribution,description:n.description,name:n.name,version:n.version,bounds:[t.minLon,t.minLat,t.maxLon,t.maxLat],center:[t.centerLon,t.centerLat,t.centerZoom],minzoom:t.minZoom,maxzoom:t.maxZoom}})}};f(ge,"PMTiles");var P=ge;return et(Dt);})();
|
|
//# sourceMappingURL=pmtiles.js.map
|