Working JavaScript charts
[gpl/argeo-suite.git] / js / package-lock.json
index 071bfeaf603406f57336302e56ea2759c20257f8..7e38ea86713cf75a685a87c8364697d6ac870799 100644 (file)
@@ -1,15 +1,18 @@
 {
-       "name": "org.argeo.app.geo.js",
+       "name": "org.argeo.app.js",
        "version": "2.3.0.next",
        "lockfileVersion": 2,
        "requires": true,
        "packages": {
                "": {
+                       "name": "org.argeo.app.js",
                        "version": "2.3.0.next",
                        "license": "GPL",
                        "dependencies": {
-                               "@nieuwlandgeo/sldreader": "^0.3.1",
-                               "ol": "7.5.x"
+                               "@nieuwlandgeo/sldreader": "0.3.x",
+                               "chart.js": "4.x.x",
+                               "chartjs-plugin-annotation": "^3.0.1",
+                               "ol": "8.x.x"
                        },
                        "devDependencies": {
                                "css-loader": "^6.8.1",
@@ -25,9 +28,9 @@
                        }
                },
                "node_modules/@babel/parser": {
-                       "version": "7.22.14",
-                       "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.14.tgz",
-                       "integrity": "sha512-1KucTHgOvaw/LzCVrEOAyXkr9rQlp0A1HiHRYnSUE9dmb8PvPW7o5sscg+5169r54n3vGlbx6GevTE/Iw/P3AQ==",
+                       "version": "7.22.16",
+                       "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.16.tgz",
+                       "integrity": "sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA==",
                        "dev": true,
                        "bin": {
                                "parser": "bin/babel-parser.js"
                                "node": ">=v12.0.0"
                        }
                },
-               "node_modules/@mapbox/jsonlint-lines-primitives": {
-                       "version": "2.0.2",
-                       "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz",
-                       "integrity": "sha512-rY0o9A5ECsTQRVhv7tL/OyDpGAoUB4tTvLiW1DSzQGq4bvTPhNw1VpSNjDJc5GFZ2XuyOtSWSVN05qOtcD71qQ==",
-                       "engines": {
-                               "node": ">= 0.6"
-                       }
-               },
-               "node_modules/@mapbox/mapbox-gl-style-spec": {
-                       "version": "13.28.0",
-                       "resolved": "https://registry.npmjs.org/@mapbox/mapbox-gl-style-spec/-/mapbox-gl-style-spec-13.28.0.tgz",
-                       "integrity": "sha512-B8xM7Fp1nh5kejfIl4SWeY0gtIeewbuRencqO3cJDrCHZpaPg7uY+V8abuR+esMeuOjRl5cLhVTP40v+1ywxbg==",
-                       "dependencies": {
-                               "@mapbox/jsonlint-lines-primitives": "~2.0.2",
-                               "@mapbox/point-geometry": "^0.1.0",
-                               "@mapbox/unitbezier": "^0.0.0",
-                               "csscolorparser": "~1.0.2",
-                               "json-stringify-pretty-compact": "^2.0.0",
-                               "minimist": "^1.2.6",
-                               "rw": "^1.3.3",
-                               "sort-object": "^0.3.2"
-                       },
-                       "bin": {
-                               "gl-style-composite": "bin/gl-style-composite.js",
-                               "gl-style-format": "bin/gl-style-format.js",
-                               "gl-style-migrate": "bin/gl-style-migrate.js",
-                               "gl-style-validate": "bin/gl-style-validate.js"
-                       }
-               },
-               "node_modules/@mapbox/point-geometry": {
-                       "version": "0.1.0",
-                       "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz",
-                       "integrity": "sha512-6j56HdLTwWGO0fJPlrZtdU/B13q8Uwmo18Ck2GnGgN9PCFyKTZ3UbXeEdRFh18i9XQ92eH2VdtpJHpBD3aripQ=="
-               },
-               "node_modules/@mapbox/unitbezier": {
-                       "version": "0.0.0",
-                       "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.0.tgz",
-                       "integrity": "sha512-HPnRdYO0WjFjRTSwO3frz1wKaU649OBFPX3Zo/2WZvuRi6zMiRGui8SnPQiQABgqCf8YikDe5t3HViTVw1WUzA=="
+               "node_modules/@kurkle/color": {
+                       "version": "0.3.2",
+                       "resolved": "https://registry.npmjs.org/@kurkle/color/-/color-0.3.2.tgz",
+                       "integrity": "sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw=="
                },
                "node_modules/@nieuwlandgeo/sldreader": {
                        "version": "0.3.1",
                        "dev": true
                },
                "node_modules/@types/node": {
-                       "version": "20.5.8",
-                       "resolved": "https://registry.npmjs.org/@types/node/-/node-20.5.8.tgz",
-                       "integrity": "sha512-eajsR9aeljqNhK028VG0Wuw+OaY5LLxYmxeoXynIoE6jannr9/Ucd1LL0hSSoafk5LTYG+FfqsyGt81Q6Zkybw==",
+                       "version": "20.6.0",
+                       "resolved": "https://registry.npmjs.org/@types/node/-/node-20.6.0.tgz",
+                       "integrity": "sha512-najjVq5KN2vsH2U/xyh2opaSEz6cZMR2SetLIlxlj08nOcmPOemJmUK2o4kUzfLqfrWE0PIrNeE16XhYDd3nqg==",
                        "dev": true
                },
                "node_modules/@types/yargs": {
                        }
                },
                "node_modules/caniuse-lite": {
-                       "version": "1.0.30001525",
-                       "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001525.tgz",
-                       "integrity": "sha512-/3z+wB4icFt3r0USMwxujAqRvaD/B7rvGTsKhbhSQErVrJvkZCLhgNLJxU8MevahQVH6hCU9FsHdNUFbiwmE7Q==",
+                       "version": "1.0.30001534",
+                       "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001534.tgz",
+                       "integrity": "sha512-vlPVrhsCS7XaSh2VvWluIQEzVhefrUQcEsQWSS5A5V+dM07uv1qHeQzAOTGIMy9i3e9bH15+muvI/UHojVgS/Q==",
                        "dev": true,
                        "funding": [
                                {
                                "node": ">=8"
                        }
                },
+               "node_modules/chart.js": {
+                       "version": "4.4.0",
+                       "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.4.0.tgz",
+                       "integrity": "sha512-vQEj6d+z0dcsKLlQvbKIMYFHd3t8W/7L2vfJIbYcfyPcRx92CsHqECpueN8qVGNlKyDcr5wBrYAYKnfu/9Q1hQ==",
+                       "dependencies": {
+                               "@kurkle/color": "^0.3.0"
+                       },
+                       "engines": {
+                               "pnpm": ">=7"
+                       }
+               },
+               "node_modules/chartjs-plugin-annotation": {
+                       "version": "3.0.1",
+                       "resolved": "https://registry.npmjs.org/chartjs-plugin-annotation/-/chartjs-plugin-annotation-3.0.1.tgz",
+                       "integrity": "sha512-hlIrXXKqSDgb+ZjVYHefmlZUXK8KbkCPiynSVrTb/HjTMkT62cOInaT1NTQCKtxKKOm9oHp958DY3RTAFKtkHg==",
+                       "peerDependencies": {
+                               "chart.js": ">=4.0.0"
+                       }
+               },
                "node_modules/chownr": {
                        "version": "2.0.0",
                        "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
                                "url": "https://github.com/sponsors/fb55"
                        }
                },
-               "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/cssesc": {
                        "version": "3.0.0",
                        "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
                        "dev": true
                },
                "node_modules/electron-to-chromium": {
-                       "version": "1.4.508",
-                       "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.508.tgz",
-                       "integrity": "sha512-FFa8QKjQK/A5QuFr2167myhMesGrhlOBD+3cYNxO9/S4XzHEXesyTD/1/xF644gC8buFPz3ca6G1LOQD0tZrrg==",
+                       "version": "1.4.520",
+                       "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.520.tgz",
+                       "integrity": "sha512-Frfus2VpYADsrh1lB3v/ft/WVFlVzOIm+Q0p7U7VqHI6qr7NWHYKe+Wif3W50n7JAFoBsWVsoU0+qDks6WQ60g==",
                        "dev": true
                },
                "node_modules/emoji-regex": {
                        "dev": true
                },
                "node_modules/es-module-lexer": {
-                       "version": "1.3.0",
-                       "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.0.tgz",
-                       "integrity": "sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA==",
+                       "version": "1.3.1",
+                       "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.1.tgz",
+                       "integrity": "sha512-JUFAyicQV9mXc3YRxPnDlrfBKpqt6hUYzz9/boprUJHs4e4KVr3XwOF70doO6gwXUor6EWZJAyWAfKki84t20Q==",
                        "dev": true
                },
                "node_modules/escalade": {
                        }
                },
                "node_modules/jackspeak": {
-                       "version": "2.3.1",
-                       "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.1.tgz",
-                       "integrity": "sha512-4iSY3Bh1Htv+kLhiiZunUhQ+OYXIn0ze3ulq8JeWrFKmhPAJSySV2+kdtRh2pGcCeF0s6oR8Oc+pYZynJj4t8A==",
+                       "version": "2.3.3",
+                       "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.3.tgz",
+                       "integrity": "sha512-R2bUw+kVZFS/h1AZqBKrSgDmdmjApzgY0AlCPumopFiAlbUxE2gf+SCuBzQ0cP5hHmUmFYF5yw55T97Th5Kstg==",
                        "dev": true,
                        "dependencies": {
                                "@isaacs/cliui": "^8.0.2",
                        }
                },
                "node_modules/jest-util": {
-                       "version": "29.6.3",
-                       "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.6.3.tgz",
-                       "integrity": "sha512-QUjna/xSy4B32fzcKTSz1w7YYzgiHrjjJjevdRf61HYk998R5vVMMNmrHESYZVDS5DSWs+1srPLPKxXPkeSDOA==",
+                       "version": "29.7.0",
+                       "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz",
+                       "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==",
                        "dev": true,
                        "dependencies": {
                                "@jest/types": "^29.6.3",
                        }
                },
                "node_modules/jest-worker": {
-                       "version": "29.6.4",
-                       "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.6.4.tgz",
-                       "integrity": "sha512-6dpvFV4WjcWbDVGgHTWo/aupl8/LbBx2NSKfiwqf79xC/yeJjKHT1+StcKy/2KTmW16hE68ccKVOtXf+WZGz7Q==",
+                       "version": "29.7.0",
+                       "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz",
+                       "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==",
                        "dev": true,
                        "dependencies": {
                                "@types/node": "*",
-                               "jest-util": "^29.6.3",
+                               "jest-util": "^29.7.0",
                                "merge-stream": "^2.0.0",
                                "supports-color": "^8.0.0"
                        },
                        "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
                        "dev": true
                },
-               "node_modules/json-stringify-pretty-compact": {
-                       "version": "2.0.0",
-                       "resolved": "https://registry.npmjs.org/json-stringify-pretty-compact/-/json-stringify-pretty-compact-2.0.0.tgz",
-                       "integrity": "sha512-WRitRfs6BGq4q8gTgOy4ek7iPFXjbra0H3PmDLKm2xnZ+Gh1HUhiKGgCZkSPNULlP7mvfu6FV/mOLhCarspADQ=="
-               },
                "node_modules/json5": {
                        "version": "2.2.3",
                        "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
                                "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
                        }
                },
-               "node_modules/mapbox-to-css-font": {
-                       "version": "2.4.2",
-                       "resolved": "https://registry.npmjs.org/mapbox-to-css-font/-/mapbox-to-css-font-2.4.2.tgz",
-                       "integrity": "sha512-f+NBjJJY4T3dHtlEz1wCG7YFlkODEjFIYlxDdLIDMNpkSksqTt+l/d4rjuwItxuzkuMFvPyrjzV2lxRM4ePcIA=="
-               },
                "node_modules/markdown-it": {
                        "version": "12.3.2",
                        "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz",
                        "version": "1.2.8",
                        "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
                        "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+                       "dev": true,
                        "funding": {
                                "url": "https://github.com/sponsors/ljharb"
                        }
                        }
                },
                "node_modules/npm-check-updates": {
-                       "version": "16.13.2",
-                       "resolved": "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-16.13.2.tgz",
-                       "integrity": "sha512-0pQI+k1y0JVwenB2gBc69tXFYfkckSVrNrlcn7TIrZfis4LnfdzakY/LYzZKt/lx37edN2isk3d2Zw4csptu/w==",
+                       "version": "16.14.2",
+                       "resolved": "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-16.14.2.tgz",
+                       "integrity": "sha512-7zLXG5h4ZyAHxSKDRs864ugVPM40EpKDwInwZMvCRMJ+h2oyVlAKB69XuBKB4qnur+KR+yj5ndXIIDKZYzUX8A==",
                        "dev": true,
                        "dependencies": {
                                "chalk": "^5.3.0",
                                "semver-utils": "^1.1.4",
                                "source-map-support": "^0.5.21",
                                "spawn-please": "^2.0.1",
+                               "strip-ansi": "^7.1.0",
                                "strip-json-comments": "^5.0.1",
                                "untildify": "^4.0.0",
                                "update-notifier": "^6.0.2"
                        }
                },
                "node_modules/ol": {
-                       "version": "7.5.2",
-                       "resolved": "https://registry.npmjs.org/ol/-/ol-7.5.2.tgz",
-                       "integrity": "sha512-HJbb3CxXrksM6ct367LsP3N+uh+iBBMdP3DeGGipdV9YAYTP0vTJzqGnoqQ6C2IW4qf8krw9yuyQbc9fjOIaOQ==",
+                       "version": "8.1.0",
+                       "resolved": "https://registry.npmjs.org/ol/-/ol-8.1.0.tgz",
+                       "integrity": "sha512-cx3SH2plpFS9fM8pp1nCypgQXGJD7Mcb1E3mEySmy5XEw1DUEo+kkNzgtAZz5qupekqi7aU9iBJEjCoMfqvO2Q==",
                        "dependencies": {
                                "earcut": "^2.2.3",
                                "geotiff": "^2.0.7",
-                               "ol-mapbox-style": "^10.1.0",
                                "pbf": "3.2.1",
                                "rbush": "^3.0.1"
                        },
                                "url": "https://opencollective.com/openlayers"
                        }
                },
-               "node_modules/ol-mapbox-style": {
-                       "version": "10.7.0",
-                       "resolved": "https://registry.npmjs.org/ol-mapbox-style/-/ol-mapbox-style-10.7.0.tgz",
-                       "integrity": "sha512-S/UdYBuOjrotcR95Iq9AejGYbifKeZE85D9VtH11ryJLQPTZXZSW1J5bIXcr4AlAH6tyjPPHTK34AdkwB32Myw==",
-                       "dependencies": {
-                               "@mapbox/mapbox-gl-style-spec": "^13.23.1",
-                               "mapbox-to-css-font": "^2.4.1",
-                               "ol": "^7.3.0"
-                       }
-               },
                "node_modules/once": {
                        "version": "1.4.0",
                        "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
                                "queue-microtask": "^1.2.2"
                        }
                },
-               "node_modules/rw": {
-                       "version": "1.3.3",
-                       "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz",
-                       "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ=="
-               },
                "node_modules/safe-buffer": {
                        "version": "5.2.1",
                        "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
                                "node": ">= 10"
                        }
                },
-               "node_modules/sort-asc": {
-                       "version": "0.1.0",
-                       "resolved": "https://registry.npmjs.org/sort-asc/-/sort-asc-0.1.0.tgz",
-                       "integrity": "sha512-jBgdDd+rQ+HkZF2/OHCmace5dvpos/aWQpcxuyRs9QUbPRnkEJmYVo81PIGpjIdpOcsnJ4rGjStfDHsbn+UVyw==",
-                       "engines": {
-                               "node": ">=0.10.0"
-                       }
-               },
-               "node_modules/sort-desc": {
-                       "version": "0.1.1",
-                       "resolved": "https://registry.npmjs.org/sort-desc/-/sort-desc-0.1.1.tgz",
-                       "integrity": "sha512-jfZacW5SKOP97BF5rX5kQfJmRVZP5/adDUTY8fCSPvNcXDVpUEe2pr/iKGlcyZzchRJZrswnp68fgk3qBXgkJw==",
-                       "engines": {
-                               "node": ">=0.10.0"
-                       }
-               },
-               "node_modules/sort-object": {
-                       "version": "0.3.2",
-                       "resolved": "https://registry.npmjs.org/sort-object/-/sort-object-0.3.2.tgz",
-                       "integrity": "sha512-aAQiEdqFTTdsvUFxXm3umdo04J7MRljoVGbBlkH7BgNsMvVNAJyGj7C/wV1A8wHWAJj/YikeZbfuCKqhggNWGA==",
-                       "dependencies": {
-                               "sort-asc": "^0.1.0",
-                               "sort-desc": "^0.1.1"
-                       },
-                       "engines": {
-                               "node": ">=0.10.0"
-                       }
-               },
                "node_modules/source-map": {
                        "version": "0.6.1",
                        "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
                        }
                },
                "node_modules/tar": {
-                       "version": "6.1.15",
-                       "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.15.tgz",
-                       "integrity": "sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==",
+                       "version": "6.2.0",
+                       "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz",
+                       "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==",
                        "dev": true,
                        "dependencies": {
                                "chownr": "^2.0.0",
                        }
                },
                "node_modules/terser": {
-                       "version": "5.19.3",
-                       "resolved": "https://registry.npmjs.org/terser/-/terser-5.19.3.tgz",
-                       "integrity": "sha512-pQzJ9UJzM0IgmT4FAtYI6+VqFf0lj/to58AV0Xfgg0Up37RyPG7Al+1cepC6/BVuAxR9oNb41/DL4DEoHJvTdg==",
+                       "version": "5.19.4",
+                       "resolved": "https://registry.npmjs.org/terser/-/terser-5.19.4.tgz",
+                       "integrity": "sha512-6p1DjHeuluwxDXcuT9VR8p64klWJKo1ILiy19s6C9+0Bh2+NWTX6nD9EPppiER4ICkHDVB1RkVpin/YW2nQn/g==",
                        "dev": true,
                        "dependencies": {
                                "@jridgewell/source-map": "^0.3.3",
        },
        "dependencies": {
                "@babel/parser": {
-                       "version": "7.22.14",
-                       "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.14.tgz",
-                       "integrity": "sha512-1KucTHgOvaw/LzCVrEOAyXkr9rQlp0A1HiHRYnSUE9dmb8PvPW7o5sscg+5169r54n3vGlbx6GevTE/Iw/P3AQ==",
+                       "version": "7.22.16",
+                       "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.16.tgz",
+                       "integrity": "sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA==",
                        "dev": true
                },
                "@colors/colors": {
                                "lodash": "^4.17.21"
                        }
                },
-               "@mapbox/jsonlint-lines-primitives": {
-                       "version": "2.0.2",
-                       "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz",
-                       "integrity": "sha512-rY0o9A5ECsTQRVhv7tL/OyDpGAoUB4tTvLiW1DSzQGq4bvTPhNw1VpSNjDJc5GFZ2XuyOtSWSVN05qOtcD71qQ=="
-               },
-               "@mapbox/mapbox-gl-style-spec": {
-                       "version": "13.28.0",
-                       "resolved": "https://registry.npmjs.org/@mapbox/mapbox-gl-style-spec/-/mapbox-gl-style-spec-13.28.0.tgz",
-                       "integrity": "sha512-B8xM7Fp1nh5kejfIl4SWeY0gtIeewbuRencqO3cJDrCHZpaPg7uY+V8abuR+esMeuOjRl5cLhVTP40v+1ywxbg==",
-                       "requires": {
-                               "@mapbox/jsonlint-lines-primitives": "~2.0.2",
-                               "@mapbox/point-geometry": "^0.1.0",
-                               "@mapbox/unitbezier": "^0.0.0",
-                               "csscolorparser": "~1.0.2",
-                               "json-stringify-pretty-compact": "^2.0.0",
-                               "minimist": "^1.2.6",
-                               "rw": "^1.3.3",
-                               "sort-object": "^0.3.2"
-                       }
-               },
-               "@mapbox/point-geometry": {
-                       "version": "0.1.0",
-                       "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz",
-                       "integrity": "sha512-6j56HdLTwWGO0fJPlrZtdU/B13q8Uwmo18Ck2GnGgN9PCFyKTZ3UbXeEdRFh18i9XQ92eH2VdtpJHpBD3aripQ=="
-               },
-               "@mapbox/unitbezier": {
-                       "version": "0.0.0",
-                       "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.0.tgz",
-                       "integrity": "sha512-HPnRdYO0WjFjRTSwO3frz1wKaU649OBFPX3Zo/2WZvuRi6zMiRGui8SnPQiQABgqCf8YikDe5t3HViTVw1WUzA=="
+               "@kurkle/color": {
+                       "version": "0.3.2",
+                       "resolved": "https://registry.npmjs.org/@kurkle/color/-/color-0.3.2.tgz",
+                       "integrity": "sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw=="
                },
                "@nieuwlandgeo/sldreader": {
                        "version": "0.3.1",
                        "dev": true
                },
                "@types/node": {
-                       "version": "20.5.8",
-                       "resolved": "https://registry.npmjs.org/@types/node/-/node-20.5.8.tgz",
-                       "integrity": "sha512-eajsR9aeljqNhK028VG0Wuw+OaY5LLxYmxeoXynIoE6jannr9/Ucd1LL0hSSoafk5LTYG+FfqsyGt81Q6Zkybw==",
+                       "version": "20.6.0",
+                       "resolved": "https://registry.npmjs.org/@types/node/-/node-20.6.0.tgz",
+                       "integrity": "sha512-najjVq5KN2vsH2U/xyh2opaSEz6cZMR2SetLIlxlj08nOcmPOemJmUK2o4kUzfLqfrWE0PIrNeE16XhYDd3nqg==",
                        "dev": true
                },
                "@types/yargs": {
                        }
                },
                "caniuse-lite": {
-                       "version": "1.0.30001525",
-                       "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001525.tgz",
-                       "integrity": "sha512-/3z+wB4icFt3r0USMwxujAqRvaD/B7rvGTsKhbhSQErVrJvkZCLhgNLJxU8MevahQVH6hCU9FsHdNUFbiwmE7Q==",
+                       "version": "1.0.30001534",
+                       "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001534.tgz",
+                       "integrity": "sha512-vlPVrhsCS7XaSh2VvWluIQEzVhefrUQcEsQWSS5A5V+dM07uv1qHeQzAOTGIMy9i3e9bH15+muvI/UHojVgS/Q==",
                        "dev": true
                },
                "catharsis": {
                                }
                        }
                },
+               "chart.js": {
+                       "version": "4.4.0",
+                       "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.4.0.tgz",
+                       "integrity": "sha512-vQEj6d+z0dcsKLlQvbKIMYFHd3t8W/7L2vfJIbYcfyPcRx92CsHqECpueN8qVGNlKyDcr5wBrYAYKnfu/9Q1hQ==",
+                       "requires": {
+                               "@kurkle/color": "^0.3.0"
+                       }
+               },
+               "chartjs-plugin-annotation": {
+                       "version": "3.0.1",
+                       "resolved": "https://registry.npmjs.org/chartjs-plugin-annotation/-/chartjs-plugin-annotation-3.0.1.tgz",
+                       "integrity": "sha512-hlIrXXKqSDgb+ZjVYHefmlZUXK8KbkCPiynSVrTb/HjTMkT62cOInaT1NTQCKtxKKOm9oHp958DY3RTAFKtkHg==",
+                       "requires": {}
+               },
                "chownr": {
                        "version": "2.0.0",
                        "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
                        "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==",
                        "dev": true
                },
-               "csscolorparser": {
-                       "version": "1.0.3",
-                       "resolved": "https://registry.npmjs.org/csscolorparser/-/csscolorparser-1.0.3.tgz",
-                       "integrity": "sha512-umPSgYwZkdFoUrH5hIq5kf0wPSXiro51nPw0j2K/c83KflkPSTBGMz6NJvMB+07VlL0y7VPo6QJcDjcgKTTm3w=="
-               },
                "cssesc": {
                        "version": "3.0.0",
                        "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
                        "dev": true
                },
                "electron-to-chromium": {
-                       "version": "1.4.508",
-                       "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.508.tgz",
-                       "integrity": "sha512-FFa8QKjQK/A5QuFr2167myhMesGrhlOBD+3cYNxO9/S4XzHEXesyTD/1/xF644gC8buFPz3ca6G1LOQD0tZrrg==",
+                       "version": "1.4.520",
+                       "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.520.tgz",
+                       "integrity": "sha512-Frfus2VpYADsrh1lB3v/ft/WVFlVzOIm+Q0p7U7VqHI6qr7NWHYKe+Wif3W50n7JAFoBsWVsoU0+qDks6WQ60g==",
                        "dev": true
                },
                "emoji-regex": {
                        "dev": true
                },
                "es-module-lexer": {
-                       "version": "1.3.0",
-                       "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.0.tgz",
-                       "integrity": "sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA==",
+                       "version": "1.3.1",
+                       "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.1.tgz",
+                       "integrity": "sha512-JUFAyicQV9mXc3YRxPnDlrfBKpqt6hUYzz9/boprUJHs4e4KVr3XwOF70doO6gwXUor6EWZJAyWAfKki84t20Q==",
                        "dev": true
                },
                "escalade": {
                        "dev": true
                },
                "jackspeak": {
-                       "version": "2.3.1",
-                       "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.1.tgz",
-                       "integrity": "sha512-4iSY3Bh1Htv+kLhiiZunUhQ+OYXIn0ze3ulq8JeWrFKmhPAJSySV2+kdtRh2pGcCeF0s6oR8Oc+pYZynJj4t8A==",
+                       "version": "2.3.3",
+                       "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.3.tgz",
+                       "integrity": "sha512-R2bUw+kVZFS/h1AZqBKrSgDmdmjApzgY0AlCPumopFiAlbUxE2gf+SCuBzQ0cP5hHmUmFYF5yw55T97Th5Kstg==",
                        "dev": true,
                        "requires": {
                                "@isaacs/cliui": "^8.0.2",
                        }
                },
                "jest-util": {
-                       "version": "29.6.3",
-                       "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.6.3.tgz",
-                       "integrity": "sha512-QUjna/xSy4B32fzcKTSz1w7YYzgiHrjjJjevdRf61HYk998R5vVMMNmrHESYZVDS5DSWs+1srPLPKxXPkeSDOA==",
+                       "version": "29.7.0",
+                       "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz",
+                       "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==",
                        "dev": true,
                        "requires": {
                                "@jest/types": "^29.6.3",
                        }
                },
                "jest-worker": {
-                       "version": "29.6.4",
-                       "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.6.4.tgz",
-                       "integrity": "sha512-6dpvFV4WjcWbDVGgHTWo/aupl8/LbBx2NSKfiwqf79xC/yeJjKHT1+StcKy/2KTmW16hE68ccKVOtXf+WZGz7Q==",
+                       "version": "29.7.0",
+                       "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz",
+                       "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==",
                        "dev": true,
                        "requires": {
                                "@types/node": "*",
-                               "jest-util": "^29.6.3",
+                               "jest-util": "^29.7.0",
                                "merge-stream": "^2.0.0",
                                "supports-color": "^8.0.0"
                        }
                        "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
                        "dev": true
                },
-               "json-stringify-pretty-compact": {
-                       "version": "2.0.0",
-                       "resolved": "https://registry.npmjs.org/json-stringify-pretty-compact/-/json-stringify-pretty-compact-2.0.0.tgz",
-                       "integrity": "sha512-WRitRfs6BGq4q8gTgOy4ek7iPFXjbra0H3PmDLKm2xnZ+Gh1HUhiKGgCZkSPNULlP7mvfu6FV/mOLhCarspADQ=="
-               },
                "json5": {
                        "version": "2.2.3",
                        "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
                                "ssri": "^10.0.0"
                        }
                },
-               "mapbox-to-css-font": {
-                       "version": "2.4.2",
-                       "resolved": "https://registry.npmjs.org/mapbox-to-css-font/-/mapbox-to-css-font-2.4.2.tgz",
-                       "integrity": "sha512-f+NBjJJY4T3dHtlEz1wCG7YFlkODEjFIYlxDdLIDMNpkSksqTt+l/d4rjuwItxuzkuMFvPyrjzV2lxRM4ePcIA=="
-               },
                "markdown-it": {
                        "version": "12.3.2",
                        "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz",
                "minimist": {
                        "version": "1.2.8",
                        "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
-                       "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="
+                       "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+                       "dev": true
                },
                "minipass": {
                        "version": "5.0.0",
                        }
                },
                "npm-check-updates": {
-                       "version": "16.13.2",
-                       "resolved": "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-16.13.2.tgz",
-                       "integrity": "sha512-0pQI+k1y0JVwenB2gBc69tXFYfkckSVrNrlcn7TIrZfis4LnfdzakY/LYzZKt/lx37edN2isk3d2Zw4csptu/w==",
+                       "version": "16.14.2",
+                       "resolved": "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-16.14.2.tgz",
+                       "integrity": "sha512-7zLXG5h4ZyAHxSKDRs864ugVPM40EpKDwInwZMvCRMJ+h2oyVlAKB69XuBKB4qnur+KR+yj5ndXIIDKZYzUX8A==",
                        "dev": true,
                        "requires": {
                                "chalk": "^5.3.0",
                                "semver-utils": "^1.1.4",
                                "source-map-support": "^0.5.21",
                                "spawn-please": "^2.0.1",
+                               "strip-ansi": "^7.1.0",
                                "strip-json-comments": "^5.0.1",
                                "untildify": "^4.0.0",
                                "update-notifier": "^6.0.2"
                        }
                },
                "ol": {
-                       "version": "7.5.2",
-                       "resolved": "https://registry.npmjs.org/ol/-/ol-7.5.2.tgz",
-                       "integrity": "sha512-HJbb3CxXrksM6ct367LsP3N+uh+iBBMdP3DeGGipdV9YAYTP0vTJzqGnoqQ6C2IW4qf8krw9yuyQbc9fjOIaOQ==",
+                       "version": "8.1.0",
+                       "resolved": "https://registry.npmjs.org/ol/-/ol-8.1.0.tgz",
+                       "integrity": "sha512-cx3SH2plpFS9fM8pp1nCypgQXGJD7Mcb1E3mEySmy5XEw1DUEo+kkNzgtAZz5qupekqi7aU9iBJEjCoMfqvO2Q==",
                        "requires": {
                                "earcut": "^2.2.3",
                                "geotiff": "^2.0.7",
-                               "ol-mapbox-style": "^10.1.0",
                                "pbf": "3.2.1",
                                "rbush": "^3.0.1"
                        }
                },
-               "ol-mapbox-style": {
-                       "version": "10.7.0",
-                       "resolved": "https://registry.npmjs.org/ol-mapbox-style/-/ol-mapbox-style-10.7.0.tgz",
-                       "integrity": "sha512-S/UdYBuOjrotcR95Iq9AejGYbifKeZE85D9VtH11ryJLQPTZXZSW1J5bIXcr4AlAH6tyjPPHTK34AdkwB32Myw==",
-                       "requires": {
-                               "@mapbox/mapbox-gl-style-spec": "^13.23.1",
-                               "mapbox-to-css-font": "^2.4.1",
-                               "ol": "^7.3.0"
-                       }
-               },
                "once": {
                        "version": "1.4.0",
                        "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
                                "queue-microtask": "^1.2.2"
                        }
                },
-               "rw": {
-                       "version": "1.3.3",
-                       "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz",
-                       "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ=="
-               },
                "safe-buffer": {
                        "version": "5.2.1",
                        "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
                                "socks": "^2.6.2"
                        }
                },
-               "sort-asc": {
-                       "version": "0.1.0",
-                       "resolved": "https://registry.npmjs.org/sort-asc/-/sort-asc-0.1.0.tgz",
-                       "integrity": "sha512-jBgdDd+rQ+HkZF2/OHCmace5dvpos/aWQpcxuyRs9QUbPRnkEJmYVo81PIGpjIdpOcsnJ4rGjStfDHsbn+UVyw=="
-               },
-               "sort-desc": {
-                       "version": "0.1.1",
-                       "resolved": "https://registry.npmjs.org/sort-desc/-/sort-desc-0.1.1.tgz",
-                       "integrity": "sha512-jfZacW5SKOP97BF5rX5kQfJmRVZP5/adDUTY8fCSPvNcXDVpUEe2pr/iKGlcyZzchRJZrswnp68fgk3qBXgkJw=="
-               },
-               "sort-object": {
-                       "version": "0.3.2",
-                       "resolved": "https://registry.npmjs.org/sort-object/-/sort-object-0.3.2.tgz",
-                       "integrity": "sha512-aAQiEdqFTTdsvUFxXm3umdo04J7MRljoVGbBlkH7BgNsMvVNAJyGj7C/wV1A8wHWAJj/YikeZbfuCKqhggNWGA==",
-                       "requires": {
-                               "sort-asc": "^0.1.0",
-                               "sort-desc": "^0.1.1"
-                       }
-               },
                "source-map": {
                        "version": "0.6.1",
                        "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
                        "dev": true
                },
                "tar": {
-                       "version": "6.1.15",
-                       "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.15.tgz",
-                       "integrity": "sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==",
+                       "version": "6.2.0",
+                       "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz",
+                       "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==",
                        "dev": true,
                        "requires": {
                                "chownr": "^2.0.0",
                        }
                },
                "terser": {
-                       "version": "5.19.3",
-                       "resolved": "https://registry.npmjs.org/terser/-/terser-5.19.3.tgz",
-                       "integrity": "sha512-pQzJ9UJzM0IgmT4FAtYI6+VqFf0lj/to58AV0Xfgg0Up37RyPG7Al+1cepC6/BVuAxR9oNb41/DL4DEoHJvTdg==",
+                       "version": "5.19.4",
+                       "resolved": "https://registry.npmjs.org/terser/-/terser-5.19.4.tgz",
+                       "integrity": "sha512-6p1DjHeuluwxDXcuT9VR8p64klWJKo1ILiy19s6C9+0Bh2+NWTX6nD9EPppiER4ICkHDVB1RkVpin/YW2nQn/g==",
                        "dev": true,
                        "requires": {
                                "@jridgewell/source-map": "^0.3.3",