This is an automated email from the ASF dual-hosted git repository.

bchapuis pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-baremaps.git


The following commit(s) were added to refs/heads/main by this push:
     new 0eb8c1a03 Update Maplibre to version 5 (#924)
0eb8c1a03 is described below

commit 0eb8c1a03067d52acadc02d9f44b2637b158d746
Author: Yongjun Hong <[email protected]>
AuthorDate: Fri Jan 31 18:53:02 2025 +0900

    Update Maplibre to version 5 (#924)
    
    * Update Maplibre to version 5
    
    * Add CSP Directive
---
 baremaps-renderer/package-lock.json                | 245 ++++++++++++++-------
 baremaps-renderer/package.json                     |   2 +-
 .../src/lib/maplibreBrowserHelpers.ts              |   4 +-
 baremaps-server/src/main/resources/dem/index.html  |  13 +-
 .../src/main/resources/static/server.html          |  13 +-
 .../src/main/resources/static/viewer.html          |  13 +-
 basemap/index.html                                 |  13 +-
 examples/openstreetmap/index.html                  |  13 +-
 8 files changed, 218 insertions(+), 98 deletions(-)

diff --git a/baremaps-renderer/package-lock.json 
b/baremaps-renderer/package-lock.json
index 94f405dc1..da97d3df8 100644
--- a/baremaps-renderer/package-lock.json
+++ b/baremaps-renderer/package-lock.json
@@ -12,7 +12,7 @@
         "chalk": "^4",
         "commander": "^10.0.1",
         "http": "^0.0.1-security",
-        "maplibre-gl": "^2.4.0",
+        "maplibre-gl": "^5.0.1",
         "pixelmatch": "^5.3.0",
         "pngjs": "^7.0.0",
         "puppeteer": "^20.2.0",
@@ -107,11 +107,6 @@
         "node": ">= 0.6"
       }
     },
-    "node_modules/@mapbox/mapbox-gl-supported": {
-      "version": "2.0.1",
-      "resolved": 
"https://registry.npmjs.org/@mapbox/mapbox-gl-supported/-/mapbox-gl-supported-2.0.1.tgz";,
-      "integrity": 
"sha512-HP6XvfNIzfoMVfyGjBckjiAOQK9WfX0ywdLubuPMPv+Vqf5fj0uCbgBQYpiqcWZT6cbyyRnTSXDheT1ugvF6UQ=="
-    },
     "node_modules/@mapbox/point-geometry": {
       "version": "0.1.0",
       "resolved": 
"https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz";,
@@ -143,6 +138,26 @@
         "node": ">=6.0.0"
       }
     },
+    "node_modules/@maplibre/maplibre-gl-style-spec": {
+      "version": "23.1.0",
+      "resolved": 
"https://registry.npmjs.org/@maplibre/maplibre-gl-style-spec/-/maplibre-gl-style-spec-23.1.0.tgz";,
+      "integrity": 
"sha512-R6/ihEuC5KRexmKIYkWqUv84Gm+/QwsOUgHyt1yy2XqCdGdLvlBWVWIIeTZWN4NGdwmY6xDzdSGU2R9oBLNg2w==",
+      "license": "ISC",
+      "dependencies": {
+        "@mapbox/jsonlint-lines-primitives": "~2.0.2",
+        "@mapbox/unitbezier": "^0.0.1",
+        "json-stringify-pretty-compact": "^4.0.0",
+        "minimist": "^1.2.8",
+        "quickselect": "^3.0.0",
+        "rw": "^1.3.3",
+        "tinyqueue": "^3.0.0"
+      },
+      "bin": {
+        "gl-style-format": "dist/gl-style-format.mjs",
+        "gl-style-migrate": "dist/gl-style-migrate.mjs",
+        "gl-style-validate": "dist/gl-style-validate.mjs"
+      }
+    },
     "node_modules/@puppeteer/browsers": {
       "version": "1.2.0",
       "resolved": 
"https://registry.npmjs.org/@puppeteer/browsers/-/browsers-1.2.0.tgz";,
@@ -182,19 +197,31 @@
       }
     },
     "node_modules/@types/geojson": {
-      "version": "7946.0.10",
-      "resolved": 
"https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.10.tgz";,
-      "integrity": 
"sha512-Nmh0K3iWQJzniTuPRcJn5hxXkfB1T1pgB89SBig5PlJQU5yocazeu4jATJlaA0GYFKWMqDdvYemoSnF2pXgLVA=="
+      "version": "7946.0.16",
+      "resolved": 
"https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz";,
+      "integrity": 
"sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==",
+      "license": "MIT"
+    },
+    "node_modules/@types/geojson-vt": {
+      "version": "3.2.5",
+      "resolved": 
"https://registry.npmjs.org/@types/geojson-vt/-/geojson-vt-3.2.5.tgz";,
+      "integrity": 
"sha512-qDO7wqtprzlpe8FfQ//ClPV9xiuoh2nkIgiouIptON9w5jvD/fA4szvP9GBlDVdJ5dldAl0kX/sy3URbWwLx0g==",
+      "license": "MIT",
+      "dependencies": {
+        "@types/geojson": "*"
+      }
     },
     "node_modules/@types/mapbox__point-geometry": {
-      "version": "0.1.2",
-      "resolved": 
"https://registry.npmjs.org/@types/mapbox__point-geometry/-/mapbox__point-geometry-0.1.2.tgz";,
-      "integrity": 
"sha512-D0lgCq+3VWV85ey1MZVkE8ZveyuvW5VAfuahVTQRpXFQTxw03SuIf1/K4UQ87MMIXVKzpFjXFiFMZzLj2kU+iA=="
+      "version": "0.1.4",
+      "resolved": 
"https://registry.npmjs.org/@types/mapbox__point-geometry/-/mapbox__point-geometry-0.1.4.tgz";,
+      "integrity": 
"sha512-mUWlSxAmYLfwnRBmgYV86tgYmMIICX4kza8YnE/eIlywGe2XoOxlpVnXWwir92xRLjwyarqwpu2EJKD2pk0IUA==",
+      "license": "MIT"
     },
     "node_modules/@types/mapbox__vector-tile": {
-      "version": "1.3.0",
-      "resolved": 
"https://registry.npmjs.org/@types/mapbox__vector-tile/-/mapbox__vector-tile-1.3.0.tgz";,
-      "integrity": 
"sha512-kDwVreQO5V4c8yAxzZVQLE5tyWF+IPToAanloQaSnwfXmIcJ7cyOrv8z4Ft4y7PsLYmhWXmON8MBV8RX0Rgr8g==",
+      "version": "1.3.4",
+      "resolved": 
"https://registry.npmjs.org/@types/mapbox__vector-tile/-/mapbox__vector-tile-1.3.4.tgz";,
+      "integrity": 
"sha512-bpd8dRn9pr6xKvuEBQup8pwQfD4VUyqO/2deGjfpe6AwC8YRlyEipvefyRJUSiCJTZuCb8Pl1ciVV5ekqJ96Bg==",
+      "license": "MIT",
       "dependencies": {
         "@types/geojson": "*",
         "@types/mapbox__point-geometry": "*",
@@ -208,9 +235,10 @@
       "devOptional": true
     },
     "node_modules/@types/pbf": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmjs.org/@types/pbf/-/pbf-3.0.2.tgz";,
-      "integrity": 
"sha512-EDrLIPaPXOZqDjrkzxxbX7UlJSeQVgah3i0aA4pOSzmK9zq3BIh7/MZIQxED7slJByvKM4Gc6Hypyu2lJzh3SQ=="
+      "version": "3.0.5",
+      "resolved": "https://registry.npmjs.org/@types/pbf/-/pbf-3.0.5.tgz";,
+      "integrity": 
"sha512-j3pOPiEcWZ34R6a6mN07mUkM4o4Lwf6hPNt8eilOeZhTFbxFXmKhvXl9Y28jotFPaI1bpPDJsbCprUoNke6OrA==",
+      "license": "MIT"
     },
     "node_modules/@types/pixelmatch": {
       "version": "5.2.4",
@@ -239,6 +267,15 @@
         "@types/node": "*"
       }
     },
+    "node_modules/@types/supercluster": {
+      "version": "7.1.3",
+      "resolved": 
"https://registry.npmjs.org/@types/supercluster/-/supercluster-7.1.3.tgz";,
+      "integrity": 
"sha512-Z0pOY34GDFl3Q6hUFYf3HkTwKEE02e7QgtJppBt+beEAxnyOpJua+voGFvxINBHa06GwLFFym7gRPY2SiKIfIA==",
+      "license": "MIT",
+      "dependencies": {
+        "@types/geojson": "*"
+      }
+    },
     "node_modules/@types/yauzl": {
       "version": "2.10.0",
       "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz";,
@@ -584,11 +621,6 @@
         "node-fetch": "2.6.7"
       }
     },
-    "node_modules/csscolorparser": {
-      "version": "1.0.3",
-      "resolved": 
"https://registry.npmjs.org/csscolorparser/-/csscolorparser-1.0.3.tgz";,
-      "integrity": 
"sha512-umPSgYwZkdFoUrH5hIq5kf0wPSXiro51nPw0j2K/c83KflkPSTBGMz6NJvMB+07VlL0y7VPo6QJcDjcgKTTm3w=="
-    },
     "node_modules/debug": {
       "version": "4.3.4",
       "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz";,
@@ -611,9 +643,10 @@
       "integrity": 
"sha512-39fCpE3Z78IaIPChJsP6Lhmkbf4dWXOmzLk/KFTdRkNk/0JymRIfUynDVRndV9HoDz8PyalK1UH21ST/ivwW5Q=="
     },
     "node_modules/earcut": {
-      "version": "2.2.4",
-      "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.4.tgz";,
-      "integrity": 
"sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ=="
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/earcut/-/earcut-3.0.1.tgz";,
+      "integrity": 
"sha512-0l1/0gOjESMeQyYaK5IDiPNvFeu93Z/cO0TjZh9eZ1vyCtZnA7KMZ8rQggpsJHIbGSdrqYq9OhuveadOVHCshw==",
+      "license": "ISC"
     },
     "node_modules/emoji-regex": {
       "version": "8.0.0",
@@ -696,9 +729,10 @@
       "dev": true
     },
     "node_modules/geojson-vt": {
-      "version": "3.2.1",
-      "resolved": 
"https://registry.npmjs.org/geojson-vt/-/geojson-vt-3.2.1.tgz";,
-      "integrity": 
"sha512-EvGQQi/zPrDA6zr6BnJD/YhwAkBP8nnJ9emh3EnHQKVMfg/MRVtPbMYdgVy/IaEmn4UfagD2a6fafPDL5hbtwg=="
+      "version": "4.0.2",
+      "resolved": 
"https://registry.npmjs.org/geojson-vt/-/geojson-vt-4.0.2.tgz";,
+      "integrity": 
"sha512-AV9ROqlNqoZEIJGfm1ncNjEXfkz2hdFlZf0qkVfmkwdKa8vj7H16YUOT81rJw1rdFhyEDlN2Tds91p/glzbl5A==",
+      "license": "ISC"
     },
     "node_modules/get-caller-file": {
       "version": "2.0.5",
@@ -748,16 +782,17 @@
       }
     },
     "node_modules/global-prefix": {
-      "version": "3.0.0",
-      "resolved": 
"https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz";,
-      "integrity": 
"sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==",
+      "version": "4.0.0",
+      "resolved": 
"https://registry.npmjs.org/global-prefix/-/global-prefix-4.0.0.tgz";,
+      "integrity": 
"sha512-w0Uf9Y9/nyHinEk5vMJKRie+wa4kR5hmDbEhGGds/kG1PwGLLHKRoNMeJOyCQjjBkANlnScqgzcFwGHgmgLkVA==",
+      "license": "MIT",
       "dependencies": {
-        "ini": "^1.3.5",
-        "kind-of": "^6.0.2",
-        "which": "^1.3.1"
+        "ini": "^4.1.3",
+        "kind-of": "^6.0.3",
+        "which": "^4.0.0"
       },
       "engines": {
-        "node": ">=6"
+        "node": ">=16"
       }
     },
     "node_modules/graceful-fs": {
@@ -854,9 +889,13 @@
       "integrity": 
"sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
     },
     "node_modules/ini": {
-      "version": "1.3.8",
-      "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz";,
-      "integrity": 
"sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
+      "version": "4.1.3",
+      "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.3.tgz";,
+      "integrity": 
"sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==",
+      "license": "ISC",
+      "engines": {
+        "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+      }
     },
     "node_modules/is-arrayish": {
       "version": "0.2.1",
@@ -878,9 +917,13 @@
       "dev": true
     },
     "node_modules/isexe": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz";,
-      "integrity": 
"sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
+      "version": "3.1.1",
+      "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz";,
+      "integrity": 
"sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==",
+      "license": "ISC",
+      "engines": {
+        "node": ">=16"
+      }
     },
     "node_modules/js-tokens": {
       "version": "4.0.0",
@@ -903,15 +946,23 @@
       "resolved": 
"https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz";,
       "integrity": 
"sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w=="
     },
+    "node_modules/json-stringify-pretty-compact": {
+      "version": "4.0.0",
+      "resolved": 
"https://registry.npmjs.org/json-stringify-pretty-compact/-/json-stringify-pretty-compact-4.0.0.tgz";,
+      "integrity": 
"sha512-3CNZ2DnrpByG9Nqj6Xo8vqbjT4F6N+tb4Gb28ESAZjYZ5yqvmc56J+/kuIwkaAMOyblTQhUW7PxMkUb8Q36N3Q==",
+      "license": "MIT"
+    },
     "node_modules/kdbush": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-3.0.0.tgz";,
-      "integrity": 
"sha512-hRkd6/XW4HTsA9vjVpY9tuXJYLSlelnkTmVFu4M9/7MIYQtFcHpbugAU7UbOfjOiVSVYl2fqgBuJ32JUmRo5Ew=="
+      "version": "4.0.2",
+      "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-4.0.2.tgz";,
+      "integrity": 
"sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA==",
+      "license": "ISC"
     },
     "node_modules/kind-of": {
       "version": "6.0.3",
       "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz";,
       "integrity": 
"sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+      "license": "MIT",
       "engines": {
         "node": ">=0.10.0"
       }
@@ -931,35 +982,44 @@
       }
     },
     "node_modules/maplibre-gl": {
-      "version": "2.4.0",
-      "resolved": 
"https://registry.npmjs.org/maplibre-gl/-/maplibre-gl-2.4.0.tgz";,
-      "integrity": 
"sha512-csNFylzntPmHWidczfgCZpvbTSmhaWvLRj9e1ezUDBEPizGgshgm3ea1T5TCNEEBq0roauu7BPuRZjA3wO4KqA==",
-      "hasInstallScript": true,
+      "version": "5.0.1",
+      "resolved": 
"https://registry.npmjs.org/maplibre-gl/-/maplibre-gl-5.0.1.tgz";,
+      "integrity": 
"sha512-kNvod1Tq0BcZvn43UAciA3DrzaEGmowqMoI6nh3kUo9rf+7m89mFJI9dELxkWzJ/N9Pgnkp7xF1jzTP08PGpCw==",
+      "license": "BSD-3-Clause",
       "dependencies": {
         "@mapbox/geojson-rewind": "^0.5.2",
         "@mapbox/jsonlint-lines-primitives": "^2.0.2",
-        "@mapbox/mapbox-gl-supported": "^2.0.1",
         "@mapbox/point-geometry": "^0.1.0",
-        "@mapbox/tiny-sdf": "^2.0.5",
+        "@mapbox/tiny-sdf": "^2.0.6",
         "@mapbox/unitbezier": "^0.0.1",
         "@mapbox/vector-tile": "^1.3.1",
         "@mapbox/whoots-js": "^3.1.0",
-        "@types/geojson": "^7946.0.10",
-        "@types/mapbox__point-geometry": "^0.1.2",
-        "@types/mapbox__vector-tile": "^1.3.0",
-        "@types/pbf": "^3.0.2",
-        "csscolorparser": "~1.0.3",
-        "earcut": "^2.2.4",
-        "geojson-vt": "^3.2.1",
+        "@maplibre/maplibre-gl-style-spec": "^23.0.0",
+        "@types/geojson": "^7946.0.15",
+        "@types/geojson-vt": "3.2.5",
+        "@types/mapbox__point-geometry": "^0.1.4",
+        "@types/mapbox__vector-tile": "^1.3.4",
+        "@types/pbf": "^3.0.5",
+        "@types/supercluster": "^7.1.3",
+        "earcut": "^3.0.1",
+        "geojson-vt": "^4.0.2",
         "gl-matrix": "^3.4.3",
-        "global-prefix": "^3.0.0",
+        "global-prefix": "^4.0.0",
+        "kdbush": "^4.0.2",
         "murmurhash-js": "^1.0.0",
-        "pbf": "^3.2.1",
-        "potpack": "^1.0.2",
-        "quickselect": "^2.0.0",
-        "supercluster": "^7.1.5",
-        "tinyqueue": "^2.0.3",
+        "pbf": "^3.3.0",
+        "potpack": "^2.0.0",
+        "quickselect": "^3.0.0",
+        "supercluster": "^8.0.1",
+        "tinyqueue": "^3.0.0",
         "vt-pbf": "^3.1.3"
+      },
+      "engines": {
+        "node": ">=16.14.0",
+        "npm": ">=8.1.0"
+      },
+      "funding": {
+        "url": "https://github.com/maplibre/maplibre-gl-js?sponsor=1";
       }
     },
     "node_modules/mime": {
@@ -1134,9 +1194,10 @@
       }
     },
     "node_modules/pbf": {
-      "version": "3.2.1",
-      "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.2.1.tgz";,
-      "integrity": 
"sha512-ClrV7pNOn7rtmoQVF4TS1vyU0WhYRnP92fzbfF75jAIwpnzdJXf8iTd4CMEqO4yUenH6NDqLiwjqlh6QgZzgLQ==",
+      "version": "3.3.0",
+      "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.3.0.tgz";,
+      "integrity": 
"sha512-XDF38WCH3z5OV/OVa8GKUNtLAyneuzbCisx7QUCF8Q6Nutx0WnJrQe5O+kOtBlLfRNUws98Y58Lblp+NJG5T4Q==",
+      "license": "BSD-3-Clause",
       "dependencies": {
         "ieee754": "^1.1.12",
         "resolve-protobuf-schema": "^2.1.0"
@@ -1178,9 +1239,10 @@
       }
     },
     "node_modules/potpack": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/potpack/-/potpack-1.0.2.tgz";,
-      "integrity": 
"sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ=="
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/potpack/-/potpack-2.0.0.tgz";,
+      "integrity": 
"sha512-Q+/tYsFU9r7xoOJ+y/ZTtdVQwTWfzjbiXBDMM/JKUux3+QPP02iUuIoeBQ+Ot6oEDlC+/PGjB/5A3K7KKb7hcw==",
+      "license": "ISC"
     },
     "node_modules/prettier": {
       "version": "2.8.8",
@@ -1271,9 +1333,10 @@
       }
     },
     "node_modules/quickselect": {
-      "version": "2.0.0",
-      "resolved": 
"https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz";,
-      "integrity": 
"sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw=="
+      "version": "3.0.0",
+      "resolved": 
"https://registry.npmjs.org/quickselect/-/quickselect-3.0.0.tgz";,
+      "integrity": 
"sha512-XdjUArbK4Bm5fLLvlm5KpTFOiOThgfWWI4axAZDWg4E/0mKdZyI9tNEfds27qCi1ze/vwTR16kvmmGhRra3c2g==",
+      "license": "ISC"
     },
     "node_modules/readable-stream": {
       "version": "3.6.2",
@@ -1312,6 +1375,12 @@
         "protocol-buffers-schema": "^3.3.1"
       }
     },
+    "node_modules/rw": {
+      "version": "1.3.3",
+      "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz";,
+      "integrity": 
"sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==",
+      "license": "BSD-3-Clause"
+    },
     "node_modules/safe-buffer": {
       "version": "5.2.1",
       "resolved": 
"https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz";,
@@ -1415,11 +1484,12 @@
       }
     },
     "node_modules/supercluster": {
-      "version": "7.1.5",
-      "resolved": 
"https://registry.npmjs.org/supercluster/-/supercluster-7.1.5.tgz";,
-      "integrity": 
"sha512-EulshI3pGUM66o6ZdH3ReiFcvHpM3vAigyK+vcxdjpJyEbIIrtbmBdY23mGgnI24uXiGFvrGq9Gkum/8U7vJWg==",
+      "version": "8.0.1",
+      "resolved": 
"https://registry.npmjs.org/supercluster/-/supercluster-8.0.1.tgz";,
+      "integrity": 
"sha512-IiOea5kJ9iqzD2t7QJq/cREyLHTtSmUT6gQsweojg9WH2sYJqZK9SswTu6jrscO6D1G5v5vYZ9ru/eq85lXeZQ==",
+      "license": "ISC",
       "dependencies": {
-        "kdbush": "^3.0.0"
+        "kdbush": "^4.0.2"
       }
     },
     "node_modules/supports-color": {
@@ -1511,9 +1581,10 @@
       }
     },
     "node_modules/tinyqueue": {
-      "version": "2.0.3",
-      "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-2.0.3.tgz";,
-      "integrity": 
"sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA=="
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-3.0.0.tgz";,
+      "integrity": 
"sha512-gRa9gwYU3ECmQYv3lslts5hxuIa90veaEcxDYuu3QGOIAEM2mOZkVHp48ANJuu1CURtRdHKUBY5Lm1tHV+sD4g==",
+      "license": "ISC"
     },
     "node_modules/tr46": {
       "version": "0.0.3",
@@ -1581,14 +1652,18 @@
       }
     },
     "node_modules/which": {
-      "version": "1.3.1",
-      "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz";,
-      "integrity": 
"sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz";,
+      "integrity": 
"sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==",
+      "license": "ISC",
       "dependencies": {
-        "isexe": "^2.0.0"
+        "isexe": "^3.1.1"
       },
       "bin": {
-        "which": "bin/which"
+        "node-which": "bin/which.js"
+      },
+      "engines": {
+        "node": "^16.13.0 || >=18.0.0"
       }
     },
     "node_modules/wrap-ansi": {
diff --git a/baremaps-renderer/package.json b/baremaps-renderer/package.json
index 49844dbe9..10fa4cf1e 100644
--- a/baremaps-renderer/package.json
+++ b/baremaps-renderer/package.json
@@ -16,7 +16,7 @@
     "chalk": "^4",
     "commander": "^10.0.1",
     "http": "^0.0.1-security",
-    "maplibre-gl": "^2.4.0",
+    "maplibre-gl": "^5.0.1",
     "pixelmatch": "^5.3.0",
     "pngjs": "^7.0.0",
     "puppeteer": "^20.2.0",
diff --git a/baremaps-renderer/src/lib/maplibreBrowserHelpers.ts 
b/baremaps-renderer/src/lib/maplibreBrowserHelpers.ts
index 7eb413290..27f91ebc0 100644
--- a/baremaps-renderer/src/lib/maplibreBrowserHelpers.ts
+++ b/baremaps-renderer/src/lib/maplibreBrowserHelpers.ts
@@ -54,10 +54,10 @@ export class MaplibreBrowserHelpers {
     }
 
     await page.addScriptTag({
-      url: 'https://unpkg.com/[email protected]/dist/maplibre-gl.js',
+      url: 'https://unpkg.com/[email protected]/dist/maplibre-gl.js',
     });
     await page.addStyleTag({
-      url: 'https://unpkg.com/[email protected]/dist/maplibre-gl.css',
+      url: 'https://unpkg.com/[email protected]/dist/maplibre-gl.css',
     });
   }
 
diff --git a/baremaps-server/src/main/resources/dem/index.html 
b/baremaps-server/src/main/resources/dem/index.html
index f4258ee76..374875b27 100644
--- a/baremaps-server/src/main/resources/dem/index.html
+++ b/baremaps-server/src/main/resources/dem/index.html
@@ -21,12 +21,21 @@ limitations under the License.
     <meta property="og:description" content="Digital Elevation Model (DEM)" />
     <meta charset='utf-8'>
     <meta name="viewport" content="width=device-width, initial-scale=1">
-    <script src="https://unpkg.com/[email protected]/dist/maplibre-gl.js"; 
integrity="sha256-RU7N55x2fpxos26u6Mrn26qPlDih4ZiqZMstWPipnGE=" 
crossorigin="anonymous"></script>
+    <meta http-equiv="Content-Security-Policy" content="
+    default-src 'self' http://127.0.0.1:* http://localhost:* https://unpkg.com 
https://baremaps.apache.org;
+    script-src 'self' http://127.0.0.1:* http://localhost:* https://unpkg.com 
https://unpkg.com https://baremaps.apache.org 'unsafe-inline';
+    worker-src 'self' blob:;
+    child-src 'self' blob:;
+    img-src 'self' data: blob: http://127.0.0.1:* http://localhost:* 
https://unpkg.com https://baremaps.apache.org;
+    style-src 'self' 'unsafe-inline' http://127.0.0.1:* http://localhost:* 
https://unpkg.com https://baremaps.apache.org;
+  ">
+
+    <script src="https://unpkg.com/[email protected]/dist/maplibre-gl.js"; 
integrity="sha256-VkgYz8vlPsIndJcxwEDZKAdx4r+Ag7HcLBPP4UbJrZE=" 
crossorigin="anonymous"></script>
     <script 
src="https://baremaps.apache.org/assets/maplibre/maplibre-gl-inspect.js"; 
integrity="sha256-NYdRoIbqeAWkTHjpa/BukMLXcsiqFoDuJCYzzaRei30=" 
crossorigin="anonymous"></script>
     <script 
src="https://baremaps.apache.org/assets/maplibre/maplibre-gl-tile-boundaries.js";
 integrity="sha256-Jo8NvxMzooqayU8+eIsjO49b4EoakoE0o0tSSrBWPCU=" 
crossorigin="anonymous"></script>
     <script 
src="https://baremaps.apache.org/assets/maplibre/maplibre-custom-controls.js"; 
integrity="sha256-80a3VIbp5OJ8HSIWJ7+6NjTvdBmVirLCR6otKucXnlw=" 
crossorigin="anonymous"></script>
     <script 
src="https://baremaps.apache.org/assets/maplibre/maplibre-gl-framerate.js"; 
integrity="sha256-6IVzv2heNDAl7KkSqjRkmjr56asfkdCxO2q8ouTo8t8=" 
crossorigin="anonymous"></script>
-    <link rel="stylesheet" 
href="https://unpkg.com/[email protected]/dist/maplibre-gl.css"; 
integrity="sha256-V2sIX92Uh6ZaGSFTKMHghsB85b9toJtmazgG09AI2uk=" 
crossorigin="anonymous">
+    <link rel="stylesheet" 
href="https://unpkg.com/[email protected]/dist/maplibre-gl.css"; 
integrity="sha256-eSrJl9z2rm9kPrTi3uRjDIXnBWUmvY+4X/6Dxn1sQbQ=" 
crossorigin="anonymous">
     <link rel="stylesheet" 
href="https://baremaps.apache.org/assets/maplibre/maplibre-gl-inspect.css"; 
integrity="sha256-ePhsoaklgbCBxK7kfSUcP+V+bVqnfFwpILz7hkSR0Lo=" 
crossorigin="anonymous">
     <link rel="stylesheet" 
href="https://baremaps.apache.org/assets/maplibre/maplibre-gl-tile-boundaries.css";
 integrity="sha256-FxIRliWXnU67sT1i97MgNQ0qL8LjsgYiBH9v/uNxzdM=" 
crossorigin="anonymous">
     <link rel="stylesheet" 
href="https://baremaps.apache.org/assets/maplibre/maplibre-custom-controls.css"; 
integrity="sha256-rFc19qrZTPgcrNeYjtsLCcDOqM5NrLiPy2U+0FxW9vA=" 
crossorigin="anonymous">
diff --git a/baremaps-server/src/main/resources/static/server.html 
b/baremaps-server/src/main/resources/static/server.html
index 6c74e9a02..966877f9f 100644
--- a/baremaps-server/src/main/resources/static/server.html
+++ b/baremaps-server/src/main/resources/static/server.html
@@ -17,12 +17,21 @@ limitations under the License.
 -->
 <html lang="en">
 <head>
-  <script src="https://unpkg.com/[email protected]/dist/maplibre-gl.js"; 
integrity="sha256-RU7N55x2fpxos26u6Mrn26qPlDih4ZiqZMstWPipnGE=" 
crossorigin="anonymous"></script>
+  <meta http-equiv="Content-Security-Policy" content="
+    default-src 'self' http://127.0.0.1:* http://localhost:* https://unpkg.com 
https://baremaps.apache.org;
+    script-src 'self' http://127.0.0.1:* http://localhost:* https://unpkg.com 
https://unpkg.com https://baremaps.apache.org 'unsafe-inline';
+    worker-src 'self' blob:;
+    child-src 'self' blob:;
+    img-src 'self' data: blob: http://127.0.0.1:* http://localhost:* 
https://unpkg.com https://baremaps.apache.org;
+    style-src 'self' 'unsafe-inline' http://127.0.0.1:* http://localhost:* 
https://unpkg.com https://baremaps.apache.org;
+  ">
+
+  <script src="https://unpkg.com/[email protected]/dist/maplibre-gl.js"; 
integrity="sha256-VkgYz8vlPsIndJcxwEDZKAdx4r+Ag7HcLBPP4UbJrZE=" 
crossorigin="anonymous"></script>
   <script 
src="https://baremaps.apache.org/assets/maplibre/maplibre-gl-inspect.js"; 
integrity="sha256-NYdRoIbqeAWkTHjpa/BukMLXcsiqFoDuJCYzzaRei30=" 
crossorigin="anonymous"></script>
   <script 
src="https://baremaps.apache.org/assets/maplibre/maplibre-gl-tile-boundaries.js";
 integrity="sha256-Jo8NvxMzooqayU8+eIsjO49b4EoakoE0o0tSSrBWPCU=" 
crossorigin="anonymous"></script>
   <script 
src="https://baremaps.apache.org/assets/maplibre/maplibre-custom-controls.js"; 
integrity="sha256-80a3VIbp5OJ8HSIWJ7+6NjTvdBmVirLCR6otKucXnlw=" 
crossorigin="anonymous"></script>
   <script 
src="https://baremaps.apache.org/assets/maplibre/maplibre-gl-framerate.js"; 
integrity="sha256-6IVzv2heNDAl7KkSqjRkmjr56asfkdCxO2q8ouTo8t8=" 
crossorigin="anonymous"></script>
-  <link rel="stylesheet" 
href="https://unpkg.com/[email protected]/dist/maplibre-gl.css"; 
integrity="sha256-V2sIX92Uh6ZaGSFTKMHghsB85b9toJtmazgG09AI2uk=" 
crossorigin="anonymous">
+  <link rel="stylesheet" 
href="https://unpkg.com/[email protected]/dist/maplibre-gl.css"; 
integrity="sha256-eSrJl9z2rm9kPrTi3uRjDIXnBWUmvY+4X/6Dxn1sQbQ=" 
crossorigin="anonymous">
   <link rel="stylesheet" 
href="https://baremaps.apache.org/assets/maplibre/maplibre-gl-inspect.css"; 
integrity="sha256-ePhsoaklgbCBxK7kfSUcP+V+bVqnfFwpILz7hkSR0Lo=" 
crossorigin="anonymous">
   <link rel="stylesheet" 
href="https://baremaps.apache.org/assets/maplibre/maplibre-gl-tile-boundaries.css";
 integrity="sha256-FxIRliWXnU67sT1i97MgNQ0qL8LjsgYiBH9v/uNxzdM=" 
crossorigin="anonymous">
   <link rel="stylesheet" 
href="https://baremaps.apache.org/assets/maplibre/maplibre-custom-controls.css"; 
integrity="sha256-rFc19qrZTPgcrNeYjtsLCcDOqM5NrLiPy2U+0FxW9vA=" 
crossorigin="anonymous">
diff --git a/baremaps-server/src/main/resources/static/viewer.html 
b/baremaps-server/src/main/resources/static/viewer.html
index cf00c992b..00f8326b9 100644
--- a/baremaps-server/src/main/resources/static/viewer.html
+++ b/baremaps-server/src/main/resources/static/viewer.html
@@ -17,12 +17,21 @@ limitations under the License.
 -->
 <html lang="en">
 <head>
-  <script src="https://unpkg.com/[email protected]/dist/maplibre-gl.js"; 
integrity="sha256-RU7N55x2fpxos26u6Mrn26qPlDih4ZiqZMstWPipnGE=" 
crossorigin="anonymous"></script>
+  <meta http-equiv="Content-Security-Policy" content="
+    default-src 'self' http://127.0.0.1:* http://localhost:* https://unpkg.com 
https://baremaps.apache.org;
+    script-src 'self' http://127.0.0.1:* http://localhost:* https://unpkg.com 
https://unpkg.com https://baremaps.apache.org 'unsafe-inline';
+    worker-src 'self' blob:;
+    child-src 'self' blob:;
+    img-src 'self' data: blob: http://127.0.0.1:* http://localhost:* 
https://unpkg.com https://baremaps.apache.org;
+    style-src 'self' 'unsafe-inline' http://127.0.0.1:* http://localhost:* 
https://unpkg.com https://baremaps.apache.org;
+  ">
+
+  <script src="https://unpkg.com/[email protected]/dist/maplibre-gl.js"; 
integrity="sha256-VkgYz8vlPsIndJcxwEDZKAdx4r+Ag7HcLBPP4UbJrZE=" 
crossorigin="anonymous"></script>
   <script 
src="https://baremaps.apache.org/assets/maplibre/maplibre-gl-inspect.js"; 
integrity="sha256-NYdRoIbqeAWkTHjpa/BukMLXcsiqFoDuJCYzzaRei30=" 
crossorigin="anonymous"></script>
   <script 
src="https://baremaps.apache.org/assets/maplibre/maplibre-gl-tile-boundaries.js";
 integrity="sha256-Jo8NvxMzooqayU8+eIsjO49b4EoakoE0o0tSSrBWPCU=" 
crossorigin="anonymous"></script>
   <script 
src="https://baremaps.apache.org/assets/maplibre/maplibre-custom-controls.js"; 
integrity="sha256-80a3VIbp5OJ8HSIWJ7+6NjTvdBmVirLCR6otKucXnlw=" 
crossorigin="anonymous"></script>
   <script 
src="https://baremaps.apache.org/assets/maplibre/maplibre-gl-framerate.js"; 
integrity="sha256-6IVzv2heNDAl7KkSqjRkmjr56asfkdCxO2q8ouTo8t8=" 
crossorigin="anonymous"></script>
-  <link rel="stylesheet" 
href="https://unpkg.com/[email protected]/dist/maplibre-gl.css"; 
integrity="sha256-V2sIX92Uh6ZaGSFTKMHghsB85b9toJtmazgG09AI2uk=" 
crossorigin="anonymous">
+  <link rel="stylesheet" 
href="https://unpkg.com/[email protected]/dist/maplibre-gl.css"; 
integrity="sha256-eSrJl9z2rm9kPrTi3uRjDIXnBWUmvY+4X/6Dxn1sQbQ=" 
crossorigin="anonymous">
   <link rel="stylesheet" 
href="https://baremaps.apache.org/assets/maplibre/maplibre-gl-inspect.css"; 
integrity="sha256-ePhsoaklgbCBxK7kfSUcP+V+bVqnfFwpILz7hkSR0Lo=" 
crossorigin="anonymous">
   <link rel="stylesheet" 
href="https://baremaps.apache.org/assets/maplibre/maplibre-gl-tile-boundaries.css";
 integrity="sha256-FxIRliWXnU67sT1i97MgNQ0qL8LjsgYiBH9v/uNxzdM=" 
crossorigin="anonymous">
   <link rel="stylesheet" 
href="https://baremaps.apache.org/assets/maplibre/maplibre-custom-controls.css"; 
integrity="sha256-rFc19qrZTPgcrNeYjtsLCcDOqM5NrLiPy2U+0FxW9vA=" 
crossorigin="anonymous">
diff --git a/basemap/index.html b/basemap/index.html
index 6c74e9a02..966877f9f 100644
--- a/basemap/index.html
+++ b/basemap/index.html
@@ -17,12 +17,21 @@ limitations under the License.
 -->
 <html lang="en">
 <head>
-  <script src="https://unpkg.com/[email protected]/dist/maplibre-gl.js"; 
integrity="sha256-RU7N55x2fpxos26u6Mrn26qPlDih4ZiqZMstWPipnGE=" 
crossorigin="anonymous"></script>
+  <meta http-equiv="Content-Security-Policy" content="
+    default-src 'self' http://127.0.0.1:* http://localhost:* https://unpkg.com 
https://baremaps.apache.org;
+    script-src 'self' http://127.0.0.1:* http://localhost:* https://unpkg.com 
https://unpkg.com https://baremaps.apache.org 'unsafe-inline';
+    worker-src 'self' blob:;
+    child-src 'self' blob:;
+    img-src 'self' data: blob: http://127.0.0.1:* http://localhost:* 
https://unpkg.com https://baremaps.apache.org;
+    style-src 'self' 'unsafe-inline' http://127.0.0.1:* http://localhost:* 
https://unpkg.com https://baremaps.apache.org;
+  ">
+
+  <script src="https://unpkg.com/[email protected]/dist/maplibre-gl.js"; 
integrity="sha256-VkgYz8vlPsIndJcxwEDZKAdx4r+Ag7HcLBPP4UbJrZE=" 
crossorigin="anonymous"></script>
   <script 
src="https://baremaps.apache.org/assets/maplibre/maplibre-gl-inspect.js"; 
integrity="sha256-NYdRoIbqeAWkTHjpa/BukMLXcsiqFoDuJCYzzaRei30=" 
crossorigin="anonymous"></script>
   <script 
src="https://baremaps.apache.org/assets/maplibre/maplibre-gl-tile-boundaries.js";
 integrity="sha256-Jo8NvxMzooqayU8+eIsjO49b4EoakoE0o0tSSrBWPCU=" 
crossorigin="anonymous"></script>
   <script 
src="https://baremaps.apache.org/assets/maplibre/maplibre-custom-controls.js"; 
integrity="sha256-80a3VIbp5OJ8HSIWJ7+6NjTvdBmVirLCR6otKucXnlw=" 
crossorigin="anonymous"></script>
   <script 
src="https://baremaps.apache.org/assets/maplibre/maplibre-gl-framerate.js"; 
integrity="sha256-6IVzv2heNDAl7KkSqjRkmjr56asfkdCxO2q8ouTo8t8=" 
crossorigin="anonymous"></script>
-  <link rel="stylesheet" 
href="https://unpkg.com/[email protected]/dist/maplibre-gl.css"; 
integrity="sha256-V2sIX92Uh6ZaGSFTKMHghsB85b9toJtmazgG09AI2uk=" 
crossorigin="anonymous">
+  <link rel="stylesheet" 
href="https://unpkg.com/[email protected]/dist/maplibre-gl.css"; 
integrity="sha256-eSrJl9z2rm9kPrTi3uRjDIXnBWUmvY+4X/6Dxn1sQbQ=" 
crossorigin="anonymous">
   <link rel="stylesheet" 
href="https://baremaps.apache.org/assets/maplibre/maplibre-gl-inspect.css"; 
integrity="sha256-ePhsoaklgbCBxK7kfSUcP+V+bVqnfFwpILz7hkSR0Lo=" 
crossorigin="anonymous">
   <link rel="stylesheet" 
href="https://baremaps.apache.org/assets/maplibre/maplibre-gl-tile-boundaries.css";
 integrity="sha256-FxIRliWXnU67sT1i97MgNQ0qL8LjsgYiBH9v/uNxzdM=" 
crossorigin="anonymous">
   <link rel="stylesheet" 
href="https://baremaps.apache.org/assets/maplibre/maplibre-custom-controls.css"; 
integrity="sha256-rFc19qrZTPgcrNeYjtsLCcDOqM5NrLiPy2U+0FxW9vA=" 
crossorigin="anonymous">
diff --git a/examples/openstreetmap/index.html 
b/examples/openstreetmap/index.html
index 6c74e9a02..966877f9f 100644
--- a/examples/openstreetmap/index.html
+++ b/examples/openstreetmap/index.html
@@ -17,12 +17,21 @@ limitations under the License.
 -->
 <html lang="en">
 <head>
-  <script src="https://unpkg.com/[email protected]/dist/maplibre-gl.js"; 
integrity="sha256-RU7N55x2fpxos26u6Mrn26qPlDih4ZiqZMstWPipnGE=" 
crossorigin="anonymous"></script>
+  <meta http-equiv="Content-Security-Policy" content="
+    default-src 'self' http://127.0.0.1:* http://localhost:* https://unpkg.com 
https://baremaps.apache.org;
+    script-src 'self' http://127.0.0.1:* http://localhost:* https://unpkg.com 
https://unpkg.com https://baremaps.apache.org 'unsafe-inline';
+    worker-src 'self' blob:;
+    child-src 'self' blob:;
+    img-src 'self' data: blob: http://127.0.0.1:* http://localhost:* 
https://unpkg.com https://baremaps.apache.org;
+    style-src 'self' 'unsafe-inline' http://127.0.0.1:* http://localhost:* 
https://unpkg.com https://baremaps.apache.org;
+  ">
+
+  <script src="https://unpkg.com/[email protected]/dist/maplibre-gl.js"; 
integrity="sha256-VkgYz8vlPsIndJcxwEDZKAdx4r+Ag7HcLBPP4UbJrZE=" 
crossorigin="anonymous"></script>
   <script 
src="https://baremaps.apache.org/assets/maplibre/maplibre-gl-inspect.js"; 
integrity="sha256-NYdRoIbqeAWkTHjpa/BukMLXcsiqFoDuJCYzzaRei30=" 
crossorigin="anonymous"></script>
   <script 
src="https://baremaps.apache.org/assets/maplibre/maplibre-gl-tile-boundaries.js";
 integrity="sha256-Jo8NvxMzooqayU8+eIsjO49b4EoakoE0o0tSSrBWPCU=" 
crossorigin="anonymous"></script>
   <script 
src="https://baremaps.apache.org/assets/maplibre/maplibre-custom-controls.js"; 
integrity="sha256-80a3VIbp5OJ8HSIWJ7+6NjTvdBmVirLCR6otKucXnlw=" 
crossorigin="anonymous"></script>
   <script 
src="https://baremaps.apache.org/assets/maplibre/maplibre-gl-framerate.js"; 
integrity="sha256-6IVzv2heNDAl7KkSqjRkmjr56asfkdCxO2q8ouTo8t8=" 
crossorigin="anonymous"></script>
-  <link rel="stylesheet" 
href="https://unpkg.com/[email protected]/dist/maplibre-gl.css"; 
integrity="sha256-V2sIX92Uh6ZaGSFTKMHghsB85b9toJtmazgG09AI2uk=" 
crossorigin="anonymous">
+  <link rel="stylesheet" 
href="https://unpkg.com/[email protected]/dist/maplibre-gl.css"; 
integrity="sha256-eSrJl9z2rm9kPrTi3uRjDIXnBWUmvY+4X/6Dxn1sQbQ=" 
crossorigin="anonymous">
   <link rel="stylesheet" 
href="https://baremaps.apache.org/assets/maplibre/maplibre-gl-inspect.css"; 
integrity="sha256-ePhsoaklgbCBxK7kfSUcP+V+bVqnfFwpILz7hkSR0Lo=" 
crossorigin="anonymous">
   <link rel="stylesheet" 
href="https://baremaps.apache.org/assets/maplibre/maplibre-gl-tile-boundaries.css";
 integrity="sha256-FxIRliWXnU67sT1i97MgNQ0qL8LjsgYiBH9v/uNxzdM=" 
crossorigin="anonymous">
   <link rel="stylesheet" 
href="https://baremaps.apache.org/assets/maplibre/maplibre-custom-controls.css"; 
integrity="sha256-rFc19qrZTPgcrNeYjtsLCcDOqM5NrLiPy2U+0FxW9vA=" 
crossorigin="anonymous">


Reply via email to