styled-map-package-api 5.0.0-pre.2 → 5.0.0-pre.4
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/README.md +94 -0
- package/dist/download.d.ts +11 -21
- package/dist/fallbacks.d.ts +32 -0
- package/dist/from-mbtiles.d.ts +1 -3
- package/dist/index.d.ts +11 -24
- package/dist/reader.d.ts +28 -12
- package/dist/server.d.ts +23 -14
- package/dist/style-downloader.d.ts +13 -19
- package/dist/tile-downloader.d.ts +13 -23
- package/dist/types.d.ts +61 -0
- package/dist/utils/errors.d.ts +2 -4
- package/dist/utils/fetch.d.ts +3 -8
- package/dist/utils/file-formats.d.ts +3 -10
- package/dist/utils/geo.d.ts +17 -9
- package/dist/utils/mapbox.d.ts +8 -10
- package/dist/utils/misc.d.ts +3 -5
- package/dist/utils/streams.d.ts +6 -10
- package/dist/utils/style.d.ts +27 -16
- package/dist/utils/templates.d.ts +30 -25
- package/dist/validator.d.ts +66 -0
- package/dist/writer.d.ts +157 -4
- package/lib/download.js +125 -0
- package/lib/fallbacks.js +157 -0
- package/lib/from-mbtiles.js +131 -0
- package/lib/index.js +12 -0
- package/lib/reader.js +360 -0
- package/lib/server.js +222 -0
- package/lib/style-downloader.js +369 -0
- package/lib/tile-downloader.js +189 -0
- package/lib/types.ts +99 -0
- package/lib/utils/errors.js +24 -0
- package/lib/utils/fetch.js +104 -0
- package/lib/utils/file-formats.js +92 -0
- package/lib/utils/geo.js +97 -0
- package/lib/utils/mapbox.js +155 -0
- package/{dist/utils/misc.d.cts → lib/utils/misc.js} +9 -5
- package/lib/utils/streams.js +101 -0
- package/lib/utils/style.js +206 -0
- package/lib/utils/templates.js +165 -0
- package/lib/validator.js +789 -0
- package/lib/writer.js +652 -0
- package/package.json +30 -78
- package/dist/download.cjs +0 -100
- package/dist/download.d.cts +0 -63
- package/dist/download.js +0 -76
- package/dist/from-mbtiles.cjs +0 -108
- package/dist/from-mbtiles.d.cts +0 -14
- package/dist/from-mbtiles.js +0 -84
- package/dist/index.cjs +0 -46
- package/dist/index.d.cts +0 -24
- package/dist/index.js +0 -16
- package/dist/reader.cjs +0 -287
- package/dist/reader.d.cts +0 -67
- package/dist/reader.js +0 -259
- package/dist/server.cjs +0 -73
- package/dist/server.d.cts +0 -45
- package/dist/server.js +0 -49
- package/dist/style-downloader.cjs +0 -314
- package/dist/style-downloader.d.cts +0 -118
- package/dist/style-downloader.js +0 -290
- package/dist/tile-downloader.cjs +0 -156
- package/dist/tile-downloader.d.cts +0 -82
- package/dist/tile-downloader.js +0 -124
- package/dist/types-qfyJk4ot.d.cts +0 -200
- package/dist/types-qfyJk4ot.d.ts +0 -200
- package/dist/utils/errors.cjs +0 -41
- package/dist/utils/errors.d.cts +0 -18
- package/dist/utils/errors.js +0 -16
- package/dist/utils/fetch.cjs +0 -97
- package/dist/utils/fetch.d.cts +0 -50
- package/dist/utils/fetch.js +0 -63
- package/dist/utils/file-formats.cjs +0 -96
- package/dist/utils/file-formats.d.cts +0 -32
- package/dist/utils/file-formats.js +0 -70
- package/dist/utils/geo.cjs +0 -84
- package/dist/utils/geo.d.cts +0 -46
- package/dist/utils/geo.js +0 -56
- package/dist/utils/mapbox.cjs +0 -121
- package/dist/utils/mapbox.d.cts +0 -43
- package/dist/utils/mapbox.js +0 -91
- package/dist/utils/misc.cjs +0 -39
- package/dist/utils/misc.js +0 -13
- package/dist/utils/streams.cjs +0 -99
- package/dist/utils/streams.d.cts +0 -49
- package/dist/utils/streams.js +0 -73
- package/dist/utils/style.cjs +0 -126
- package/dist/utils/style.d.cts +0 -66
- package/dist/utils/style.js +0 -98
- package/dist/utils/templates.cjs +0 -124
- package/dist/utils/templates.d.cts +0 -79
- package/dist/utils/templates.js +0 -85
- package/dist/writer.cjs +0 -539
- package/dist/writer.d.cts +0 -4
- package/dist/writer.js +0 -516
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var file_formats_exports = {};
|
|
20
|
-
__export(file_formats_exports, {
|
|
21
|
-
getFormatFromMimeType: () => getFormatFromMimeType,
|
|
22
|
-
getTileFormatFromBuffer: () => getTileFormatFromBuffer,
|
|
23
|
-
getTileFormatFromStream: () => getTileFormatFromStream
|
|
24
|
-
});
|
|
25
|
-
module.exports = __toCommonJS(file_formats_exports);
|
|
26
|
-
var import_misc = require('./misc.cjs');
|
|
27
|
-
const MAGIC_BYTES = (
|
|
28
|
-
/** @type {const} */
|
|
29
|
-
{
|
|
30
|
-
png: [137, 80, 78, 71, 13, 10, 26, 10],
|
|
31
|
-
jpg: [255, 216, 255],
|
|
32
|
-
// eslint-disable-next-line no-sparse-arrays
|
|
33
|
-
webp: [82, 73, 70, 70, , , , , 87, 69, 66, 80],
|
|
34
|
-
// Include the compression-type byte, which is always 0x08 (DEFLATE) for gzip
|
|
35
|
-
gz: [31, 139, 8]
|
|
36
|
-
}
|
|
37
|
-
);
|
|
38
|
-
const MIME_TYPES = (
|
|
39
|
-
/** @type {const} */
|
|
40
|
-
{
|
|
41
|
-
"image/png": "png",
|
|
42
|
-
"image/jpeg": "jpg",
|
|
43
|
-
"image/webp": "webp"
|
|
44
|
-
}
|
|
45
|
-
);
|
|
46
|
-
const magicByteMap = /* @__PURE__ */ new Map();
|
|
47
|
-
for (const [ext, bytes] of Object.entries(MAGIC_BYTES)) {
|
|
48
|
-
magicByteMap.set(
|
|
49
|
-
bytes[0],
|
|
50
|
-
// @ts-ignore
|
|
51
|
-
ext
|
|
52
|
-
);
|
|
53
|
-
}
|
|
54
|
-
function getTileFormatFromBuffer(buf) {
|
|
55
|
-
const ext = magicByteMap.get(buf[0]);
|
|
56
|
-
if (!ext) {
|
|
57
|
-
throw new Error("Unknown file type");
|
|
58
|
-
}
|
|
59
|
-
const sig = MAGIC_BYTES[ext];
|
|
60
|
-
for (let i = 1; i < sig.length; i++) {
|
|
61
|
-
if (typeof sig[i] !== "undefined" && sig[i] !== buf[i]) {
|
|
62
|
-
throw new Error("Unknown file type");
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
if (ext === "gz") {
|
|
66
|
-
return "mvt";
|
|
67
|
-
}
|
|
68
|
-
return ext;
|
|
69
|
-
}
|
|
70
|
-
async function getTileFormatFromStream(tileData) {
|
|
71
|
-
const [stream1, stream2] = tileData.tee();
|
|
72
|
-
const reader = stream1.getReader();
|
|
73
|
-
let buffer = new Uint8Array(0);
|
|
74
|
-
while (buffer.length < 12) {
|
|
75
|
-
const { done, value } = await reader.read();
|
|
76
|
-
if (done) break;
|
|
77
|
-
const newBuffer = new Uint8Array(buffer.length + value.length);
|
|
78
|
-
newBuffer.set(buffer);
|
|
79
|
-
newBuffer.set(value, buffer.length);
|
|
80
|
-
buffer = newBuffer;
|
|
81
|
-
}
|
|
82
|
-
reader.cancel();
|
|
83
|
-
const format = getTileFormatFromBuffer(buffer);
|
|
84
|
-
return [format, stream2];
|
|
85
|
-
}
|
|
86
|
-
function getFormatFromMimeType(mimeType) {
|
|
87
|
-
if (mimeType.startsWith("application/")) return "mvt";
|
|
88
|
-
if ((0, import_misc.hasOwn)(MIME_TYPES, mimeType)) return MIME_TYPES[mimeType];
|
|
89
|
-
throw new Error("Unsupported MIME type " + mimeType);
|
|
90
|
-
}
|
|
91
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
92
|
-
0 && (module.exports = {
|
|
93
|
-
getFormatFromMimeType,
|
|
94
|
-
getTileFormatFromBuffer,
|
|
95
|
-
getTileFormatFromStream
|
|
96
|
-
});
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { c as TileFormat } from '../types-qfyJk4ot.cjs';
|
|
2
|
-
import '@maplibre/maplibre-gl-style-spec';
|
|
3
|
-
import 'geojson';
|
|
4
|
-
import 'type-fest';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* For a given buffer, determine the tile format based on the magic bytes.
|
|
8
|
-
* Will throw for unknown file types.
|
|
9
|
-
* Smaller and faster version of magic-bytes.js due to the limited use case.
|
|
10
|
-
*
|
|
11
|
-
* @param {Buffer | Uint8Array} buf
|
|
12
|
-
* @returns {import("../writer.js").TileFormat}
|
|
13
|
-
*/
|
|
14
|
-
declare function getTileFormatFromBuffer(buf: Buffer | Uint8Array): TileFormat;
|
|
15
|
-
/**
|
|
16
|
-
* Determine the tile format from a readable stream from the magic bytes at the
|
|
17
|
-
* start of the file. Used if data is served without a content-type header.
|
|
18
|
-
* Returns the format and a new readable stream that includes all original data.
|
|
19
|
-
*
|
|
20
|
-
* @param {ReadableStream<Uint8Array>} tileData Web ReadableStream
|
|
21
|
-
* @returns {Promise<[import("../writer.js").TileFormat, ReadableStream<Uint8Array>]>}
|
|
22
|
-
*/
|
|
23
|
-
declare function getTileFormatFromStream(tileData: ReadableStream<Uint8Array>): Promise<[TileFormat, ReadableStream<Uint8Array>]>;
|
|
24
|
-
/**
|
|
25
|
-
* Get the tile format from a MIME type. Throws for unsupported types.
|
|
26
|
-
*
|
|
27
|
-
* @param {string} mimeType
|
|
28
|
-
* @returns {import("../writer.js").TileFormat}
|
|
29
|
-
*/
|
|
30
|
-
declare function getFormatFromMimeType(mimeType: string): TileFormat;
|
|
31
|
-
|
|
32
|
-
export { getFormatFromMimeType, getTileFormatFromBuffer, getTileFormatFromStream };
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import { hasOwn } from "./misc.js";
|
|
2
|
-
const MAGIC_BYTES = (
|
|
3
|
-
/** @type {const} */
|
|
4
|
-
{
|
|
5
|
-
png: [137, 80, 78, 71, 13, 10, 26, 10],
|
|
6
|
-
jpg: [255, 216, 255],
|
|
7
|
-
// eslint-disable-next-line no-sparse-arrays
|
|
8
|
-
webp: [82, 73, 70, 70, , , , , 87, 69, 66, 80],
|
|
9
|
-
// Include the compression-type byte, which is always 0x08 (DEFLATE) for gzip
|
|
10
|
-
gz: [31, 139, 8]
|
|
11
|
-
}
|
|
12
|
-
);
|
|
13
|
-
const MIME_TYPES = (
|
|
14
|
-
/** @type {const} */
|
|
15
|
-
{
|
|
16
|
-
"image/png": "png",
|
|
17
|
-
"image/jpeg": "jpg",
|
|
18
|
-
"image/webp": "webp"
|
|
19
|
-
}
|
|
20
|
-
);
|
|
21
|
-
const magicByteMap = /* @__PURE__ */ new Map();
|
|
22
|
-
for (const [ext, bytes] of Object.entries(MAGIC_BYTES)) {
|
|
23
|
-
magicByteMap.set(
|
|
24
|
-
bytes[0],
|
|
25
|
-
// @ts-ignore
|
|
26
|
-
ext
|
|
27
|
-
);
|
|
28
|
-
}
|
|
29
|
-
function getTileFormatFromBuffer(buf) {
|
|
30
|
-
const ext = magicByteMap.get(buf[0]);
|
|
31
|
-
if (!ext) {
|
|
32
|
-
throw new Error("Unknown file type");
|
|
33
|
-
}
|
|
34
|
-
const sig = MAGIC_BYTES[ext];
|
|
35
|
-
for (let i = 1; i < sig.length; i++) {
|
|
36
|
-
if (typeof sig[i] !== "undefined" && sig[i] !== buf[i]) {
|
|
37
|
-
throw new Error("Unknown file type");
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
if (ext === "gz") {
|
|
41
|
-
return "mvt";
|
|
42
|
-
}
|
|
43
|
-
return ext;
|
|
44
|
-
}
|
|
45
|
-
async function getTileFormatFromStream(tileData) {
|
|
46
|
-
const [stream1, stream2] = tileData.tee();
|
|
47
|
-
const reader = stream1.getReader();
|
|
48
|
-
let buffer = new Uint8Array(0);
|
|
49
|
-
while (buffer.length < 12) {
|
|
50
|
-
const { done, value } = await reader.read();
|
|
51
|
-
if (done) break;
|
|
52
|
-
const newBuffer = new Uint8Array(buffer.length + value.length);
|
|
53
|
-
newBuffer.set(buffer);
|
|
54
|
-
newBuffer.set(value, buffer.length);
|
|
55
|
-
buffer = newBuffer;
|
|
56
|
-
}
|
|
57
|
-
reader.cancel();
|
|
58
|
-
const format = getTileFormatFromBuffer(buffer);
|
|
59
|
-
return [format, stream2];
|
|
60
|
-
}
|
|
61
|
-
function getFormatFromMimeType(mimeType) {
|
|
62
|
-
if (mimeType.startsWith("application/")) return "mvt";
|
|
63
|
-
if (hasOwn(MIME_TYPES, mimeType)) return MIME_TYPES[mimeType];
|
|
64
|
-
throw new Error("Unsupported MIME type " + mimeType);
|
|
65
|
-
}
|
|
66
|
-
export {
|
|
67
|
-
getFormatFromMimeType,
|
|
68
|
-
getTileFormatFromBuffer,
|
|
69
|
-
getTileFormatFromStream
|
|
70
|
-
};
|
package/dist/utils/geo.cjs
DELETED
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var geo_exports = {};
|
|
20
|
-
__export(geo_exports, {
|
|
21
|
-
MAX_BOUNDS: () => MAX_BOUNDS,
|
|
22
|
-
getQuadkey: () => getQuadkey,
|
|
23
|
-
getTileUrl: () => getTileUrl,
|
|
24
|
-
tileToBBox: () => tileToBBox,
|
|
25
|
-
unionBBox: () => unionBBox
|
|
26
|
-
});
|
|
27
|
-
module.exports = __toCommonJS(geo_exports);
|
|
28
|
-
const r2d = 180 / Math.PI;
|
|
29
|
-
const MAX_BOUNDS = (
|
|
30
|
-
/** @type {BBox} */
|
|
31
|
-
[
|
|
32
|
-
-180,
|
|
33
|
-
-85.051129,
|
|
34
|
-
180,
|
|
35
|
-
85.051129
|
|
36
|
-
]
|
|
37
|
-
);
|
|
38
|
-
function tileToBBox({ x, y, z }) {
|
|
39
|
-
const e = tile2lon({ x: x + 1, z });
|
|
40
|
-
const w = tile2lon({ x, z });
|
|
41
|
-
const s = tile2lat({ y: y + 1, z });
|
|
42
|
-
const n = tile2lat({ y, z });
|
|
43
|
-
return [w, s, e, n];
|
|
44
|
-
}
|
|
45
|
-
function getQuadkey({ x, y, z }) {
|
|
46
|
-
let quadkey = "";
|
|
47
|
-
let mask;
|
|
48
|
-
for (let i = z; i > 0; i--) {
|
|
49
|
-
mask = 1 << i - 1;
|
|
50
|
-
quadkey += (x & mask ? 1 : 0) + (y & mask ? 2 : 0);
|
|
51
|
-
}
|
|
52
|
-
return quadkey;
|
|
53
|
-
}
|
|
54
|
-
function getTileUrl(urls, { x, y, z, scheme = "xyz" }) {
|
|
55
|
-
const bboxEspg3857 = tileToBBox({ x, y: Math.pow(2, z) - y - 1, z });
|
|
56
|
-
const quadkey = getQuadkey({ x, y, z });
|
|
57
|
-
return urls[(x + y) % urls.length].replace("{prefix}", (x % 16).toString(16) + (y % 16).toString(16)).replace(/{z}/g, String(z)).replace(/{x}/g, String(x)).replace(/{y}/g, String(scheme === "tms" ? Math.pow(2, z) - y - 1 : y)).replace("{quadkey}", quadkey).replace("{bbox-epsg-3857}", bboxEspg3857.join(","));
|
|
58
|
-
}
|
|
59
|
-
function unionBBox(bboxes) {
|
|
60
|
-
let [w, s, e, n] = bboxes[0];
|
|
61
|
-
for (let i = 1; i < bboxes.length; i++) {
|
|
62
|
-
const [w1, s1, e1, n1] = bboxes[i];
|
|
63
|
-
w = Math.min(w, w1);
|
|
64
|
-
s = Math.min(s, s1);
|
|
65
|
-
e = Math.max(e, e1);
|
|
66
|
-
n = Math.max(n, n1);
|
|
67
|
-
}
|
|
68
|
-
return [w, s, e, n];
|
|
69
|
-
}
|
|
70
|
-
function tile2lon({ x, z }) {
|
|
71
|
-
return x / Math.pow(2, z) * 360 - 180;
|
|
72
|
-
}
|
|
73
|
-
function tile2lat({ y, z }) {
|
|
74
|
-
const n = Math.PI - 2 * Math.PI * y / Math.pow(2, z);
|
|
75
|
-
return r2d * Math.atan(0.5 * (Math.exp(n) - Math.exp(-n)));
|
|
76
|
-
}
|
|
77
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
78
|
-
0 && (module.exports = {
|
|
79
|
-
MAX_BOUNDS,
|
|
80
|
-
getQuadkey,
|
|
81
|
-
getTileUrl,
|
|
82
|
-
tileToBBox,
|
|
83
|
-
unionBBox
|
|
84
|
-
});
|
package/dist/utils/geo.d.cts
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @typedef {[number, number, number, number]} BBox
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* Return the bounding box for the given tile.
|
|
6
|
-
*
|
|
7
|
-
* @param {{ x: number, y: number, z: number }} tile
|
|
8
|
-
* @returns {BBox} Bounding Box [w, s, e, n]
|
|
9
|
-
*/
|
|
10
|
-
declare function tileToBBox({ x, y, z }: {
|
|
11
|
-
x: number;
|
|
12
|
-
y: number;
|
|
13
|
-
z: number;
|
|
14
|
-
}): BBox;
|
|
15
|
-
/**
|
|
16
|
-
* @param {{ x: number, y: number, z: number }} tile
|
|
17
|
-
*/
|
|
18
|
-
declare function getQuadkey({ x, y, z }: {
|
|
19
|
-
x: number;
|
|
20
|
-
y: number;
|
|
21
|
-
z: number;
|
|
22
|
-
}): string;
|
|
23
|
-
/**
|
|
24
|
-
* From an array of tile URL templates, get the URL for the given tile.
|
|
25
|
-
*
|
|
26
|
-
* @param {string[]} urls
|
|
27
|
-
* @param {{ x: number, y: number, z: number, scheme?: 'xyz' | 'tms' }} opts
|
|
28
|
-
*/
|
|
29
|
-
declare function getTileUrl(urls: string[], { x, y, z, scheme }: {
|
|
30
|
-
x: number;
|
|
31
|
-
y: number;
|
|
32
|
-
z: number;
|
|
33
|
-
scheme?: "xyz" | "tms";
|
|
34
|
-
}): string;
|
|
35
|
-
/**
|
|
36
|
-
* Returns a bbox that is the smallest bounding box that contains all the input bboxes.
|
|
37
|
-
*
|
|
38
|
-
* @param {[BBox, ...BBox[]]} bboxes
|
|
39
|
-
* @returns {BBox} Bounding Box [w, s, e, n]
|
|
40
|
-
*/
|
|
41
|
-
declare function unionBBox(bboxes: [BBox, ...BBox[]]): BBox;
|
|
42
|
-
/** Spherical Mercator max bounds, rounded to 6 decimal places */
|
|
43
|
-
declare const MAX_BOUNDS: BBox;
|
|
44
|
-
type BBox = [number, number, number, number];
|
|
45
|
-
|
|
46
|
-
export { type BBox, MAX_BOUNDS, getQuadkey, getTileUrl, tileToBBox, unionBBox };
|
package/dist/utils/geo.js
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
const r2d = 180 / Math.PI;
|
|
2
|
-
const MAX_BOUNDS = (
|
|
3
|
-
/** @type {BBox} */
|
|
4
|
-
[
|
|
5
|
-
-180,
|
|
6
|
-
-85.051129,
|
|
7
|
-
180,
|
|
8
|
-
85.051129
|
|
9
|
-
]
|
|
10
|
-
);
|
|
11
|
-
function tileToBBox({ x, y, z }) {
|
|
12
|
-
const e = tile2lon({ x: x + 1, z });
|
|
13
|
-
const w = tile2lon({ x, z });
|
|
14
|
-
const s = tile2lat({ y: y + 1, z });
|
|
15
|
-
const n = tile2lat({ y, z });
|
|
16
|
-
return [w, s, e, n];
|
|
17
|
-
}
|
|
18
|
-
function getQuadkey({ x, y, z }) {
|
|
19
|
-
let quadkey = "";
|
|
20
|
-
let mask;
|
|
21
|
-
for (let i = z; i > 0; i--) {
|
|
22
|
-
mask = 1 << i - 1;
|
|
23
|
-
quadkey += (x & mask ? 1 : 0) + (y & mask ? 2 : 0);
|
|
24
|
-
}
|
|
25
|
-
return quadkey;
|
|
26
|
-
}
|
|
27
|
-
function getTileUrl(urls, { x, y, z, scheme = "xyz" }) {
|
|
28
|
-
const bboxEspg3857 = tileToBBox({ x, y: Math.pow(2, z) - y - 1, z });
|
|
29
|
-
const quadkey = getQuadkey({ x, y, z });
|
|
30
|
-
return urls[(x + y) % urls.length].replace("{prefix}", (x % 16).toString(16) + (y % 16).toString(16)).replace(/{z}/g, String(z)).replace(/{x}/g, String(x)).replace(/{y}/g, String(scheme === "tms" ? Math.pow(2, z) - y - 1 : y)).replace("{quadkey}", quadkey).replace("{bbox-epsg-3857}", bboxEspg3857.join(","));
|
|
31
|
-
}
|
|
32
|
-
function unionBBox(bboxes) {
|
|
33
|
-
let [w, s, e, n] = bboxes[0];
|
|
34
|
-
for (let i = 1; i < bboxes.length; i++) {
|
|
35
|
-
const [w1, s1, e1, n1] = bboxes[i];
|
|
36
|
-
w = Math.min(w, w1);
|
|
37
|
-
s = Math.min(s, s1);
|
|
38
|
-
e = Math.max(e, e1);
|
|
39
|
-
n = Math.max(n, n1);
|
|
40
|
-
}
|
|
41
|
-
return [w, s, e, n];
|
|
42
|
-
}
|
|
43
|
-
function tile2lon({ x, z }) {
|
|
44
|
-
return x / Math.pow(2, z) * 360 - 180;
|
|
45
|
-
}
|
|
46
|
-
function tile2lat({ y, z }) {
|
|
47
|
-
const n = Math.PI - 2 * Math.PI * y / Math.pow(2, z);
|
|
48
|
-
return r2d * Math.atan(0.5 * (Math.exp(n) - Math.exp(-n)));
|
|
49
|
-
}
|
|
50
|
-
export {
|
|
51
|
-
MAX_BOUNDS,
|
|
52
|
-
getQuadkey,
|
|
53
|
-
getTileUrl,
|
|
54
|
-
tileToBBox,
|
|
55
|
-
unionBBox
|
|
56
|
-
};
|
package/dist/utils/mapbox.cjs
DELETED
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var mapbox_exports = {};
|
|
20
|
-
__export(mapbox_exports, {
|
|
21
|
-
API_URL: () => API_URL,
|
|
22
|
-
isMapboxURL: () => isMapboxURL,
|
|
23
|
-
normalizeGlyphsURL: () => normalizeGlyphsURL,
|
|
24
|
-
normalizeSourceURL: () => normalizeSourceURL,
|
|
25
|
-
normalizeSpriteURL: () => normalizeSpriteURL,
|
|
26
|
-
normalizeStyleURL: () => normalizeStyleURL,
|
|
27
|
-
normalizeTileURL: () => normalizeTileURL
|
|
28
|
-
});
|
|
29
|
-
module.exports = __toCommonJS(mapbox_exports);
|
|
30
|
-
const API_URL = "https://api.mapbox.com";
|
|
31
|
-
const HELP = "See https://www.mapbox.com/api-documentation/#access-tokens";
|
|
32
|
-
function makeAPIURL(urlObject, accessToken) {
|
|
33
|
-
const apiUrlObject = parseUrl(API_URL);
|
|
34
|
-
urlObject.protocol = apiUrlObject.protocol;
|
|
35
|
-
urlObject.authority = apiUrlObject.authority;
|
|
36
|
-
if (!accessToken) {
|
|
37
|
-
throw new Error(
|
|
38
|
-
`An API access token is required to use a Mapbox style. ${HELP}`
|
|
39
|
-
);
|
|
40
|
-
}
|
|
41
|
-
if (accessToken[0] === "s") {
|
|
42
|
-
throw new Error(
|
|
43
|
-
`Use a public access token (pk.*) not a secret access token (sk.*). ${HELP}`
|
|
44
|
-
);
|
|
45
|
-
}
|
|
46
|
-
urlObject.params.push(`access_token=${accessToken}`);
|
|
47
|
-
return formatUrl(urlObject);
|
|
48
|
-
}
|
|
49
|
-
function isMapboxURL(url) {
|
|
50
|
-
return url.indexOf("mapbox:") === 0;
|
|
51
|
-
}
|
|
52
|
-
function normalizeStyleURL(url, accessToken) {
|
|
53
|
-
if (!isMapboxURL(url)) return url;
|
|
54
|
-
if (!accessToken) throw new Error("Mapbox styles require an access token");
|
|
55
|
-
const urlObject = parseUrl(url);
|
|
56
|
-
urlObject.path = `/styles/v1${urlObject.path}`;
|
|
57
|
-
return makeAPIURL(urlObject, accessToken);
|
|
58
|
-
}
|
|
59
|
-
function normalizeGlyphsURL(url, accessToken) {
|
|
60
|
-
if (!isMapboxURL(url)) return url;
|
|
61
|
-
if (!accessToken) throw new Error("Mapbox styles require an access token");
|
|
62
|
-
const urlObject = parseUrl(url);
|
|
63
|
-
urlObject.path = `/fonts/v1${urlObject.path}`;
|
|
64
|
-
return makeAPIURL(urlObject, accessToken);
|
|
65
|
-
}
|
|
66
|
-
function normalizeSourceURL(url, accessToken) {
|
|
67
|
-
if (!isMapboxURL(url)) return url;
|
|
68
|
-
if (!accessToken) throw new Error("Mapbox styles require an access token");
|
|
69
|
-
const urlObject = parseUrl(url);
|
|
70
|
-
urlObject.path = `/v4/${urlObject.authority}.json`;
|
|
71
|
-
urlObject.params.push("secure");
|
|
72
|
-
return makeAPIURL(urlObject, accessToken);
|
|
73
|
-
}
|
|
74
|
-
function normalizeSpriteURL(url, format, extension, accessToken) {
|
|
75
|
-
const urlObject = parseUrl(url);
|
|
76
|
-
if (!isMapboxURL(url)) {
|
|
77
|
-
urlObject.path += `${format}${extension}`;
|
|
78
|
-
return formatUrl(urlObject);
|
|
79
|
-
}
|
|
80
|
-
urlObject.path = `/styles/v1${urlObject.path}/sprite${format}${extension}`;
|
|
81
|
-
return makeAPIURL(urlObject, accessToken);
|
|
82
|
-
}
|
|
83
|
-
const imageExtensionRe = /(\.(png|jpg)\d*)(?=$)/;
|
|
84
|
-
function normalizeTileURL(tileURL, sourceURL, tileSize, { devicePixelRatio = 1, supportsWebp = false } = {}) {
|
|
85
|
-
if (!sourceURL || !isMapboxURL(sourceURL)) return tileURL;
|
|
86
|
-
const urlObject = parseUrl(tileURL);
|
|
87
|
-
const suffix = devicePixelRatio >= 2 || tileSize === 512 ? "@2x" : "";
|
|
88
|
-
const extension = supportsWebp ? ".webp" : "$1";
|
|
89
|
-
urlObject.path = urlObject.path.replace(
|
|
90
|
-
imageExtensionRe,
|
|
91
|
-
`${suffix}${extension}`
|
|
92
|
-
);
|
|
93
|
-
return formatUrl(urlObject);
|
|
94
|
-
}
|
|
95
|
-
const urlRe = /^(\w+):\/\/([^/?]*)(\/[^?]+)?\??(.+)?/;
|
|
96
|
-
function parseUrl(url) {
|
|
97
|
-
const parts = url.match(urlRe);
|
|
98
|
-
if (!parts) {
|
|
99
|
-
throw new Error("Unable to parse URL object");
|
|
100
|
-
}
|
|
101
|
-
return {
|
|
102
|
-
protocol: parts[1],
|
|
103
|
-
authority: parts[2],
|
|
104
|
-
path: parts[3] || "/",
|
|
105
|
-
params: parts[4] ? parts[4].split("&") : []
|
|
106
|
-
};
|
|
107
|
-
}
|
|
108
|
-
function formatUrl(obj) {
|
|
109
|
-
const params = obj.params.length ? `?${obj.params.join("&")}` : "";
|
|
110
|
-
return `${obj.protocol}://${obj.authority}${obj.path}${params}`;
|
|
111
|
-
}
|
|
112
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
113
|
-
0 && (module.exports = {
|
|
114
|
-
API_URL,
|
|
115
|
-
isMapboxURL,
|
|
116
|
-
normalizeGlyphsURL,
|
|
117
|
-
normalizeSourceURL,
|
|
118
|
-
normalizeSpriteURL,
|
|
119
|
-
normalizeStyleURL,
|
|
120
|
-
normalizeTileURL
|
|
121
|
-
});
|
package/dist/utils/mapbox.d.cts
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
/** @param {string} url */
|
|
2
|
-
declare function isMapboxURL(url: string): boolean;
|
|
3
|
-
/**
|
|
4
|
-
* @param {string} url
|
|
5
|
-
* @param {string} [accessToken]
|
|
6
|
-
*/
|
|
7
|
-
declare function normalizeStyleURL(url: string, accessToken?: string): string;
|
|
8
|
-
/**
|
|
9
|
-
* @param {string} url
|
|
10
|
-
* @param {string} [accessToken]
|
|
11
|
-
*/
|
|
12
|
-
declare function normalizeGlyphsURL(url: string, accessToken?: string): string;
|
|
13
|
-
/**
|
|
14
|
-
* @param {string} url
|
|
15
|
-
* @param {string} [accessToken]
|
|
16
|
-
*/
|
|
17
|
-
declare function normalizeSourceURL(url: string, accessToken?: string): string;
|
|
18
|
-
/**
|
|
19
|
-
* @param {string} url
|
|
20
|
-
* @param {'' | '@2x'} format
|
|
21
|
-
* @param {'.png' | '.json'} extension
|
|
22
|
-
* @param {string} [accessToken]
|
|
23
|
-
*/
|
|
24
|
-
declare function normalizeSpriteURL(url: string, format: "" | "@2x", extension: ".png" | ".json", accessToken?: string): string;
|
|
25
|
-
/**
|
|
26
|
-
* @param {any} tileURL
|
|
27
|
-
* @param {string} sourceURL
|
|
28
|
-
* @param {256 | 512} [tileSize]
|
|
29
|
-
* @param {{ devicePixelRatio?: number; supportsWebp?: boolean; }} [opts]
|
|
30
|
-
*/
|
|
31
|
-
declare function normalizeTileURL(tileURL: any, sourceURL: string, tileSize?: 256 | 512, { devicePixelRatio, supportsWebp }?: {
|
|
32
|
-
devicePixelRatio?: number;
|
|
33
|
-
supportsWebp?: boolean;
|
|
34
|
-
}): any;
|
|
35
|
-
declare const API_URL: "https://api.mapbox.com";
|
|
36
|
-
type URLObject = {
|
|
37
|
-
protocol: string;
|
|
38
|
-
authority: string;
|
|
39
|
-
path: string;
|
|
40
|
-
params: string[];
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
export { API_URL, type URLObject, isMapboxURL, normalizeGlyphsURL, normalizeSourceURL, normalizeSpriteURL, normalizeStyleURL, normalizeTileURL };
|
package/dist/utils/mapbox.js
DELETED
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
const API_URL = "https://api.mapbox.com";
|
|
2
|
-
const HELP = "See https://www.mapbox.com/api-documentation/#access-tokens";
|
|
3
|
-
function makeAPIURL(urlObject, accessToken) {
|
|
4
|
-
const apiUrlObject = parseUrl(API_URL);
|
|
5
|
-
urlObject.protocol = apiUrlObject.protocol;
|
|
6
|
-
urlObject.authority = apiUrlObject.authority;
|
|
7
|
-
if (!accessToken) {
|
|
8
|
-
throw new Error(
|
|
9
|
-
`An API access token is required to use a Mapbox style. ${HELP}`
|
|
10
|
-
);
|
|
11
|
-
}
|
|
12
|
-
if (accessToken[0] === "s") {
|
|
13
|
-
throw new Error(
|
|
14
|
-
`Use a public access token (pk.*) not a secret access token (sk.*). ${HELP}`
|
|
15
|
-
);
|
|
16
|
-
}
|
|
17
|
-
urlObject.params.push(`access_token=${accessToken}`);
|
|
18
|
-
return formatUrl(urlObject);
|
|
19
|
-
}
|
|
20
|
-
function isMapboxURL(url) {
|
|
21
|
-
return url.indexOf("mapbox:") === 0;
|
|
22
|
-
}
|
|
23
|
-
function normalizeStyleURL(url, accessToken) {
|
|
24
|
-
if (!isMapboxURL(url)) return url;
|
|
25
|
-
if (!accessToken) throw new Error("Mapbox styles require an access token");
|
|
26
|
-
const urlObject = parseUrl(url);
|
|
27
|
-
urlObject.path = `/styles/v1${urlObject.path}`;
|
|
28
|
-
return makeAPIURL(urlObject, accessToken);
|
|
29
|
-
}
|
|
30
|
-
function normalizeGlyphsURL(url, accessToken) {
|
|
31
|
-
if (!isMapboxURL(url)) return url;
|
|
32
|
-
if (!accessToken) throw new Error("Mapbox styles require an access token");
|
|
33
|
-
const urlObject = parseUrl(url);
|
|
34
|
-
urlObject.path = `/fonts/v1${urlObject.path}`;
|
|
35
|
-
return makeAPIURL(urlObject, accessToken);
|
|
36
|
-
}
|
|
37
|
-
function normalizeSourceURL(url, accessToken) {
|
|
38
|
-
if (!isMapboxURL(url)) return url;
|
|
39
|
-
if (!accessToken) throw new Error("Mapbox styles require an access token");
|
|
40
|
-
const urlObject = parseUrl(url);
|
|
41
|
-
urlObject.path = `/v4/${urlObject.authority}.json`;
|
|
42
|
-
urlObject.params.push("secure");
|
|
43
|
-
return makeAPIURL(urlObject, accessToken);
|
|
44
|
-
}
|
|
45
|
-
function normalizeSpriteURL(url, format, extension, accessToken) {
|
|
46
|
-
const urlObject = parseUrl(url);
|
|
47
|
-
if (!isMapboxURL(url)) {
|
|
48
|
-
urlObject.path += `${format}${extension}`;
|
|
49
|
-
return formatUrl(urlObject);
|
|
50
|
-
}
|
|
51
|
-
urlObject.path = `/styles/v1${urlObject.path}/sprite${format}${extension}`;
|
|
52
|
-
return makeAPIURL(urlObject, accessToken);
|
|
53
|
-
}
|
|
54
|
-
const imageExtensionRe = /(\.(png|jpg)\d*)(?=$)/;
|
|
55
|
-
function normalizeTileURL(tileURL, sourceURL, tileSize, { devicePixelRatio = 1, supportsWebp = false } = {}) {
|
|
56
|
-
if (!sourceURL || !isMapboxURL(sourceURL)) return tileURL;
|
|
57
|
-
const urlObject = parseUrl(tileURL);
|
|
58
|
-
const suffix = devicePixelRatio >= 2 || tileSize === 512 ? "@2x" : "";
|
|
59
|
-
const extension = supportsWebp ? ".webp" : "$1";
|
|
60
|
-
urlObject.path = urlObject.path.replace(
|
|
61
|
-
imageExtensionRe,
|
|
62
|
-
`${suffix}${extension}`
|
|
63
|
-
);
|
|
64
|
-
return formatUrl(urlObject);
|
|
65
|
-
}
|
|
66
|
-
const urlRe = /^(\w+):\/\/([^/?]*)(\/[^?]+)?\??(.+)?/;
|
|
67
|
-
function parseUrl(url) {
|
|
68
|
-
const parts = url.match(urlRe);
|
|
69
|
-
if (!parts) {
|
|
70
|
-
throw new Error("Unable to parse URL object");
|
|
71
|
-
}
|
|
72
|
-
return {
|
|
73
|
-
protocol: parts[1],
|
|
74
|
-
authority: parts[2],
|
|
75
|
-
path: parts[3] || "/",
|
|
76
|
-
params: parts[4] ? parts[4].split("&") : []
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
function formatUrl(obj) {
|
|
80
|
-
const params = obj.params.length ? `?${obj.params.join("&")}` : "";
|
|
81
|
-
return `${obj.protocol}://${obj.authority}${obj.path}${params}`;
|
|
82
|
-
}
|
|
83
|
-
export {
|
|
84
|
-
API_URL,
|
|
85
|
-
isMapboxURL,
|
|
86
|
-
normalizeGlyphsURL,
|
|
87
|
-
normalizeSourceURL,
|
|
88
|
-
normalizeSpriteURL,
|
|
89
|
-
normalizeStyleURL,
|
|
90
|
-
normalizeTileURL
|
|
91
|
-
};
|
package/dist/utils/misc.cjs
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var misc_exports = {};
|
|
20
|
-
__export(misc_exports, {
|
|
21
|
-
clone: () => clone,
|
|
22
|
-
hasOwn: () => hasOwn,
|
|
23
|
-
noop: () => noop
|
|
24
|
-
});
|
|
25
|
-
module.exports = __toCommonJS(misc_exports);
|
|
26
|
-
function clone(obj) {
|
|
27
|
-
return JSON.parse(JSON.stringify(obj));
|
|
28
|
-
}
|
|
29
|
-
function noop() {
|
|
30
|
-
}
|
|
31
|
-
function hasOwn(obj, key) {
|
|
32
|
-
return Object.hasOwn(obj, key);
|
|
33
|
-
}
|
|
34
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
35
|
-
0 && (module.exports = {
|
|
36
|
-
clone,
|
|
37
|
-
hasOwn,
|
|
38
|
-
noop
|
|
39
|
-
});
|