@seed-ship/mcp-ui-solid 3.0.5 → 4.0.0
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/CHANGELOG.md +115 -0
- package/README.md +253 -280
- package/dist/components/ChartJSRenderer.cjs +37 -15
- package/dist/components/ChartJSRenderer.cjs.map +1 -1
- package/dist/components/ChartJSRenderer.d.ts.map +1 -1
- package/dist/components/ChartJSRenderer.js +37 -15
- package/dist/components/ChartJSRenderer.js.map +1 -1
- package/dist/components/DataPreviewSection.cjs +172 -0
- package/dist/components/DataPreviewSection.cjs.map +1 -0
- package/dist/components/DataPreviewSection.d.ts +19 -0
- package/dist/components/DataPreviewSection.d.ts.map +1 -0
- package/dist/components/DataPreviewSection.js +172 -0
- package/dist/components/DataPreviewSection.js.map +1 -0
- package/dist/components/MapRenderer.cjs +168 -26
- package/dist/components/MapRenderer.cjs.map +1 -1
- package/dist/components/MapRenderer.d.ts +2 -2
- package/dist/components/MapRenderer.d.ts.map +1 -1
- package/dist/components/MapRenderer.js +169 -27
- package/dist/components/MapRenderer.js.map +1 -1
- package/dist/components/ScratchpadPanel.cjs +74 -0
- package/dist/components/ScratchpadPanel.cjs.map +1 -1
- package/dist/components/ScratchpadPanel.d.ts.map +1 -1
- package/dist/components/ScratchpadPanel.js +75 -1
- package/dist/components/ScratchpadPanel.js.map +1 -1
- package/dist/components/VerifiedText.cjs +166 -0
- package/dist/components/VerifiedText.cjs.map +1 -0
- package/dist/components/VerifiedText.d.ts +22 -0
- package/dist/components/VerifiedText.d.ts.map +1 -0
- package/dist/components/VerifiedText.js +166 -0
- package/dist/components/VerifiedText.js.map +1 -0
- package/dist/components/index.d.ts +4 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components.cjs +4 -0
- package/dist/components.cjs.map +1 -1
- package/dist/components.d.cts +4 -0
- package/dist/components.d.ts +4 -0
- package/dist/components.js +4 -0
- package/dist/components.js.map +1 -1
- package/dist/hooks/index.d.ts +2 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/useDataValidator.cjs +31 -0
- package/dist/hooks/useDataValidator.cjs.map +1 -0
- package/dist/hooks/useDataValidator.d.ts +42 -0
- package/dist/hooks/useDataValidator.d.ts.map +1 -0
- package/dist/hooks/useDataValidator.js +31 -0
- package/dist/hooks/useDataValidator.js.map +1 -0
- package/dist/hooks.cjs +2 -0
- package/dist/hooks.cjs.map +1 -1
- package/dist/hooks.d.cts +2 -0
- package/dist/hooks.d.ts +2 -0
- package/dist/hooks.js +2 -0
- package/dist/hooks.js.map +1 -1
- package/dist/index.cjs +8 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +9 -5
- package/dist/index.d.ts +9 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/dist/node_modules/.pnpm/@mapbox_point-geometry@1.1.0/node_modules/@mapbox/point-geometry/index.cjs +290 -0
- package/dist/node_modules/.pnpm/@mapbox_point-geometry@1.1.0/node_modules/@mapbox/point-geometry/index.cjs.map +1 -0
- package/dist/node_modules/.pnpm/@mapbox_point-geometry@1.1.0/node_modules/@mapbox/point-geometry/index.js +291 -0
- package/dist/node_modules/.pnpm/@mapbox_point-geometry@1.1.0/node_modules/@mapbox/point-geometry/index.js.map +1 -0
- package/dist/node_modules/.pnpm/@mapbox_vector-tile@2.0.4/node_modules/@mapbox/vector-tile/index.cjs +243 -0
- package/dist/node_modules/.pnpm/@mapbox_vector-tile@2.0.4/node_modules/@mapbox/vector-tile/index.cjs.map +1 -0
- package/dist/node_modules/.pnpm/@mapbox_vector-tile@2.0.4/node_modules/@mapbox/vector-tile/index.js +243 -0
- package/dist/node_modules/.pnpm/@mapbox_vector-tile@2.0.4/node_modules/@mapbox/vector-tile/index.js.map +1 -0
- package/dist/node_modules/.pnpm/color2k@2.0.3/node_modules/color2k/dist/index.exports.import.es.cjs +137 -0
- package/dist/node_modules/.pnpm/color2k@2.0.3/node_modules/color2k/dist/index.exports.import.es.cjs.map +1 -0
- package/dist/node_modules/.pnpm/color2k@2.0.3/node_modules/color2k/dist/index.exports.import.es.js +137 -0
- package/dist/node_modules/.pnpm/color2k@2.0.3/node_modules/color2k/dist/index.exports.import.es.js.map +1 -0
- package/dist/node_modules/.pnpm/pbf@4.0.1/node_modules/pbf/index.cjs +686 -0
- package/dist/node_modules/.pnpm/pbf@4.0.1/node_modules/pbf/index.cjs.map +1 -0
- package/dist/node_modules/.pnpm/pbf@4.0.1/node_modules/pbf/index.js +687 -0
- package/dist/node_modules/.pnpm/pbf@4.0.1/node_modules/pbf/index.js.map +1 -0
- package/dist/node_modules/.pnpm/pmtiles@3.2.1/node_modules/pmtiles/dist/index.cjs +1366 -0
- package/dist/node_modules/.pnpm/pmtiles@3.2.1/node_modules/pmtiles/dist/index.cjs.map +1 -0
- package/dist/node_modules/.pnpm/pmtiles@3.2.1/node_modules/pmtiles/dist/index.js +1366 -0
- package/dist/node_modules/.pnpm/pmtiles@3.2.1/node_modules/pmtiles/dist/index.js.map +1 -0
- package/dist/node_modules/.pnpm/potpack@1.0.2/node_modules/potpack/index.cjs +54 -0
- package/dist/node_modules/.pnpm/potpack@1.0.2/node_modules/potpack/index.cjs.map +1 -0
- package/dist/node_modules/.pnpm/potpack@1.0.2/node_modules/potpack/index.js +55 -0
- package/dist/node_modules/.pnpm/potpack@1.0.2/node_modules/potpack/index.js.map +1 -0
- package/dist/node_modules/.pnpm/protomaps-leaflet@4.1.1/node_modules/protomaps-leaflet/dist/esm/index.cjs +1256 -0
- package/dist/node_modules/.pnpm/protomaps-leaflet@4.1.1/node_modules/protomaps-leaflet/dist/esm/index.cjs.map +1 -0
- package/dist/node_modules/.pnpm/protomaps-leaflet@4.1.1/node_modules/protomaps-leaflet/dist/esm/index.js +1256 -0
- package/dist/node_modules/.pnpm/protomaps-leaflet@4.1.1/node_modules/protomaps-leaflet/dist/esm/index.js.map +1 -0
- package/dist/node_modules/.pnpm/quickselect@2.0.0/node_modules/quickselect/index.cjs +47 -0
- package/dist/node_modules/.pnpm/quickselect@2.0.0/node_modules/quickselect/index.cjs.map +1 -0
- package/dist/node_modules/.pnpm/quickselect@2.0.0/node_modules/quickselect/index.js +48 -0
- package/dist/node_modules/.pnpm/quickselect@2.0.0/node_modules/quickselect/index.js.map +1 -0
- package/dist/node_modules/.pnpm/rbush@3.0.1/node_modules/rbush/index.cjs +378 -0
- package/dist/node_modules/.pnpm/rbush@3.0.1/node_modules/rbush/index.cjs.map +1 -0
- package/dist/node_modules/.pnpm/rbush@3.0.1/node_modules/rbush/index.js +379 -0
- package/dist/node_modules/.pnpm/rbush@3.0.1/node_modules/rbush/index.js.map +1 -0
- package/dist/services/data-validator.cjs +85 -0
- package/dist/services/data-validator.cjs.map +1 -0
- package/dist/services/data-validator.d.ts +28 -0
- package/dist/services/data-validator.d.ts.map +1 -0
- package/dist/services/data-validator.js +85 -0
- package/dist/services/data-validator.js.map +1 -0
- package/dist/services/index.d.ts +1 -0
- package/dist/services/index.d.ts.map +1 -1
- package/dist/types/chat-bus.d.ts +88 -1
- package/dist/types/chat-bus.d.ts.map +1 -1
- package/dist/types/index.d.ts +135 -6
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types.d.cts +135 -6
- package/dist/types.d.ts +135 -6
- package/package.json +5 -1
- package/src/components/ChartJSRenderer.tsx +35 -13
- package/src/components/DataPreviewSection.tsx +206 -0
- package/src/components/MapRenderer.test.tsx +94 -5
- package/src/components/MapRenderer.tsx +246 -45
- package/src/components/ScratchpadPanel.tsx +10 -2
- package/src/components/VerifiedText.tsx +187 -0
- package/src/components/index.ts +7 -0
- package/src/hooks/index.ts +7 -0
- package/src/hooks/useDataValidator.ts +68 -0
- package/src/index.ts +26 -1
- package/src/services/data-validator.test.ts +151 -0
- package/src/services/data-validator.ts +149 -0
- package/src/services/index.ts +2 -0
- package/src/types/chat-bus.ts +98 -1
- package/src/types/index.ts +145 -6
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../../../../../../node_modules/.pnpm/pmtiles@3.2.1/node_modules/pmtiles/dist/index.js"],"sourcesContent":["var __pow = Math.pow;\nvar __async = (__this, __arguments, generator) => {\n return new Promise((resolve, reject) => {\n var fulfilled = (value) => {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n };\n var rejected = (value) => {\n try {\n step(generator.throw(value));\n } catch (e) {\n reject(e);\n }\n };\n var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);\n step((generator = generator.apply(__this, __arguments)).next());\n });\n};\n\n// node_modules/fflate/esm/browser.js\nvar u8 = Uint8Array;\nvar u16 = Uint16Array;\nvar i32 = Int32Array;\nvar fleb = new u8([\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 1,\n 1,\n 1,\n 2,\n 2,\n 2,\n 2,\n 3,\n 3,\n 3,\n 3,\n 4,\n 4,\n 4,\n 4,\n 5,\n 5,\n 5,\n 5,\n 0,\n /* unused */\n 0,\n 0,\n /* impossible */\n 0\n]);\nvar fdeb = new u8([\n 0,\n 0,\n 0,\n 0,\n 1,\n 1,\n 2,\n 2,\n 3,\n 3,\n 4,\n 4,\n 5,\n 5,\n 6,\n 6,\n 7,\n 7,\n 8,\n 8,\n 9,\n 9,\n 10,\n 10,\n 11,\n 11,\n 12,\n 12,\n 13,\n 13,\n /* unused */\n 0,\n 0\n]);\nvar clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\nvar freb = function(eb, start) {\n var b = new u16(31);\n for (var i = 0; i < 31; ++i) {\n b[i] = start += 1 << eb[i - 1];\n }\n var r = new i32(b[30]);\n for (var i = 1; i < 30; ++i) {\n for (var j = b[i]; j < b[i + 1]; ++j) {\n r[j] = j - b[i] << 5 | i;\n }\n }\n return { b, r };\n};\nvar _a = freb(fleb, 2);\nvar fl = _a.b;\nvar revfl = _a.r;\nfl[28] = 258, revfl[258] = 28;\nvar _b = freb(fdeb, 0);\nvar fd = _b.b;\nvar revfd = _b.r;\nvar rev = new u16(32768);\nfor (i = 0; i < 32768; ++i) {\n x = (i & 43690) >> 1 | (i & 21845) << 1;\n x = (x & 52428) >> 2 | (x & 13107) << 2;\n x = (x & 61680) >> 4 | (x & 3855) << 4;\n rev[i] = ((x & 65280) >> 8 | (x & 255) << 8) >> 1;\n}\nvar x;\nvar i;\nvar hMap = function(cd, mb, r) {\n var s = cd.length;\n var i = 0;\n var l = new u16(mb);\n for (; i < s; ++i) {\n if (cd[i])\n ++l[cd[i] - 1];\n }\n var le = new u16(mb);\n for (i = 1; i < mb; ++i) {\n le[i] = le[i - 1] + l[i - 1] << 1;\n }\n var co;\n if (r) {\n co = new u16(1 << mb);\n var rvb = 15 - mb;\n for (i = 0; i < s; ++i) {\n if (cd[i]) {\n var sv = i << 4 | cd[i];\n var r_1 = mb - cd[i];\n var v = le[cd[i] - 1]++ << r_1;\n for (var m = v | (1 << r_1) - 1; v <= m; ++v) {\n co[rev[v] >> rvb] = sv;\n }\n }\n }\n } else {\n co = new u16(s);\n for (i = 0; i < s; ++i) {\n if (cd[i]) {\n co[i] = rev[le[cd[i] - 1]++] >> 15 - cd[i];\n }\n }\n }\n return co;\n};\nvar flt = new u8(288);\nfor (i = 0; i < 144; ++i)\n flt[i] = 8;\nvar i;\nfor (i = 144; i < 256; ++i)\n flt[i] = 9;\nvar i;\nfor (i = 256; i < 280; ++i)\n flt[i] = 7;\nvar i;\nfor (i = 280; i < 288; ++i)\n flt[i] = 8;\nvar i;\nvar fdt = new u8(32);\nfor (i = 0; i < 32; ++i)\n fdt[i] = 5;\nvar i;\nvar flrm = /* @__PURE__ */ hMap(flt, 9, 1);\nvar fdrm = /* @__PURE__ */ hMap(fdt, 5, 1);\nvar max = function(a) {\n var m = a[0];\n for (var i = 1; i < a.length; ++i) {\n if (a[i] > m)\n m = a[i];\n }\n return m;\n};\nvar bits = function(d, p, m) {\n var o = p / 8 | 0;\n return (d[o] | d[o + 1] << 8) >> (p & 7) & m;\n};\nvar bits16 = function(d, p) {\n var o = p / 8 | 0;\n return (d[o] | d[o + 1] << 8 | d[o + 2] << 16) >> (p & 7);\n};\nvar shft = function(p) {\n return (p + 7) / 8 | 0;\n};\nvar slc = function(v, s, e) {\n if (s == null || s < 0)\n s = 0;\n if (e == null || e > v.length)\n e = v.length;\n var n = new u8(e - s);\n n.set(v.subarray(s, e));\n return n;\n};\nvar ec = [\n \"unexpected EOF\",\n \"invalid block type\",\n \"invalid length/literal\",\n \"invalid distance\",\n \"stream finished\",\n \"no stream handler\",\n ,\n \"no callback\",\n \"invalid UTF-8 data\",\n \"extra field too long\",\n \"date not in range 1980-2099\",\n \"filename too long\",\n \"stream finishing\",\n \"invalid zip data\"\n // determined by unknown compression method\n];\nvar err = function(ind, msg, nt) {\n var e = new Error(msg || ec[ind]);\n e.code = ind;\n if (Error.captureStackTrace)\n Error.captureStackTrace(e, err);\n if (!nt)\n throw e;\n return e;\n};\nvar inflt = function(dat, st, buf, dict) {\n var sl = dat.length, dl = dict ? dict.length : 0;\n if (!sl || st.f && !st.l)\n return buf || new u8(0);\n var noBuf = !buf || st.i != 2;\n var noSt = st.i;\n if (!buf)\n buf = new u8(sl * 3);\n var cbuf = function(l2) {\n var bl = buf.length;\n if (l2 > bl) {\n var nbuf = new u8(Math.max(bl * 2, l2));\n nbuf.set(buf);\n buf = nbuf;\n }\n };\n var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n;\n var tbts = sl * 8;\n do {\n if (!lm) {\n final = bits(dat, pos, 1);\n var type = bits(dat, pos + 1, 3);\n pos += 3;\n if (!type) {\n var s = shft(pos) + 4, l = dat[s - 4] | dat[s - 3] << 8, t = s + l;\n if (t > sl) {\n if (noSt)\n err(0);\n break;\n }\n if (noBuf)\n cbuf(bt + l);\n buf.set(dat.subarray(s, t), bt);\n st.b = bt += l, st.p = pos = t * 8, st.f = final;\n continue;\n } else if (type == 1)\n lm = flrm, dm = fdrm, lbt = 9, dbt = 5;\n else if (type == 2) {\n var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4;\n var tl = hLit + bits(dat, pos + 5, 31) + 1;\n pos += 14;\n var ldt = new u8(tl);\n var clt = new u8(19);\n for (var i = 0; i < hcLen; ++i) {\n clt[clim[i]] = bits(dat, pos + i * 3, 7);\n }\n pos += hcLen * 3;\n var clb = max(clt), clbmsk = (1 << clb) - 1;\n var clm = hMap(clt, clb, 1);\n for (var i = 0; i < tl; ) {\n var r = clm[bits(dat, pos, clbmsk)];\n pos += r & 15;\n var s = r >> 4;\n if (s < 16) {\n ldt[i++] = s;\n } else {\n var c = 0, n = 0;\n if (s == 16)\n n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1];\n else if (s == 17)\n n = 3 + bits(dat, pos, 7), pos += 3;\n else if (s == 18)\n n = 11 + bits(dat, pos, 127), pos += 7;\n while (n--)\n ldt[i++] = c;\n }\n }\n var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit);\n lbt = max(lt);\n dbt = max(dt);\n lm = hMap(lt, lbt, 1);\n dm = hMap(dt, dbt, 1);\n } else\n err(1);\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n }\n if (noBuf)\n cbuf(bt + 131072);\n var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;\n var lpos = pos;\n for (; ; lpos = pos) {\n var c = lm[bits16(dat, pos) & lms], sym = c >> 4;\n pos += c & 15;\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (!c)\n err(2);\n if (sym < 256)\n buf[bt++] = sym;\n else if (sym == 256) {\n lpos = pos, lm = null;\n break;\n } else {\n var add = sym - 254;\n if (sym > 264) {\n var i = sym - 257, b = fleb[i];\n add = bits(dat, pos, (1 << b) - 1) + fl[i];\n pos += b;\n }\n var d = dm[bits16(dat, pos) & dms], dsym = d >> 4;\n if (!d)\n err(3);\n pos += d & 15;\n var dt = fd[dsym];\n if (dsym > 3) {\n var b = fdeb[dsym];\n dt += bits16(dat, pos) & (1 << b) - 1, pos += b;\n }\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (noBuf)\n cbuf(bt + 131072);\n var end = bt + add;\n if (bt < dt) {\n var shift2 = dl - dt, dend = Math.min(dt, end);\n if (shift2 + bt < 0)\n err(3);\n for (; bt < dend; ++bt)\n buf[bt] = dict[shift2 + bt];\n }\n for (; bt < end; bt += 4) {\n buf[bt] = buf[bt - dt];\n buf[bt + 1] = buf[bt + 1 - dt];\n buf[bt + 2] = buf[bt + 2 - dt];\n buf[bt + 3] = buf[bt + 3 - dt];\n }\n bt = end;\n }\n }\n st.l = lm, st.p = lpos, st.b = bt, st.f = final;\n if (lm)\n final = 1, st.m = lbt, st.d = dm, st.n = dbt;\n } while (!final);\n return bt == buf.length ? buf : slc(buf, 0, bt);\n};\nvar et = /* @__PURE__ */ new u8(0);\nvar gzs = function(d) {\n if (d[0] != 31 || d[1] != 139 || d[2] != 8)\n err(6, \"invalid gzip data\");\n var flg = d[3];\n var st = 10;\n if (flg & 4)\n st += (d[10] | d[11] << 8) + 2;\n for (var zs = (flg >> 3 & 1) + (flg >> 4 & 1); zs > 0; zs -= !d[st++])\n ;\n return st + (flg & 2);\n};\nvar gzl = function(d) {\n var l = d.length;\n return (d[l - 4] | d[l - 3] << 8 | d[l - 2] << 16 | d[l - 1] << 24) >>> 0;\n};\nvar zls = function(d, dict) {\n if ((d[0] & 15) != 8 || d[0] >> 4 > 7 || (d[0] << 8 | d[1]) % 31)\n err(6, \"invalid zlib data\");\n if ((d[1] >> 5 & 1) == +!dict)\n err(6, \"invalid zlib data: \" + (d[1] & 32 ? \"need\" : \"unexpected\") + \" dictionary\");\n return (d[1] >> 3 & 4) + 2;\n};\nfunction inflateSync(data, opts) {\n return inflt(data, { i: 2 }, opts && opts.out, opts && opts.dictionary);\n}\nfunction gunzipSync(data, opts) {\n var st = gzs(data);\n if (st + 8 > data.length)\n err(6, \"invalid gzip data\");\n return inflt(data.subarray(st, -8), { i: 2 }, opts && opts.out || new u8(gzl(data)), opts && opts.dictionary);\n}\nfunction unzlibSync(data, opts) {\n return inflt(data.subarray(zls(data, opts && opts.dictionary), -4), { i: 2 }, opts && opts.out, opts && opts.dictionary);\n}\nfunction decompressSync(data, opts) {\n return data[0] == 31 && data[1] == 139 && data[2] == 8 ? gunzipSync(data, opts) : (data[0] & 15) != 8 || data[0] >> 4 > 7 || (data[0] << 8 | data[1]) % 31 ? inflateSync(data, opts) : unzlibSync(data, opts);\n}\nvar td = typeof TextDecoder != \"undefined\" && /* @__PURE__ */ new TextDecoder();\nvar tds = 0;\ntry {\n td.decode(et, { stream: true });\n tds = 1;\n} catch (e) {\n}\n\n// v2.ts\nvar shift = (n, shift2) => {\n return n * __pow(2, shift2);\n};\nvar unshift = (n, shift2) => {\n return Math.floor(n / __pow(2, shift2));\n};\nvar getUint24 = (view, pos) => {\n return shift(view.getUint16(pos + 1, true), 8) + view.getUint8(pos);\n};\nvar getUint48 = (view, pos) => {\n return shift(view.getUint32(pos + 2, true), 16) + view.getUint16(pos, true);\n};\nvar compare = (tz, tx, ty, view, i) => {\n if (tz !== view.getUint8(i))\n return tz - view.getUint8(i);\n const x = getUint24(view, i + 1);\n if (tx !== x)\n return tx - x;\n const y = getUint24(view, i + 4);\n if (ty !== y)\n return ty - y;\n return 0;\n};\nvar queryLeafdir = (view, z, x, y) => {\n const offsetLen = queryView(view, z | 128, x, y);\n if (offsetLen) {\n return {\n z,\n x,\n y,\n offset: offsetLen[0],\n length: offsetLen[1],\n isDir: true\n };\n }\n return null;\n};\nvar queryTile = (view, z, x, y) => {\n const offsetLen = queryView(view, z, x, y);\n if (offsetLen) {\n return {\n z,\n x,\n y,\n offset: offsetLen[0],\n length: offsetLen[1],\n isDir: false\n };\n }\n return null;\n};\nvar queryView = (view, z, x, y) => {\n let m = 0;\n let n = view.byteLength / 17 - 1;\n while (m <= n) {\n const k = n + m >> 1;\n const cmp = compare(z, x, y, view, k * 17);\n if (cmp > 0) {\n m = k + 1;\n } else if (cmp < 0) {\n n = k - 1;\n } else {\n return [getUint48(view, k * 17 + 7), view.getUint32(k * 17 + 13, true)];\n }\n }\n return null;\n};\nvar entrySort = (a, b) => {\n if (a.isDir && !b.isDir) {\n return 1;\n }\n if (!a.isDir && b.isDir) {\n return -1;\n }\n if (a.z !== b.z) {\n return a.z - b.z;\n }\n if (a.x !== b.x) {\n return a.x - b.x;\n }\n return a.y - b.y;\n};\nvar parseEntry = (dataview, i) => {\n const zRaw = dataview.getUint8(i * 17);\n const z = zRaw & 127;\n return {\n z,\n x: getUint24(dataview, i * 17 + 1),\n y: getUint24(dataview, i * 17 + 4),\n offset: getUint48(dataview, i * 17 + 7),\n length: dataview.getUint32(i * 17 + 13, true),\n isDir: zRaw >> 7 === 1\n };\n};\nvar sortDir = (a) => {\n const entries = [];\n const view = new DataView(a);\n for (let i = 0; i < view.byteLength / 17; i++) {\n entries.push(parseEntry(view, i));\n }\n return createDirectory(entries);\n};\nvar createDirectory = (entries) => {\n entries.sort(entrySort);\n const buffer = new ArrayBuffer(17 * entries.length);\n const arr = new Uint8Array(buffer);\n for (let i = 0; i < entries.length; i++) {\n const entry = entries[i];\n let z = entry.z;\n if (entry.isDir)\n z = z | 128;\n arr[i * 17] = z;\n arr[i * 17 + 1] = entry.x & 255;\n arr[i * 17 + 2] = entry.x >> 8 & 255;\n arr[i * 17 + 3] = entry.x >> 16 & 255;\n arr[i * 17 + 4] = entry.y & 255;\n arr[i * 17 + 5] = entry.y >> 8 & 255;\n arr[i * 17 + 6] = entry.y >> 16 & 255;\n arr[i * 17 + 7] = entry.offset & 255;\n arr[i * 17 + 8] = unshift(entry.offset, 8) & 255;\n arr[i * 17 + 9] = unshift(entry.offset, 16) & 255;\n arr[i * 17 + 10] = unshift(entry.offset, 24) & 255;\n arr[i * 17 + 11] = unshift(entry.offset, 32) & 255;\n arr[i * 17 + 12] = unshift(entry.offset, 48) & 255;\n arr[i * 17 + 13] = entry.length & 255;\n arr[i * 17 + 14] = entry.length >> 8 & 255;\n arr[i * 17 + 15] = entry.length >> 16 & 255;\n arr[i * 17 + 16] = entry.length >> 24 & 255;\n }\n return buffer;\n};\nvar deriveLeaf = (view, tile) => {\n if (view.byteLength < 17)\n return null;\n const numEntries = view.byteLength / 17;\n const entry = parseEntry(view, numEntries - 1);\n if (entry.isDir) {\n const leafLevel = entry.z;\n const levelDiff = tile.z - leafLevel;\n const leafX = Math.trunc(tile.x / (1 << levelDiff));\n const leafY = Math.trunc(tile.y / (1 << levelDiff));\n return { z: leafLevel, x: leafX, y: leafY };\n }\n return null;\n};\nfunction getHeader(source) {\n return __async(this, null, function* () {\n const resp = yield source.getBytes(0, 512e3);\n const dataview = new DataView(resp.data);\n const jsonSize = dataview.getUint32(4, true);\n const rootEntries = dataview.getUint16(8, true);\n const dec = new TextDecoder(\"utf-8\");\n const jsonMetadata = JSON.parse(\n dec.decode(new DataView(resp.data, 10, jsonSize))\n );\n let tileCompression = 0 /* Unknown */;\n if (jsonMetadata.compression === \"gzip\") {\n tileCompression = 2 /* Gzip */;\n }\n let minzoom = 0;\n if (\"minzoom\" in jsonMetadata) {\n minzoom = +jsonMetadata.minzoom;\n }\n let maxzoom = 0;\n if (\"maxzoom\" in jsonMetadata) {\n maxzoom = +jsonMetadata.maxzoom;\n }\n let centerLon = 0;\n let centerLat = 0;\n let centerZoom = 0;\n let minLon = -180;\n let minLat = -85;\n let maxLon = 180;\n let maxLat = 85;\n if (jsonMetadata.bounds) {\n const split = jsonMetadata.bounds.split(\",\");\n minLon = +split[0];\n minLat = +split[1];\n maxLon = +split[2];\n maxLat = +split[3];\n }\n if (jsonMetadata.center) {\n const split = jsonMetadata.center.split(\",\");\n centerLon = +split[0];\n centerLat = +split[1];\n centerZoom = +split[2];\n }\n const header = {\n specVersion: dataview.getUint16(2, true),\n rootDirectoryOffset: 10 + jsonSize,\n rootDirectoryLength: rootEntries * 17,\n jsonMetadataOffset: 10,\n jsonMetadataLength: jsonSize,\n leafDirectoryOffset: 0,\n leafDirectoryLength: void 0,\n tileDataOffset: 0,\n tileDataLength: void 0,\n numAddressedTiles: 0,\n numTileEntries: 0,\n numTileContents: 0,\n clustered: false,\n internalCompression: 1 /* None */,\n tileCompression,\n tileType: 1 /* Mvt */,\n minZoom: minzoom,\n maxZoom: maxzoom,\n minLon,\n minLat,\n maxLon,\n maxLat,\n centerZoom,\n centerLon,\n centerLat,\n etag: resp.etag\n };\n return header;\n });\n}\nfunction getZxy(header, source, cache, z, x, y, signal) {\n return __async(this, null, function* () {\n let rootDir = yield cache.getArrayBuffer(\n source,\n header.rootDirectoryOffset,\n header.rootDirectoryLength,\n header\n );\n if (header.specVersion === 1) {\n rootDir = sortDir(rootDir);\n }\n const entry = queryTile(new DataView(rootDir), z, x, y);\n if (entry) {\n const resp = yield source.getBytes(entry.offset, entry.length, signal);\n let tileData = resp.data;\n const view = new DataView(tileData);\n if (view.getUint8(0) === 31 && view.getUint8(1) === 139) {\n tileData = decompressSync(new Uint8Array(tileData));\n }\n return {\n data: tileData\n };\n }\n const leafcoords = deriveLeaf(new DataView(rootDir), { z, x, y });\n if (leafcoords) {\n const leafdirEntry = queryLeafdir(\n new DataView(rootDir),\n leafcoords.z,\n leafcoords.x,\n leafcoords.y\n );\n if (leafdirEntry) {\n let leafDir = yield cache.getArrayBuffer(\n source,\n leafdirEntry.offset,\n leafdirEntry.length,\n header\n );\n if (header.specVersion === 1) {\n leafDir = sortDir(leafDir);\n }\n const tileEntry = queryTile(new DataView(leafDir), z, x, y);\n if (tileEntry) {\n const resp = yield source.getBytes(\n tileEntry.offset,\n tileEntry.length,\n signal\n );\n let tileData = resp.data;\n const view = new DataView(tileData);\n if (view.getUint8(0) === 31 && view.getUint8(1) === 139) {\n tileData = decompressSync(new Uint8Array(tileData));\n }\n return {\n data: tileData\n };\n }\n }\n }\n return void 0;\n });\n}\nvar v2_default = {\n getHeader,\n getZxy\n};\n\n// adapters.ts\nvar leafletRasterLayer = (source, options) => {\n let loaded = false;\n let mimeType = \"\";\n const cls = L.GridLayer.extend({\n createTile: (coord, done) => {\n const el = document.createElement(\"img\");\n const controller = new AbortController();\n const signal = controller.signal;\n el.cancel = () => {\n controller.abort();\n };\n if (!loaded) {\n source.getHeader().then((header) => {\n if (header.tileType === 1 /* Mvt */) {\n console.error(\n \"Error: archive contains MVT vector tiles, but leafletRasterLayer is for displaying raster tiles. See https://github.com/protomaps/PMTiles/tree/main/js for details.\"\n );\n } else if (header.tileType === 2) {\n mimeType = \"image/png\";\n } else if (header.tileType === 3) {\n mimeType = \"image/jpeg\";\n } else if (header.tileType === 4) {\n mimeType = \"image/webp\";\n } else if (header.tileType === 5) {\n mimeType = \"image/avif\";\n }\n });\n loaded = true;\n }\n source.getZxy(coord.z, coord.x, coord.y, signal).then((arr) => {\n if (arr) {\n const blob = new Blob([arr.data], { type: mimeType });\n const imageUrl = window.URL.createObjectURL(blob);\n el.src = imageUrl;\n el.cancel = void 0;\n done(void 0, el);\n }\n }).catch((e) => {\n if (e.name !== \"AbortError\") {\n throw e;\n }\n });\n return el;\n },\n _removeTile: function(key) {\n const tile = this._tiles[key];\n if (!tile) {\n return;\n }\n if (tile.el.cancel)\n tile.el.cancel();\n tile.el.width = 0;\n tile.el.height = 0;\n tile.el.deleted = true;\n L.DomUtil.remove(tile.el);\n delete this._tiles[key];\n this.fire(\"tileunload\", {\n tile: tile.el,\n coords: this._keyToTileCoords(key)\n });\n }\n });\n return new cls(options);\n};\nvar v3compat = (v4) => (requestParameters, arg2) => {\n if (arg2 instanceof AbortController) {\n return v4(requestParameters, arg2);\n }\n const abortController = new AbortController();\n v4(requestParameters, abortController).then(\n (result) => {\n return arg2(\n void 0,\n result.data,\n result.cacheControl || \"\",\n result.expires || \"\"\n );\n },\n (err2) => {\n return arg2(err2);\n }\n ).catch((e) => {\n return arg2(e);\n });\n return { cancel: () => abortController.abort() };\n};\nvar Protocol = class {\n /**\n * Initialize the MapLibre PMTiles protocol.\n *\n * * metadata: also load the metadata section of the PMTiles. required for some \"inspect\" functionality\n * and to automatically populate the map attribution. Requires an extra HTTP request.\n */\n constructor(options) {\n /** @hidden */\n this.tilev4 = (params, abortController) => __async(this, null, function* () {\n if (params.type === \"json\") {\n const pmtilesUrl2 = params.url.substr(10);\n let instance2 = this.tiles.get(pmtilesUrl2);\n if (!instance2) {\n instance2 = new PMTiles(pmtilesUrl2);\n this.tiles.set(pmtilesUrl2, instance2);\n }\n if (this.metadata) {\n return {\n data: yield instance2.getTileJson(params.url)\n };\n }\n const h = yield instance2.getHeader();\n return {\n data: {\n tiles: [`${params.url}/{z}/{x}/{y}`],\n minzoom: h.minZoom,\n maxzoom: h.maxZoom,\n bounds: [h.minLon, h.minLat, h.maxLon, h.maxLat]\n }\n };\n }\n const re = new RegExp(/pmtiles:\\/\\/(.+)\\/(\\d+)\\/(\\d+)\\/(\\d+)/);\n const result = params.url.match(re);\n if (!result) {\n throw new Error(\"Invalid PMTiles protocol URL\");\n }\n const pmtilesUrl = result[1];\n let instance = this.tiles.get(pmtilesUrl);\n if (!instance) {\n instance = new PMTiles(pmtilesUrl);\n this.tiles.set(pmtilesUrl, instance);\n }\n const z = result[2];\n const x = result[3];\n const y = result[4];\n const header = yield instance.getHeader();\n const resp = yield instance == null ? void 0 : instance.getZxy(+z, +x, +y, abortController.signal);\n if (resp) {\n return {\n data: new Uint8Array(resp.data),\n cacheControl: resp.cacheControl,\n expires: resp.expires\n };\n }\n if (header.tileType === 1 /* Mvt */) {\n return { data: new Uint8Array() };\n }\n return { data: null };\n });\n this.tile = v3compat(this.tilev4);\n this.tiles = /* @__PURE__ */ new Map();\n this.metadata = (options == null ? void 0 : options.metadata) || false;\n }\n /**\n * Add a {@link PMTiles} instance to the global protocol instance.\n *\n * For remote fetch sources, references in MapLibre styles like pmtiles://http://...\n * will resolve to the same instance if the URLs match.\n */\n add(p) {\n this.tiles.set(p.source.getKey(), p);\n }\n /**\n * Fetch a {@link PMTiles} instance by URL, for remote PMTiles instances.\n */\n get(url) {\n return this.tiles.get(url);\n }\n};\n\n// index.ts\nfunction toNum(low, high) {\n return (high >>> 0) * 4294967296 + (low >>> 0);\n}\nfunction readVarintRemainder(l, p) {\n const buf = p.buf;\n let b = buf[p.pos++];\n let h = (b & 112) >> 4;\n if (b < 128)\n return toNum(l, h);\n b = buf[p.pos++];\n h |= (b & 127) << 3;\n if (b < 128)\n return toNum(l, h);\n b = buf[p.pos++];\n h |= (b & 127) << 10;\n if (b < 128)\n return toNum(l, h);\n b = buf[p.pos++];\n h |= (b & 127) << 17;\n if (b < 128)\n return toNum(l, h);\n b = buf[p.pos++];\n h |= (b & 127) << 24;\n if (b < 128)\n return toNum(l, h);\n b = buf[p.pos++];\n h |= (b & 1) << 31;\n if (b < 128)\n return toNum(l, h);\n throw new Error(\"Expected varint not more than 10 bytes\");\n}\nfunction readVarint(p) {\n const buf = p.buf;\n let b = buf[p.pos++];\n let val = b & 127;\n if (b < 128)\n return val;\n b = buf[p.pos++];\n val |= (b & 127) << 7;\n if (b < 128)\n return val;\n b = buf[p.pos++];\n val |= (b & 127) << 14;\n if (b < 128)\n return val;\n b = buf[p.pos++];\n val |= (b & 127) << 21;\n if (b < 128)\n return val;\n b = buf[p.pos];\n val |= (b & 15) << 28;\n return readVarintRemainder(val, p);\n}\nfunction rotate(n, xy, rx, ry) {\n if (ry === 0) {\n if (rx === 1) {\n xy[0] = n - 1 - xy[0];\n xy[1] = n - 1 - xy[1];\n }\n const t = xy[0];\n xy[0] = xy[1];\n xy[1] = t;\n }\n}\nfunction idOnLevel(z, pos) {\n const n = __pow(2, z);\n let rx = pos;\n let ry = pos;\n let t = pos;\n const xy = [0, 0];\n let s = 1;\n while (s < n) {\n rx = 1 & t / 2;\n ry = 1 & (t ^ rx);\n rotate(s, xy, rx, ry);\n xy[0] += s * rx;\n xy[1] += s * ry;\n t = t / 4;\n s *= 2;\n }\n return [z, xy[0], xy[1]];\n}\nvar tzValues = [\n 0,\n 1,\n 5,\n 21,\n 85,\n 341,\n 1365,\n 5461,\n 21845,\n 87381,\n 349525,\n 1398101,\n 5592405,\n 22369621,\n 89478485,\n 357913941,\n 1431655765,\n 5726623061,\n 22906492245,\n 91625968981,\n 366503875925,\n 1466015503701,\n 5864062014805,\n 23456248059221,\n 93824992236885,\n 375299968947541,\n 1501199875790165\n];\nfunction zxyToTileId(z, x, y) {\n if (z > 26) {\n throw Error(\"Tile zoom level exceeds max safe number limit (26)\");\n }\n if (x > __pow(2, z) - 1 || y > __pow(2, z) - 1) {\n throw Error(\"tile x/y outside zoom level bounds\");\n }\n const acc = tzValues[z];\n const n = __pow(2, z);\n let rx = 0;\n let ry = 0;\n let d = 0;\n const xy = [x, y];\n let s = n / 2;\n while (s > 0) {\n rx = (xy[0] & s) > 0 ? 1 : 0;\n ry = (xy[1] & s) > 0 ? 1 : 0;\n d += s * s * (3 * rx ^ ry);\n rotate(s, xy, rx, ry);\n s = s / 2;\n }\n return acc + d;\n}\nfunction tileIdToZxy(i) {\n let acc = 0;\n const z = 0;\n for (let z2 = 0; z2 < 27; z2++) {\n const numTiles = (1 << z2) * (1 << z2);\n if (acc + numTiles > i) {\n return idOnLevel(z2, i - acc);\n }\n acc += numTiles;\n }\n throw Error(\"Tile zoom level exceeds max safe number limit (26)\");\n}\nvar Compression = /* @__PURE__ */ ((Compression2) => {\n Compression2[Compression2[\"Unknown\"] = 0] = \"Unknown\";\n Compression2[Compression2[\"None\"] = 1] = \"None\";\n Compression2[Compression2[\"Gzip\"] = 2] = \"Gzip\";\n Compression2[Compression2[\"Brotli\"] = 3] = \"Brotli\";\n Compression2[Compression2[\"Zstd\"] = 4] = \"Zstd\";\n return Compression2;\n})(Compression || {});\nfunction defaultDecompress(buf, compression) {\n return __async(this, null, function* () {\n if (compression === 1 /* None */ || compression === 0 /* Unknown */) {\n return buf;\n }\n if (compression === 2 /* Gzip */) {\n if (typeof globalThis.DecompressionStream === \"undefined\") {\n return decompressSync(new Uint8Array(buf));\n }\n const stream = new Response(buf).body;\n if (!stream) {\n throw Error(\"Failed to read response stream\");\n }\n const result = stream.pipeThrough(\n // biome-ignore lint: needed to detect DecompressionStream in browser+node+cloudflare workers\n new globalThis.DecompressionStream(\"gzip\")\n );\n return new Response(result).arrayBuffer();\n }\n throw Error(\"Compression method not supported\");\n });\n}\nvar TileType = /* @__PURE__ */ ((TileType2) => {\n TileType2[TileType2[\"Unknown\"] = 0] = \"Unknown\";\n TileType2[TileType2[\"Mvt\"] = 1] = \"Mvt\";\n TileType2[TileType2[\"Png\"] = 2] = \"Png\";\n TileType2[TileType2[\"Jpeg\"] = 3] = \"Jpeg\";\n TileType2[TileType2[\"Webp\"] = 4] = \"Webp\";\n TileType2[TileType2[\"Avif\"] = 5] = \"Avif\";\n return TileType2;\n})(TileType || {});\nfunction tileTypeExt(t) {\n if (t === 1 /* Mvt */)\n return \".mvt\";\n if (t === 2 /* Png */)\n return \".png\";\n if (t === 3 /* Jpeg */)\n return \".jpg\";\n if (t === 4 /* Webp */)\n return \".webp\";\n if (t === 5 /* Avif */)\n return \".avif\";\n return \"\";\n}\nvar HEADER_SIZE_BYTES = 127;\nfunction findTile(entries, tileId) {\n let m = 0;\n let n = entries.length - 1;\n while (m <= n) {\n const k = n + m >> 1;\n const cmp = tileId - entries[k].tileId;\n if (cmp > 0) {\n m = k + 1;\n } else if (cmp < 0) {\n n = k - 1;\n } else {\n return entries[k];\n }\n }\n if (n >= 0) {\n if (entries[n].runLength === 0) {\n return entries[n];\n }\n if (tileId - entries[n].tileId < entries[n].runLength) {\n return entries[n];\n }\n }\n return null;\n}\nvar FileSource = class {\n constructor(file) {\n this.file = file;\n }\n getKey() {\n return this.file.name;\n }\n getBytes(offset, length) {\n return __async(this, null, function* () {\n const blob = this.file.slice(offset, offset + length);\n const a = yield blob.arrayBuffer();\n return { data: a };\n });\n }\n};\nvar FetchSource = class {\n constructor(url, customHeaders = new Headers()) {\n this.url = url;\n this.customHeaders = customHeaders;\n this.mustReload = false;\n let userAgent = \"\";\n if (\"navigator\" in globalThis) {\n userAgent = globalThis.navigator.userAgent || \"\";\n }\n const isWindows = userAgent.indexOf(\"Windows\") > -1;\n const isChromiumBased = /Chrome|Chromium|Edg|OPR|Brave/.test(userAgent);\n this.chromeWindowsNoCache = false;\n if (isWindows && isChromiumBased) {\n this.chromeWindowsNoCache = true;\n }\n }\n getKey() {\n return this.url;\n }\n /**\n * Mutate the custom [Headers](https://developer.mozilla.org/en-US/docs/Web/API/Headers) set for all requests to the remote archive.\n */\n setHeaders(customHeaders) {\n this.customHeaders = customHeaders;\n }\n getBytes(offset, length, passedSignal, etag) {\n return __async(this, null, function* () {\n let controller;\n let signal;\n if (passedSignal) {\n signal = passedSignal;\n } else {\n controller = new AbortController();\n signal = controller.signal;\n }\n const requestHeaders = new Headers(this.customHeaders);\n requestHeaders.set(\"range\", `bytes=${offset}-${offset + length - 1}`);\n let cache;\n if (this.mustReload) {\n cache = \"reload\";\n } else if (this.chromeWindowsNoCache) {\n cache = \"no-store\";\n }\n let resp = yield fetch(this.url, {\n signal,\n cache,\n headers: requestHeaders\n //biome-ignore lint: \"cache\" is incompatible between cloudflare workers and browser\n });\n if (offset === 0 && resp.status === 416) {\n const contentRange = resp.headers.get(\"Content-Range\");\n if (!contentRange || !contentRange.startsWith(\"bytes */\")) {\n throw Error(\"Missing content-length on 416 response\");\n }\n const actualLength = +contentRange.substr(8);\n resp = yield fetch(this.url, {\n signal,\n cache: \"reload\",\n headers: { range: `bytes=0-${actualLength - 1}` }\n //biome-ignore lint: \"cache\" is incompatible between cloudflare workers and browser\n });\n }\n let newEtag = resp.headers.get(\"Etag\");\n if (newEtag == null ? void 0 : newEtag.startsWith(\"W/\")) {\n newEtag = null;\n }\n if (resp.status === 416 || etag && newEtag && newEtag !== etag) {\n this.mustReload = true;\n throw new EtagMismatch(\n `Server returned non-matching ETag ${etag} after one retry. Check browser extensions and servers for issues that may affect correct ETag headers.`\n );\n }\n if (resp.status >= 300) {\n throw Error(`Bad response code: ${resp.status}`);\n }\n const contentLength = resp.headers.get(\"Content-Length\");\n if (resp.status === 200 && (!contentLength || +contentLength > length)) {\n if (controller)\n controller.abort();\n throw Error(\n \"Server returned no content-length header or content-length exceeding request. Check that your storage backend supports HTTP Byte Serving.\"\n );\n }\n const a = yield resp.arrayBuffer();\n return {\n data: a,\n etag: newEtag || void 0,\n cacheControl: resp.headers.get(\"Cache-Control\") || void 0,\n expires: resp.headers.get(\"Expires\") || void 0\n };\n });\n }\n};\nfunction getUint64(v, offset) {\n const wh = v.getUint32(offset + 4, true);\n const wl = v.getUint32(offset + 0, true);\n return wh * __pow(2, 32) + wl;\n}\nfunction bytesToHeader(bytes, etag) {\n const v = new DataView(bytes);\n const specVersion = v.getUint8(7);\n if (specVersion > 3) {\n throw Error(\n `Archive is spec version ${specVersion} but this library supports up to spec version 3`\n );\n }\n return {\n specVersion,\n rootDirectoryOffset: getUint64(v, 8),\n rootDirectoryLength: getUint64(v, 16),\n jsonMetadataOffset: getUint64(v, 24),\n jsonMetadataLength: getUint64(v, 32),\n leafDirectoryOffset: getUint64(v, 40),\n leafDirectoryLength: getUint64(v, 48),\n tileDataOffset: getUint64(v, 56),\n tileDataLength: getUint64(v, 64),\n numAddressedTiles: getUint64(v, 72),\n numTileEntries: getUint64(v, 80),\n numTileContents: getUint64(v, 88),\n clustered: v.getUint8(96) === 1,\n internalCompression: v.getUint8(97),\n tileCompression: v.getUint8(98),\n tileType: v.getUint8(99),\n minZoom: v.getUint8(100),\n maxZoom: v.getUint8(101),\n minLon: v.getInt32(102, true) / 1e7,\n minLat: v.getInt32(106, true) / 1e7,\n maxLon: v.getInt32(110, true) / 1e7,\n maxLat: v.getInt32(114, true) / 1e7,\n centerZoom: v.getUint8(118),\n centerLon: v.getInt32(119, true) / 1e7,\n centerLat: v.getInt32(123, true) / 1e7,\n etag\n };\n}\nfunction deserializeIndex(buffer) {\n const p = { buf: new Uint8Array(buffer), pos: 0 };\n const numEntries = readVarint(p);\n const entries = [];\n let lastId = 0;\n for (let i = 0; i < numEntries; i++) {\n const v = readVarint(p);\n entries.push({ tileId: lastId + v, offset: 0, length: 0, runLength: 1 });\n lastId += v;\n }\n for (let i = 0; i < numEntries; i++) {\n entries[i].runLength = readVarint(p);\n }\n for (let i = 0; i < numEntries; i++) {\n entries[i].length = readVarint(p);\n }\n for (let i = 0; i < numEntries; i++) {\n const v = readVarint(p);\n if (v === 0 && i > 0) {\n entries[i].offset = entries[i - 1].offset + entries[i - 1].length;\n } else {\n entries[i].offset = v - 1;\n }\n }\n return entries;\n}\nfunction detectVersion(a) {\n const v = new DataView(a);\n if (v.getUint16(2, true) === 2) {\n console.warn(\n \"PMTiles spec version 2 has been deprecated; please see github.com/protomaps/PMTiles for tools to upgrade\"\n );\n return 2;\n }\n if (v.getUint16(2, true) === 1) {\n console.warn(\n \"PMTiles spec version 1 has been deprecated; please see github.com/protomaps/PMTiles for tools to upgrade\"\n );\n return 1;\n }\n return 3;\n}\nvar EtagMismatch = class extends Error {\n};\nfunction getHeaderAndRoot(source, decompress) {\n return __async(this, null, function* () {\n const resp = yield source.getBytes(0, 16384);\n const v = new DataView(resp.data);\n if (v.getUint16(0, true) !== 19792) {\n throw new Error(\"Wrong magic number for PMTiles archive\");\n }\n if (detectVersion(resp.data) < 3) {\n return [yield v2_default.getHeader(source)];\n }\n const headerData = resp.data.slice(0, HEADER_SIZE_BYTES);\n const header = bytesToHeader(headerData, resp.etag);\n const rootDirData = resp.data.slice(\n header.rootDirectoryOffset,\n header.rootDirectoryOffset + header.rootDirectoryLength\n );\n const dirKey = `${source.getKey()}|${header.etag || \"\"}|${header.rootDirectoryOffset}|${header.rootDirectoryLength}`;\n const rootDir = deserializeIndex(\n yield decompress(rootDirData, header.internalCompression)\n );\n return [header, [dirKey, rootDir.length, rootDir]];\n });\n}\nfunction getDirectory(source, decompress, offset, length, header) {\n return __async(this, null, function* () {\n const resp = yield source.getBytes(offset, length, void 0, header.etag);\n const data = yield decompress(resp.data, header.internalCompression);\n const directory = deserializeIndex(data);\n if (directory.length === 0) {\n throw new Error(\"Empty directory is invalid\");\n }\n return directory;\n });\n}\nvar ResolvedValueCache = class {\n constructor(maxCacheEntries = 100, prefetch = true, decompress = defaultDecompress) {\n this.cache = /* @__PURE__ */ new Map();\n this.maxCacheEntries = maxCacheEntries;\n this.counter = 1;\n this.decompress = decompress;\n }\n getHeader(source) {\n return __async(this, null, function* () {\n const cacheKey = source.getKey();\n const cacheValue = this.cache.get(cacheKey);\n if (cacheValue) {\n cacheValue.lastUsed = this.counter++;\n const data = cacheValue.data;\n return data;\n }\n const res = yield getHeaderAndRoot(source, this.decompress);\n if (res[1]) {\n this.cache.set(res[1][0], {\n lastUsed: this.counter++,\n data: res[1][2]\n });\n }\n this.cache.set(cacheKey, {\n lastUsed: this.counter++,\n data: res[0]\n });\n this.prune();\n return res[0];\n });\n }\n getDirectory(source, offset, length, header) {\n return __async(this, null, function* () {\n const cacheKey = `${source.getKey()}|${header.etag || \"\"}|${offset}|${length}`;\n const cacheValue = this.cache.get(cacheKey);\n if (cacheValue) {\n cacheValue.lastUsed = this.counter++;\n const data = cacheValue.data;\n return data;\n }\n const directory = yield getDirectory(\n source,\n this.decompress,\n offset,\n length,\n header\n );\n this.cache.set(cacheKey, {\n lastUsed: this.counter++,\n data: directory\n });\n this.prune();\n return directory;\n });\n }\n // for v2 backwards compatibility\n getArrayBuffer(source, offset, length, header) {\n return __async(this, null, function* () {\n const cacheKey = `${source.getKey()}|${header.etag || \"\"}|${offset}|${length}`;\n const cacheValue = this.cache.get(cacheKey);\n if (cacheValue) {\n cacheValue.lastUsed = this.counter++;\n const data = yield cacheValue.data;\n return data;\n }\n const resp = yield source.getBytes(offset, length, void 0, header.etag);\n this.cache.set(cacheKey, {\n lastUsed: this.counter++,\n data: resp.data\n });\n this.prune();\n return resp.data;\n });\n }\n prune() {\n if (this.cache.size > this.maxCacheEntries) {\n let minUsed = Infinity;\n let minKey = void 0;\n this.cache.forEach((cacheValue, key) => {\n if (cacheValue.lastUsed < minUsed) {\n minUsed = cacheValue.lastUsed;\n minKey = key;\n }\n });\n if (minKey) {\n this.cache.delete(minKey);\n }\n }\n }\n invalidate(source) {\n return __async(this, null, function* () {\n this.cache.delete(source.getKey());\n });\n }\n};\nvar SharedPromiseCache = class {\n constructor(maxCacheEntries = 100, prefetch = true, decompress = defaultDecompress) {\n this.cache = /* @__PURE__ */ new Map();\n this.invalidations = /* @__PURE__ */ new Map();\n this.maxCacheEntries = maxCacheEntries;\n this.counter = 1;\n this.decompress = decompress;\n }\n getHeader(source) {\n return __async(this, null, function* () {\n const cacheKey = source.getKey();\n const cacheValue = this.cache.get(cacheKey);\n if (cacheValue) {\n cacheValue.lastUsed = this.counter++;\n const data = yield cacheValue.data;\n return data;\n }\n const p = new Promise((resolve, reject) => {\n getHeaderAndRoot(source, this.decompress).then((res) => {\n if (res[1]) {\n this.cache.set(res[1][0], {\n lastUsed: this.counter++,\n data: Promise.resolve(res[1][2])\n });\n }\n resolve(res[0]);\n this.prune();\n }).catch((e) => {\n reject(e);\n });\n });\n this.cache.set(cacheKey, { lastUsed: this.counter++, data: p });\n return p;\n });\n }\n getDirectory(source, offset, length, header) {\n return __async(this, null, function* () {\n const cacheKey = `${source.getKey()}|${header.etag || \"\"}|${offset}|${length}`;\n const cacheValue = this.cache.get(cacheKey);\n if (cacheValue) {\n cacheValue.lastUsed = this.counter++;\n const data = yield cacheValue.data;\n return data;\n }\n const p = new Promise((resolve, reject) => {\n getDirectory(source, this.decompress, offset, length, header).then((directory) => {\n resolve(directory);\n this.prune();\n }).catch((e) => {\n reject(e);\n });\n });\n this.cache.set(cacheKey, { lastUsed: this.counter++, data: p });\n return p;\n });\n }\n // for v2 backwards compatibility\n getArrayBuffer(source, offset, length, header) {\n return __async(this, null, function* () {\n const cacheKey = `${source.getKey()}|${header.etag || \"\"}|${offset}|${length}`;\n const cacheValue = this.cache.get(cacheKey);\n if (cacheValue) {\n cacheValue.lastUsed = this.counter++;\n const data = yield cacheValue.data;\n return data;\n }\n const p = new Promise((resolve, reject) => {\n source.getBytes(offset, length, void 0, header.etag).then((resp) => {\n resolve(resp.data);\n if (this.cache.has(cacheKey)) {\n }\n this.prune();\n }).catch((e) => {\n reject(e);\n });\n });\n this.cache.set(cacheKey, { lastUsed: this.counter++, data: p });\n return p;\n });\n }\n prune() {\n if (this.cache.size >= this.maxCacheEntries) {\n let minUsed = Infinity;\n let minKey = void 0;\n this.cache.forEach((cacheValue, key) => {\n if (cacheValue.lastUsed < minUsed) {\n minUsed = cacheValue.lastUsed;\n minKey = key;\n }\n });\n if (minKey) {\n this.cache.delete(minKey);\n }\n }\n }\n invalidate(source) {\n return __async(this, null, function* () {\n const key = source.getKey();\n if (this.invalidations.get(key)) {\n return yield this.invalidations.get(key);\n }\n this.cache.delete(source.getKey());\n const p = new Promise((resolve, reject) => {\n this.getHeader(source).then((h) => {\n resolve();\n this.invalidations.delete(key);\n }).catch((e) => {\n reject(e);\n });\n });\n this.invalidations.set(key, p);\n });\n }\n};\nvar PMTiles = class {\n constructor(source, cache, decompress) {\n if (typeof source === \"string\") {\n this.source = new FetchSource(source);\n } else {\n this.source = source;\n }\n if (decompress) {\n this.decompress = decompress;\n } else {\n this.decompress = defaultDecompress;\n }\n if (cache) {\n this.cache = cache;\n } else {\n this.cache = new SharedPromiseCache();\n }\n }\n /**\n * Return the header of the archive,\n * including information such as tile type, min/max zoom, bounds, and summary statistics.\n */\n getHeader() {\n return __async(this, null, function* () {\n return yield this.cache.getHeader(this.source);\n });\n }\n /** @hidden */\n getZxyAttempt(z, x, y, signal) {\n return __async(this, null, function* () {\n const tileId = zxyToTileId(z, x, y);\n const header = yield this.cache.getHeader(this.source);\n if (header.specVersion < 3) {\n return v2_default.getZxy(header, this.source, this.cache, z, x, y, signal);\n }\n if (z < header.minZoom || z > header.maxZoom) {\n return void 0;\n }\n let dO = header.rootDirectoryOffset;\n let dL = header.rootDirectoryLength;\n for (let depth = 0; depth <= 3; depth++) {\n const directory = yield this.cache.getDirectory(\n this.source,\n dO,\n dL,\n header\n );\n const entry = findTile(directory, tileId);\n if (entry) {\n if (entry.runLength > 0) {\n const resp = yield this.source.getBytes(\n header.tileDataOffset + entry.offset,\n entry.length,\n signal,\n header.etag\n );\n return {\n data: yield this.decompress(resp.data, header.tileCompression),\n cacheControl: resp.cacheControl,\n expires: resp.expires\n };\n }\n dO = header.leafDirectoryOffset + entry.offset;\n dL = entry.length;\n } else {\n return void 0;\n }\n }\n throw Error(\"Maximum directory depth exceeded\");\n });\n }\n /**\n * Primary method to get a single tile's bytes from an archive.\n *\n * Returns undefined if the tile does not exist in the archive.\n */\n getZxy(z, x, y, signal) {\n return __async(this, null, function* () {\n try {\n return yield this.getZxyAttempt(z, x, y, signal);\n } catch (e) {\n if (e instanceof EtagMismatch) {\n this.cache.invalidate(this.source);\n return yield this.getZxyAttempt(z, x, y, signal);\n }\n throw e;\n }\n });\n }\n /** @hidden */\n getMetadataAttempt() {\n return __async(this, null, function* () {\n const header = yield this.cache.getHeader(this.source);\n const resp = yield this.source.getBytes(\n header.jsonMetadataOffset,\n header.jsonMetadataLength,\n void 0,\n header.etag\n );\n const decompressed = yield this.decompress(\n resp.data,\n header.internalCompression\n );\n const dec = new TextDecoder(\"utf-8\");\n return JSON.parse(dec.decode(decompressed));\n });\n }\n /**\n * Return the arbitrary JSON metadata of the archive.\n */\n getMetadata() {\n return __async(this, null, function* () {\n try {\n return yield this.getMetadataAttempt();\n } catch (e) {\n if (e instanceof EtagMismatch) {\n this.cache.invalidate(this.source);\n return yield this.getMetadataAttempt();\n }\n throw e;\n }\n });\n }\n /**\n * Construct a [TileJSON](https://github.com/mapbox/tilejson-spec) object.\n *\n * baseTilesUrl is the desired tiles URL, excluding the suffix `/{z}/{x}/{y}.{ext}`.\n * For example, if the desired URL is `http://example.com/tileset/{z}/{x}/{y}.mvt`,\n * the baseTilesUrl should be `https://example.com/tileset`.\n */\n getTileJson(baseTilesUrl) {\n return __async(this, null, function* () {\n const header = yield this.getHeader();\n const metadata = yield this.getMetadata();\n const ext = tileTypeExt(header.tileType);\n return {\n tilejson: \"3.0.0\",\n scheme: \"xyz\",\n tiles: [`${baseTilesUrl}/{z}/{x}/{y}${ext}`],\n // biome-ignore lint: TileJSON spec\n vector_layers: metadata.vector_layers,\n attribution: metadata.attribution,\n description: metadata.description,\n name: metadata.name,\n version: metadata.version,\n bounds: [header.minLon, header.minLat, header.maxLon, header.maxLat],\n center: [header.centerLon, header.centerLat, header.centerZoom],\n minzoom: header.minZoom,\n maxzoom: header.maxZoom\n };\n });\n }\n};\nexport {\n Compression,\n EtagMismatch,\n FetchSource,\n FileSource,\n PMTiles,\n Protocol,\n ResolvedValueCache,\n SharedPromiseCache,\n TileType,\n bytesToHeader,\n findTile,\n getUint64,\n leafletRasterLayer,\n readVarint,\n tileIdToZxy,\n tileTypeExt,\n zxyToTileId\n};\n"],"names":["x","i"],"mappings":"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","x_google_ignoreList":[0]}
|