diff --git a/package-lock.json b/package-lock.json index a52600f..562ecc7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,8 +14,14 @@ "@capacitor/camera": "latest", "@capacitor/core": "latest", "@capacitor/splash-screen": "latest", - "@turf/turf": "^7.0.0", - "leaflet": "^1.9.4" + "@turf/bbox": "^7.0.0", + "@turf/buffer": "^7.0.0", + "@turf/centroid": "^7.0.0", + "@turf/distance": "^7.0.0", + "@turf/helpers": "^7.0.0", + "@turf/nearest-point-on-line": "^7.0.0", + "leaflet": "^1.9.4", + "vue": "^3.4.31" }, "devDependencies": { "@babel/core": "^7.24.7", @@ -23,13 +29,14 @@ "@babel/register": "^7.24.6", "@capacitor/assets": "^3.0.5", "@capacitor/cli": "latest", + "@vitejs/plugin-vue": "^5.0.5", "axios": "^1.7.2", "chai": "^5.1.1", "esm": "^3.2.25", "express": "^4.19.2", - "mocha": "^10.5.2", + "mocha": "^10.6.0", "morgan": "^1.10.0", - "vite": "^2.9.13" + "vite": "^5.3.3" } }, "node_modules/@ampproject/remapping": { @@ -458,7 +465,6 @@ "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", - "dev": true, "bin": { "parser": "bin/babel-parser.js" }, @@ -1826,54 +1832,21 @@ "node": "^12.20.0 || >=14" } }, - "node_modules/@capacitor/assets/node_modules/@ionic/utils-array": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@ionic/utils-array/-/utils-array-2.1.6.tgz", - "integrity": "sha512-0JZ1Zkp3wURnv8oq6Qt7fMPo5MpjbLoUoa9Bu2Q4PJuSDWM8H8gwF3dQO7VTeUj3/0o1IB1wGkFWZZYgUXZMUg==", - "dev": true, - "dependencies": { - "debug": "^4.0.0", - "tslib": "^2.0.1" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/@capacitor/assets/node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "node_modules/@capacitor/assets/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" + "ms": "2.1.2" }, "engines": { - "node": ">=12" - } - }, - "node_modules/@capacitor/assets/node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "dev": true, - "engines": { - "node": ">= 12" - } - }, - "node_modules/@capacitor/assets/node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "node": ">=6.0" }, - "engines": { - "node": ">=12" + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, "node_modules/@capacitor/assets/node_modules/semver": { @@ -1888,39 +1861,6 @@ "node": ">=10" } }, - "node_modules/@capacitor/assets/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", - "dev": true - }, - "node_modules/@capacitor/assets/node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@capacitor/assets/node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "engines": { - "node": ">=12" - } - }, "node_modules/@capacitor/camera": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/@capacitor/camera/-/camera-6.0.1.tgz", @@ -2021,1844 +1961,998 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, - "node_modules/@hutson/parse-repository-url": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz", - "integrity": "sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==", + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], "dev": true, + "optional": true, + "os": [ + "aix" + ], "engines": { - "node": ">=6.9.0" + "node": ">=12" } }, - "node_modules/@ionic/cli-framework-output": { - "version": "2.2.8", - "resolved": "https://registry.npmjs.org/@ionic/cli-framework-output/-/cli-framework-output-2.2.8.tgz", - "integrity": "sha512-TshtaFQsovB4NWRBydbNFawql6yul7d5bMiW1WYYf17hd99V6xdDdk3vtF51bw6sLkxON3bDQpWsnUc9/hVo3g==", + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], "dev": true, - "dependencies": { - "@ionic/utils-terminal": "2.3.5", - "debug": "^4.0.0", - "tslib": "^2.0.1" - }, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=16.0.0" + "node": ">=12" } }, - "node_modules/@ionic/utils-array": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@ionic/utils-array/-/utils-array-2.1.5.tgz", - "integrity": "sha512-HD72a71IQVBmQckDwmA8RxNVMTbxnaLbgFOl+dO5tbvW9CkkSFCv41h6fUuNsSEVgngfkn0i98HDuZC8mk+lTA==", + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "debug": "^4.0.0", - "tslib": "^2.0.1" - }, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=10.3.0" + "node": ">=12" } }, - "node_modules/@ionic/utils-fs": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/@ionic/utils-fs/-/utils-fs-3.1.7.tgz", - "integrity": "sha512-2EknRvMVfhnyhL1VhFkSLa5gOcycK91VnjfrTB0kbqkTFCOXyXgVLI5whzq7SLrgD9t1aqos3lMMQyVzaQ5gVA==", + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "@types/fs-extra": "^8.0.0", - "debug": "^4.0.0", - "fs-extra": "^9.0.0", - "tslib": "^2.0.1" - }, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=16.0.0" + "node": ">=12" } }, - "node_modules/@ionic/utils-object": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@ionic/utils-object/-/utils-object-2.1.6.tgz", - "integrity": "sha512-vCl7sl6JjBHFw99CuAqHljYJpcE88YaH2ZW4ELiC/Zwxl5tiwn4kbdP/gxi2OT3MQb1vOtgAmSNRtusvgxI8ww==", + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "debug": "^4.0.0", - "tslib": "^2.0.1" - }, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=16.0.0" + "node": ">=12" } }, - "node_modules/@ionic/utils-process": { - "version": "2.1.12", - "resolved": "https://registry.npmjs.org/@ionic/utils-process/-/utils-process-2.1.12.tgz", - "integrity": "sha512-Jqkgyq7zBs/v/J3YvKtQQiIcxfJyplPgECMWgdO0E1fKrrH8EF0QGHNJ9mJCn6PYe2UtHNS8JJf5G21e09DfYg==", + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "@ionic/utils-object": "2.1.6", - "@ionic/utils-terminal": "2.3.5", - "debug": "^4.0.0", - "signal-exit": "^3.0.3", - "tree-kill": "^1.2.2", - "tslib": "^2.0.1" - }, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=16.0.0" + "node": ">=12" } }, - "node_modules/@ionic/utils-stream": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/@ionic/utils-stream/-/utils-stream-3.1.5.tgz", - "integrity": "sha512-hkm46uHvEC05X/8PHgdJi4l4zv9VQDELZTM+Kz69odtO9zZYfnt8DkfXHJqJ+PxmtiE5mk/ehJWLnn/XAczTUw==", + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "debug": "^4.0.0", - "tslib": "^2.0.1" - }, + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=10.3.0" + "node": ">=12" } }, - "node_modules/@ionic/utils-subprocess": { - "version": "2.1.11", - "resolved": "https://registry.npmjs.org/@ionic/utils-subprocess/-/utils-subprocess-2.1.11.tgz", - "integrity": "sha512-6zCDixNmZCbMCy5np8klSxOZF85kuDyzZSTTQKQP90ZtYNCcPYmuFSzaqDwApJT4r5L3MY3JrqK1gLkc6xiUPw==", + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "@ionic/utils-array": "2.1.5", - "@ionic/utils-fs": "3.1.6", - "@ionic/utils-process": "2.1.10", - "@ionic/utils-stream": "3.1.5", - "@ionic/utils-terminal": "2.3.3", - "cross-spawn": "^7.0.3", - "debug": "^4.0.0", - "tslib": "^2.0.1" - }, + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=10.3.0" + "node": ">=12" } }, - "node_modules/@ionic/utils-subprocess/node_modules/@ionic/utils-fs": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/@ionic/utils-fs/-/utils-fs-3.1.6.tgz", - "integrity": "sha512-eikrNkK89CfGPmexjTfSWl4EYqsPSBh0Ka7by4F0PLc1hJZYtJxUZV3X4r5ecA8ikjicUmcbU7zJmAjmqutG/w==", + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], "dev": true, - "dependencies": { - "@types/fs-extra": "^8.0.0", - "debug": "^4.0.0", - "fs-extra": "^9.0.0", - "tslib": "^2.0.1" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=10.3.0" + "node": ">=12" } }, - "node_modules/@ionic/utils-subprocess/node_modules/@ionic/utils-object": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@ionic/utils-object/-/utils-object-2.1.5.tgz", - "integrity": "sha512-XnYNSwfewUqxq+yjER1hxTKggftpNjFLJH0s37jcrNDwbzmbpFTQTVAp4ikNK4rd9DOebX/jbeZb8jfD86IYxw==", + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "debug": "^4.0.0", - "tslib": "^2.0.1" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=10.3.0" + "node": ">=12" } }, - "node_modules/@ionic/utils-subprocess/node_modules/@ionic/utils-process": { - "version": "2.1.10", - "resolved": "https://registry.npmjs.org/@ionic/utils-process/-/utils-process-2.1.10.tgz", - "integrity": "sha512-mZ7JEowcuGQK+SKsJXi0liYTcXd2bNMR3nE0CyTROpMECUpJeAvvaBaPGZf5ERQUPeWBVuwqAqjUmIdxhz5bxw==", + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], "dev": true, - "dependencies": { - "@ionic/utils-object": "2.1.5", - "@ionic/utils-terminal": "2.3.3", - "debug": "^4.0.0", - "signal-exit": "^3.0.3", - "tree-kill": "^1.2.2", - "tslib": "^2.0.1" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=10.3.0" + "node": ">=12" } }, - "node_modules/@ionic/utils-subprocess/node_modules/@ionic/utils-terminal": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/@ionic/utils-terminal/-/utils-terminal-2.3.3.tgz", - "integrity": "sha512-RnuSfNZ5fLEyX3R5mtcMY97cGD1A0NVBbarsSQ6yMMfRJ5YHU7hHVyUfvZeClbqkBC/pAqI/rYJuXKCT9YeMCQ==", + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], "dev": true, - "dependencies": { - "@types/slice-ansi": "^4.0.0", - "debug": "^4.0.0", - "signal-exit": "^3.0.3", - "slice-ansi": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "tslib": "^2.0.1", - "untildify": "^4.0.0", - "wrap-ansi": "^7.0.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=10.3.0" + "node": ">=12" } }, - "node_modules/@ionic/utils-terminal": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/@ionic/utils-terminal/-/utils-terminal-2.3.5.tgz", - "integrity": "sha512-3cKScz9Jx2/Pr9ijj1OzGlBDfcmx7OMVBt4+P1uRR0SSW4cm1/y3Mo4OY3lfkuaYifMNBW8Wz6lQHbs1bihr7A==", + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], "dev": true, - "dependencies": { - "@types/slice-ansi": "^4.0.0", - "debug": "^4.0.0", - "signal-exit": "^3.0.3", - "slice-ansi": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "tslib": "^2.0.1", - "untildify": "^4.0.0", - "wrap-ansi": "^7.0.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=16.0.0" + "node": ">=12" } }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.0.0" + "node": ">=12" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], "dev": true, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.0.0" + "node": ">=12" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], "dev": true, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" + "node": ">=12" } }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">= 8" + "node": ">=12" } }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], "dev": true, + "optional": true, + "os": [ + "netbsd" + ], "engines": { - "node": ">= 8" + "node": ">=12" } }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, + "optional": true, + "os": [ + "openbsd" + ], "engines": { - "node": ">= 8" + "node": ">=12" } }, - "node_modules/@prettier/plugin-xml": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@prettier/plugin-xml/-/plugin-xml-2.2.0.tgz", - "integrity": "sha512-UWRmygBsyj4bVXvDiqSccwT1kmsorcwQwaIy30yVh8T+Gspx4OlC0shX1y+ZuwXZvgnafmpRYKks0bAu9urJew==", + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "@xml-tools/parser": "^1.0.11", - "prettier": ">=2.4.0" + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@trapezedev/gradle-parse": { - "version": "7.0.10", - "resolved": "https://registry.npmjs.org/@trapezedev/gradle-parse/-/gradle-parse-7.0.10.tgz", - "integrity": "sha512-k822Is3jGroqOTKF0gAFm80LmhFJWBAyZvNtyuXq6uQUzDDe2fj/gHwixP6VFzlpaWKLP7IuR609Xv8gwJCXyg==", - "dev": true - }, - "node_modules/@trapezedev/project": { - "version": "7.0.10", - "resolved": "https://registry.npmjs.org/@trapezedev/project/-/project-7.0.10.tgz", - "integrity": "sha512-UjwsStjhHq/+D1bWREmFDoyKql+qFIgJX93zQLg7R6CyWZUdtlGP2hU3l7tsVRtjJBVXpVu5mj8tdwJJoABO3A==", + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "@ionic/utils-fs": "^3.1.5", - "@ionic/utils-subprocess": "^2.1.8", - "@prettier/plugin-xml": "^2.2.0", - "@trapezedev/gradle-parse": "7.0.10", - "@xmldom/xmldom": "^0.7.5", - "conventional-changelog": "^3.1.4", - "cross-fetch": "^3.1.5", - "cross-spawn": "^7.0.3", - "diff": "^5.1.0", - "env-paths": "^3.0.0", - "gradle-to-js": "^2.0.0", - "ini": "^2.0.0", - "kleur": "^4.1.5", - "lodash": "^4.17.21", - "mergexml": "^1.2.3", - "npm-watch": "^0.9.0", - "plist": "^3.0.4", - "prettier": "^2.7.1", - "prompts": "^2.4.2", - "replace": "^1.1.0", - "tempy": "^1.0.1", - "tmp": "^0.2.1", - "ts-node": "^10.2.1", - "xcode": "^3.0.1", - "xml-js": "^1.6.11", - "xpath": "^0.0.32", - "yargs": "^17.2.1" + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@trapezedev/project/node_modules/@xmldom/xmldom": { - "version": "0.7.13", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.13.tgz", - "integrity": "sha512-lm2GW5PkosIzccsaZIz7tp8cPADSIlIHWDFTR1N0SzfinhhYgeIQjFMz4rYzanCScr3DqQLeomUDArp6MWKm+g==", + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], "dev": true, + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">=10.0.0" + "node": ">=12" } }, - "node_modules/@trapezedev/project/node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, + "optional": true, + "os": [ + "win32" + ], "engines": { "node": ">=12" } }, - "node_modules/@trapezedev/project/node_modules/diff": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", - "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", + "node_modules/@hutson/parse-repository-url": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz", + "integrity": "sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==", "dev": true, "engines": { - "node": ">=0.3.1" + "node": ">=6.9.0" } }, - "node_modules/@trapezedev/project/node_modules/env-paths": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-3.0.0.tgz", - "integrity": "sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==", + "node_modules/@ionic/cli-framework-output": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/@ionic/cli-framework-output/-/cli-framework-output-2.2.8.tgz", + "integrity": "sha512-TshtaFQsovB4NWRBydbNFawql6yul7d5bMiW1WYYf17hd99V6xdDdk3vtF51bw6sLkxON3bDQpWsnUc9/hVo3g==", "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "dependencies": { + "@ionic/utils-terminal": "2.3.5", + "debug": "^4.0.0", + "tslib": "^2.0.1" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@trapezedev/project/node_modules/ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "node_modules/@ionic/utils-array": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@ionic/utils-array/-/utils-array-2.1.6.tgz", + "integrity": "sha512-0JZ1Zkp3wURnv8oq6Qt7fMPo5MpjbLoUoa9Bu2Q4PJuSDWM8H8gwF3dQO7VTeUj3/0o1IB1wGkFWZZYgUXZMUg==", "dev": true, + "dependencies": { + "debug": "^4.0.0", + "tslib": "^2.0.1" + }, "engines": { - "node": ">=10" + "node": ">=16.0.0" } }, - "node_modules/@trapezedev/project/node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "node_modules/@ionic/utils-fs": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@ionic/utils-fs/-/utils-fs-3.1.7.tgz", + "integrity": "sha512-2EknRvMVfhnyhL1VhFkSLa5gOcycK91VnjfrTB0kbqkTFCOXyXgVLI5whzq7SLrgD9t1aqos3lMMQyVzaQ5gVA==", "dev": true, "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" + "@types/fs-extra": "^8.0.0", + "debug": "^4.0.0", + "fs-extra": "^9.0.0", + "tslib": "^2.0.1" }, "engines": { - "node": ">=12" + "node": ">=16.0.0" } }, - "node_modules/@trapezedev/project/node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "node_modules/@ionic/utils-fs/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, "engines": { - "node": ">=12" + "node": ">=10" } }, - "node_modules/@tsconfig/node10": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", - "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", - "dev": true - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "dev": true - }, - "node_modules/@turf/along": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/along/-/along-7.0.0.tgz", - "integrity": "sha512-OyZcvwYwsLxlqC6ksFMNAkZ1fF/0Xfg38v4jx6D9OsaQcIDgvzXnlkuUnS3w11imfulokijkLEFnvJXFZKAzRw==", + "node_modules/@ionic/utils-object": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@ionic/utils-object/-/utils-object-2.1.6.tgz", + "integrity": "sha512-vCl7sl6JjBHFw99CuAqHljYJpcE88YaH2ZW4ELiC/Zwxl5tiwn4kbdP/gxi2OT3MQb1vOtgAmSNRtusvgxI8ww==", + "dev": true, "dependencies": { - "@turf/bearing": "^7.0.0", - "@turf/destination": "^7.0.0", - "@turf/distance": "^7.0.0", - "@turf/helpers": "^7.0.0", - "@turf/invariant": "^7.0.0", - "tslib": "^2.6.2" + "debug": "^4.0.0", + "tslib": "^2.0.1" }, - "funding": { - "url": "https://opencollective.com/turf" + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@turf/angle": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/angle/-/angle-7.0.0.tgz", - "integrity": "sha512-3+Lp/fyJdtoS+zMu4ZGgV1PhXub7fiowvwId6w5fNtUHWaQ2e0fUgWMAv8opVSC9gRnUtOq2QuJZdIGQAL+fkQ==", + "node_modules/@ionic/utils-process": { + "version": "2.1.12", + "resolved": "https://registry.npmjs.org/@ionic/utils-process/-/utils-process-2.1.12.tgz", + "integrity": "sha512-Jqkgyq7zBs/v/J3YvKtQQiIcxfJyplPgECMWgdO0E1fKrrH8EF0QGHNJ9mJCn6PYe2UtHNS8JJf5G21e09DfYg==", + "dev": true, "dependencies": { - "@turf/bearing": "^7.0.0", - "@turf/helpers": "^7.0.0", - "@turf/invariant": "^7.0.0", - "@turf/rhumb-bearing": "^7.0.0", - "tslib": "^2.6.2" + "@ionic/utils-object": "2.1.6", + "@ionic/utils-terminal": "2.3.5", + "debug": "^4.0.0", + "signal-exit": "^3.0.3", + "tree-kill": "^1.2.2", + "tslib": "^2.0.1" }, - "funding": { - "url": "https://opencollective.com/turf" + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@turf/area": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/area/-/area-7.0.0.tgz", - "integrity": "sha512-Q/P6OGV8dJJs1BiraKFNBjtsMbz7B52mLCtgKh3syzujSREMx52RlsiOBQp8GujFMMiau+Mt25XKbVwtjHVi8Q==", + "node_modules/@ionic/utils-stream": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@ionic/utils-stream/-/utils-stream-3.1.5.tgz", + "integrity": "sha512-hkm46uHvEC05X/8PHgdJi4l4zv9VQDELZTM+Kz69odtO9zZYfnt8DkfXHJqJ+PxmtiE5mk/ehJWLnn/XAczTUw==", + "dev": true, "dependencies": { - "@turf/helpers": "^7.0.0", - "@turf/meta": "^7.0.0", - "tslib": "^2.6.2" + "debug": "^4.0.0", + "tslib": "^2.0.1" }, - "funding": { - "url": "https://opencollective.com/turf" + "engines": { + "node": ">=10.3.0" } }, - "node_modules/@turf/bbox": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/bbox/-/bbox-7.0.0.tgz", - "integrity": "sha512-IyXG5HAsn6IZLdAtQo7aWYccjU5WsV+uzIzhGaXrh/qTVylSYmRiWgLdiekHZVED9nv9r7D/EJUMOT4zyA6POA==", + "node_modules/@ionic/utils-subprocess": { + "version": "2.1.11", + "resolved": "https://registry.npmjs.org/@ionic/utils-subprocess/-/utils-subprocess-2.1.11.tgz", + "integrity": "sha512-6zCDixNmZCbMCy5np8klSxOZF85kuDyzZSTTQKQP90ZtYNCcPYmuFSzaqDwApJT4r5L3MY3JrqK1gLkc6xiUPw==", + "dev": true, "dependencies": { - "@turf/helpers": "^7.0.0", - "@turf/meta": "^7.0.0", - "tslib": "^2.6.2" + "@ionic/utils-array": "2.1.5", + "@ionic/utils-fs": "3.1.6", + "@ionic/utils-process": "2.1.10", + "@ionic/utils-stream": "3.1.5", + "@ionic/utils-terminal": "2.3.3", + "cross-spawn": "^7.0.3", + "debug": "^4.0.0", + "tslib": "^2.0.1" }, - "funding": { - "url": "https://opencollective.com/turf" + "engines": { + "node": ">=10.3.0" } }, - "node_modules/@turf/bbox-clip": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/bbox-clip/-/bbox-clip-7.0.0.tgz", - "integrity": "sha512-ZSReB14sSQpP5TE6g5SijVFijxMp8pyrM0PgEN1LR9Bm+nj7BmmGzHafV3lyteml2bmlFdQxkbTqcbvlVXS98g==", + "node_modules/@ionic/utils-subprocess/node_modules/@ionic/utils-array": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@ionic/utils-array/-/utils-array-2.1.5.tgz", + "integrity": "sha512-HD72a71IQVBmQckDwmA8RxNVMTbxnaLbgFOl+dO5tbvW9CkkSFCv41h6fUuNsSEVgngfkn0i98HDuZC8mk+lTA==", + "dev": true, "dependencies": { - "@turf/helpers": "^7.0.0", - "@turf/invariant": "^7.0.0", - "tslib": "^2.6.2" + "debug": "^4.0.0", + "tslib": "^2.0.1" }, - "funding": { - "url": "https://opencollective.com/turf" + "engines": { + "node": ">=10.3.0" } }, - "node_modules/@turf/bbox-polygon": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/bbox-polygon/-/bbox-polygon-7.0.0.tgz", - "integrity": "sha512-RMBADOr0zOhVhTidKXCAx1TLTzgBvZwQKI6KJ1FgoCPH7GMZZnMXGMvOtdQLdsplS4Zs6+NoVtaK2x0+EXdYJQ==", + "node_modules/@ionic/utils-subprocess/node_modules/@ionic/utils-fs": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@ionic/utils-fs/-/utils-fs-3.1.6.tgz", + "integrity": "sha512-eikrNkK89CfGPmexjTfSWl4EYqsPSBh0Ka7by4F0PLc1hJZYtJxUZV3X4r5ecA8ikjicUmcbU7zJmAjmqutG/w==", + "dev": true, "dependencies": { - "@turf/helpers": "^7.0.0", - "tslib": "^2.6.2" + "@types/fs-extra": "^8.0.0", + "debug": "^4.0.0", + "fs-extra": "^9.0.0", + "tslib": "^2.0.1" }, - "funding": { - "url": "https://opencollective.com/turf" + "engines": { + "node": ">=10.3.0" } }, - "node_modules/@turf/bearing": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/bearing/-/bearing-7.0.0.tgz", - "integrity": "sha512-r6eBNqqiC8OtW+xIzu0ZyciAUfM85l2LVN2qpTeEyhnaNmnPw7hDsnqwZcbqoBFSLB66MO+BLH40X5OdaoRmmA==", + "node_modules/@ionic/utils-subprocess/node_modules/@ionic/utils-object": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@ionic/utils-object/-/utils-object-2.1.5.tgz", + "integrity": "sha512-XnYNSwfewUqxq+yjER1hxTKggftpNjFLJH0s37jcrNDwbzmbpFTQTVAp4ikNK4rd9DOebX/jbeZb8jfD86IYxw==", + "dev": true, "dependencies": { - "@turf/helpers": "^7.0.0", - "@turf/invariant": "^7.0.0", - "tslib": "^2.6.2" + "debug": "^4.0.0", + "tslib": "^2.0.1" }, - "funding": { - "url": "https://opencollective.com/turf" + "engines": { + "node": ">=10.3.0" } }, - "node_modules/@turf/bezier-spline": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/bezier-spline/-/bezier-spline-7.0.0.tgz", - "integrity": "sha512-1FFVLc+oa5t9S7XWsYImfOVNLWESAJo3ztC4GRlGeAFQBi5z8kSptBaGRLkTn387lZLZ1VQXYRgAfR2mP69/VA==", + "node_modules/@ionic/utils-subprocess/node_modules/@ionic/utils-process": { + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/@ionic/utils-process/-/utils-process-2.1.10.tgz", + "integrity": "sha512-mZ7JEowcuGQK+SKsJXi0liYTcXd2bNMR3nE0CyTROpMECUpJeAvvaBaPGZf5ERQUPeWBVuwqAqjUmIdxhz5bxw==", + "dev": true, "dependencies": { - "@turf/helpers": "^7.0.0", - "@turf/invariant": "^7.0.0", - "tslib": "^2.6.2" + "@ionic/utils-object": "2.1.5", + "@ionic/utils-terminal": "2.3.3", + "debug": "^4.0.0", + "signal-exit": "^3.0.3", + "tree-kill": "^1.2.2", + "tslib": "^2.0.1" }, - "funding": { - "url": "https://opencollective.com/turf" + "engines": { + "node": ">=10.3.0" } }, - "node_modules/@turf/boolean-clockwise": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-clockwise/-/boolean-clockwise-7.0.0.tgz", - "integrity": "sha512-Tn+ShgMcgIll+TeIAUHW0diPpxCN1PfQ6uZrwUJXzQXfoxlns16NvJByTBWCl+E9UCA+m1QRjHpVOzyf8pSOOQ==", + "node_modules/@ionic/utils-subprocess/node_modules/@ionic/utils-terminal": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/@ionic/utils-terminal/-/utils-terminal-2.3.3.tgz", + "integrity": "sha512-RnuSfNZ5fLEyX3R5mtcMY97cGD1A0NVBbarsSQ6yMMfRJ5YHU7hHVyUfvZeClbqkBC/pAqI/rYJuXKCT9YeMCQ==", + "dev": true, "dependencies": { - "@turf/helpers": "^7.0.0", - "@turf/invariant": "^7.0.0", - "tslib": "^2.6.2" + "@types/slice-ansi": "^4.0.0", + "debug": "^4.0.0", + "signal-exit": "^3.0.3", + "slice-ansi": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "tslib": "^2.0.1", + "untildify": "^4.0.0", + "wrap-ansi": "^7.0.0" }, - "funding": { - "url": "https://opencollective.com/turf" + "engines": { + "node": ">=10.3.0" } }, - "node_modules/@turf/boolean-concave": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-concave/-/boolean-concave-7.0.0.tgz", - "integrity": "sha512-ybKMUriBFzqvjJMOM+YPID2h0a7ye1ur95NkXzV+GRDG16W0KOtTcSXz3LFfHIBEXtG1dqRIxPSV2uwTTKwDTQ==", - "dependencies": { - "@turf/helpers": "^7.0.0", - "@turf/invariant": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/boolean-contains": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-contains/-/boolean-contains-7.0.0.tgz", - "integrity": "sha512-1NILJdO5OO1YrD7hYPlpahROkzd1DFA7Lcp7SxL+hTtKTp/a2iZx+K6u2qKMLUlPO1p2zhSbMfvjl1T6s/H8XQ==", + "node_modules/@ionic/utils-subprocess/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, "dependencies": { - "@turf/bbox": "^7.0.0", - "@turf/boolean-point-in-polygon": "^7.0.0", - "@turf/boolean-point-on-line": "^7.0.0", - "@turf/helpers": "^7.0.0", - "@turf/invariant": "^7.0.0", - "tslib": "^2.6.2" + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, - "funding": { - "url": "https://opencollective.com/turf" + "engines": { + "node": ">=10" } }, - "node_modules/@turf/boolean-crosses": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-crosses/-/boolean-crosses-7.0.0.tgz", - "integrity": "sha512-T8/U3fXvEaaf7NbRf42s7hnOYUarK7K1ztXOan0hESnWVzMRFwzIv9QeSW4mARAPU/oV1oOMhSITfbF/Et6W1A==", + "node_modules/@ionic/utils-terminal": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@ionic/utils-terminal/-/utils-terminal-2.3.5.tgz", + "integrity": "sha512-3cKScz9Jx2/Pr9ijj1OzGlBDfcmx7OMVBt4+P1uRR0SSW4cm1/y3Mo4OY3lfkuaYifMNBW8Wz6lQHbs1bihr7A==", + "dev": true, "dependencies": { - "@turf/boolean-point-in-polygon": "^7.0.0", - "@turf/helpers": "^7.0.0", - "@turf/invariant": "^7.0.0", - "@turf/line-intersect": "^7.0.0", - "@turf/polygon-to-line": "^7.0.0", - "tslib": "^2.6.2" + "@types/slice-ansi": "^4.0.0", + "debug": "^4.0.0", + "signal-exit": "^3.0.3", + "slice-ansi": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "tslib": "^2.0.1", + "untildify": "^4.0.0", + "wrap-ansi": "^7.0.0" }, - "funding": { - "url": "https://opencollective.com/turf" + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@turf/boolean-disjoint": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-disjoint/-/boolean-disjoint-7.0.0.tgz", - "integrity": "sha512-MAHKqMtdktgxFnz9XFrzyN+VTtmNSd+PgRyo/CT9ucsZ18hd3PV9Y3obGw/k0T6AglMivhBadlHiSMnTfed4Qg==", + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, "dependencies": { - "@turf/boolean-point-in-polygon": "^7.0.0", - "@turf/helpers": "^7.0.0", - "@turf/line-intersect": "^7.0.0", - "@turf/meta": "^7.0.0", - "@turf/polygon-to-line": "^7.0.0", - "tslib": "^2.6.2" + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" }, - "funding": { - "url": "https://opencollective.com/turf" + "engines": { + "node": ">=6.0.0" } }, - "node_modules/@turf/boolean-equal": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-equal/-/boolean-equal-7.0.0.tgz", - "integrity": "sha512-9C7xkxOyqN0/8Ze4TrysKWWYZxWB0s6zSBaADuVhaIsFzfwvC5wbEpwOL8pRop++7YRRlJ92QM8Bq53DU8+7LQ==", - "dependencies": { - "@turf/clean-coords": "^7.0.0", - "@turf/helpers": "^7.0.0", - "@turf/invariant": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "engines": { + "node": ">=6.0.0" } }, - "node_modules/@turf/boolean-intersects": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-intersects/-/boolean-intersects-7.0.0.tgz", - "integrity": "sha512-+jNZw/ziZ2xyeDoasuwubVu3arRS71i6tSxvnPQmsWISki6rLJF7OQEkc9LNIllYlADCZUkUTJ1OktznrEUDkA==", - "dependencies": { - "@turf/boolean-disjoint": "^7.0.0", - "@turf/helpers": "^7.0.0", - "@turf/meta": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "engines": { + "node": ">=6.0.0" } }, - "node_modules/@turf/boolean-overlap": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-overlap/-/boolean-overlap-7.0.0.tgz", - "integrity": "sha512-mnZxjGSs8OuH/+QUuP5FGkut2bLr1FGZ63ThJ97aUuJP+lZQnYnkPdT1hQIdcyhtTQgF1yOM7EH+O//DkoROpA==", - "dependencies": { - "@turf/helpers": "^7.0.0", - "@turf/invariant": "^7.0.0", - "@turf/line-intersect": "^7.0.0", - "@turf/line-overlap": "^7.0.0", - "@turf/meta": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" }, - "node_modules/@turf/boolean-parallel": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-parallel/-/boolean-parallel-7.0.0.tgz", - "integrity": "sha512-OTL9XLjzRulLPQ12il3my9fLhemHsoyYe/owxNYz+kYtUyDHQ6lRz6vEaI3W7MKY9fnqwuIdJQpckOL5TH2cPQ==", + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, "dependencies": { - "@turf/clean-coords": "^7.0.0", - "@turf/helpers": "^7.0.0", - "@turf/line-segment": "^7.0.0", - "@turf/rhumb-bearing": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@turf/boolean-point-in-polygon": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-point-in-polygon/-/boolean-point-in-polygon-7.0.0.tgz", - "integrity": "sha512-Z9swETfICqUJ8iVLZimvIOh8r4Wrlu9/X/c/5vIEeVvG4Lu78Ztmgu1KaobZJFC93/ntOAjMBavc9aNgw7TXgQ==", + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, "dependencies": { - "@turf/helpers": "^7.0.0", - "@turf/invariant": "^7.0.0", - "point-in-polygon-hao": "^1.1.0", - "tslib": "^2.6.2" + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" }, - "funding": { - "url": "https://opencollective.com/turf" + "engines": { + "node": ">= 8" } }, - "node_modules/@turf/boolean-point-on-line": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-point-on-line/-/boolean-point-on-line-7.0.0.tgz", - "integrity": "sha512-9/1hj2MxcUU4fZu+MQC6rdMsdvAYNTtfxssLrZ1dGXo+NcAoWFbZSrfk62pSJBflveyKY5kXPYY+xQfLT0NeDQ==", - "dependencies": { - "@turf/helpers": "^7.0.0", - "@turf/invariant": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" } }, - "node_modules/@turf/boolean-touches": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-touches/-/boolean-touches-7.0.0.tgz", - "integrity": "sha512-eZE2uvylkQLAePHTGRjnVlr+QKnwU9gPAarz2q4YF7hi2QRDQd8kc+Ai/450C3xL9iPYO6wrbAQ7qpmB1Jsq4g==", + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, "dependencies": { - "@turf/boolean-point-in-polygon": "^7.0.0", - "@turf/boolean-point-on-line": "^7.0.0", - "@turf/helpers": "^7.0.0", - "@turf/invariant": "^7.0.0", - "tslib": "^2.6.2" + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" }, - "funding": { - "url": "https://opencollective.com/turf" + "engines": { + "node": ">= 8" } }, - "node_modules/@turf/boolean-valid": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-valid/-/boolean-valid-7.0.0.tgz", - "integrity": "sha512-TM2UBVFu59u8fAZVHsVnnnCv6486J2uCFmhsVsSCgTgTET1+Lm0TK0XTj5cyPSYR35qR/BjcU1gO3l45bdap9A==", + "node_modules/@prettier/plugin-xml": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@prettier/plugin-xml/-/plugin-xml-2.2.0.tgz", + "integrity": "sha512-UWRmygBsyj4bVXvDiqSccwT1kmsorcwQwaIy30yVh8T+Gspx4OlC0shX1y+ZuwXZvgnafmpRYKks0bAu9urJew==", + "dev": true, "dependencies": { - "@turf/bbox": "^7.0.0", - "@turf/boolean-crosses": "^7.0.0", - "@turf/boolean-disjoint": "^7.0.0", - "@turf/boolean-overlap": "^7.0.0", - "@turf/boolean-point-in-polygon": "^7.0.0", - "@turf/boolean-point-on-line": "^7.0.0", - "@turf/helpers": "^7.0.0", - "@turf/invariant": "^7.0.0", - "@turf/line-intersect": "^7.0.0", - "geojson-polygon-self-intersections": "^1.2.1", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" + "@xml-tools/parser": "^1.0.11", + "prettier": ">=2.4.0" } }, - "node_modules/@turf/boolean-within": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/boolean-within/-/boolean-within-7.0.0.tgz", - "integrity": "sha512-QmOX34T7z9wzuzUVsXx3KMCMsxLi71/SOcrgkcHhcWsThx+VPPmyIUtTa8XnBt1BBlx7IIrR2pAeORkUi0CdEg==", - "dependencies": { - "@turf/bbox": "^7.0.0", - "@turf/boolean-point-in-polygon": "^7.0.0", - "@turf/boolean-point-on-line": "^7.0.0", - "@turf/helpers": "^7.0.0", - "@turf/invariant": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz", + "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] }, - "node_modules/@turf/buffer": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/buffer/-/buffer-7.0.0.tgz", - "integrity": "sha512-viw3XjTtYVtkq5DkRDBQjXoi5QeEMhe4JHWXIfHMHs4o5F9B+lZ8+TtXWo18X5aAXknv6ib1z2syoaQdBpb5Xw==", - "dependencies": { - "@turf/bbox": "^7.0.0", - "@turf/center": "^7.0.0", - "@turf/helpers": "^7.0.0", - "@turf/jsts": "^2.7.1", - "@turf/meta": "^7.0.0", - "@turf/projection": "^7.0.0", - "d3-geo": "1.7.1" - }, - "funding": { - "url": "https://opencollective.com/turf" - } + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz", + "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] }, - "node_modules/@turf/center": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/center/-/center-7.0.0.tgz", - "integrity": "sha512-5RZia9uuWxz2oCyd1vsNkBeraBNdwCsIo4UGRQdyswBeLFVbRwIUa7M7+2z2D7B1YIgovuLIRVfk6FeWUQXDtQ==", - "dependencies": { - "@turf/bbox": "^7.0.0", - "@turf/helpers": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz", + "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/@turf/center-mean": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/center-mean/-/center-mean-7.0.0.tgz", - "integrity": "sha512-pneYkH6/4a6gDDvhVL2by9OCJ4yTIANoHQ4JpYVjvB1VlQWrVI5qQd80+q3bMKCDWaACEq8UWa/5NmvKlSRT3A==", - "dependencies": { - "@turf/bbox": "^7.0.0", - "@turf/helpers": "^7.0.0", - "@turf/meta": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz", + "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/@turf/center-median": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/center-median/-/center-median-7.0.0.tgz", - "integrity": "sha512-ppCVjwwNe3Rz86TQp+zt9uFI9ZlFwu2miQtpFVcv2ej9IN2D5PUIRnehWgVeQ+yZ+ocMjMNLMcackUnqeKR4FA==", - "dependencies": { - "@turf/center-mean": "^7.0.0", - "@turf/centroid": "^7.0.0", - "@turf/distance": "^7.0.0", - "@turf/helpers": "^7.0.0", - "@turf/meta": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/center-of-mass": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/center-of-mass/-/center-of-mass-7.0.0.tgz", - "integrity": "sha512-vnD43bX4jl1ViDjY+nxISeQd8vfPqvLw+0N1MxpweCh5S85DNqUg6J8GXC1kbZlfOBS3mS9p2CW1Rfg4ggiGHw==", - "dependencies": { - "@turf/centroid": "^7.0.0", - "@turf/convex": "^7.0.0", - "@turf/helpers": "^7.0.0", - "@turf/invariant": "^7.0.0", - "@turf/meta": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/centroid": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/centroid/-/centroid-7.0.0.tgz", - "integrity": "sha512-TMKp5yadglNVRxX3xuk1qQDEy5JFHmlYVBamzXuD8DL8rYdVog2x4gQHrwn7xrUyAlKJ4fUZZPkYBWfW6TDWbw==", - "dependencies": { - "@turf/helpers": "^7.0.0", - "@turf/meta": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/circle": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/circle/-/circle-7.0.0.tgz", - "integrity": "sha512-rRMthTL5+mhiFXQwlk4jUuf0pkqDAhry/El03VNYNyDGOx4N6p0XMmgbIdJmG6ZooinHpHfMU4N8ZQ9Xo6vVPA==", - "dependencies": { - "@turf/destination": "^7.0.0", - "@turf/helpers": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/clean-coords": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/clean-coords/-/clean-coords-7.0.0.tgz", - "integrity": "sha512-kaKR4/NnhZpgC+hWY3MfPqV2KwzG4Vr66WH59GbT5B2tvAOJqAYUmq+rgyMsG6xA3fTBL3neDW0bY1DHFVcvHQ==", - "dependencies": { - "@turf/helpers": "^7.0.0", - "@turf/invariant": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/clone": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/clone/-/clone-7.0.0.tgz", - "integrity": "sha512-bQBx/wbQoGNtZzuHetLt44NMqOCnjSXcvTWm+LJ7YTmwrqZVAjISDhFxgawY/L+G3p+ya5WoxQwZWak80uYg3A==", - "dependencies": { - "@turf/helpers": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/clusters": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/clusters/-/clusters-7.0.0.tgz", - "integrity": "sha512-s96uAedbT+9JX6Cg11TsjyZRZIOYABBplA7vKlFgfEKitscCRFUP+pVgiRXy8wBgyKsXqG28DJr96kXQaJKSeg==", - "dependencies": { - "@turf/helpers": "^7.0.0", - "@turf/meta": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/clusters-dbscan": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/clusters-dbscan/-/clusters-dbscan-7.0.0.tgz", - "integrity": "sha512-q8P7MjD0jGhNOzE+I6Cj8UiVaqkuDV27nGA8fLZWNxLW27+X2QJzU+NFLkx0suV9ApmCWRiaIyWUHWG9uZntxA==", - "dependencies": { - "@turf/clone": "^7.0.0", - "@turf/distance": "^7.0.0", - "@turf/helpers": "^7.0.0", - "@turf/meta": "^7.0.0", - "rbush": "^3.0.1", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/clusters-kmeans": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/clusters-kmeans/-/clusters-kmeans-7.0.0.tgz", - "integrity": "sha512-ZwN4sLcTgeD7meryarJZunLXISHM7ZLc0S7Lgwv64fYsYU2ea64BMst5mRFCZsrrlFdYmrwUo4DlihL8k9XLKw==", - "dependencies": { - "@turf/clone": "^7.0.0", - "@turf/helpers": "^7.0.0", - "@turf/invariant": "^7.0.0", - "@turf/meta": "^7.0.0", - "skmeans": "0.9.7", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/collect": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/collect/-/collect-7.0.0.tgz", - "integrity": "sha512-zgKPVVmNr/5OJiHLnQAzDCMv1xDxwuNw8PfCPYkek8s2dvr9LFlEMfPxnp9hY+/oHJx8+1mC01c9qgb7hF8yPQ==", - "dependencies": { - "@turf/bbox": "^7.0.0", - "@turf/boolean-point-in-polygon": "^7.0.0", - "@turf/helpers": "^7.0.0", - "rbush": "^3.0.1", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/combine": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/combine/-/combine-7.0.0.tgz", - "integrity": "sha512-xNg6XGAwEWmpjYImJ3+vie+ASKQ7dzUrwUDJ5DOOS8XonLkVAIGus+qDoXdIzAcb9jqSaSFC4sGmQFdTM1Sj1w==", - "dependencies": { - "@turf/helpers": "^7.0.0", - "@turf/meta": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/concave": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/concave/-/concave-7.0.0.tgz", - "integrity": "sha512-iwrLBgCUgsquvLSCnzppPVDWGLoCjVDV9xgg7jncbi9aURuGPfhHd5eaC9fyxtIlSbcfrSDXSHJLoeC6bpmlOw==", - "dependencies": { - "@turf/clone": "^7.0.0", - "@turf/distance": "^7.0.0", - "@turf/helpers": "^7.0.0", - "@turf/invariant": "^7.0.0", - "@turf/meta": "^7.0.0", - "@turf/tin": "^7.0.0", - "topojson-client": "3.x", - "topojson-server": "3.x", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/convex": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/convex/-/convex-7.0.0.tgz", - "integrity": "sha512-iAAwC1FPB4aiA7djUU/pk7lMgWjACbQOB2oX6cH39P5M7W6GXhrTEvYAx+thBtNq+M6BPk/gk3bU1BjZFrQ4+g==", - "dependencies": { - "@turf/helpers": "^7.0.0", - "@turf/meta": "^7.0.0", - "concaveman": "^1.2.1", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/destination": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/destination/-/destination-7.0.0.tgz", - "integrity": "sha512-wXfLd37ul7xuFvv4L7dtNQOZnmYepnrsMZrxbmxvy2SCnF+Rzf1C7D1NQ6+Nx5SInB/SbTfi6SCDgyfB8MOawQ==", - "dependencies": { - "@turf/helpers": "^7.0.0", - "@turf/invariant": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/difference": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-7.0.0.tgz", - "integrity": "sha512-JCPRuGcOkT+Hq5PJcEUhkCheTyJcwB5dS1SIJGhDDNOJp8m8REHFJCmvxA3K40demovbyDLk85AojYpJ3jlALQ==", - "dependencies": { - "@turf/helpers": "^7.0.0", - "@turf/meta": "^7.0.0", - "polygon-clipping": "^0.15.3", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/dissolve": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/dissolve/-/dissolve-7.0.0.tgz", - "integrity": "sha512-WUapSrl4nTpKGQ9uacfefPNI8mEl0PYrCN6vDTs2W4k6UT9NdeJYNPaR6275nAoOUEL9t9K+adPgdMltm/EG3g==", - "dependencies": { - "@turf/flatten": "^7.0.0", - "@turf/helpers": "^7.0.0", - "@turf/invariant": "^7.0.0", - "@turf/meta": "^7.0.0", - "polygon-clipping": "^0.15.3", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/distance": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/distance/-/distance-7.0.0.tgz", - "integrity": "sha512-DBPKhHABpPZ0KRduRpEaoi8MB6r1DVuyyps68VFH2Qi5H0ZnFtJFj7nQxBPZR3bVpbUq4zzu7I+MiNAd3ujFWQ==", - "dependencies": { - "@turf/helpers": "^7.0.0", - "@turf/invariant": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/distance-weight": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/distance-weight/-/distance-weight-7.0.0.tgz", - "integrity": "sha512-BFftfC1QdtcJNMx4TOYxkHX/xsy4FjiG4tdEgdx99DBZ4L1RS/qqgC1O943WuqbfvJTn15E6ka0Rkep2/90IMA==", - "dependencies": { - "@turf/centroid": "^7.0.0", - "@turf/helpers": "^7.0.0", - "@turf/invariant": "^7.0.0", - "@turf/meta": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/ellipse": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/ellipse/-/ellipse-7.0.0.tgz", - "integrity": "sha512-bdHzKPfxIWVz3p7jlsyi89BAxvjIhxCgLzDXKYp4tSf2LYGpkfWpSJA2bRnj7TuEq5zYQR8L5LJhn7jg0hehlg==", - "dependencies": { - "@turf/helpers": "^7.0.0", - "@turf/invariant": "^7.0.0", - "@turf/rhumb-destination": "^7.0.0", - "@turf/transform-rotate": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/envelope": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/envelope/-/envelope-7.0.0.tgz", - "integrity": "sha512-110YN+9PmhRYE7co+4ewB/IY3SL9q90mw5FoXrv97VRYVlf8jQCa2mwSalMiuAGnhvfG+Yq1k+ibjjLJcS3gWA==", - "dependencies": { - "@turf/bbox": "^7.0.0", - "@turf/bbox-polygon": "^7.0.0", - "@turf/helpers": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/explode": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/explode/-/explode-7.0.0.tgz", - "integrity": "sha512-q7KZ/PxY9zHN4UGXaADUpsHGkj8lbexVZxdBnp0nEfTHm/ziLTAfpI15CdAknoz4Ee8k8tx7ldosVjjg7YJ3/g==", - "dependencies": { - "@turf/helpers": "^7.0.0", - "@turf/meta": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/flatten": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/flatten/-/flatten-7.0.0.tgz", - "integrity": "sha512-QVTPgE9PdulQiQPglQ+mXpThBfp3v5RhCSupBCAoqOkqo/KfnliHqJXmVTaZotUZnMgc3wbAMJtSJvDRhTnFFA==", - "dependencies": { - "@turf/helpers": "^7.0.0", - "@turf/meta": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/flip": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/flip/-/flip-7.0.0.tgz", - "integrity": "sha512-8yqhjXhqKF9fqN4ZfLgVNKCX0AVDaOY9KzD3AGQ+UiRHgmnY/F/T8Np9hSgEVQl1E9N6GXWF/7d8fOTVKCFCbQ==", - "dependencies": { - "@turf/clone": "^7.0.0", - "@turf/helpers": "^7.0.0", - "@turf/meta": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/geojson-rbush": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/geojson-rbush/-/geojson-rbush-7.0.0.tgz", - "integrity": "sha512-h0fJPWHkpGEHkVvQ/tv4FwYkWuEbhbSF0rrQEUyXwvZtlZPRBYJ7WQ5qRsvE7QdQK81B7jWxZiM/qWeayALu1g==", - "dependencies": { - "@turf/bbox": "^7.0.0", - "@turf/helpers": "^7.0.0", - "@turf/meta": "^7.0.0", - "@types/geojson": "7946.0.8", - "rbush": "^3.0.1" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/great-circle": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/great-circle/-/great-circle-7.0.0.tgz", - "integrity": "sha512-onZYQ4ZiN2sIff8j648k+eaeavC+W2wG9L+7wSZjWgeaM4t40r3ZhcJLwqmMUSHxccACNlnINukQodulsflFDg==", - "dependencies": { - "@turf/helpers": "^7.0.0", - "@turf/invariant": "^7.0.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/helpers": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-7.0.0.tgz", - "integrity": "sha512-vwZvxRuyjGpGXvhXSbT9mX6FK92dBMLWbMbDJ/MXQUPx17ReVPFc+6N6IcxAzZfkiCnqy7vpuq0c+/TTrQxIiA==", - "dependencies": { - "deep-equal": "^2.2.3", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/hex-grid": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/hex-grid/-/hex-grid-7.0.0.tgz", - "integrity": "sha512-6vWO/eVyCvk9mUOj7wxCRUSFpZ0Rlqo4fLvAWX+WsNlOn7xnYs8TFXyiVuWcJdWiMX/LzjOF2OTI6HXF3BhEAQ==", - "dependencies": { - "@turf/distance": "^7.0.0", - "@turf/helpers": "^7.0.0", - "@turf/intersect": "^7.0.0", - "@turf/invariant": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/interpolate": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/interpolate/-/interpolate-7.0.0.tgz", - "integrity": "sha512-ERorrpqItp/qrVtkCkFhB0i4fgjb27cCObTucWdSVUMEitH2ieEQzysmghtyq2F6zq1DW3tC33Jjr79IDj+X6A==", - "dependencies": { - "@turf/bbox": "^7.0.0", - "@turf/centroid": "^7.0.0", - "@turf/clone": "^7.0.0", - "@turf/distance": "^7.0.0", - "@turf/helpers": "^7.0.0", - "@turf/hex-grid": "^7.0.0", - "@turf/invariant": "^7.0.0", - "@turf/meta": "^7.0.0", - "@turf/point-grid": "^7.0.0", - "@turf/square-grid": "^7.0.0", - "@turf/triangle-grid": "^7.0.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/intersect": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-7.0.0.tgz", - "integrity": "sha512-2GL9yAPwmzkec5UiuPbVdLpPVsJIRVl8obPu4oMzhOMKVqw3UGsFGCjWNOY2cKg2cN8E7ijfAEoFNztLyNPY+g==", - "dependencies": { - "@turf/helpers": "^7.0.0", - "@turf/meta": "^7.0.0", - "polygon-clipping": "^0.15.3", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/invariant": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-7.0.0.tgz", - "integrity": "sha512-Kayszfz3W8yJ1/cIA3/aNSzAuw7QgSp+IwsSmhLAfp4DbjV0o6sjxRZXRY2gRstZHqkNHSSEeir8V/icdO8sjA==", - "dependencies": { - "@turf/helpers": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/isobands": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/isobands/-/isobands-7.0.0.tgz", - "integrity": "sha512-2l+FIbywYPCsus8+H6eSyyf3Xsrbe+Zi0NbgpVDScvR9TVu55ta0KMvQdS4aMEtg9ADlQa/C81hZhmYsBtvLug==", - "dependencies": { - "@turf/area": "^7.0.0", - "@turf/bbox": "^7.0.0", - "@turf/boolean-point-in-polygon": "^7.0.0", - "@turf/explode": "^7.0.0", - "@turf/helpers": "^7.0.0", - "@turf/invariant": "^7.0.0", - "@turf/meta": "^7.0.0", - "marchingsquares": "^1.3.3", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/isolines": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/isolines/-/isolines-7.0.0.tgz", - "integrity": "sha512-3LqwbzHnZ19gca5VC08XnHK36iRw2tEKjVtrI87iq6QEN9rR4FYcZOCmkPznYKwMKr44KkZKOlfNq/s72s1t3w==", - "dependencies": { - "@turf/bbox": "^7.0.0", - "@turf/helpers": "^7.0.0", - "@turf/invariant": "^7.0.0", - "@turf/meta": "^7.0.0", - "marchingsquares": "^1.3.3", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/jsts": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/@turf/jsts/-/jsts-2.7.1.tgz", - "integrity": "sha512-+nwOKme/aUprsxnLSfr2LylV6eL6T1Tuln+4Hl92uwZ8FrmjDRCH5Bi1LJNVfWCiYgk8+5K+t2zDphWNTsIFDA==", - "dependencies": { - "jsts": "2.7.1" - } - }, - "node_modules/@turf/kinks": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/kinks/-/kinks-7.0.0.tgz", - "integrity": "sha512-rUzx2G4NSb7f+SMjuBZBakrK4BrS3pfb67vYH8XQA28C9NBRQcZqJBCjXqA079q16GXiDpjCLianQMewtd6ksw==", - "dependencies": { - "@turf/helpers": "^7.0.0", - "sweepline-intersections": "^1.5.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/length": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/length/-/length-7.0.0.tgz", - "integrity": "sha512-B+ABesWLtQc8W310LJ8kmUn//NfpUUhsm4Gwt9ZHNYxBVV+FNolY965F7DYm/tvLMZP9bGMomTlczFWV7O4YIA==", - "dependencies": { - "@turf/distance": "^7.0.0", - "@turf/helpers": "^7.0.0", - "@turf/meta": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/line-arc": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/line-arc/-/line-arc-7.0.0.tgz", - "integrity": "sha512-kxZJlbQHR5F7toJ7QR+qF4eWX74RydGavCr2/IPOjcFK1mcSkTfyiSli3pciavD4eH3tHx0flTqH2poqTQxtyg==", - "dependencies": { - "@turf/circle": "^7.0.0", - "@turf/destination": "^7.0.0", - "@turf/helpers": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/line-chunk": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/line-chunk/-/line-chunk-7.0.0.tgz", - "integrity": "sha512-oA4GuUSxof3o0JOhNyS+CdzpqJ0VFro8RlGkTtymMhEMly4T7xjbMdffIrJ9o8hpnNKdwkJs4bcB98UD8sSPeA==", - "dependencies": { - "@turf/helpers": "^7.0.0", - "@turf/length": "^7.0.0", - "@turf/line-slice-along": "^7.0.0", - "@turf/meta": "^7.0.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/line-intersect": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/line-intersect/-/line-intersect-7.0.0.tgz", - "integrity": "sha512-vxCwzxCbTyKXO3GsEFQ8hyH1nLQShBhvFobRM2bLrbBlP2fWY9LDGixBcmWuOwV/G/wpQJxAjBJ6IYHjKIJqyA==", - "dependencies": { - "@turf/helpers": "^7.0.0", - "sweepline-intersections": "^1.5.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/line-offset": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/line-offset/-/line-offset-7.0.0.tgz", - "integrity": "sha512-ZQHAuR2y0ktG8uYAbaxGsJh931oCBwrxzOjiRtOcMifc/Hty37WFVaE9rCDrYrMLut7Ye9JQ36c6DMOljOLkMA==", - "dependencies": { - "@turf/helpers": "^7.0.0", - "@turf/invariant": "^7.0.0", - "@turf/meta": "^7.0.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/line-overlap": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/line-overlap/-/line-overlap-7.0.0.tgz", - "integrity": "sha512-yYjT0Qe2WIvf3InuSzobmEkD4XguoimdzXt23eHFF/RKNubAwwdFDeLbmyA7fNZFGrMLNEl/zYvgBVXiQ7tihg==", - "dependencies": { - "@turf/boolean-point-on-line": "^7.0.0", - "@turf/geojson-rbush": "^7.0.0", - "@turf/helpers": "^7.0.0", - "@turf/invariant": "^7.0.0", - "@turf/line-segment": "^7.0.0", - "@turf/meta": "^7.0.0", - "@turf/nearest-point-on-line": "^7.0.0", - "deep-equal": "^2.2.3", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/line-segment": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/line-segment/-/line-segment-7.0.0.tgz", - "integrity": "sha512-Fn8IPEMGQyDAJjjrEOrF0VUCdRosjdvd9x38gq73Qg5oSsZ4p9DdMdgydK27XL74/ivM4+CtDqQkHcj5Aec/yw==", - "dependencies": { - "@turf/helpers": "^7.0.0", - "@turf/invariant": "^7.0.0", - "@turf/meta": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/line-slice": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/line-slice/-/line-slice-7.0.0.tgz", - "integrity": "sha512-De+j4QTdoHguYu4S3UqOdU8GEg7VrVqQ67SkGzgFWL/SFh3V98+KDhxFIMA1OmzOc5/ox3yUQ8a/BOYslAV4DA==", - "dependencies": { - "@turf/helpers": "^7.0.0", - "@turf/invariant": "^7.0.0", - "@turf/nearest-point-on-line": "^7.0.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/line-slice-along": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/line-slice-along/-/line-slice-along-7.0.0.tgz", - "integrity": "sha512-+HNcI8ilm7ma/oKm23f2ca+xaNe4IjDYAjtl2Peap3b39Y9UAgw6lXhIh/L+m/XQXKkdWOfmqf4J2ar0bgG9DQ==", - "dependencies": { - "@turf/bearing": "^7.0.0", - "@turf/destination": "^7.0.0", - "@turf/distance": "^7.0.0", - "@turf/helpers": "^7.0.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/line-split": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/line-split/-/line-split-7.0.0.tgz", - "integrity": "sha512-LuJuO1bY++PJEQ7gqbkzdL8RP1pZRQdgoqaZTsMy5AhxfjMCSL4Bx3o8SYAtsQt6CTx17dMCqBcjmjZwqNJJ6w==", - "dependencies": { - "@turf/bbox": "^7.0.0", - "@turf/geojson-rbush": "^7.0.0", - "@turf/helpers": "^7.0.0", - "@turf/invariant": "^7.0.0", - "@turf/line-intersect": "^7.0.0", - "@turf/line-segment": "^7.0.0", - "@turf/meta": "^7.0.0", - "@turf/nearest-point-on-line": "^7.0.0", - "@turf/square": "^7.0.0", - "@turf/truncate": "^7.0.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/line-to-polygon": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/line-to-polygon/-/line-to-polygon-7.0.0.tgz", - "integrity": "sha512-NmrY1jFj4oW30TW2LNoL00/uNmF1bGeTU8W1EtCunoCUUOVD9XSCj0kdSuq+MJLBH06PzOL+2f1jKTFf0X7Kqg==", - "dependencies": { - "@turf/bbox": "^7.0.0", - "@turf/clone": "^7.0.0", - "@turf/helpers": "^7.0.0", - "@turf/invariant": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/mask": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/mask/-/mask-7.0.0.tgz", - "integrity": "sha512-5vSNpN4rCRhEsS69d9u8USlFGdlf5rySCD701gzALNGpvTN4ViXoUUH9ysdqOdvp/IdC8thRP72Hget9fJKcfQ==", - "dependencies": { - "@turf/helpers": "^7.0.0", - "polygon-clipping": "^0.15.3" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/meta": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/meta/-/meta-7.0.0.tgz", - "integrity": "sha512-cEXr13uFwhXq5mFBy0IK1U/QepE5qgk3zXpBYsla3lYV7cB83Vh+NNUR+r0/w/QoJqest1TG4H20F9tGYWPi/g==", - "dependencies": { - "@turf/helpers": "^7.0.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/midpoint": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/midpoint/-/midpoint-7.0.0.tgz", - "integrity": "sha512-Zt0OgtByf5rTKT86WssAzNN2D7eqjay9ZlRb2rutynMyJDdLgbGPurTZIOXOP7ztGaS/WIMYlvPEveIp8ao1zQ==", - "dependencies": { - "@turf/bearing": "^7.0.0", - "@turf/destination": "^7.0.0", - "@turf/distance": "^7.0.0", - "@turf/helpers": "^7.0.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/moran-index": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/moran-index/-/moran-index-7.0.0.tgz", - "integrity": "sha512-Vl3PD8wn8aBYZpQ7Kq+dWosiQP2HTeZmzEyQh7WGAUK7OunODFPIdObj6jLwKYj9ZW2XVxaGmogjVEmQ2/2FQQ==", - "dependencies": { - "@turf/distance-weight": "^7.0.0", - "@turf/helpers": "^7.0.0", - "@turf/meta": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/nearest-neighbor-analysis": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/nearest-neighbor-analysis/-/nearest-neighbor-analysis-7.0.0.tgz", - "integrity": "sha512-wz+2U271niT7l18SIctAo5Muh5kqyZl4bqFUWTQhhhzXkcP2hCYT9gYWkrZN0gfyp9sCWUe7mgoU6/wGDsiENQ==", - "dependencies": { - "@turf/area": "^7.0.0", - "@turf/bbox": "^7.0.0", - "@turf/bbox-polygon": "^7.0.0", - "@turf/centroid": "^7.0.0", - "@turf/distance": "^7.0.0", - "@turf/helpers": "^7.0.0", - "@turf/meta": "^7.0.0", - "@turf/nearest-point": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/nearest-point": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/nearest-point/-/nearest-point-7.0.0.tgz", - "integrity": "sha512-h3uLUoeo6JWTirpI499SRooqEoDxia2C/kDqAwAeXFqwxzGqGprtNA/C0bMgHfxE1M2rxORGzvgywKirpLu1dA==", - "dependencies": { - "@turf/clone": "^7.0.0", - "@turf/distance": "^7.0.0", - "@turf/helpers": "^7.0.0", - "@turf/meta": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/nearest-point-on-line": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/nearest-point-on-line/-/nearest-point-on-line-7.0.0.tgz", - "integrity": "sha512-ADf+oytqY3EVT/9JApoRr5H0f8wzkzeXhJUfTDEcWZoJqT/8lOX2HCo87b6+oEb1QIavlSogoku1+M5xMIcJLw==", - "dependencies": { - "@turf/bearing": "^7.0.0", - "@turf/destination": "^7.0.0", - "@turf/distance": "^7.0.0", - "@turf/helpers": "^7.0.0", - "@turf/invariant": "^7.0.0", - "@turf/line-intersect": "^7.0.0", - "@turf/meta": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/nearest-point-to-line": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/nearest-point-to-line/-/nearest-point-to-line-7.0.0.tgz", - "integrity": "sha512-DmbQ88nChkVD6pe9dbFZEBVtmcgrRFKSv1n3Y1Kka+BeDFzCfie2VJuhsrqrecRmLMIEf1tdVJL/MdpinnZZTQ==", - "dependencies": { - "@turf/helpers": "^7.0.0", - "@turf/invariant": "^7.0.0", - "@turf/meta": "^7.0.0", - "@turf/point-to-line-distance": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/planepoint": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/planepoint/-/planepoint-7.0.0.tgz", - "integrity": "sha512-+/Sqk1I8QwlKsd0rfjwOac3BAdIBeyjN8Irgk2vYbxUADn6QWcxyYLro8DHUVrTu9jZfllc8QNpy9/6iUykm0A==", - "dependencies": { - "@turf/helpers": "^7.0.0", - "@turf/invariant": "^7.0.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz", + "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@turf/point-grid": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/point-grid/-/point-grid-7.0.0.tgz", - "integrity": "sha512-vXtFeWFC0i9T71AVX5VdlqD2mlKhk649OF/pEJB9wtCGDHYax9kkObNDSz4mFAz4UqQ67P5Lipg8YYaawgmDZg==", - "dependencies": { - "@turf/boolean-within": "^7.0.0", - "@turf/distance": "^7.0.0", - "@turf/helpers": "^7.0.0", - "@turf/invariant": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz", + "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@turf/point-on-feature": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/point-on-feature/-/point-on-feature-7.0.0.tgz", - "integrity": "sha512-KTvYrQJEw62GLivd5LfCRt9z/4ZFdz29+3HxW9/RHhb8nrjLU8M8j7fJTQ+/Q+pPunWPK0Fvjv8LZAh0c30/oA==", - "dependencies": { - "@turf/boolean-point-in-polygon": "^7.0.0", - "@turf/center": "^7.0.0", - "@turf/explode": "^7.0.0", - "@turf/helpers": "^7.0.0", - "@turf/nearest-point": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz", + "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@turf/point-to-line-distance": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/point-to-line-distance/-/point-to-line-distance-7.0.0.tgz", - "integrity": "sha512-BMNy/vbvm9NjrgJq6MA3xhruy+cp/Wj+ff3fiu8Rdl5QX/dMwCeyCZuuvzCftup6GTPUhRbpe0YRFUBInGzx/g==", - "dependencies": { - "@turf/bearing": "^7.0.0", - "@turf/distance": "^7.0.0", - "@turf/helpers": "^7.0.0", - "@turf/invariant": "^7.0.0", - "@turf/meta": "^7.0.0", - "@turf/projection": "^7.0.0", - "@turf/rhumb-bearing": "^7.0.0", - "@turf/rhumb-distance": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz", + "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@turf/points-within-polygon": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/points-within-polygon/-/points-within-polygon-7.0.0.tgz", - "integrity": "sha512-Nz4kLSitsfZH0jwgCA5PCVcCocMWNM5+0LZo13j2JoXP980zTwL5t6jiwS2qFoofNE0Q6RfjrfQ3kVm5/g1/bQ==", - "dependencies": { - "@turf/boolean-point-in-polygon": "^7.0.0", - "@turf/helpers": "^7.0.0", - "@turf/meta": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz", + "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@turf/polygon-smooth": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/polygon-smooth/-/polygon-smooth-7.0.0.tgz", - "integrity": "sha512-1pY81xZivsToG8zFGvX/1NjrYCNOWm+fdtciWyF+tt0rGE/xvMwE4yiX1chDrKiV2X8W+Ip/ZLry3MIBcSUx0Q==", - "dependencies": { - "@turf/helpers": "^7.0.0", - "@turf/meta": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz", + "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@turf/polygon-tangents": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/polygon-tangents/-/polygon-tangents-7.0.0.tgz", - "integrity": "sha512-BNSKWqOTiCvVSj5CuLmkcHkagFsBSbUuSSffEGxC3cFY2tb0vP71nFE9qM+h9FpApkR6F/bWxRu5AxQ4oVHySQ==", - "dependencies": { - "@turf/bbox": "^7.0.0", - "@turf/boolean-within": "^7.0.0", - "@turf/explode": "^7.0.0", - "@turf/helpers": "^7.0.0", - "@turf/invariant": "^7.0.0", - "@turf/nearest-point": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz", + "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@turf/polygon-to-line": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/polygon-to-line/-/polygon-to-line-7.0.0.tgz", - "integrity": "sha512-FkbxgABNzULN//WiSWiBqkbePbQANMmYKFgD6tUnVGldTFa1RuUjt/bgbvPjVHZfUdJieyxBszzl1dP0z8czDQ==", - "dependencies": { - "@turf/helpers": "^7.0.0", - "@turf/invariant": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz", + "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@turf/polygonize": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/polygonize/-/polygonize-7.0.0.tgz", - "integrity": "sha512-aTVANRcWHVFZIgUwH5H5BMn9OoGk8KI+mGe4H8cXQWUvarKUz86t8BkdkbWnsAfdOTrEwK4WFWtxfmeWwJUH7Q==", - "dependencies": { - "@turf/boolean-point-in-polygon": "^7.0.0", - "@turf/envelope": "^7.0.0", - "@turf/helpers": "^7.0.0", - "@turf/invariant": "^7.0.0", - "@turf/meta": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz", + "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@turf/projection": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/projection/-/projection-7.0.0.tgz", - "integrity": "sha512-EoPbZPZSDv0AJMfYhqnS455CVMYwPU78kHyQHeOnMR1Tc5z+TiImvyq55umhfecgpETzuDsjFkmeQ2phDKTmbA==", - "dependencies": { - "@turf/clone": "^7.0.0", - "@turf/helpers": "^7.0.0", - "@turf/meta": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz", + "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/@turf/quadrat-analysis": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/quadrat-analysis/-/quadrat-analysis-7.0.0.tgz", - "integrity": "sha512-JaCARFLS7mFIGORpRFcqrrCWVgTi+Vw5prSgQdaMVMcXo5+wsPh0fJUno4PGHt++R6AE3ZgxtDq2gS/1RZfhOA==", - "dependencies": { - "@turf/area": "^7.0.0", - "@turf/bbox": "^7.0.0", - "@turf/bbox-polygon": "^7.0.0", - "@turf/centroid": "^7.0.0", - "@turf/helpers": "^7.0.0", - "@turf/invariant": "^7.0.0", - "@turf/point-grid": "^7.0.0", - "@turf/random": "^7.0.0", - "@turf/square-grid": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz", + "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/@turf/random": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/random/-/random-7.0.0.tgz", - "integrity": "sha512-l3+FW0pk6MUQx2lyMvzps2YQS7ovP6YoV0tVvuNaQq0UICB1P4EHJIKLMTe5pXk73Z3p0wTgnEPk0Z2lqWaeGQ==", - "dependencies": { - "@turf/helpers": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz", + "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/@turf/rectangle-grid": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/rectangle-grid/-/rectangle-grid-7.0.0.tgz", - "integrity": "sha512-iLMRfaWs9+BlGaDP5ka7J9bTGFPGim1Tl38uNTPagIVxk6bNfB8156S9up+/7scpjuQGxY0ky3tlR9aVYlWNdw==", - "dependencies": { - "@turf/boolean-intersects": "^7.0.0", - "@turf/distance": "^7.0.0", - "@turf/helpers": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } + "node_modules/@trapezedev/gradle-parse": { + "version": "7.0.10", + "resolved": "https://registry.npmjs.org/@trapezedev/gradle-parse/-/gradle-parse-7.0.10.tgz", + "integrity": "sha512-k822Is3jGroqOTKF0gAFm80LmhFJWBAyZvNtyuXq6uQUzDDe2fj/gHwixP6VFzlpaWKLP7IuR609Xv8gwJCXyg==", + "dev": true }, - "node_modules/@turf/rewind": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/rewind/-/rewind-7.0.0.tgz", - "integrity": "sha512-kZwqJ4enmTZPDrI0rCf+zE9HChCuKKvD0kqZJo50XvfypfKVz5CI751Dgs/cslMIENyKFiHHHM4OMgouJ/lR1Q==", + "node_modules/@trapezedev/project": { + "version": "7.0.10", + "resolved": "https://registry.npmjs.org/@trapezedev/project/-/project-7.0.10.tgz", + "integrity": "sha512-UjwsStjhHq/+D1bWREmFDoyKql+qFIgJX93zQLg7R6CyWZUdtlGP2hU3l7tsVRtjJBVXpVu5mj8tdwJJoABO3A==", + "dev": true, "dependencies": { - "@turf/boolean-clockwise": "^7.0.0", - "@turf/clone": "^7.0.0", - "@turf/helpers": "^7.0.0", - "@turf/invariant": "^7.0.0", - "@turf/meta": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" + "@ionic/utils-fs": "^3.1.5", + "@ionic/utils-subprocess": "^2.1.8", + "@prettier/plugin-xml": "^2.2.0", + "@trapezedev/gradle-parse": "7.0.10", + "@xmldom/xmldom": "^0.7.5", + "conventional-changelog": "^3.1.4", + "cross-fetch": "^3.1.5", + "cross-spawn": "^7.0.3", + "diff": "^5.1.0", + "env-paths": "^3.0.0", + "gradle-to-js": "^2.0.0", + "ini": "^2.0.0", + "kleur": "^4.1.5", + "lodash": "^4.17.21", + "mergexml": "^1.2.3", + "npm-watch": "^0.9.0", + "plist": "^3.0.4", + "prettier": "^2.7.1", + "prompts": "^2.4.2", + "replace": "^1.1.0", + "tempy": "^1.0.1", + "tmp": "^0.2.1", + "ts-node": "^10.2.1", + "xcode": "^3.0.1", + "xml-js": "^1.6.11", + "xpath": "^0.0.32", + "yargs": "^17.2.1" } }, - "node_modules/@turf/rhumb-bearing": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/rhumb-bearing/-/rhumb-bearing-7.0.0.tgz", - "integrity": "sha512-4qDggFDNBbWdD+o3H+vna5eiKCAsmqAueP3T5rSEB1ier77wVgjg7cs7eTrEBbpuCbPAho7NDNdyAjgItydgLQ==", - "dependencies": { - "@turf/helpers": "^7.0.0", - "@turf/invariant": "^7.0.0", - "tslib": "^2.6.2" + "node_modules/@trapezedev/project/node_modules/env-paths": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-3.0.0.tgz", + "integrity": "sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { - "url": "https://opencollective.com/turf" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@turf/rhumb-destination": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/rhumb-destination/-/rhumb-destination-7.0.0.tgz", - "integrity": "sha512-uYgqP8BGo8DBs6ZgjBo9SNCXc6BY+iA6OG7yPYSe4Lur2vu+LkbBXV6P3IodkeHyPex+X5ATea8QHutYQX6HUg==", - "dependencies": { - "@turf/helpers": "^7.0.0", - "@turf/invariant": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } + "node_modules/@tsconfig/node10": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", + "dev": true }, - "node_modules/@turf/rhumb-distance": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/rhumb-distance/-/rhumb-distance-7.0.0.tgz", - "integrity": "sha512-VAZnZcHbHHUU/Li0sj50/T6bBGRWvJ6eOZmw2aZFxxnC+AkHv4LTKDf0wNsxR03ZwGEh4uJM8OuirNugLIhAyA==", - "dependencies": { - "@turf/helpers": "^7.0.0", - "@turf/invariant": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true }, - "node_modules/@turf/sample": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/sample/-/sample-7.0.0.tgz", - "integrity": "sha512-yCeITDVT3vWMaK/X1JF6jxEipgBCi2Foj87lVO7rcVg5pp/6c2S8BnFB5NoI0+HKXEpulG4eH57khUVND9VCGA==", - "dependencies": { - "@turf/helpers": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "dev": true }, - "node_modules/@turf/sector": { + "node_modules/@turf/bbox": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/sector/-/sector-7.0.0.tgz", - "integrity": "sha512-HXT8vbCYoIbomcyT0D/0Ap4p3bSmb3EFC7C5BBv3Gr9oWiMf5cFgwwA/inbGorU5fcRap7/Yt4hWWTGLO5MDTw==", + "resolved": "https://registry.npmjs.org/@turf/bbox/-/bbox-7.0.0.tgz", + "integrity": "sha512-IyXG5HAsn6IZLdAtQo7aWYccjU5WsV+uzIzhGaXrh/qTVylSYmRiWgLdiekHZVED9nv9r7D/EJUMOT4zyA6POA==", "dependencies": { - "@turf/circle": "^7.0.0", "@turf/helpers": "^7.0.0", - "@turf/invariant": "^7.0.0", - "@turf/line-arc": "^7.0.0", "@turf/meta": "^7.0.0", "tslib": "^2.6.2" }, @@ -3866,89 +2960,54 @@ "url": "https://opencollective.com/turf" } }, - "node_modules/@turf/shortest-path": { + "node_modules/@turf/bearing": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/shortest-path/-/shortest-path-7.0.0.tgz", - "integrity": "sha512-nEtL6qA3Po6uXZsLnfbFCD+Nng3GIRBX2Okyva3PYCJvuD27qYJFvXk423Z0qA+09zZHhi2Ct1IGuXBBYmdkaw==", + "resolved": "https://registry.npmjs.org/@turf/bearing/-/bearing-7.0.0.tgz", + "integrity": "sha512-r6eBNqqiC8OtW+xIzu0ZyciAUfM85l2LVN2qpTeEyhnaNmnPw7hDsnqwZcbqoBFSLB66MO+BLH40X5OdaoRmmA==", "dependencies": { - "@turf/bbox": "^7.0.0", - "@turf/bbox-polygon": "^7.0.0", - "@turf/boolean-point-in-polygon": "^7.0.0", - "@turf/clean-coords": "^7.0.0", - "@turf/distance": "^7.0.0", "@turf/helpers": "^7.0.0", "@turf/invariant": "^7.0.0", - "@turf/meta": "^7.0.0", - "@turf/transform-scale": "^7.0.0", "tslib": "^2.6.2" }, "funding": { "url": "https://opencollective.com/turf" } }, - "node_modules/@turf/simplify": { + "node_modules/@turf/buffer": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/simplify/-/simplify-7.0.0.tgz", - "integrity": "sha512-EizgFBv7LiLTfqk0BlzuKXmGj7owHksI7Q0mur+yOFGFhEmP5pWm+jYxq+pYfUZA3eki4J7kyN4Mhg5c+jhLTw==", + "resolved": "https://registry.npmjs.org/@turf/buffer/-/buffer-7.0.0.tgz", + "integrity": "sha512-viw3XjTtYVtkq5DkRDBQjXoi5QeEMhe4JHWXIfHMHs4o5F9B+lZ8+TtXWo18X5aAXknv6ib1z2syoaQdBpb5Xw==", "dependencies": { - "@turf/clean-coords": "^7.0.0", - "@turf/clone": "^7.0.0", + "@turf/bbox": "^7.0.0", + "@turf/center": "^7.0.0", "@turf/helpers": "^7.0.0", + "@turf/jsts": "^2.7.1", "@turf/meta": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/square": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/square/-/square-7.0.0.tgz", - "integrity": "sha512-HnY2fESbGGzMeb19qZ0HKpsGRZv4f4e8oHH+gdCr6cs03z/TO6JslJdRA65zHNkdReSVEOQWIMF5IB+Cq20jCg==", - "dependencies": { - "@turf/distance": "^7.0.0", - "@turf/helpers": "^7.0.0" + "@turf/projection": "^7.0.0", + "d3-geo": "1.7.1" }, "funding": { "url": "https://opencollective.com/turf" } }, - "node_modules/@turf/square-grid": { + "node_modules/@turf/center": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/square-grid/-/square-grid-7.0.0.tgz", - "integrity": "sha512-Dz7GyFRbcf0aek5nm7gW5gVYq/dJdn+JkVFgSIimysRl1tBtQiE0LvjZRdS97JvPs6m6hcZT+sDEXW1fLDPYFA==", + "resolved": "https://registry.npmjs.org/@turf/center/-/center-7.0.0.tgz", + "integrity": "sha512-5RZia9uuWxz2oCyd1vsNkBeraBNdwCsIo4UGRQdyswBeLFVbRwIUa7M7+2z2D7B1YIgovuLIRVfk6FeWUQXDtQ==", "dependencies": { + "@turf/bbox": "^7.0.0", "@turf/helpers": "^7.0.0", - "@turf/rectangle-grid": "^7.0.0", "tslib": "^2.6.2" }, "funding": { "url": "https://opencollective.com/turf" } }, - "node_modules/@turf/standard-deviational-ellipse": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/standard-deviational-ellipse/-/standard-deviational-ellipse-7.0.0.tgz", - "integrity": "sha512-rr4T48aAfu2E/V6fStE8Jq1VD2a/zztS1LGu1PSK3pbk7Eq9HTEE9jzjBIONhDI6ljoLBYy4Qib+L3DaNCfmUQ==", - "dependencies": { - "@turf/center-mean": "^7.0.0", - "@turf/ellipse": "^7.0.0", - "@turf/helpers": "^7.0.0", - "@turf/invariant": "^7.0.0", - "@turf/meta": "^7.0.0", - "@turf/points-within-polygon": "^7.0.0" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/tag": { + "node_modules/@turf/centroid": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/tag/-/tag-7.0.0.tgz", - "integrity": "sha512-/QVKwYq9C7BkHrVtwLXwKSrEZcZT+/JQeNpGsOFhCBnDgXUMtLpj2obkMt+v7wXXtUgTsFAnSh7ClNgS6eB2Sg==", + "resolved": "https://registry.npmjs.org/@turf/centroid/-/centroid-7.0.0.tgz", + "integrity": "sha512-TMKp5yadglNVRxX3xuk1qQDEy5JFHmlYVBamzXuD8DL8rYdVog2x4gQHrwn7xrUyAlKJ4fUZZPkYBWfW6TDWbw==", "dependencies": { - "@turf/boolean-point-in-polygon": "^7.0.0", - "@turf/clone": "^7.0.0", "@turf/helpers": "^7.0.0", "@turf/meta": "^7.0.0", "tslib": "^2.6.2" @@ -3957,22 +3016,10 @@ "url": "https://opencollective.com/turf" } }, - "node_modules/@turf/tesselate": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/tesselate/-/tesselate-7.0.0.tgz", - "integrity": "sha512-AWdFrBuLh4RFEBLWVaY9Z3/8jrXFv9WDvO3SyVUCQYFFcQP9aVieHyEEwebRaKb578il/o3rNHyRBuL6xSOcAA==", - "dependencies": { - "@turf/helpers": "^7.0.0", - "earcut": "^2.2.4" - }, - "funding": { - "url": "https://opencollective.com/turf" - } - }, - "node_modules/@turf/tin": { + "node_modules/@turf/clone": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/tin/-/tin-7.0.0.tgz", - "integrity": "sha512-KuzXnoetCqu5RC6wcUWOvotxZMcgZptqz3gJZAuhqa1CF3DKUKFEJ851+f/9KzZ+woalUB8anFr9dMKJjcM6RA==", + "resolved": "https://registry.npmjs.org/@turf/clone/-/clone-7.0.0.tgz", + "integrity": "sha512-bQBx/wbQoGNtZzuHetLt44NMqOCnjSXcvTWm+LJ7YTmwrqZVAjISDhFxgawY/L+G3p+ya5WoxQwZWak80uYg3A==", "dependencies": { "@turf/helpers": "^7.0.0", "tslib": "^2.6.2" @@ -3981,252 +3028,126 @@ "url": "https://opencollective.com/turf" } }, - "node_modules/@turf/transform-rotate": { + "node_modules/@turf/destination": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/transform-rotate/-/transform-rotate-7.0.0.tgz", - "integrity": "sha512-zU6ypVOdVtXaJvy2LEVjx4o7y/vR9kIL6Iu/VkzXIvGCYICDdHnrpeEVJOFZPqdq4GI4C1xAQ4ARPTwtGrpPBg==", + "resolved": "https://registry.npmjs.org/@turf/destination/-/destination-7.0.0.tgz", + "integrity": "sha512-wXfLd37ul7xuFvv4L7dtNQOZnmYepnrsMZrxbmxvy2SCnF+Rzf1C7D1NQ6+Nx5SInB/SbTfi6SCDgyfB8MOawQ==", "dependencies": { - "@turf/centroid": "^7.0.0", - "@turf/clone": "^7.0.0", "@turf/helpers": "^7.0.0", "@turf/invariant": "^7.0.0", - "@turf/meta": "^7.0.0", - "@turf/rhumb-bearing": "^7.0.0", - "@turf/rhumb-destination": "^7.0.0", - "@turf/rhumb-distance": "^7.0.0" + "tslib": "^2.6.2" }, "funding": { "url": "https://opencollective.com/turf" } }, - "node_modules/@turf/transform-scale": { + "node_modules/@turf/distance": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/transform-scale/-/transform-scale-7.0.0.tgz", - "integrity": "sha512-G94nxT5TyP8TSNRDkoevFoGlUw0H2Az5IG1JKFTT5nRqpbML17IQblV33gaA1Hm197rekQo3CDVWEbgpOV0jAw==", + "resolved": "https://registry.npmjs.org/@turf/distance/-/distance-7.0.0.tgz", + "integrity": "sha512-DBPKhHABpPZ0KRduRpEaoi8MB6r1DVuyyps68VFH2Qi5H0ZnFtJFj7nQxBPZR3bVpbUq4zzu7I+MiNAd3ujFWQ==", "dependencies": { - "@turf/bbox": "^7.0.0", - "@turf/center": "^7.0.0", - "@turf/centroid": "^7.0.0", - "@turf/clone": "^7.0.0", "@turf/helpers": "^7.0.0", "@turf/invariant": "^7.0.0", - "@turf/meta": "^7.0.0", - "@turf/rhumb-bearing": "^7.0.0", - "@turf/rhumb-destination": "^7.0.0", - "@turf/rhumb-distance": "^7.0.0" + "tslib": "^2.6.2" }, "funding": { "url": "https://opencollective.com/turf" } }, - "node_modules/@turf/transform-translate": { + "node_modules/@turf/helpers": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/transform-translate/-/transform-translate-7.0.0.tgz", - "integrity": "sha512-sdZl29CqHoBo/Mxwos6Hvb6LXtHJYYTIjlWqphnu1kislbJwWUJpYjwD8yqTljfW4QHgDzGpnRLGzjDVZ7KHQQ==", + "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-7.0.0.tgz", + "integrity": "sha512-vwZvxRuyjGpGXvhXSbT9mX6FK92dBMLWbMbDJ/MXQUPx17ReVPFc+6N6IcxAzZfkiCnqy7vpuq0c+/TTrQxIiA==", "dependencies": { - "@turf/clone": "^7.0.0", - "@turf/helpers": "^7.0.0", - "@turf/invariant": "^7.0.0", - "@turf/meta": "^7.0.0", - "@turf/rhumb-destination": "^7.0.0" + "deep-equal": "^2.2.3", + "tslib": "^2.6.2" }, "funding": { "url": "https://opencollective.com/turf" } }, - "node_modules/@turf/triangle-grid": { + "node_modules/@turf/invariant": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/triangle-grid/-/triangle-grid-7.0.0.tgz", - "integrity": "sha512-LKBMgkGGfZxZclRzalIYHGG50eMBOHNihBZLagK/f8RAMrvG2rS/S4n/CQbqU9OXenDgYErSm3SCVXC1dTXVPA==", + "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-7.0.0.tgz", + "integrity": "sha512-Kayszfz3W8yJ1/cIA3/aNSzAuw7QgSp+IwsSmhLAfp4DbjV0o6sjxRZXRY2gRstZHqkNHSSEeir8V/icdO8sjA==", "dependencies": { - "@turf/distance": "^7.0.0", "@turf/helpers": "^7.0.0", - "@turf/intersect": "^7.0.0", "tslib": "^2.6.2" }, "funding": { "url": "https://opencollective.com/turf" } }, - "node_modules/@turf/truncate": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/truncate/-/truncate-7.0.0.tgz", - "integrity": "sha512-G0cKlvONexzRIHRMkzhIA9UsOHiHbVW+iFBlAyDxXKK9Cr9USp/JjETAo8zqCnTQna40xdjt4bcHtsZxqyRQZw==", + "node_modules/@turf/jsts": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/@turf/jsts/-/jsts-2.7.1.tgz", + "integrity": "sha512-+nwOKme/aUprsxnLSfr2LylV6eL6T1Tuln+4Hl92uwZ8FrmjDRCH5Bi1LJNVfWCiYgk8+5K+t2zDphWNTsIFDA==", "dependencies": { - "@turf/helpers": "^7.0.0", - "@turf/meta": "^7.0.0", - "tslib": "^2.6.2" - }, - "funding": { - "url": "https://opencollective.com/turf" + "jsts": "2.7.1" } }, - "node_modules/@turf/turf": { + "node_modules/@turf/line-intersect": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/turf/-/turf-7.0.0.tgz", - "integrity": "sha512-oKtvIoP9nCBT7HCUn0/QP62QwTj8eDxfS810ZGJO0aDPDg2x94tSqwbvmu5WcvcxOBB/6L6rF55UJjL+OjcHxw==", + "resolved": "https://registry.npmjs.org/@turf/line-intersect/-/line-intersect-7.0.0.tgz", + "integrity": "sha512-vxCwzxCbTyKXO3GsEFQ8hyH1nLQShBhvFobRM2bLrbBlP2fWY9LDGixBcmWuOwV/G/wpQJxAjBJ6IYHjKIJqyA==", "dependencies": { - "@turf/along": "^7.0.0", - "@turf/angle": "^7.0.0", - "@turf/area": "^7.0.0", - "@turf/bbox": "^7.0.0", - "@turf/bbox-clip": "^7.0.0", - "@turf/bbox-polygon": "^7.0.0", - "@turf/bearing": "^7.0.0", - "@turf/bezier-spline": "^7.0.0", - "@turf/boolean-clockwise": "^7.0.0", - "@turf/boolean-concave": "^7.0.0", - "@turf/boolean-contains": "^7.0.0", - "@turf/boolean-crosses": "^7.0.0", - "@turf/boolean-disjoint": "^7.0.0", - "@turf/boolean-equal": "^7.0.0", - "@turf/boolean-intersects": "^7.0.0", - "@turf/boolean-overlap": "^7.0.0", - "@turf/boolean-parallel": "^7.0.0", - "@turf/boolean-point-in-polygon": "^7.0.0", - "@turf/boolean-point-on-line": "^7.0.0", - "@turf/boolean-touches": "^7.0.0", - "@turf/boolean-valid": "^7.0.0", - "@turf/boolean-within": "^7.0.0", - "@turf/buffer": "^7.0.0", - "@turf/center": "^7.0.0", - "@turf/center-mean": "^7.0.0", - "@turf/center-median": "^7.0.0", - "@turf/center-of-mass": "^7.0.0", - "@turf/centroid": "^7.0.0", - "@turf/circle": "^7.0.0", - "@turf/clean-coords": "^7.0.0", - "@turf/clone": "^7.0.0", - "@turf/clusters": "^7.0.0", - "@turf/clusters-dbscan": "^7.0.0", - "@turf/clusters-kmeans": "^7.0.0", - "@turf/collect": "^7.0.0", - "@turf/combine": "^7.0.0", - "@turf/concave": "^7.0.0", - "@turf/convex": "^7.0.0", - "@turf/destination": "^7.0.0", - "@turf/difference": "^7.0.0", - "@turf/dissolve": "^7.0.0", - "@turf/distance": "^7.0.0", - "@turf/distance-weight": "^7.0.0", - "@turf/ellipse": "^7.0.0", - "@turf/envelope": "^7.0.0", - "@turf/explode": "^7.0.0", - "@turf/flatten": "^7.0.0", - "@turf/flip": "^7.0.0", - "@turf/geojson-rbush": "^7.0.0", - "@turf/great-circle": "^7.0.0", "@turf/helpers": "^7.0.0", - "@turf/hex-grid": "^7.0.0", - "@turf/interpolate": "^7.0.0", - "@turf/intersect": "^7.0.0", - "@turf/invariant": "^7.0.0", - "@turf/isobands": "^7.0.0", - "@turf/isolines": "^7.0.0", - "@turf/kinks": "^7.0.0", - "@turf/length": "^7.0.0", - "@turf/line-arc": "^7.0.0", - "@turf/line-chunk": "^7.0.0", - "@turf/line-intersect": "^7.0.0", - "@turf/line-offset": "^7.0.0", - "@turf/line-overlap": "^7.0.0", - "@turf/line-segment": "^7.0.0", - "@turf/line-slice": "^7.0.0", - "@turf/line-slice-along": "^7.0.0", - "@turf/line-split": "^7.0.0", - "@turf/line-to-polygon": "^7.0.0", - "@turf/mask": "^7.0.0", - "@turf/meta": "^7.0.0", - "@turf/midpoint": "^7.0.0", - "@turf/moran-index": "^7.0.0", - "@turf/nearest-neighbor-analysis": "^7.0.0", - "@turf/nearest-point": "^7.0.0", - "@turf/nearest-point-on-line": "^7.0.0", - "@turf/nearest-point-to-line": "^7.0.0", - "@turf/planepoint": "^7.0.0", - "@turf/point-grid": "^7.0.0", - "@turf/point-on-feature": "^7.0.0", - "@turf/point-to-line-distance": "^7.0.0", - "@turf/points-within-polygon": "^7.0.0", - "@turf/polygon-smooth": "^7.0.0", - "@turf/polygon-tangents": "^7.0.0", - "@turf/polygon-to-line": "^7.0.0", - "@turf/polygonize": "^7.0.0", - "@turf/projection": "^7.0.0", - "@turf/quadrat-analysis": "^7.0.0", - "@turf/random": "^7.0.0", - "@turf/rectangle-grid": "^7.0.0", - "@turf/rewind": "^7.0.0", - "@turf/rhumb-bearing": "^7.0.0", - "@turf/rhumb-destination": "^7.0.0", - "@turf/rhumb-distance": "^7.0.0", - "@turf/sample": "^7.0.0", - "@turf/sector": "^7.0.0", - "@turf/shortest-path": "^7.0.0", - "@turf/simplify": "^7.0.0", - "@turf/square": "^7.0.0", - "@turf/square-grid": "^7.0.0", - "@turf/standard-deviational-ellipse": "^7.0.0", - "@turf/tag": "^7.0.0", - "@turf/tesselate": "^7.0.0", - "@turf/tin": "^7.0.0", - "@turf/transform-rotate": "^7.0.0", - "@turf/transform-scale": "^7.0.0", - "@turf/transform-translate": "^7.0.0", - "@turf/triangle-grid": "^7.0.0", - "@turf/truncate": "^7.0.0", - "@turf/union": "^7.0.0", - "@turf/unkink-polygon": "^7.0.0", - "@turf/voronoi": "^7.0.0", + "sweepline-intersections": "^1.5.0", "tslib": "^2.6.2" }, "funding": { "url": "https://opencollective.com/turf" } }, - "node_modules/@turf/union": { + "node_modules/@turf/meta": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/union/-/union-7.0.0.tgz", - "integrity": "sha512-NRnP0GJ3guzVh6D2KNZvqNLMkbZtPQ6X1U4czK9ETicLROzqq6wM/S8gHZJVoh0KxxK1RYDsKu0RGFVobVT2vA==", + "resolved": "https://registry.npmjs.org/@turf/meta/-/meta-7.0.0.tgz", + "integrity": "sha512-cEXr13uFwhXq5mFBy0IK1U/QepE5qgk3zXpBYsla3lYV7cB83Vh+NNUR+r0/w/QoJqest1TG4H20F9tGYWPi/g==", "dependencies": { - "@turf/helpers": "^7.0.0", - "@turf/meta": "^7.0.0", - "polygon-clipping": "^0.15.3", - "tslib": "^2.6.2" + "@turf/helpers": "^7.0.0" }, "funding": { "url": "https://opencollective.com/turf" } }, - "node_modules/@turf/unkink-polygon": { + "node_modules/@turf/nearest-point-on-line": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/unkink-polygon/-/unkink-polygon-7.0.0.tgz", - "integrity": "sha512-mkwC7+KgINIAkRYSx0iRp8BjGtw8bijvtzC9Da5CRTSg13WH2IrvksFtasTo58xMdqyt6oO2NdMEDX3JUwRCeg==", + "resolved": "https://registry.npmjs.org/@turf/nearest-point-on-line/-/nearest-point-on-line-7.0.0.tgz", + "integrity": "sha512-ADf+oytqY3EVT/9JApoRr5H0f8wzkzeXhJUfTDEcWZoJqT/8lOX2HCo87b6+oEb1QIavlSogoku1+M5xMIcJLw==", "dependencies": { - "@turf/area": "^7.0.0", - "@turf/boolean-point-in-polygon": "^7.0.0", + "@turf/bearing": "^7.0.0", + "@turf/destination": "^7.0.0", + "@turf/distance": "^7.0.0", "@turf/helpers": "^7.0.0", + "@turf/invariant": "^7.0.0", + "@turf/line-intersect": "^7.0.0", "@turf/meta": "^7.0.0", - "rbush": "^3.0.1" + "tslib": "^2.6.2" }, "funding": { "url": "https://opencollective.com/turf" } }, - "node_modules/@turf/voronoi": { + "node_modules/@turf/projection": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@turf/voronoi/-/voronoi-7.0.0.tgz", - "integrity": "sha512-AJMrtd9eV+nVA+su1GIp96E5ENzKUepPFr9wWHqqWedj92W2KbdAwfwJVMyl0vBmiMYeTSnfzC7HenIMXePfhA==", + "resolved": "https://registry.npmjs.org/@turf/projection/-/projection-7.0.0.tgz", + "integrity": "sha512-EoPbZPZSDv0AJMfYhqnS455CVMYwPU78kHyQHeOnMR1Tc5z+TiImvyq55umhfecgpETzuDsjFkmeQ2phDKTmbA==", "dependencies": { "@turf/clone": "^7.0.0", "@turf/helpers": "^7.0.0", - "@turf/invariant": "^7.0.0", - "d3-voronoi": "1.1.2" + "@turf/meta": "^7.0.0", + "tslib": "^2.6.2" }, "funding": { "url": "https://opencollective.com/turf" } }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, "node_modules/@types/fs-extra": { "version": "8.1.5", "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.1.5.tgz", @@ -4236,11 +3157,6 @@ "@types/node": "*" } }, - "node_modules/@types/geojson": { - "version": "7946.0.8", - "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.8.tgz", - "integrity": "sha512-1rkryxURpr6aWP7R786/UQOkJ3PcpQiWkAXBmdWc7ryFWqN6a4xfK7BtjXvFBKO9LjQ+MWQSWxYeZX1OApnArA==" - }, "node_modules/@types/minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", @@ -4248,9 +3164,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.14.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.9.tgz", - "integrity": "sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg==", + "version": "20.14.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.10.tgz", + "integrity": "sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -4268,6 +3184,121 @@ "integrity": "sha512-+OpjSaq85gvlZAYINyzKpLeiFkSC4EsC6IIiT6v6TLSU5k5U83fHGj9Lel8oKEXM0HqgrMVCjXPDPVICtxF7EQ==", "dev": true }, + "node_modules/@vitejs/plugin-vue": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.0.5.tgz", + "integrity": "sha512-LOjm7XeIimLBZyzinBQ6OSm3UBCNVCpLkxGC0oWmm2YPzVZoxMsdvNVimLTBzpAnR9hl/yn1SHGuRfe6/Td9rQ==", + "dev": true, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "vite": "^5.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.4.31", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.31.tgz", + "integrity": "sha512-skOiodXWTV3DxfDhB4rOf3OGalpITLlgCeOwb+Y9GJpfQ8ErigdBUHomBzvG78JoVE8MJoQsb+qhZiHfKeNeEg==", + "dependencies": { + "@babel/parser": "^7.24.7", + "@vue/shared": "3.4.31", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-core/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.4.31", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.31.tgz", + "integrity": "sha512-wK424WMXsG1IGMyDGyLqB+TbmEBFM78hIsOJ9QwUVLGrcSk0ak6zYty7Pj8ftm7nEtdU/DGQxAXp0/lM/2cEpQ==", + "dependencies": { + "@vue/compiler-core": "3.4.31", + "@vue/shared": "3.4.31" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.4.31", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.31.tgz", + "integrity": "sha512-einJxqEw8IIJxzmnxmJBuK2usI+lJonl53foq+9etB2HAzlPjAS/wa7r0uUpXw5ByX3/0uswVSrjNb17vJm1kQ==", + "dependencies": { + "@babel/parser": "^7.24.7", + "@vue/compiler-core": "3.4.31", + "@vue/compiler-dom": "3.4.31", + "@vue/compiler-ssr": "3.4.31", + "@vue/shared": "3.4.31", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.10", + "postcss": "^8.4.38", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.4.31", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.31.tgz", + "integrity": "sha512-RtefmITAje3fJ8FSg1gwgDhdKhZVntIVbwupdyZDSifZTRMiWxWehAOTCc8/KZDnBOcYQ4/9VWxsTbd3wT0hAA==", + "dependencies": { + "@vue/compiler-dom": "3.4.31", + "@vue/shared": "3.4.31" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.4.31", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.31.tgz", + "integrity": "sha512-VGkTani8SOoVkZNds1PfJ/T1SlAIOf8E58PGAhIOUDYPC4GAmFA2u/E14TDAFcf3vVDKunc4QqCe/SHr8xC65Q==", + "dependencies": { + "@vue/shared": "3.4.31" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.4.31", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.31.tgz", + "integrity": "sha512-LDkztxeUPazxG/p8c5JDDKPfkCDBkkiNLVNf7XZIUnJ+66GVGkP+TIh34+8LtPisZ+HMWl2zqhIw0xN5MwU1cw==", + "dependencies": { + "@vue/reactivity": "3.4.31", + "@vue/shared": "3.4.31" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.4.31", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.31.tgz", + "integrity": "sha512-2Auws3mB7+lHhTFCg8E9ZWopA6Q6L455EcU7bzcQ4x6Dn4cCPuqj6S2oBZgN2a8vJRS/LSYYxwFFq2Hlx3Fsaw==", + "dependencies": { + "@vue/reactivity": "3.4.31", + "@vue/runtime-core": "3.4.31", + "@vue/shared": "3.4.31", + "csstype": "^3.1.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.4.31", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.31.tgz", + "integrity": "sha512-D5BLbdvrlR9PE3by9GaUp1gQXlCNadIZytMIb8H2h3FMWJd4oUfkUTEH2wAr3qxoRz25uxbTcbqd3WKlm9EHQA==", + "dependencies": { + "@vue/compiler-ssr": "3.4.31", + "@vue/shared": "3.4.31" + }, + "peerDependencies": { + "vue": "3.4.31" + } + }, + "node_modules/@vue/shared": { + "version": "3.4.31", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.31.tgz", + "integrity": "sha512-Yp3wtJk//8cO4NItOPpi3QkLExAr/aLBGZMmTtW9WpdwBCJpRM6zj9WgWktXAl8IDIozwNMByT45JP3tO3ACWA==" + }, "node_modules/@xml-tools/parser": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@xml-tools/parser/-/parser-1.0.11.tgz", @@ -4278,9 +3309,9 @@ } }, "node_modules/@xmldom/xmldom": { - "version": "0.8.10", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", - "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==", + "version": "0.7.13", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.13.tgz", + "integrity": "sha512-lm2GW5PkosIzccsaZIz7tp8cPADSIlIHWDFTR1N0SzfinhhYgeIQjFMz4rYzanCScr3DqQLeomUDArp6MWKm+g==", "dev": true, "engines": { "node": ">=10.0.0" @@ -4343,9 +3374,9 @@ } }, "node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", "dev": true, "engines": { "node": ">=6" @@ -4865,15 +3896,12 @@ } }, "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6" } }, "node_modules/camelcase-keys": { @@ -4893,19 +3921,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/camelcase-keys/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/caniuse-lite": { - "version": "1.0.30001638", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001638.tgz", - "integrity": "sha512-5SuJUJ7cZnhPpeLHaH0c/HPAnAHZvS6ElWyHK9GSIbVOQABLzowiI2pjmpvZ1WEbkyz46iFd4UXlOHR5SqgfMQ==", + "version": "1.0.30001640", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001640.tgz", + "integrity": "sha512-lA4VMpW0PSUrFnkmVuEKBUovSWKhj7puyCg8StBChgu298N1AtuF1sKWEvfDuimSEDbhlb/KqPKC3fs1HbuQUA==", "dev": true, "funding": [ { @@ -5013,14 +4032,17 @@ } }, "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, "dependencies": { "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", + "strip-ansi": "^6.0.1", "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" } }, "node_modules/clone-deep": { @@ -5106,9 +4128,13 @@ } }, "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "dev": true, + "engines": { + "node": ">= 12" + } }, "node_modules/commondir": { "version": "1.0.1", @@ -5132,17 +4158,6 @@ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, - "node_modules/concaveman": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/concaveman/-/concaveman-1.2.1.tgz", - "integrity": "sha512-PwZYKaM/ckQSa8peP5JpVr7IMJ4Nn/MHIaWUjP4be+KoZ7Botgs8seAZGpmaOM+UZXawcdYRao/px9ycrCihHw==", - "dependencies": { - "point-in-polygon": "^1.1.0", - "rbush": "^3.0.1", - "robust-predicates": "^2.0.4", - "tinyqueue": "^2.0.3" - } - }, "node_modules/content-disposition": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", @@ -5388,15 +4403,6 @@ "node": ">=10" } }, - "node_modules/conventional-commits-parser/node_modules/split2": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", - "dev": true, - "dependencies": { - "readable-stream": "^3.0.0" - } - }, "node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", @@ -5503,6 +4509,11 @@ "url": "https://github.com/sponsors/fb55" } }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, "node_modules/d3-array": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", @@ -5516,11 +4527,6 @@ "d3-array": "1" } }, - "node_modules/d3-voronoi": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/d3-voronoi/-/d3-voronoi-1.1.2.tgz", - "integrity": "sha512-RhGS1u2vavcO7ay7ZNAPo4xeDh/VYeGof3x5ZLJBQgYhLegxr3s5IykvWmJ94FTU6mcbtp4sloqZ54mP6R4Utw==" - }, "node_modules/dargs": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", @@ -5540,9 +4546,9 @@ } }, "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", "dev": true, "dependencies": { "ms": "2.1.2" @@ -5557,15 +4563,12 @@ } }, "node_modules/decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", "dev": true, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, "node_modules/decamelize-keys": { @@ -5584,15 +4587,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/decamelize-keys/node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/decamelize-keys/node_modules/map-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", @@ -5836,9 +4830,9 @@ } }, "node_modules/diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", + "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", "dev": true, "engines": { "node": ">=0.3.1" @@ -5932,11 +4926,6 @@ "node": ">=8" } }, - "node_modules/earcut": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.4.tgz", - "integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==" - }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -5944,9 +4933,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.815", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.815.tgz", - "integrity": "sha512-OvpTT2ItpOXJL7IGcYakRjHCt8L5GrrN/wHCQsRB4PQa1X9fe+X9oen245mIId7s14xvArCGSTIq644yPUKKLg==", + "version": "1.4.818", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.818.tgz", + "integrity": "sha512-eGvIk2V0dGImV9gWLq8fDfTTsCAeMDwZqEPMr+jMInxZdnp9Us8UpovYpRCf9NQ7VOFgrN2doNSgvISbsbNpxA==", "dev": true }, "node_modules/elementtree": { @@ -6051,9 +5040,9 @@ } }, "node_modules/esbuild": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.54.tgz", - "integrity": "sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", "dev": true, "hasInstallScript": true, "bin": { @@ -6063,43 +5052,29 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/linux-loong64": "0.14.54", - "esbuild-android-64": "0.14.54", - "esbuild-android-arm64": "0.14.54", - "esbuild-darwin-64": "0.14.54", - "esbuild-darwin-arm64": "0.14.54", - "esbuild-freebsd-64": "0.14.54", - "esbuild-freebsd-arm64": "0.14.54", - "esbuild-linux-32": "0.14.54", - "esbuild-linux-64": "0.14.54", - "esbuild-linux-arm": "0.14.54", - "esbuild-linux-arm64": "0.14.54", - "esbuild-linux-mips64le": "0.14.54", - "esbuild-linux-ppc64le": "0.14.54", - "esbuild-linux-riscv64": "0.14.54", - "esbuild-linux-s390x": "0.14.54", - "esbuild-netbsd-64": "0.14.54", - "esbuild-openbsd-64": "0.14.54", - "esbuild-sunos-64": "0.14.54", - "esbuild-windows-32": "0.14.54", - "esbuild-windows-64": "0.14.54", - "esbuild-windows-arm64": "0.14.54" - } - }, - "node_modules/esbuild-linux-64": { - "version": "0.14.54", - "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz", - "integrity": "sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" } }, "node_modules/escalade": { @@ -6135,6 +5110,11 @@ "node": ">=6" } }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -6424,18 +5404,17 @@ "dev": true }, "node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dev": true, "dependencies": { - "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" }, "engines": { - "node": ">=10" + "node": ">=12" } }, "node_modules/fs-minipass": { @@ -6474,6 +5453,20 @@ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "node_modules/function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", @@ -6499,27 +5492,6 @@ "node": ">=6.9.0" } }, - "node_modules/geojson-polygon-self-intersections": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/geojson-polygon-self-intersections/-/geojson-polygon-self-intersections-1.2.1.tgz", - "integrity": "sha512-/QM1b5u2d172qQVO//9CGRa49jEmclKEsYOQmWP9ooEjj63tBM51m2805xsbxkzlEELQ2REgTf700gUhhlegxA==", - "dependencies": { - "rbush": "^2.0.1" - } - }, - "node_modules/geojson-polygon-self-intersections/node_modules/quickselect": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-1.1.1.tgz", - "integrity": "sha512-qN0Gqdw4c4KGPsBOQafj6yj/PA6c/L63f6CaZ/DCF/xF4Esu3jVmKLUDYxghFx8Kb/O7y9tI7x2RjTSXwdK1iQ==" - }, - "node_modules/geojson-polygon-self-intersections/node_modules/rbush": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/rbush/-/rbush-2.0.2.tgz", - "integrity": "sha512-XBOuALcTm+O/H8G90b6pzu6nX6v2zCKiFG4BJho8a+bY6AER6t8uQUZdi5bomQc0AprCWhEGa7ncAbbRap0bRA==", - "dependencies": { - "quickselect": "^1.0.1" - } - }, "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -6574,6 +5546,17 @@ "node": ">=6.9.0" } }, + "node_modules/get-pkg-repo/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, "node_modules/get-pkg-repo/node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -6620,6 +5603,24 @@ "xtend": "~4.0.1" } }, + "node_modules/get-pkg-repo/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/git-raw-commits": { "version": "2.0.11", "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz", @@ -6639,15 +5640,6 @@ "node": ">=10" } }, - "node_modules/git-raw-commits/node_modules/split2": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", - "dev": true, - "dependencies": { - "readable-stream": "^3.0.0" - } - }, "node_modules/git-remote-origin-url": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", @@ -6655,19 +5647,10 @@ "dev": true, "dependencies": { "gitconfiglocal": "^1.0.0", - "pify": "^2.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/git-remote-origin-url/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, + "pify": "^2.3.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, "node_modules/git-semver-tags": { @@ -6892,9 +5875,9 @@ } }, "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dependencies": { "function-bind": "^1.1.2" }, @@ -7040,12 +6023,12 @@ "dev": true }, "node_modules/ini": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.3.tgz", - "integrity": "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", "dev": true, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=10" } }, "node_modules/internal-slot": { @@ -7156,12 +6139,15 @@ } }, "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.14.0.tgz", + "integrity": "sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==", "dev": true, "dependencies": { - "hasown": "^2.0.0" + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -7288,12 +6274,12 @@ } }, "node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", "dev": true, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, "node_modules/is-plain-object": { @@ -7771,6 +6757,14 @@ "yallist": "^3.0.2" } }, + "node_modules/magic-string": { + "version": "0.30.10", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz", + "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, "node_modules/make-dir": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", @@ -7784,6 +6778,15 @@ "node": ">=6" } }, + "node_modules/make-dir/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/make-dir/node_modules/semver": { "version": "5.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", @@ -7811,11 +6814,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/marchingsquares": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/marchingsquares/-/marchingsquares-1.3.3.tgz", - "integrity": "sha512-gz6nNQoVK7Lkh2pZulrT4qd4347S/toG9RXH2pyzhLgkL5mLkBoqgv4EvAGXcV0ikDW72n/OQb3Xe8bGagQZCg==" - }, "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -8023,15 +7021,6 @@ "xpath": "0.0.27" } }, - "node_modules/mergexml/node_modules/@xmldom/xmldom": { - "version": "0.7.13", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.13.tgz", - "integrity": "sha512-lm2GW5PkosIzccsaZIz7tp8cPADSIlIHWDFTR1N0SzfinhhYgeIQjFMz4rYzanCScr3DqQLeomUDArp6MWKm+g==", - "dev": true, - "engines": { - "node": ">=10.0.0" - } - }, "node_modules/mergexml/node_modules/xpath": { "version": "0.0.27", "resolved": "https://registry.npmjs.org/xpath/-/xpath-0.0.27.tgz", @@ -8118,9 +7107,9 @@ } }, "node_modules/minimatch": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -8152,15 +7141,6 @@ "node": ">= 6" } }, - "node_modules/minimist-options/node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/minipass": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", @@ -8220,31 +7200,31 @@ "dev": true }, "node_modules/mocha": { - "version": "10.5.2", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.5.2.tgz", - "integrity": "sha512-9btlN3JKCefPf+vKd/kcKz2SXxi12z6JswkGfaAF0saQvnsqLJk504ZmbxhSoENge08E9dsymozKgFMTl5PQsA==", + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.6.0.tgz", + "integrity": "sha512-hxjt4+EEB0SA0ZDygSS015t65lJw/I2yRCS3Ae+SJ5FrbzrXgfYwJr96f0OvIXdj7h4lv/vLCrH3rkiuizFSvw==", "dev": true, "dependencies": { - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", + "ansi-colors": "^4.1.3", + "browser-stdout": "^1.3.1", "chokidar": "^3.5.3", - "debug": "4.3.4", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "8.1.0", - "he": "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - "minimatch": "5.0.1", - "ms": "2.1.3", - "serialize-javascript": "6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "workerpool": "6.2.1", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" + "debug": "^4.3.5", + "diff": "^5.2.0", + "escape-string-regexp": "^4.0.0", + "find-up": "^5.0.0", + "glob": "^8.1.0", + "he": "^1.2.0", + "js-yaml": "^4.1.0", + "log-symbols": "^4.1.0", + "minimatch": "^5.1.6", + "ms": "^2.1.3", + "serialize-javascript": "^6.0.2", + "strip-json-comments": "^3.1.1", + "supports-color": "^8.1.1", + "workerpool": "^6.5.1", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9", + "yargs-unparser": "^2.0.0" }, "bin": { "_mocha": "bin/_mocha", @@ -8254,6 +7234,17 @@ "node": ">= 14.0.0" } }, + "node_modules/mocha/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, "node_modules/mocha/node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -8296,6 +7287,24 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, + "node_modules/mocha/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/modify-values": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", @@ -8358,7 +7367,6 @@ "version": "3.3.7", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", - "dev": true, "funding": [ { "type": "github", @@ -8403,6 +7411,24 @@ "node": ">=16.0.0" } }, + "node_modules/native-run/node_modules/ini": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.3.tgz", + "integrity": "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/native-run/node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "dev": true, + "engines": { + "node": ">= 10.x" + } + }, "node_modules/negotiator": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", @@ -8890,8 +7916,7 @@ "node_modules/picocolors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", - "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", - "dev": true + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" }, "node_modules/picomatch": { "version": "2.3.1", @@ -8906,12 +7931,12 @@ } }, "node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", "dev": true, "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, "node_modules/pirates": { @@ -9010,30 +8035,15 @@ "node": ">=10.4.0" } }, - "node_modules/point-in-polygon": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/point-in-polygon/-/point-in-polygon-1.1.0.tgz", - "integrity": "sha512-3ojrFwjnnw8Q9242TzgXuTD+eKiutbzyslcq1ydfu82Db2y+Ogbmyrkpv0Hgj31qwT3lbS9+QAAO/pIQM35XRw==" - }, - "node_modules/point-in-polygon-hao": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/point-in-polygon-hao/-/point-in-polygon-hao-1.1.0.tgz", - "integrity": "sha512-3hTIM2j/v9Lio+wOyur3kckD4NxruZhpowUbEgmyikW+a2Kppjtu1eN+AhnMQtoHW46zld88JiYWv6fxpsDrTQ==" - }, - "node_modules/polygon-clipping": { - "version": "0.15.7", - "resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.7.tgz", - "integrity": "sha512-nhfdr83ECBg6xtqOAJab1tbksbBAOMUltN60bU+llHVOL0e5Onm1WpAXXWXVB39L8AJFssoIhEVuy/S90MmotA==", - "dependencies": { - "robust-predicates": "^3.0.2", - "splaytree": "^3.1.0" + "node_modules/plist/node_modules/@xmldom/xmldom": { + "version": "0.8.10", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", + "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==", + "dev": true, + "engines": { + "node": ">=10.0.0" } }, - "node_modules/polygon-clipping/node_modules/robust-predicates": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz", - "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==" - }, "node_modules/possible-typed-array-names": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", @@ -9046,7 +8056,6 @@ "version": "8.4.39", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.39.tgz", "integrity": "sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==", - "dev": true, "funding": [ { "type": "opencollective", @@ -9269,11 +8278,6 @@ "node": ">=8" } }, - "node_modules/quickselect": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", - "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==" - }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -9307,14 +8311,6 @@ "node": ">= 0.8" } }, - "node_modules/rbush": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/rbush/-/rbush-3.0.1.tgz", - "integrity": "sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w==", - "dependencies": { - "quickselect": "^2.0.0" - } - }, "node_modules/rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", @@ -9642,15 +8638,6 @@ "concat-map": "0.0.1" } }, - "node_modules/replace/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/replace/node_modules/cliui": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", @@ -9680,15 +8667,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/replace/node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/replace/node_modules/find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", @@ -9910,23 +8888,38 @@ "node": ">=8" } }, - "node_modules/robust-predicates": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-2.0.4.tgz", - "integrity": "sha512-l4NwboJM74Ilm4VKfbAtFeGq7aEjWL+5kVFcmgFA2MrdnQWx9iE/tUGvxY5HyMI7o/WpSIUFLbC5fbeaHgSCYg==" - }, "node_modules/rollup": { - "version": "2.77.3", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.77.3.tgz", - "integrity": "sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.0.tgz", + "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==", "dev": true, + "dependencies": { + "@types/estree": "1.0.5" + }, "bin": { "rollup": "dist/bin/rollup" }, "engines": { - "node": ">=10.0.0" + "node": ">=18.0.0", + "npm": ">=8.0.0" }, "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.18.0", + "@rollup/rollup-android-arm64": "4.18.0", + "@rollup/rollup-darwin-arm64": "4.18.0", + "@rollup/rollup-darwin-x64": "4.18.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.18.0", + "@rollup/rollup-linux-arm-musleabihf": "4.18.0", + "@rollup/rollup-linux-arm64-gnu": "4.18.0", + "@rollup/rollup-linux-arm64-musl": "4.18.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0", + "@rollup/rollup-linux-riscv64-gnu": "4.18.0", + "@rollup/rollup-linux-s390x-gnu": "4.18.0", + "@rollup/rollup-linux-x64-gnu": "4.18.0", + "@rollup/rollup-linux-x64-musl": "4.18.0", + "@rollup/rollup-win32-arm64-msvc": "4.18.0", + "@rollup/rollup-win32-ia32-msvc": "4.18.0", + "@rollup/rollup-win32-x64-msvc": "4.18.0", "fsevents": "~2.3.2" } }, @@ -10040,9 +9033,9 @@ "dev": true }, "node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", "dev": true, "dependencies": { "randombytes": "^2.1.0" @@ -10306,11 +9299,6 @@ "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", "dev": true }, - "node_modules/skmeans": { - "version": "0.9.7", - "resolved": "https://registry.npmjs.org/skmeans/-/skmeans-0.9.7.tgz", - "integrity": "sha512-hNj1/oZ7ygsfmPZ7ZfN5MUBRoGg1gtpnImuJBgLO0ljQ67DtJuiQaiYdS4lUA6s0KCwnPhGivtC/WRwIZLkHyg==" - }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -10383,7 +9371,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -10430,11 +9417,6 @@ "integrity": "sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==", "dev": true }, - "node_modules/splaytree": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-3.1.2.tgz", - "integrity": "sha512-4OM2BJgC5UzrhVnnJA4BkHKGtjXNzzUfpQjCO8I05xYPsfS/VuQDwjCGGMi8rYQilHEV4j8NBqTFbls/PZEE7A==" - }, "node_modules/split": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", @@ -10448,12 +9430,12 @@ } }, "node_modules/split2": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", - "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", + "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", "dev": true, - "engines": { - "node": ">= 10.x" + "dependencies": { + "readable-stream": "^3.0.0" } }, "node_modules/statuses": { @@ -10764,30 +9746,6 @@ "node": ">=0.6" } }, - "node_modules/topojson-client": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.1.0.tgz", - "integrity": "sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==", - "dependencies": { - "commander": "2" - }, - "bin": { - "topo2geo": "bin/topo2geo", - "topomerge": "bin/topomerge", - "topoquantize": "bin/topoquantize" - } - }, - "node_modules/topojson-server": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/topojson-server/-/topojson-server-3.0.1.tgz", - "integrity": "sha512-/VS9j/ffKr2XAOjlZ9CgyyeLmgJ9dMwq6Y0YEON8O7p/tGGk+dCWnrE03zEdu7i4L7YsFZLEPZPzCvcB7lEEXw==", - "dependencies": { - "commander": "2" - }, - "bin": { - "geo2topo": "bin/geo2topo" - } - }, "node_modules/touch": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.1.tgz", @@ -10874,9 +9832,9 @@ } }, "node_modules/tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, "node_modules/tunnel-agent": { "version": "0.6.0", @@ -10919,7 +9877,7 @@ "version": "5.5.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.3.tgz", "integrity": "sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==", - "dev": true, + "devOptional": true, "peer": true, "bin": { "tsc": "bin/tsc", @@ -11034,9 +9992,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", - "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", + "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", "dev": true, "funding": [ { @@ -11113,39 +10071,77 @@ } }, "node_modules/vite": { - "version": "2.9.18", - "resolved": "https://registry.npmjs.org/vite/-/vite-2.9.18.tgz", - "integrity": "sha512-sAOqI5wNM9QvSEE70W3UGMdT8cyEn0+PmJMTFvTB8wB0YbYUWw3gUbY62AOyrXosGieF2htmeLATvNxpv/zNyQ==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.3.tgz", + "integrity": "sha512-NPQdeCU0Dv2z5fu+ULotpuq5yfCS1BzKUIPhNbP3YBfAMGJXbt2nS+sbTFu+qchaqWTD+H3JK++nRwr6XIcp6A==", "dev": true, "dependencies": { - "esbuild": "^0.14.27", - "postcss": "^8.4.13", - "resolve": "^1.22.0", - "rollup": ">=2.59.0 <2.78.0" + "esbuild": "^0.21.3", + "postcss": "^8.4.39", + "rollup": "^4.13.0" }, "bin": { "vite": "bin/vite.js" }, "engines": { - "node": ">=12.2.0" + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" }, "optionalDependencies": { - "fsevents": "~2.3.2" + "fsevents": "~2.3.3" }, "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", "less": "*", + "lightningcss": "^1.21.0", "sass": "*", - "stylus": "*" + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" }, "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, "less": { "optional": true }, + "lightningcss": { + "optional": true + }, "sass": { "optional": true }, "stylus": { "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vue": { + "version": "3.4.31", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.31.tgz", + "integrity": "sha512-njqRrOy7W3YLAlVqSKpBebtZpDVg21FPoaq1I7f/+qqBThK9ChAIjkRWgeP6Eat+8C+iia4P3OYqpATP21BCoQ==", + "dependencies": { + "@vue/compiler-dom": "3.4.31", + "@vue/compiler-sfc": "3.4.31", + "@vue/runtime-dom": "3.4.31", + "@vue/server-renderer": "3.4.31", + "@vue/shared": "3.4.31" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true } } }, @@ -11243,9 +10239,9 @@ "dev": true }, "node_modules/workerpool": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", - "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.5.1.tgz", + "integrity": "sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==", "dev": true }, "node_modules/wrap-ansi": { @@ -11400,27 +10396,27 @@ "dev": true }, "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, "dependencies": { - "cliui": "^7.0.2", + "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "string-width": "^4.2.0", + "string-width": "^4.2.3", "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "yargs-parser": "^21.1.1" }, "engines": { - "node": ">=10" + "node": ">=12" } }, "node_modules/yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true, "engines": { "node": ">=10" @@ -11441,6 +10437,48 @@ "node": ">=10" } }, + "node_modules/yargs-unparser/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yargs-unparser/node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yargs-unparser/node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, "node_modules/yauzl": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", diff --git a/package.json b/package.json index 2ec46d1..00aaefa 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "start": "vite", "build": "vite build", "preview": "vite preview", - "test": "mocha --require @babel/register --require test/setup.js", + "test": "mocha --require @babel/register", "serve-tiles": "node server.js" }, "dependencies": { @@ -20,8 +20,14 @@ "@capacitor/camera": "latest", "@capacitor/core": "latest", "@capacitor/splash-screen": "latest", - "@turf/turf": "^7.0.0", - "leaflet": "^1.9.4" + "@turf/bbox": "^7.0.0", + "@turf/buffer": "^7.0.0", + "@turf/centroid": "^7.0.0", + "@turf/distance": "^7.0.0", + "@turf/helpers": "^7.0.0", + "@turf/nearest-point-on-line": "^7.0.0", + "leaflet": "^1.9.4", + "vue": "^3.4.31" }, "devDependencies": { "@babel/core": "^7.24.7", @@ -29,13 +35,14 @@ "@babel/register": "^7.24.6", "@capacitor/assets": "^3.0.5", "@capacitor/cli": "latest", + "@vitejs/plugin-vue": "^5.0.5", "axios": "^1.7.2", "chai": "^5.1.1", "esm": "^3.2.25", "express": "^4.19.2", - "mocha": "^10.5.2", + "mocha": "^10.6.0", "morgan": "^1.10.0", - "vite": "^2.9.13" + "vite": "^5.3.3" }, "author": "", "license": "ISC", diff --git a/src/css/main.css b/src/css/main.css index aba36db..dbf7a11 100644 --- a/src/css/main.css +++ b/src/css/main.css @@ -65,41 +65,7 @@ nav select { max-width: 30%; /* on replay_gpx, don't let file selector/slider get too big */ } -#rate { - display: flex; - /* flex-direction: row; */ - align-items: center; - justify-content: center; - background-color: #e74c3d; - cursor: pointer; - font-size: 1.1em; - margin-right: 10px; - padding: 5px; - border-radius: 8px; - max-width: 20%; -} - -#rate div { - height: 30px; /* Adjust height of rate value container */ - padding: 0 10px; /* Add padding */ - font-size: 1em; /* Adjust font size */ -} - -#rate button { - background-color: transparent; - border: none; - color: white; - padding: 1vw; - font-size: 1em; - display: flex; - justify-content: center; - align-items: center; -} -/* Speaking and playback rate selectors don't need to be as large */ -nav input[type="number"] { - max-width: 10%; /* Adjust width */ -} /* Voice selector should be wider (names can be long) */ nav select { @@ -140,92 +106,7 @@ main { border: none; } -#map { - width: 100%; - height: 300px; - border: 2px solid #000; - margin-bottom: 15px; -} - - - -#recentCalloutsArea { - height: calc(100vh - 435px); - overflow-y: auto; - flex-basis: 100%; -} - -#recentCalloutsList { - padding: 0; - margin: 0; -} - -#recentCalloutsList li, -#recentCalloutsArea p { - list-style: none; - border-bottom: 2px solid #000; - padding: 15px; - margin: 0; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} - -/* Active beacon controls */ -#recentCalloutsArea p { - background-color: #e74c3c; - color: #fff; - font-weight: bold; -} - -#recentCalloutsArea p button { - background-color: #2c3e50; -} - -#recentCalloutsArea button { - width: 60px; -} - -/* display map + recent callouts side-by-side on sufficiently wide screens */ -@media screen and (min-width: 600px) { - #map { - height: calc(100vh - 140px); - width: 48%; - } - #recentCalloutsArea { - height: calc(100vh - 140px); - flex-basis: 48%; - } - - #rate { - font-size: 1.2em; - padding: 0px; - } - - #rate div { - font-size: 1.2em; - } - - #rate button { - padding: 15px; - font-size: 1.2em; - } - - #rate button:hover { - cursor: pointer; - } -} - -/* Current position marker on map */ -.arrow-icon { - width: 0; - height: 0; - border-left: 10px solid transparent; - border-right: 10px solid transparent; - border-bottom: 40px solid red; - transform-origin: bottom center; -} img { width: 25%; @@ -246,26 +127,4 @@ img { .row { margin-bottom: 20px; -} -/* Current beacon marker on map */ - .beacon-icon { - position: relative; - width: 20px; - height: 20px; - background-color: #e74c3c; - border-radius: 50% 50% 50% 50%; - border: 3px solid #2c3e50; -} - -.pulsing { - animation: pulse 0.75s infinite; -} - -@keyframes pulse { - 0%, 100% { - opacity: 0.1; - } - 50% { - opacity: 1.0; - } } \ No newline at end of file diff --git a/src/index.html b/src/index.html index 3db57b7..84559a0 100644 --- a/src/index.html +++ b/src/index.html @@ -23,51 +23,9 @@ - - - - - -
-
-
- -
-
- + \ No newline at end of file diff --git a/src/js/audio/callout.js b/src/js/audio/callout.js index 83b00db..7562e9a 100644 --- a/src/js/audio/callout.js +++ b/src/js/audio/callout.js @@ -4,6 +4,8 @@ import sense_mobility_wav from "/sounds/sense_mobility.wav"; import sense_poi_wav from "/sounds/sense_poi.wav"; +import { centroid } from '@turf/centroid'; +import { nearestPointOnLine } from '@turf/nearest-point-on-line'; import cache from "../data/cache.js"; import { enumerateTilesAround } from "../data/tile.js"; @@ -62,14 +64,14 @@ function createCalloutAnnouncer(audioQueue) { // point on a line, or to the centroid of a polygon. switch (feature.geometry.type) { case "LineString": // e.g. roads - feature.point = turf.nearestPointOnLine( + feature.point = nearestPointOnLine( feature, audioQueue.locationProvider.turfPoint(), { units: "meters" } ); break; default: // buildings, landmarks, etc. - feature.point = turf.centroid(feature.geometry); + feature.point = centroid(feature.geometry); } feature.distance = audioQueue.locationProvider.distance(feature.point, { units: "meters", diff --git a/src/js/audio/notabeacon.js b/src/js/audio/notabeacon.js index 60a96d2..929175f 100644 --- a/src/js/audio/notabeacon.js +++ b/src/js/audio/notabeacon.js @@ -8,6 +8,9 @@ import Classic_OffAxis_wav from "/sounds/beacons/Classic/Classic_OffAxis.wav"; import sense_mobility_wav from "/sounds/sense_mobility.wav"; import SS_beaconFound2_48k_wav from "/sounds/SS_beaconFound2_48k.wav"; +import { point } from '@turf/helpers'; +import { reactive } from 'vue'; + const onCourseAngle = 30; // degrees +/- Y axis const foundProximityMeters = 10; // proximity to auto-stop beacon const announceEveryMeters = 50; @@ -40,13 +43,13 @@ export function createPanner(audioContext) { } export function createBeacon( + name, latitude, longitude, locationProvider, audioQueue, - map ) { - const sourceLocation = turf.point([longitude, latitude]); + const sourceLocation = point([longitude, latitude]); var relativePosition = locationProvider.normalizedRelativePosition(sourceLocation); var lastAnnouncedDistance = null; @@ -69,20 +72,18 @@ export function createBeacon( offCourseSource.connect(panner); panner.connect(audioContext.destination); - // Render beacon on the visual map - map.plotBeacon(latitude, longitude); - var beacon = { + name: name, + latitude: latitude, + longitude: longitude, start: () => { onCourse.play(); offCourse.play(); - map.startBeaconPulse(); }, stop: () => { onCourse.pause(); offCourse.pause(); - map.pauseBeaconPulse(); }, isEnabled: () => !onCourse.paused || !offCourse.paused, @@ -149,4 +150,10 @@ export function createBeacon( ); return beacon; -} \ No newline at end of file +} + +// state that will make UI responsive to changes +export const currentBeacon = reactive({ + beacon: null, + playing: false, +}) \ No newline at end of file diff --git a/src/js/audio/sound.js b/src/js/audio/sound.js index 8b5a725..39b91bc 100644 --- a/src/js/audio/sound.js +++ b/src/js/audio/sound.js @@ -1,12 +1,16 @@ // Copyright (c) Daniel W. Steinbrook. // with many thanks to ChatGPT +import { ref } from 'vue'; import { TextToSpeech } from "@capacitor-community/text-to-speech"; import { createPanner } from "./notabeacon.js"; export const audioContext = new (window.AudioContext || window.webkitAudioContext)(); +// Use a Vue ref for recent callouts list so that changes trigger UI updates +export const recentCallouts = ref([]); + // Variables to store the current sound and speech sources let currentSoundSource = null; // let currentSpeechSource = null; @@ -82,7 +86,6 @@ export function createSpatialPlayer(locationProvider) { queue: [], isPlaying: false, locationProvider: locationProvider, - events: new EventTarget(), // Speech synthesis customization voices: null, @@ -95,16 +98,10 @@ export function createSpatialPlayer(locationProvider) { player.rate = rate; }, increaseRate() { - if (player.rate < 5) { - player.rate++; - } - return player.rate; + return ++player.rate; }, decreaseRate() { - if (player.rate > 1) { - player.rate--; - } - return player.rate; + return --player.rate; }, addToQueue(item) { @@ -187,9 +184,10 @@ export function createSpatialPlayer(locationProvider) { ); } else if (typeof currentItem === "object" && currentItem.text) { // If it's an object with a 'text' property, assume it's spatial speech - player.events.dispatchEvent( - new CustomEvent("speechPlayed", { detail: currentItem }) - ); + if (currentItem.location) { + // Visual list will update with callouts as they are announced + recentCallouts.value.unshift(currentItem); + } await playSpatialSpeech( currentItem.text, player.voice, diff --git a/src/js/components/BeaconController.vue b/src/js/components/BeaconController.vue new file mode 100644 index 0000000..f620bd0 --- /dev/null +++ b/src/js/components/BeaconController.vue @@ -0,0 +1,39 @@ + + + + + \ No newline at end of file diff --git a/src/js/components/CalloutList.vue b/src/js/components/CalloutList.vue new file mode 100644 index 0000000..6d3c5ad --- /dev/null +++ b/src/js/components/CalloutList.vue @@ -0,0 +1,87 @@ + + + + + \ No newline at end of file diff --git a/src/js/components/GPXReplay.vue b/src/js/components/GPXReplay.vue new file mode 100644 index 0000000..2a05f02 --- /dev/null +++ b/src/js/components/GPXReplay.vue @@ -0,0 +1,137 @@ + + + \ No newline at end of file diff --git a/src/js/components/InputSpinner.vue b/src/js/components/InputSpinner.vue new file mode 100644 index 0000000..a956517 --- /dev/null +++ b/src/js/components/InputSpinner.vue @@ -0,0 +1,87 @@ + + + + + \ No newline at end of file diff --git a/src/js/components/Main.vue b/src/js/components/Main.vue new file mode 100644 index 0000000..3f0420c --- /dev/null +++ b/src/js/components/Main.vue @@ -0,0 +1,33 @@ + + + \ No newline at end of file diff --git a/src/js/components/MainModeSelector.vue b/src/js/components/MainModeSelector.vue new file mode 100644 index 0000000..eae40c0 --- /dev/null +++ b/src/js/components/MainModeSelector.vue @@ -0,0 +1,190 @@ + + + + + \ No newline at end of file diff --git a/src/js/components/Map.vue b/src/js/components/Map.vue new file mode 100644 index 0000000..cb03a51 --- /dev/null +++ b/src/js/components/Map.vue @@ -0,0 +1,172 @@ + + + + + \ No newline at end of file diff --git a/src/js/components/VoiceSelector.vue b/src/js/components/VoiceSelector.vue new file mode 100644 index 0000000..bee6423 --- /dev/null +++ b/src/js/components/VoiceSelector.vue @@ -0,0 +1,37 @@ + + + \ No newline at end of file diff --git a/src/js/main.js b/src/js/main.js index e3d522e..04ddcfd 100644 --- a/src/js/main.js +++ b/src/js/main.js @@ -1,224 +1,30 @@ // Copyright (c) Daniel W. Steinbrook. // with many thanks to ChatGPT -import mode_exit_wav from "/sounds/mode_exit.wav"; -import mode_enter_wav from "/sounds/mode_enter.wav"; +import { createApp } from 'vue'; +import Main from './components/Main.vue'; import unmute from "./vendor/unmute.js"; import { audioContext, createSpatialPlayer, - playSpatialSpeech, } from "./audio/sound.js"; import createCalloutAnnouncer from "./audio/callout.js"; -import { getLocation, watchLocation } from "./spatial/geo.js"; -import { startCompassListener } from "./spatial/heading.js"; import createLocationProvider from "./spatial/location.js"; -import createMap from "./visual/map.js"; -import createRecentCalloutList from "./visual/recentlist.js"; -import createVoiceControls from "./visual/voicecontrols.js"; // Actions to take when page is rendered in full document.addEventListener("DOMContentLoaded", function () { const locationProvider = createLocationProvider(); const audioQueue = createSpatialPlayer(locationProvider); const announcer = createCalloutAnnouncer(audioQueue); - const map = createMap("map"); - const recentCalloutsList = createRecentCalloutList( - locationProvider, - audioQueue, - map - ); + + const app = createApp(Main); + app.provide('announcer', announcer); + app.provide('audioQueue', audioQueue); + app.provide('locationProvider', locationProvider); + app.mount('body'); // iOS Safari workaround to allow audio while mute switch is on let allowBackgroundPlayback = true; let forceIOSBehavior = false; unmute(audioContext, allowBackgroundPlayback, forceIOSBehavior); - - // Register for updates to location - locationProvider.events.addEventListener("locationUpdated", (e) => { - // Map should follow current point - map.setView([e.detail.latitude, e.detail.longitude], 16); - map.plotMyLocation(locationProvider); - }); - // Redraw location marker when compass heading changes - locationProvider.events.addEventListener("orientationUpdated", (e) => { - map.plotMyLocation(locationProvider); - }); - - // Add callouts to visual list as they are announced - audioQueue.events.addEventListener("speechPlayed", (e) => { - if (e.detail.location) { - recentCalloutsList.add( - e.detail.text, - e.detail.location.geometry.coordinates[1], - e.detail.location.geometry.coordinates[0] - ); - } - }); - - createVoiceControls(audioQueue); - - // Use location from URL if specified, otherwise use device location services - async function getRelevantLocation() { - return new Promise((resolve, reject) => { - var searchParams = new URLSearchParams(window.location.search); - var lat = parseFloat(searchParams.get("lat")); - var lon = parseFloat(searchParams.get("lon")); - var head = parseFloat(searchParams.get("heading")); - if (!isNaN(lat) && !isNaN(lon) && !isNaN(head)) { - resolve({ latitude: lat, longitude: lon, heading: head }); - } else { - getLocation() - .then((coords) => { - resolve({ - latitude: coords.latitude, - longitude: coords.longitude, - heading: 0, // only available from change event handler? - }); - }) - .catch((error) => { - reject(error); - }); - } - }); - } - - var btnCallouts = document.getElementById("btn_callouts"); - var btnNearMe = document.getElementById("btn_near_me"); - var watchPositionHandler = null; - var activeMode = null; - var wakeLock = null; - const selectedColor = "#18b3c3"; - const unselectedColor = "#e74c3c"; - // When mode button is clicked: - // If a mode is currently active, end that mode - // If mode button was different from current mode, start new mode - async function toggleMode(newMode) { - // required for iOS Safari: first speech must be directly triggered by user action - playSpatialSpeech(" "); - - // Reset button colors - btnCallouts.style.backgroundColor = unselectedColor; - btnNearMe.style.backgroundColor = unselectedColor; - - // Clear queued audio - if (activeMode) { - audioQueue.stopAndClear(); - audioQueue.addToQueue({ soundUrl: mode_exit_wav }); - } - - // Remove any location and orientation change event handlers - locationProvider.events.removeEventListener( - "locationUpdated", - announcer.locationChanged - ); - if (watchPositionHandler) { - navigator.geolocation.clearWatch(watchPositionHandler); - window.removeEventListener( - "deviceorientation", - locationProvider.updateOrientation - ); - watchPositionHandler = null; - } - - // Stop here if the intent was to end the current mode - if (activeMode == newMode) { - activeMode = null; - - if (wakeLock) { - // Release the Wake Lock - wakeLock.release().then(() => { - wakeLock = null; - }); - } - - return; - } - - // Button clicked was different from current mode -- start new mode - activeMode = newMode; - - // Request a Wake Lock - if ("wakeLock" in navigator && !wakeLock) { - try { - wakeLock = await navigator.wakeLock.request("screen"); - console.log("Wake Lock is active!"); - - // Listen for Wake Lock being released - // (when no active modes OR when page loses focus) - wakeLock.addEventListener("release", () => { - console.log("Wake Lock released."); - }); - } catch (err) { - // The Wake Lock request has failed - usually system related, such as battery. - console.log(err); - } - } - - // play mode-enter sound - audioQueue.addToQueue({ soundUrl: mode_enter_wav }); - - switch (newMode) { - case "callouts": - locationProvider.events.addEventListener( - "locationUpdated", - announcer.locationChanged - ); - startCompassListener(locationProvider.updateOrientation); - - watchPositionHandler = watchLocation(locationProvider.updateLocation); - btnCallouts.style.backgroundColor = selectedColor; - break; - - case "near_me": - btnNearMe.style.backgroundColor = selectedColor; - getRelevantLocation() - .then((coords) => { - console.log(coords); - locationProvider.updateLocation(coords.latitude, coords.longitude); - locationProvider.updateOrientation({ alpha: coords.heading }); - - // Speak nearest road - announcer.calloutNearestRoad(coords.latitude, coords.longitude); - - // Call out nearby features once - announcer - .calloutAllFeatures(coords.latitude, coords.longitude) - .then((anythingToSay) => { - if (!anythingToSay) { - audioQueue.addToQueue({ - text: "Nothing to call out right now", - }); - } - }); - }) - .catch((error) => { - if (error.code == error.PERMISSION_DENIED) { - alert( - "Could not get your location. If you did not see a permission request, make sure your browser is not configured to always block location services." - ); - } else { - console.error("Error getting current position: " + error.message); - } - }); - break; - } - } - - // Hook up click event handlers - btnCallouts.addEventListener("click", function () { - toggleMode("callouts"); - }); - - btnNearMe.addEventListener("click", function () { - toggleMode("near_me"); - }); - - // Reacquire Wake Lock when page regains focus - document.addEventListener("visibilitychange", async () => { - if (wakeLock !== null && document.visibilityState === "visible") { - wakeLock = await navigator.wakeLock.request("screen"); - console.log("Wake Lock reacquired."); - } - }); -}); +}); \ No newline at end of file diff --git a/src/js/replay.js b/src/js/replay.js index a283d9a..2ddf66a 100644 --- a/src/js/replay.js +++ b/src/js/replay.js @@ -1,138 +1,24 @@ // Copyright (c) Daniel W. Steinbrook. // with many thanks to ChatGPT +import { createApp } from 'vue'; +import GPXReplay from './components/GPXReplay.vue'; + import { createSpatialPlayer } from './audio/sound.js' import createCalloutAnnouncer from './audio/callout.js'; -import cache from './data/cache.js' import createLocationProvider from './spatial/location.js' -import replayGPX from './spatial/gpx.js'; -import createMap from './visual/map.js' -import createRecentCalloutList from './visual/recentlist.js'; - -const maxSpeedupFactor = 9; // max multiple for faster GPX replays // Actions to take when page is rendered in full document.addEventListener('DOMContentLoaded', function () { const locationProvider = createLocationProvider(); const audioQueue = createSpatialPlayer(locationProvider); const announcer = createCalloutAnnouncer(audioQueue); - const map = createMap('map'); - const recentCalloutsList = createRecentCalloutList(locationProvider, audioQueue, map); - let gpxPlayer = null; // to be initialized on file selection audioQueue.loadVoices(); - // Register for updates to location - // (no need to separately watch heading changes in GPX simulation) - locationProvider.events.addEventListener('locationUpdated', e => { - // Map should follow current point - map.setView([e.detail.latitude, e.detail.longitude], 16); - map.plotMyLocation(locationProvider); - }); - - // Add callouts to visual list as they are announced - audioQueue.events.addEventListener('speechPlayed', e => { - if (e.detail.location) { - recentCalloutsList.add( - e.detail.text, - e.detail.location.geometry.coordinates[1], - e.detail.location.geometry.coordinates[0] - ); - } - }); - - const inputElement = document.getElementById("gpxFileInput"); - const playPauseButton = document.getElementById("playPauseButton"); - const pointSlider = document.getElementById("pointSlider"); - const decreaseSpeed = document.getElementById('decreaseSpeed'); - const increaseSpeed = document.getElementById('increaseSpeed'); - const speedDisplay = document.getElementById('speedupFactor'); - let speedupFactor = parseFloat(speedDisplay.textContent); - let playing = false; - - inputElement.addEventListener("change", function (event) { - const file = event.target.files[0]; - - if (file) { - if (gpxPlayer && playing) { - // Clear current playing file before loading new one - playPauseButton.click(); - } - - // Reset seek bar - pointSlider.value = 0; - - // Clear recent callout list - recentCalloutsList.clear(); - - gpxPlayer = replayGPX(file, map, { - // When GPX file has been loadedm trigger draw map at first point - loadedCallback: (firstPoint) => locationProvider.updateLocation(firstPoint.lat, firstPoint.lon), - // When GPX finishes playing, toggle to paused state and reset slider - finishedCallback: () => { - playPauseButton.click(); - gpxPlayer.seekTo(0); - gpxPlayer.updateSlider(); - }, - pointCallback: (point) => { - locationProvider.updateOrientation(point.heading); - locationProvider.updateLocation(point.lat, point.lon); - - // Update the slider when a new point is parsed - gpxPlayer.updateSlider(); - }, - errorCallback: (error) => console.error("Error parsing GPX file:", error), - }); - } - }); - - decreaseSpeed.addEventListener("click", function (e) { - if (speedupFactor > 1) { - speedDisplay.textContent = --speedupFactor; - } - }); - - increaseSpeed.addEventListener("click", function (e) { - if (speedupFactor < maxSpeedupFactor) { - speedDisplay.textContent = ++speedupFactor; - } - }); - - playPauseButton.addEventListener("click", function () { - if (gpxPlayer) { - // Read speed setting, and speed up speech proportionally - gpxPlayer.speedupFactor = speedupFactor; - audioQueue.setRate(speedupFactor); - - // Toggle play/pause - if (!playing) { - playPauseButton.textContent = "⏸"; - // Start triggering audio callouts - locationProvider.events.addEventListener('locationUpdated', announcer.locationChanged) - gpxPlayer.play(); - playing = true; - } else { - playPauseButton.textContent = "▶"; - // Strop triggering audio callouts - locationProvider.events.removeEventListener('locationUpdated', announcer.locationChanged); - audioQueue.stopAndClear(); - gpxPlayer.pause(); - playing = false; - } - } - }); - - pointSlider.addEventListener("input", function () { - if (gpxPlayer) { - // Calculate the index based on the slider value - const totalPoints = gpxPlayer.trackPoints.length - 1; - const newIndex = Math.round((pointSlider.value / 100) * totalPoints); - gpxPlayer.seekTo(newIndex); - } - }); - - var btnClear = document.getElementById('btn_clear'); - btnClear.addEventListener('click', function() { - cache.clear(); - }); -}); + const app = createApp(GPXReplay); + app.provide('audioQueue', audioQueue); + app.provide('announcer', announcer); + app.provide('locationProvider', locationProvider); + app.mount('body'); +}); \ No newline at end of file diff --git a/src/js/spatial/geo.js b/src/js/spatial/geo.js index 73d3397..0792faf 100644 --- a/src/js/spatial/geo.js +++ b/src/js/spatial/geo.js @@ -1,20 +1,23 @@ // Copyright (c) Daniel W. Steinbrook. // with many thanks to ChatGPT +import { bbox } from '@turf/bbox'; +import { buffer} from '@turf/buffer'; +import { point } from '@turf/helpers'; import cache from '../data/cache.js' import { enumerateTilesAround } from '../data/tile.js' // Function to create a half-kilometer bounding box around a point export function createBoundingBox(latitude, longitude, radiusMeters) { // Create a Turf.js point - const point = turf.point([longitude, latitude]); + const somePint = point([longitude, latitude]); // Buffer the point with the specified readius - const buffered = turf.buffer(point, radiusMeters, { units: 'meters' }); + const buffered = buffer(somePint, radiusMeters, { units: 'meters' }); // Extract the bounding box coordinates - const bbox = turf.bbox(buffered); + const someBbox = bbox(buffered); - return bbox; + return someBbox; } // Function to convert latitude and longitude to Mercator tile coordinates diff --git a/src/js/spatial/gpx.js b/src/js/spatial/gpx.js index bd9916c..b40ac02 100644 --- a/src/js/spatial/gpx.js +++ b/src/js/spatial/gpx.js @@ -5,7 +5,7 @@ import { HeadingCalculator } from './heading.js' const headingWindowSize = 5; // number of recent points to use for estimating heading -function replayGPX(file, map, callbacks) { +function replayGPX(file, callbacks) { const { loadedCallback = () => {}, finishedCallback = () => {}, @@ -50,8 +50,6 @@ function replayGPX(file, map, callbacks) { headingCalculator.addPoint(lat, lon); const heading = headingCalculator.computeHeading(); - map.setView([lat, lon], 16); - pointCallback({ lat, lon, heading }); currentIndex++; } else { diff --git a/src/js/spatial/location.js b/src/js/spatial/location.js index 8774cac..b0b1799 100644 --- a/src/js/spatial/location.js +++ b/src/js/spatial/location.js @@ -1,6 +1,8 @@ // Copyright (c) Daniel W. Steinbrook. // with many thanks to ChatGPT +import { distance } from '@turf/distance'; +import { point } from '@turf/helpers'; import { geoToXY } from './geo.js' function createLocationProvider() { @@ -34,7 +36,7 @@ function createLocationProvider() { }, turfPoint: function() { - return turf.point([locationProvider.longitude, locationProvider.latitude]); + return point([locationProvider.longitude, locationProvider.latitude]); }, relativePosition: function(someLocation) { @@ -50,7 +52,7 @@ function createLocationProvider() { }, distance: function(someLocation, options) { - return turf.distance(locationProvider.turfPoint(), someLocation, options); + return distance(locationProvider.turfPoint(), someLocation, options); }, }; diff --git a/src/js/visual/map.js b/src/js/visual/map.js deleted file mode 100644 index 38c2292..0000000 --- a/src/js/visual/map.js +++ /dev/null @@ -1,94 +0,0 @@ -// Copyright (c) Daniel W. Steinbrook. -// with many thanks to ChatGPT - -function createMap(id) { - var map = L.map(id); - - // initialize OpenStreetMap - L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { - attribution: '© OpenStreetMap contributors' - }).addTo(map); - - // Create a custom divIcon with rotation - var arrowIcon = L.divIcon({ - className: 'arrow-icon', - iconSize: [0, 0], // set size to 0, as it's controlled by CSS - iconAnchor: [7, 25] // adjust anchor based on the arrow design - }); - - var myLocationLayer = new L.LayerGroup().addTo(map); - - map.plotPoints = function(points, radiusMeters) { - // Clear existing markers - myLocationLayer.clearLayers(); - - // Plot each point on the map - points.forEach(function(point) { - // Render a circle reflecting the radius of POIs within speaking distance - L.circle([point.latitude, point.longitude], { - color: 'red', - fillColor: '#f03', - fillOpacity: 0.3, - radius: radiusMeters // drawn radius is based on proximity threshold for callouts - }).addTo(myLocationLayer); - - if (point.heading !== null && !isNaN(point.heading)) { - // Also render a directional arrow showing inferred compass heading - var arrowMarker = L.marker([point.latitude, point.longitude], { - icon: arrowIcon, - }).addTo(myLocationLayer); - arrowMarker._icon.style.transform += ' rotate(' + point.heading + 'deg)'; - } - }); - }; - - map.plotMyLocation = function(locationProvider) { - const lat = locationProvider.latitude; - const lon = locationProvider.longitude; - const head = locationProvider.heading; - const radiusMeters = locationProvider.radiusMeters; - // Don't try to plot points before location is available - if (!isNaN(lat) && !isNaN(lon)) { - map.plotPoints( - [{ latitude: lat, longitude: lon, heading: head }], - radiusMeters - ); - } - }; - - // Render beacon marker in a separate layer, so it can be easily cleared. - var beaconLayer = new L.LayerGroup().addTo(map); - - var beaconIcon = L.divIcon({ - className: 'beacon-icon', - iconSize: [20, 20], - }); - - map.plotBeacon = function(lat, lon) { - // Clear existing beacons - beaconLayer.clearLayers(); - - // Render a pulsing circle (see CSS) - L.marker([lat, lon], { - icon: beaconIcon, - }).addTo(beaconLayer); - }; - - // Beacon pulses hwen it is active - map.startBeaconPulse = function() { - beaconLayer.eachLayer(layer => { - layer.getElement().classList.add('pulsing'); - }) - }; - - // Stop beacon pulsing whern it is inactive - map.pauseBeaconPulse = function() { - beaconLayer.eachLayer(layer => { - layer.getElement().classList.remove('pulsing'); - }) - }; - - return map; -} - -export default createMap; \ No newline at end of file diff --git a/src/js/visual/recentlist.js b/src/js/visual/recentlist.js deleted file mode 100644 index 40e2dba..0000000 --- a/src/js/visual/recentlist.js +++ /dev/null @@ -1,82 +0,0 @@ -// Copyright (c) Daniel W. Steinbrook. -// with many thanks to ChatGPT - -import { createBeacon } from '../audio/notabeacon.js'; - -const maxRecentCount = 25; - -function createRecentCalloutList(locationProvider, audioQueue, map) { - let activeBeacon = null; - - const beaconControls = { - init: (parentElem) => { - //

...

- const p = document.createElement('p'); - const toggleBeacon = document.createElement('button'); - toggleBeacon.setAttribute('id', 'toggleBeacon'); - toggleBeacon.classList.add('beacon-button'); - toggleBeacon.innerText = '⏸'; - p.appendChild(toggleBeacon); - const span = document.createElement('span'); - span.setAttribute('id', 'currentBeacon'); - p.appendChild(span); - parentElem.insertBefore(p, parentElem.firstChild); - - toggleBeacon.addEventListener('click', (e) => { - if (e.target.innerText == '⏸') { - activeBeacon.stop(); - e.target.innerText = '▶'; - } else { - activeBeacon.start(); - e.target.innerText = '⏸'; - } - }); - }, - - update: (text) => { - document.getElementById('currentBeacon').innerText = ' ' + text; - document.getElementById('toggleBeacon').innerText = '⏸'; - }, - } - - const recentCalloutsList = { - elem: document.getElementById("recentCalloutsList"), - - clear: function() { - recentCalloutsList.elem.innerHTML = ''; - }, - - add: function(text, latitude, longitude) { - // Construct new list item - const newCallout = document.createElement('li'); - newCallout.innerHTML = ' ' + text; - const beaconLink = document.createElement('button'); - beaconLink.innerHTML = '🔊'; - beaconLink.title = 'Start beacon'; - beaconLink.classList.add('beacon-button'); - newCallout.insertBefore(beaconLink, newCallout.firstChild); - - beaconLink.addEventListener('click', () => { - if (activeBeacon) { - activeBeacon.stop(); - } else { - beaconControls.init(document.getElementById('recentCalloutsArea')); - } - activeBeacon = createBeacon(latitude, longitude, locationProvider, audioQueue, map); - activeBeacon.start(); - beaconControls.update(text); - }) - - // Insert at top of list - recentCalloutsList.elem.insertBefore(newCallout, recentCalloutsList.elem.firstChild); - // Keep the list to no more than maxRecentCount recent callouts - if (recentCalloutsList.elem.children.length > maxRecentCount) { - recentCalloutsList.elem.removeChild(recentCalloutsList.elem.lastChild); - } - } - }; - - return recentCalloutsList; -} - -export default createRecentCalloutList; \ No newline at end of file diff --git a/src/js/visual/voicecontrols.js b/src/js/visual/voicecontrols.js deleted file mode 100644 index ae5aca3..0000000 --- a/src/js/visual/voicecontrols.js +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright (c) Daniel W. Steinbrook. -// with many thanks to ChatGPT - -function createVoiceControls(audioQueue) { - // Fetch available voices - const voiceSelect = document.getElementById("voice"); - // const rateInput = document.getElementById('rate'); - const decreaseRate = document.getElementById("decreaseRate"); - const increaseRate = document.getElementById("increaseRate"); - const rateValue = document.getElementById("rateValue"); - - // Populate voice selector - async function populateVoices() { - // Populate voice list with all English voices - return audioQueue.loadVoices().then((voices) => { - // Remove them to avoid duplicates - while (voiceSelect.childNodes[0] != null) { - voiceSelect.childNodes[0].remove(); - } - - audioQueue.voices.forEach(function (voice, index) { - const option = document.createElement("option"); - option.value = index; - option.textContent = "🗣 " + voice.name; - voiceSelect.appendChild(option); - }); - }); - } - - populateVoices().then(() => { - // Set voice and rate to match initial form values - audioQueue.setRate(parseFloat(rateValue.textContent)); - audioQueue.setVoice(voiceSelect.value); - }); - - // Android Webview doesn have speechSynthesis - // (and the capacitor plugin @capacitor-community / text - to - speech" doesn't support onvoiceschanged. ) - if (window.speechSynthesis) { - // Update voices when they change - window.speechSynthesis.onvoiceschanged = function () { - voiceSelect.innerHTML = ""; // Clear existing options - populateVoices(); - }; - } - - // Update voice and rate when user changes them - decreaseRate.addEventListener("click", function (e) { - rateValue.textContent = audioQueue.decreaseRate(); - }); - - increaseRate.addEventListener("click", function (e) { - rateValue.textContent = audioQueue.increaseRate(); - }); - - voiceSelect.addEventListener("change", function () { - audioQueue.setVoice(voiceSelect.value); - }); -} - -export default createVoiceControls; diff --git a/src/replay_gpx.html b/src/replay_gpx.html index 5c9aed0..302c2dd 100644 --- a/src/replay_gpx.html +++ b/src/replay_gpx.html @@ -1,6 +1,9 @@ + + + @@ -8,27 +11,7 @@ - - - - -
-
-
- -
-
- + diff --git a/test/setup.js b/test/setup.js deleted file mode 100644 index 1b8163c..0000000 --- a/test/setup.js +++ /dev/null @@ -1,4 +0,0 @@ -// Import turfjs so that test scripts have it in their global namespace, -// just like when it gets imported via the