diff --git a/package.json b/package.json index 4ea57e1e..4099d308 100644 --- a/package.json +++ b/package.json @@ -20,17 +20,17 @@ }, "homepage": "https://meshtastic.org", "dependencies": { - "@arcgis/core": "^4.24.7", "@emeraldpay/hashicon-react": "^0.5.2", "@hookform/resolvers": "^2.9.7", "@meshtastic/eslint-config": "^1.0.8", - "@meshtastic/meshtasticjs": "^0.6.91", + "@meshtastic/meshtasticjs": "^0.6.92", "base64-js": "^1.5.1", "class-transformer": "^0.5.1", "class-validator": "^0.13.2", "evergreen-ui": "^6.10.3", "geodesy": "^2.4.0", "immer": "^9.0.15", + "maplibre-gl": "^2.3.0", "modern-css-reset": "^1.4.0", "prettier": "^2.7.1", "react": "^18.2.0", @@ -40,15 +40,12 @@ "react-json-pretty": "^2.2.0", "react-qrcode-logo": "^2.8.0", "rfc4648": "^1.5.2", - "snarkdown": "^2.0.0", - "swr": "^1.3.0", - "vite-plugin-environment": "^1.1.2", - "zustand": "4.0.0" + "zustand": "4.1.0" }, "devDependencies": { "@types/chrome": "^0.0.193", "@types/geodesy": "^2.2.3", - "@types/node": "^18.7.5", + "@types/node": "^18.7.6", "@types/react": "^18.0.17", "@types/react-dom": "^18.0.6", "@types/w3c-web-serial": "^1.0.2", @@ -59,8 +56,7 @@ "tar": "^6.1.11", "tslib": "^2.4.0", "typescript": "^4.7.4", - "unimported": "^1.21.0", - "vite": "^3.0.7", - "vite-plugin-cdn-import": "^0.3.5" + "vite": "^3.0.8", + "vite-plugin-environment": "^1.1.2" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 14ec02c1..29ef71d7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,14 +1,13 @@ lockfileVersion: 5.4 specifiers: - '@arcgis/core': ^4.24.7 '@emeraldpay/hashicon-react': ^0.5.2 '@hookform/resolvers': ^2.9.7 '@meshtastic/eslint-config': ^1.0.8 - '@meshtastic/meshtasticjs': ^0.6.91 + '@meshtastic/meshtasticjs': ^0.6.92 '@types/chrome': ^0.0.193 '@types/geodesy': ^2.2.3 - '@types/node': ^18.7.5 + '@types/node': ^18.7.6 '@types/react': ^18.0.17 '@types/react-dom': ^18.0.6 '@types/w3c-web-serial': ^1.0.2 @@ -21,6 +20,7 @@ specifiers: geodesy: ^2.4.0 gzipper: ^7.1.0 immer: ^9.0.15 + maplibre-gl: ^2.3.0 modern-css-reset: ^1.4.0 prettier: ^2.7.1 react: ^18.2.0 @@ -31,29 +31,25 @@ specifiers: react-qrcode-logo: ^2.8.0 rfc4648: ^1.5.2 rollup-plugin-visualizer: ^5.7.1 - snarkdown: ^2.0.0 - swr: ^1.3.0 tar: ^6.1.11 tslib: ^2.4.0 typescript: ^4.7.4 - unimported: ^1.21.0 - vite: ^3.0.7 - vite-plugin-cdn-import: ^0.3.5 + vite: ^3.0.8 vite-plugin-environment: ^1.1.2 - zustand: 4.0.0 + zustand: 4.1.0 dependencies: - '@arcgis/core': 4.24.7 '@emeraldpay/hashicon-react': 0.5.2 '@hookform/resolvers': 2.9.7_react-hook-form@7.34.2 '@meshtastic/eslint-config': 1.0.8 - '@meshtastic/meshtasticjs': 0.6.91 + '@meshtastic/meshtasticjs': 0.6.92 base64-js: 1.5.1 class-transformer: 0.5.1 class-validator: 0.13.2 evergreen-ui: 6.10.3_biqbaboplfbrettd7655fr4n2y geodesy: 2.4.0 immer: 9.0.15 + maplibre-gl: 2.3.0 modern-css-reset: 1.4.0 prettier: 2.7.1 react: 18.2.0 @@ -63,35 +59,27 @@ dependencies: react-json-pretty: 2.2.0_biqbaboplfbrettd7655fr4n2y react-qrcode-logo: 2.8.0_biqbaboplfbrettd7655fr4n2y rfc4648: 1.5.2 - snarkdown: 2.0.0 - swr: 1.3.0_react@18.2.0 - vite-plugin-environment: 1.1.2_vite@3.0.7 - zustand: 4.0.0_immer@9.0.15+react@18.2.0 + zustand: 4.1.0_immer@9.0.15+react@18.2.0 devDependencies: '@types/chrome': 0.0.193 '@types/geodesy': 2.2.3 - '@types/node': 18.7.5 + '@types/node': 18.7.6 '@types/react': 18.0.17 '@types/react-dom': 18.0.6 '@types/w3c-web-serial': 1.0.2 '@types/web-bluetooth': 0.0.15 - '@vitejs/plugin-react': 2.0.1_vite@3.0.7 + '@vitejs/plugin-react': 2.0.1_vite@3.0.8 gzipper: 7.1.0 rollup-plugin-visualizer: 5.7.1 tar: 6.1.11 tslib: 2.4.0 typescript: 4.7.4 - unimported: 1.21.0 - vite: 3.0.7 - vite-plugin-cdn-import: 0.3.5 + vite: 3.0.8 + vite-plugin-environment: 1.1.2_vite@3.0.8 packages: - /@a11y/focus-trap/1.0.5: - resolution: {integrity: sha512-3JOd6g+BALysWS8LNf0qdB8ltR651H/RCLAvUmfS0LIHwHO579XfjZUIZbURYiAZrcbp1CBAq4QZ2YwKNQZ1hw==} - dev: false - /@ampproject/remapping/2.2.0: resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==} engines: {node: '>=6.0.0'} @@ -100,24 +88,6 @@ packages: '@jridgewell/trace-mapping': 0.3.15 dev: true - /@arcgis/core/4.24.7: - resolution: {integrity: sha512-uDkF4/3zOOFDzFEXxAaENhtz7hhkmOw71R96rfVPjqIfRxd2HxgrpNlrjXI8xYC2ub8rRpBZ6WmxlvaCn/zu7Q==} - dependencies: - '@esri/arcgis-html-sanitizer': 2.10.0 - '@esri/calcite-colors': 6.0.1 - '@esri/calcite-components': 1.0.0-beta.82 - '@popperjs/core': 2.11.6 - focus-trap: 6.9.4 - luxon: 2.4.0 - sortablejs: 1.15.0 - dev: false - - /@babel/code-frame/7.12.11: - resolution: {integrity: sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==} - dependencies: - '@babel/highlight': 7.18.6 - dev: true - /@babel/code-frame/7.18.6: resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==} engines: {node: '>=6.9.0'} @@ -410,24 +380,8 @@ packages: cpu: [loong64] os: [linux] requiresBuild: true - optional: true - - /@eslint/eslintrc/0.4.3: - resolution: {integrity: sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==} - engines: {node: ^10.12.0 || >=12.0.0} - dependencies: - ajv: 6.12.6 - debug: 4.3.4 - espree: 7.3.1 - globals: 13.17.0 - ignore: 4.0.6 - import-fresh: 3.3.0 - js-yaml: 3.14.1 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color dev: true + optional: true /@eslint/eslintrc/1.3.0: resolution: {integrity: sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==} @@ -446,30 +400,6 @@ packages: - supports-color dev: false - /@esri/arcgis-html-sanitizer/2.10.0: - resolution: {integrity: sha512-OGrczx3sbszMVQESGdZf2BaZL/oGMm+wuFgF6od50ff0WThjiJDTxi5SXIleRF6QQVFywsab3sFbQ77Q/gSzsg==} - dependencies: - lodash.isplainobject: 4.0.6 - xss: 1.0.13 - dev: false - - /@esri/calcite-colors/6.0.1: - resolution: {integrity: sha512-iGUIIpeMCJSTDGw4ZsxLwwxkml0QzOUJTtysjRryGbhSt183NEtwWKS+yQO19utXQz5LbQWjoav6x6CsawElkw==} - dev: false - - /@esri/calcite-components/1.0.0-beta.82: - resolution: {integrity: sha512-wAJeEZ4g/TiJ4J6z/GO9YQFSFubQERCWEo71jr2xLmegxEQIYHL3AvJaLmp0IBsr2tVzRG1TN2PVuew4ljp8WA==} - dependencies: - '@a11y/focus-trap': 1.0.5 - '@popperjs/core': 2.11.5 - '@stencil/core': 2.15.1 - '@types/color': 3.0.3 - color: 4.2.3 - form-request-submit-polyfill: 2.0.0 - lodash-es: 4.17.21 - sortablejs: 1.15.0 - dev: false - /@gfx/zopfli/1.0.15: resolution: {integrity: sha512-7mBgpi7UD82fsff5ThQKet0uBTl4BYerQuc+/qA1ELTwWEiIedRTcD3JgiUu9wwZ2kytW8JOb165rSdAt8PfcQ==} engines: {node: '>= 8'} @@ -496,23 +426,13 @@ packages: - supports-color dev: false - /@humanwhocodes/config-array/0.5.0: - resolution: {integrity: sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==} - engines: {node: '>=10.10.0'} - dependencies: - '@humanwhocodes/object-schema': 1.2.1 - debug: 4.3.4 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - dev: true - /@humanwhocodes/gitignore-to-minimatch/1.0.2: resolution: {integrity: sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==} dev: false /@humanwhocodes/object-schema/1.2.1: resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + dev: false /@jridgewell/gen-mapping/0.1.1: resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==} @@ -552,17 +472,45 @@ packages: '@jridgewell/sourcemap-codec': 1.4.14 dev: true - /@kwsites/file-exists/1.1.1: - resolution: {integrity: sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==} + /@mapbox/geojson-rewind/0.5.2: + resolution: {integrity: sha512-tJaT+RbYGJYStt7wI3cq4Nl4SXxG8W7JDG5DMJu97V25RnbNg3QtQtf+KD+VLjNpWKYsRvXDNmNrBgEETr1ifA==} + hasBin: true dependencies: - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - dev: true + get-stream: 6.0.1 + minimist: 1.2.6 + dev: false - /@kwsites/promise-deferred/1.1.1: - resolution: {integrity: sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==} - dev: true + /@mapbox/jsonlint-lines-primitives/2.0.2: + resolution: {integrity: sha512-rY0o9A5ECsTQRVhv7tL/OyDpGAoUB4tTvLiW1DSzQGq4bvTPhNw1VpSNjDJc5GFZ2XuyOtSWSVN05qOtcD71qQ==} + engines: {node: '>= 0.6'} + dev: false + + /@mapbox/mapbox-gl-supported/2.0.1: + resolution: {integrity: sha512-HP6XvfNIzfoMVfyGjBckjiAOQK9WfX0ywdLubuPMPv+Vqf5fj0uCbgBQYpiqcWZT6cbyyRnTSXDheT1ugvF6UQ==} + dev: false + + /@mapbox/point-geometry/0.1.0: + resolution: {integrity: sha512-6j56HdLTwWGO0fJPlrZtdU/B13q8Uwmo18Ck2GnGgN9PCFyKTZ3UbXeEdRFh18i9XQ92eH2VdtpJHpBD3aripQ==} + dev: false + + /@mapbox/tiny-sdf/2.0.5: + resolution: {integrity: sha512-OhXt2lS//WpLdkqrzo/KwB7SRD8AiNTFFzuo9n14IBupzIMa67yGItcK7I2W9D8Ghpa4T04Sw9FWsKCJG50Bxw==} + dev: false + + /@mapbox/unitbezier/0.0.1: + resolution: {integrity: sha512-nMkuDXFv60aBr9soUG5q+GvZYL+2KZHVvsqFCzqnkGEf46U2fvmytHaEVc1/YZbiLn8X+eR3QzX1+dwDO1lxlw==} + dev: false + + /@mapbox/vector-tile/1.3.1: + resolution: {integrity: sha512-MCEddb8u44/xfQ3oD+Srl/tNcQoqTw3goGk2oLsrFxOTc3dUp+kAnby3PvAeeBYSMSjSPD1nd1AJA6W49WnoUw==} + dependencies: + '@mapbox/point-geometry': 0.1.0 + dev: false + + /@mapbox/whoots-js/3.1.0: + resolution: {integrity: sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q==} + engines: {node: '>=6.0.0'} + dev: false /@meshtastic/eslint-config/1.0.8: resolution: {integrity: sha512-Jzwaf3TyYFGeFuxLRQA5Yj5Rmz097VleFQUkswXH9nvLO81JjJbHgJWbHQ6RpxC31q/2hWV03QdaH98swpYcQA==} @@ -584,11 +532,11 @@ packages: - supports-color dev: false - /@meshtastic/meshtasticjs/0.6.91: - resolution: {integrity: sha512-CnH5VB8WuthELgpquRSG7yAlfGL1cLU+HUAJ50Vef9tMIhKoH76MORm3uDAnM9yQw7VB+LKCRFUOSGtNC9CyhA==} + /@meshtastic/meshtasticjs/0.6.92: + resolution: {integrity: sha512-2JgFXlrFVmb9CsgzJ7+SbmHvTxBWcH706c25UFqvST8MqLOK0Stc9GGFMKlchFzRxBJv47g9iyaFL+9vJ7exVg==} dependencies: '@meshtastic/eslint-config': 1.0.8 - '@protobuf-ts/runtime': 2.7.0 + '@protobuf-ts/runtime': 2.8.0 '@serialport/stream': 10.3.0 prettier: 2.7.1 serialport: 10.4.0 @@ -604,10 +552,12 @@ packages: dependencies: '@nodelib/fs.stat': 2.0.5 run-parallel: 1.2.0 + dev: false /@nodelib/fs.stat/2.0.5: resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} engines: {node: '>= 8'} + dev: false /@nodelib/fs.walk/1.2.8: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} @@ -615,27 +565,12 @@ packages: dependencies: '@nodelib/fs.scandir': 2.1.5 fastq: 1.13.0 - - /@popperjs/core/2.11.5: - resolution: {integrity: sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==} dev: false - /@popperjs/core/2.11.6: - resolution: {integrity: sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==} + /@protobuf-ts/runtime/2.8.0: + resolution: {integrity: sha512-70LH3oLG5E608jTP+v4nYyinvrpEgkGy0p8gJsog3fwlEuJgARldOQAk+ci5StZUOXHB7MVw0vZ/T0shqIe/pw==} dev: false - /@protobuf-ts/runtime/2.7.0: - resolution: {integrity: sha512-CzunTplg81oMkF9MnSYiX2WOdHnAyHKnokZncgOHm5bt8iEfFNnUsMSbsWUus/ulRNIZ9VAVMjutd96vmySQaw==} - dev: false - - /@rollup/pluginutils/4.2.1: - resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} - engines: {node: '>= 8.0.0'} - dependencies: - estree-walker: 2.0.2 - picomatch: 2.3.1 - dev: true - /@segment/react-tiny-virtual-list/2.2.1_react@18.2.0: resolution: {integrity: sha512-G01b9DrsQLF+8yFRyyJeZBZkzbFuqILG9C7SFFS+GtTFbjdprkHt0CL0riCPOZfe1ZXiT8z8MaKoWfNhrfUjhQ==} peerDependencies: @@ -767,12 +702,6 @@ packages: resolution: {integrity: sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg==} dev: false - /@stencil/core/2.15.1: - resolution: {integrity: sha512-NYjRwQnjzscyFfqK+iIwRdr/dgYn33u6KE7kyQWdi7xsCkqMHalXYgJlN/QBQ9PN3qXmXKeBrJNG8EkNdCbK5g==} - engines: {node: '>=12.10.0', npm: '>=6.0.0'} - hasBin: true - dev: false - /@types/chrome/0.0.193: resolution: {integrity: sha512-R8C84oqvk8A8C8G1viBd8qLpDr86Y/jwD+KLgzUekbIT9RGds6a9GnlQyg8P7ltnGogTMHkiEQK0ZlcrvTeo3Q==} dependencies: @@ -780,26 +709,6 @@ packages: '@types/har-format': 1.2.8 dev: true - /@types/color-convert/2.0.0: - resolution: {integrity: sha512-m7GG7IKKGuJUXvkZ1qqG3ChccdIM/qBBo913z+Xft0nKCX4hAU/IxKwZBU4cpRZ7GS5kV4vOblUkILtSShCPXQ==} - dependencies: - '@types/color-name': 1.1.1 - dev: false - - /@types/color-name/1.1.1: - resolution: {integrity: sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==} - dev: false - - /@types/color/3.0.3: - resolution: {integrity: sha512-X//qzJ3d3Zj82J9sC/C18ZY5f43utPbAJ6PhYt/M7uG6etcF6MRpKdN880KBy43B0BMzSfeT96MzrsNjFI3GbA==} - dependencies: - '@types/color-convert': 2.0.0 - dev: false - - /@types/estree/1.0.0: - resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==} - dev: true - /@types/filesystem/0.0.32: resolution: {integrity: sha512-Yuf4jR5YYMR2DVgwuCiP11s0xuVRyPKmz8vo6HBY3CGdeMj8af93CFZX+T82+VD1+UqHOxTq31lO7MI7lepBtQ==} dependencies: @@ -814,6 +723,10 @@ packages: resolution: {integrity: sha512-zpgJ6W/PH8nQN5fyiynfRGLa7X9Fij8QuvBzZhN+/63+nrLaj6sLF7KbgKf55HBGryCuyuA8fEB8QUeAFCPWrg==} dev: true + /@types/geojson/7946.0.10: + resolution: {integrity: sha512-Nmh0K3iWQJzniTuPRcJn5hxXkfB1T1pgB89SBig5PlJQU5yocazeu4jATJlaA0GYFKWMqDdvYemoSnF2pXgLVA==} + dev: false + /@types/har-format/1.2.8: resolution: {integrity: sha512-OP6L9VuZNdskgNN3zFQQ54ceYD8OLq5IbqO4VK91ORLfOm7WdT/CiT/pHEBSQEqCInJ2y3O6iCm/zGtPElpgJQ==} dev: true @@ -826,13 +739,25 @@ packages: resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} dev: false - /@types/node/18.7.5: - resolution: {integrity: sha512-NcKK6Ts+9LqdHJaW6HQmgr7dT/i3GOHG+pt6BiWv++5SnjtRd4NXeiuN2kA153SjhXPR/AhHIPHPbrsbpUVOww==} + /@types/mapbox__point-geometry/0.1.2: + resolution: {integrity: sha512-D0lgCq+3VWV85ey1MZVkE8ZveyuvW5VAfuahVTQRpXFQTxw03SuIf1/K4UQ87MMIXVKzpFjXFiFMZzLj2kU+iA==} + dev: false + + /@types/mapbox__vector-tile/1.3.0: + resolution: {integrity: sha512-kDwVreQO5V4c8yAxzZVQLE5tyWF+IPToAanloQaSnwfXmIcJ7cyOrv8z4Ft4y7PsLYmhWXmON8MBV8RX0Rgr8g==} + dependencies: + '@types/geojson': 7946.0.10 + '@types/mapbox__point-geometry': 0.1.2 + '@types/pbf': 3.0.2 + dev: false + + /@types/node/18.7.6: + resolution: {integrity: sha512-EdxgKRXgYsNITy5mjjXjVE/CS8YENSdhiagGrLqjG0pvA2owgJ6i4l7wy/PFZGC0B1/H20lWKN7ONVDNYDZm7A==} dev: true - /@types/normalize-package-data/2.4.1: - resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} - dev: true + /@types/pbf/3.0.2: + resolution: {integrity: sha512-EDrLIPaPXOZqDjrkzxxbX7UlJSeQVgah3i0aA4pOSzmK9zq3BIh7/MZIQxED7slJByvKM4Gc6Hypyu2lJzh3SQ==} + dev: false /@types/prop-types/15.7.5: resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} @@ -922,32 +847,13 @@ packages: - supports-color dev: false - /@typescript-eslint/parser/5.33.1_hxadhbs2xogijvk7vq4t2azzbu: - resolution: {integrity: sha512-IgLLtW7FOzoDlmaMoXdxG8HOCByTBXrB1V2ZQYSEV1ggMmJfAkMWTwUjjzagS6OkfpySyhKFkBw7A9jYmcHpZA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/scope-manager': 5.33.1 - '@typescript-eslint/types': 5.33.1 - '@typescript-eslint/typescript-estree': 5.33.1_typescript@4.7.4 - debug: 4.3.4 - eslint: 7.32.0 - typescript: 4.7.4 - transitivePeerDependencies: - - supports-color - dev: true - /@typescript-eslint/scope-manager/5.33.1: resolution: {integrity: sha512-8ibcZSqy4c5m69QpzJn8XQq9NnqAToC8OdH/W6IXPXv83vRyEDPYLdjAlUx8h/rbusq6MkW4YdQzURGOqsn3CA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: '@typescript-eslint/types': 5.33.1 '@typescript-eslint/visitor-keys': 5.33.1 + dev: false /@typescript-eslint/type-utils/5.33.1_4rv7y5c6xz3vfxwhbrcxxi73bq: resolution: {integrity: sha512-X3pGsJsD8OiqhNa5fim41YtlnyiWMF/eKsEZGsHID2HcDqeSC5yr/uLOeph8rNF2/utwuI0IQoAK3fpoxcLl2g==} @@ -971,6 +877,7 @@ packages: /@typescript-eslint/types/5.33.1: resolution: {integrity: sha512-7K6MoQPQh6WVEkMrMW5QOA5FO+BOwzHSNd0j3+BlBwd6vtzfZceJ8xJ7Um2XDi/O3umS8/qDX6jdy2i7CijkwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: false /@typescript-eslint/typescript-estree/5.33.1_typescript@4.7.4: resolution: {integrity: sha512-JOAzJ4pJ+tHzA2pgsWQi4804XisPHOtbvwUyqsuuq8+y5B5GMZs7lI1xDWs6V2d7gE/Ez5bTGojSK12+IIPtXA==} @@ -991,6 +898,7 @@ packages: typescript: 4.7.4 transitivePeerDependencies: - supports-color + dev: false /@typescript-eslint/utils/5.33.1_4rv7y5c6xz3vfxwhbrcxxi73bq: resolution: {integrity: sha512-uphZjkMaZ4fE8CR4dU7BquOV6u0doeQAr8n6cQenl/poMaIyJtBu8eys5uk6u5HiDH01Mj5lzbJ5SfeDz7oqMQ==} @@ -1016,8 +924,9 @@ packages: dependencies: '@typescript-eslint/types': 5.33.1 eslint-visitor-keys: 3.3.0 + dev: false - /@vitejs/plugin-react/2.0.1_vite@3.0.7: + /@vitejs/plugin-react/2.0.1_vite@3.0.8: resolution: {integrity: sha512-uINzNHmjrbunlFtyVkST6lY1ewSfz/XwLufG0PIqvLGnpk2nOIOa/1CACTDNcKi1/RwaCzJLmsXwm1NsUVV/NA==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -1030,19 +939,11 @@ packages: '@babel/plugin-transform-react-jsx-source': 7.18.6_@babel+core@7.18.10 magic-string: 0.26.2 react-refresh: 0.14.0 - vite: 3.0.7 + vite: 3.0.8 transitivePeerDependencies: - supports-color dev: true - /acorn-jsx/5.3.2_acorn@7.4.1: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - acorn: 7.4.1 - dev: true - /acorn-jsx/5.3.2_acorn@8.8.0: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -1051,12 +952,6 @@ packages: acorn: 8.8.0 dev: false - /acorn/7.4.1: - resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} - engines: {node: '>=0.4.0'} - hasBin: true - dev: true - /acorn/8.8.0: resolution: {integrity: sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==} engines: {node: '>=0.4.0'} @@ -1070,20 +965,7 @@ packages: fast-json-stable-stringify: 2.1.0 json-schema-traverse: 0.4.1 uri-js: 4.4.1 - - /ajv/8.11.0: - resolution: {integrity: sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==} - dependencies: - fast-deep-equal: 3.1.3 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - uri-js: 4.4.1 - dev: true - - /ansi-colors/4.1.3: - resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} - engines: {node: '>=6'} - dev: true + dev: false /ansi-regex/5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} @@ -1102,12 +984,6 @@ packages: dependencies: color-convert: 2.0.1 - /argparse/1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} - dependencies: - sprintf-js: 1.0.3 - dev: true - /argparse/2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} dev: false @@ -1126,6 +1002,7 @@ packages: /array-union/2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} + dev: false /array.prototype.flat/1.3.0: resolution: {integrity: sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==} @@ -1156,11 +1033,6 @@ packages: resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} dev: false - /astral-regex/2.0.0: - resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} - engines: {node: '>=8'} - dev: true - /available-typed-arrays/1.0.5: resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} engines: {node: '>= 0.4'} @@ -1168,18 +1040,11 @@ packages: /balanced-match/1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + dev: false /base64-js/1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - /bl/4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} - dependencies: - buffer: 5.7.1 - inherits: 2.0.4 - readable-stream: 3.6.0 - dev: true - /bowser/1.9.4: resolution: {integrity: sha512-9IdMmj2KjigRq6oWhmwv1W36pDuA4STQZ8q6YO9um+x07xgYNCD3Oou+WP/3L1HNz7iqythGet3/p4wvc8AAwQ==} dev: false @@ -1189,20 +1054,22 @@ packages: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 + dev: false /braces/3.0.2: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} engines: {node: '>=8'} dependencies: fill-range: 7.0.1 + dev: false /browserslist/4.21.3: resolution: {integrity: sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001376 - electron-to-chromium: 1.4.220 + caniuse-lite: 1.0.30001378 + electron-to-chromium: 1.4.225 node-releases: 2.0.6 update-browserslist-db: 1.0.5_browserslist@4.21.3 dev: true @@ -1211,13 +1078,6 @@ packages: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} dev: true - /buffer/5.7.1: - resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - dev: true - /call-bind/1.0.2: resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} dependencies: @@ -1227,9 +1087,10 @@ packages: /callsites/3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} + dev: false - /caniuse-lite/1.0.30001376: - resolution: {integrity: sha512-I27WhtOQ3X3v3it9gNs/oTpoE5KpwmqKR5oKPA8M0G7uMXh9Ty81Q904HpKUrM30ei7zfcL5jE7AXefgbOfMig==} + /caniuse-lite/1.0.30001378: + resolution: {integrity: sha512-JVQnfoO7FK7WvU4ZkBRbPjaot4+YqxogSDosHv0Hv5mWpUESmN+UubMU6L/hGz8QlQ2aY5U0vR6MOs6j/CXpNA==} dev: true /chalk/2.4.2: @@ -1247,6 +1108,7 @@ packages: dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 + dev: false /chownr/2.0.0: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} @@ -1268,18 +1130,6 @@ packages: resolution: {integrity: sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==} dev: false - /cli-cursor/3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} - engines: {node: '>=8'} - dependencies: - restore-cursor: 3.1.0 - dev: true - - /cli-spinners/2.7.0: - resolution: {integrity: sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==} - engines: {node: '>=6'} - dev: true - /cliui/7.0.4: resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} dependencies: @@ -1288,11 +1138,6 @@ packages: wrap-ansi: 7.0.0 dev: true - /clone/1.0.4: - resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} - engines: {node: '>=0.8'} - dev: true - /color-convert/1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: @@ -1312,25 +1157,6 @@ packages: /color-name/1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - /color-string/1.9.1: - resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} - dependencies: - color-name: 1.1.4 - simple-swizzle: 0.2.2 - dev: false - - /color/4.2.3: - resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} - engines: {node: '>=12.5.0'} - dependencies: - color-convert: 2.0.1 - color-string: 1.9.1 - dev: false - - /commander/2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - dev: false - /commander/7.2.0: resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} engines: {node: '>= 10'} @@ -1342,6 +1168,7 @@ packages: /concat-map/0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + dev: false /convert-source-map/1.8.0: resolution: {integrity: sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==} @@ -1365,6 +1192,7 @@ packages: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 + dev: false /css-in-js-utils/2.0.1: resolution: {integrity: sha512-PJF0SpJT+WdbVVt0AOYp9C8GnuruRlL/UFW7932nLWmFLQTaWEzTBQEx7/hn4BuV+WON75iAViSUJLiU3PKbpA==} @@ -1373,8 +1201,8 @@ packages: isobject: 3.0.1 dev: false - /cssfilter/0.0.10: - resolution: {integrity: sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==} + /csscolorparser/1.0.3: + resolution: {integrity: sha512-umPSgYwZkdFoUrH5hIq5kf0wPSXiro51nPw0j2K/c83KflkPSTBGMz6NJvMB+07VlL0y7VPo6QJcDjcgKTTm3w==} dev: false /csstype/3.1.0: @@ -1425,7 +1253,7 @@ packages: isarray: 2.0.5 object-is: 1.1.5 object-keys: 1.1.1 - object.assign: 4.1.3 + object.assign: 4.1.4 regexp.prototype.flags: 1.4.3 side-channel: 1.0.4 which-boxed-primitive: 1.0.2 @@ -1435,12 +1263,7 @@ packages: /deep-is/0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - - /defaults/1.0.3: - resolution: {integrity: sha512-s82itHOnYrN0Ib8r+z7laQz3sdE+4FP3d9Q7VLO7U+KRT+CR0GsWuyHxzdAY82I7cXv0G/twrqomTJLOssO5HA==} - dependencies: - clone: 1.0.4 - dev: true + dev: false /define-lazy-prop/2.0.0: resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} @@ -1459,6 +1282,7 @@ packages: engines: {node: '>=8'} dependencies: path-type: 4.0.0 + dev: false /doctrine/2.1.0: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} @@ -1472,6 +1296,7 @@ packages: engines: {node: '>=6.0.0'} dependencies: esutils: 2.0.3 + dev: false /dom-helpers/5.2.1: resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} @@ -1505,8 +1330,12 @@ packages: stream-shift: 1.0.1 dev: true - /electron-to-chromium/1.4.220: - resolution: {integrity: sha512-RA6Mn51gj2lyeAt/MiuVV+85tN8vt1jbWP+kx7S84htJ0MbIHGHdnVm+j+HzZQp69O6gWmhLBJ+Wpk2c445+ZA==} + /earcut/2.2.4: + resolution: {integrity: sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==} + dev: false + + /electron-to-chromium/1.4.225: + resolution: {integrity: sha512-ICHvGaCIQR3P88uK8aRtx8gmejbVJyC6bB4LEC3anzBrIzdzC7aiZHY4iFfXhN4st6I7lMO0x4sgBHf/7kBvRw==} dev: true /emoji-regex/8.0.0: @@ -1525,19 +1354,6 @@ packages: once: 1.4.0 dev: true - /enquirer/2.3.6: - resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} - engines: {node: '>=8.6'} - dependencies: - ansi-colors: 4.1.3 - dev: true - - /error-ex/1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - dependencies: - is-arrayish: 0.2.1 - dev: true - /es-abstract/1.20.1: resolution: {integrity: sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==} engines: {node: '>= 0.4'} @@ -1560,7 +1376,7 @@ packages: is-weakref: 1.0.2 object-inspect: 1.12.2 object-keys: 1.1.1 - object.assign: 4.1.3 + object.assign: 4.1.4 regexp.prototype.flags: 1.4.3 string.prototype.trimend: 1.0.5 string.prototype.trimstart: 1.0.5 @@ -1599,6 +1415,7 @@ packages: cpu: [x64] os: [android] requiresBuild: true + dev: true optional: true /esbuild-android-arm64/0.14.54: @@ -1607,6 +1424,7 @@ packages: cpu: [arm64] os: [android] requiresBuild: true + dev: true optional: true /esbuild-darwin-64/0.14.54: @@ -1615,6 +1433,7 @@ packages: cpu: [x64] os: [darwin] requiresBuild: true + dev: true optional: true /esbuild-darwin-arm64/0.14.54: @@ -1623,6 +1442,7 @@ packages: cpu: [arm64] os: [darwin] requiresBuild: true + dev: true optional: true /esbuild-freebsd-64/0.14.54: @@ -1631,6 +1451,7 @@ packages: cpu: [x64] os: [freebsd] requiresBuild: true + dev: true optional: true /esbuild-freebsd-arm64/0.14.54: @@ -1639,6 +1460,7 @@ packages: cpu: [arm64] os: [freebsd] requiresBuild: true + dev: true optional: true /esbuild-linux-32/0.14.54: @@ -1647,6 +1469,7 @@ packages: cpu: [ia32] os: [linux] requiresBuild: true + dev: true optional: true /esbuild-linux-64/0.14.54: @@ -1655,6 +1478,7 @@ packages: cpu: [x64] os: [linux] requiresBuild: true + dev: true optional: true /esbuild-linux-arm/0.14.54: @@ -1663,6 +1487,7 @@ packages: cpu: [arm] os: [linux] requiresBuild: true + dev: true optional: true /esbuild-linux-arm64/0.14.54: @@ -1671,6 +1496,7 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true + dev: true optional: true /esbuild-linux-mips64le/0.14.54: @@ -1679,6 +1505,7 @@ packages: cpu: [mips64el] os: [linux] requiresBuild: true + dev: true optional: true /esbuild-linux-ppc64le/0.14.54: @@ -1687,6 +1514,7 @@ packages: cpu: [ppc64] os: [linux] requiresBuild: true + dev: true optional: true /esbuild-linux-riscv64/0.14.54: @@ -1695,6 +1523,7 @@ packages: cpu: [riscv64] os: [linux] requiresBuild: true + dev: true optional: true /esbuild-linux-s390x/0.14.54: @@ -1703,6 +1532,7 @@ packages: cpu: [s390x] os: [linux] requiresBuild: true + dev: true optional: true /esbuild-netbsd-64/0.14.54: @@ -1711,6 +1541,7 @@ packages: cpu: [x64] os: [netbsd] requiresBuild: true + dev: true optional: true /esbuild-openbsd-64/0.14.54: @@ -1719,6 +1550,7 @@ packages: cpu: [x64] os: [openbsd] requiresBuild: true + dev: true optional: true /esbuild-sunos-64/0.14.54: @@ -1727,6 +1559,7 @@ packages: cpu: [x64] os: [sunos] requiresBuild: true + dev: true optional: true /esbuild-windows-32/0.14.54: @@ -1735,6 +1568,7 @@ packages: cpu: [ia32] os: [win32] requiresBuild: true + dev: true optional: true /esbuild-windows-64/0.14.54: @@ -1743,6 +1577,7 @@ packages: cpu: [x64] os: [win32] requiresBuild: true + dev: true optional: true /esbuild-windows-arm64/0.14.54: @@ -1751,6 +1586,7 @@ packages: cpu: [arm64] os: [win32] requiresBuild: true + dev: true optional: true /esbuild/0.14.54: @@ -1780,6 +1616,7 @@ packages: esbuild-windows-32: 0.14.54 esbuild-windows-64: 0.14.54 esbuild-windows-arm64: 0.14.54 + dev: true /escalade/3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} @@ -1793,6 +1630,7 @@ packages: /escape-string-regexp/4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} + dev: false /eslint-config-prettier/8.5.0_eslint@8.22.0: resolution: {integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==} @@ -1940,6 +1778,7 @@ packages: dependencies: esrecurse: 4.3.0 estraverse: 4.3.0 + dev: false /eslint-scope/7.1.1: resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==} @@ -1949,13 +1788,6 @@ packages: estraverse: 5.3.0 dev: false - /eslint-utils/2.1.0: - resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} - engines: {node: '>=6'} - dependencies: - eslint-visitor-keys: 1.3.0 - dev: true - /eslint-utils/3.0.0_eslint@8.22.0: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} @@ -1966,67 +1798,15 @@ packages: eslint-visitor-keys: 2.1.0 dev: false - /eslint-visitor-keys/1.3.0: - resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} - engines: {node: '>=4'} - dev: true - /eslint-visitor-keys/2.1.0: resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} engines: {node: '>=10'} + dev: false /eslint-visitor-keys/3.3.0: resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - /eslint/7.32.0: - resolution: {integrity: sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==} - engines: {node: ^10.12.0 || >=12.0.0} - hasBin: true - dependencies: - '@babel/code-frame': 7.12.11 - '@eslint/eslintrc': 0.4.3 - '@humanwhocodes/config-array': 0.5.0 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.3 - debug: 4.3.4 - doctrine: 3.0.0 - enquirer: 2.3.6 - escape-string-regexp: 4.0.0 - eslint-scope: 5.1.1 - eslint-utils: 2.1.0 - eslint-visitor-keys: 2.1.0 - espree: 7.3.1 - esquery: 1.4.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - functional-red-black-tree: 1.0.1 - glob-parent: 5.1.2 - globals: 13.17.0 - ignore: 4.0.6 - import-fresh: 3.3.0 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - js-yaml: 3.14.1 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.1 - progress: 2.0.3 - regexpp: 3.2.0 - semver: 7.3.7 - strip-ansi: 6.0.1 - strip-json-comments: 3.1.1 - table: 6.8.0 - text-table: 0.2.0 - v8-compile-cache: 2.3.0 - transitivePeerDependencies: - - supports-color - dev: true + dev: false /eslint/8.22.0: resolution: {integrity: sha512-ci4t0sz6vSRKdmkOGmprBo6fmI4PrphDFMy5JEq/fNS0gQkJM3rLmrqcp8ipMcdobH3KtUP40KniAE9W19S4wA==} @@ -2076,15 +1856,6 @@ packages: - supports-color dev: false - /espree/7.3.1: - resolution: {integrity: sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==} - engines: {node: ^10.12.0 || >=12.0.0} - dependencies: - acorn: 7.4.1 - acorn-jsx: 5.3.2_acorn@7.4.1 - eslint-visitor-keys: 1.3.0 - dev: true - /espree/9.3.3: resolution: {integrity: sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2094,39 +1865,34 @@ packages: eslint-visitor-keys: 3.3.0 dev: false - /esprima/4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true - dev: true - /esquery/1.4.0: resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==} engines: {node: '>=0.10'} dependencies: estraverse: 5.3.0 + dev: false /esrecurse/4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} dependencies: estraverse: 5.3.0 + dev: false /estraverse/4.3.0: resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} engines: {node: '>=4.0'} + dev: false /estraverse/5.3.0: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} - - /estree-walker/2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - dev: true + dev: false /esutils/2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} + dev: false /evergreen-ui/6.10.3_biqbaboplfbrettd7655fr4n2y: resolution: {integrity: sha512-NxDQyntCxYBQbucCm8yVoEL/7bFC0EfFulDEH+OrpLIRVSG3pZPO7qKeCD8YT/sJQJqe/Iv01m8toW4Qlt7TgA==} @@ -2163,6 +1929,7 @@ packages: /fast-deep-equal/3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + dev: false /fast-glob/3.2.11: resolution: {integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==} @@ -2173,17 +1940,21 @@ packages: glob-parent: 5.1.2 merge2: 1.4.1 micromatch: 4.0.5 + dev: false /fast-json-stable-stringify/2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + dev: false /fast-levenshtein/2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + dev: false /fastq/1.13.0: resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==} dependencies: reusify: 1.0.4 + dev: false /fbjs/0.8.18: resolution: {integrity: sha512-EQaWFK+fEPSoibjNy8IxUtaFOMXcWsY0JaVrQoZR9zC8N2Ygf9iDITPWjUTVIax95b6I742JFLqASHfsag/vKA==} @@ -2202,20 +1973,14 @@ packages: engines: {node: ^10.12.0 || >=12.0.0} dependencies: flat-cache: 3.0.4 + dev: false /fill-range/7.0.1: resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} engines: {node: '>=8'} dependencies: to-regex-range: 5.0.1 - - /find-up/4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} - dependencies: - locate-path: 5.0.0 - path-exists: 4.0.0 - dev: true + dev: false /find-up/5.0.0: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} @@ -2231,29 +1996,10 @@ packages: dependencies: flatted: 3.2.6 rimraf: 3.0.2 + dev: false /flatted/3.2.6: resolution: {integrity: sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==} - - /flow-parser/0.156.0: - resolution: {integrity: sha512-OCE3oIixhOttaV4ahIGtxf9XfaDdxujiTnXuHu+0dvDVVDiSDJlQpgCWdDKqP0OHfFnxQKrjMamArDAXtrBtZw==} - engines: {node: '>=0.4.0'} - dev: true - - /flow-remove-types/2.156.0: - resolution: {integrity: sha512-ivU28S1ycaVo5anxlXdIVlrmqLD81JWFADa6oUjyoQg0va4zSyZCp5OYco74VZi7nm42O/yTNv1Y5Byc7bJF1Q==} - engines: {node: '>=4'} - hasBin: true - dependencies: - flow-parser: 0.156.0 - pirates: 3.0.2 - vlq: 0.2.3 - dev: true - - /focus-trap/6.9.4: - resolution: {integrity: sha512-v2NTsZe2FF59Y+sDykKY+XjqZ0cPfhq/hikWVL88BqLivnNiEffAsac6rP6H45ff9wG9LL5ToiDqrLEP9GX9mw==} - dependencies: - tabbable: 5.3.3 dev: false /for-each/0.3.3: @@ -2262,10 +2008,6 @@ packages: is-callable: 1.2.4 dev: true - /form-request-submit-polyfill/2.0.0: - resolution: {integrity: sha512-p0+M92y2gFnP0AuuL8VJ0GYVzAT0bYp3GsSkmPFhvUopdnfDLP/9xplQTBBc4w8qOjKRzdK7GaFcdL9IhlXdTQ==} - dev: false - /fs-minipass/2.1.0: resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} engines: {node: '>= 8'} @@ -2275,12 +2017,14 @@ packages: /fs.realpath/1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + dev: false /fsevents/2.3.2: resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true + dev: true optional: true /function-bind/1.1.1: @@ -2297,6 +2041,7 @@ packages: /functional-red-black-tree/1.0.1: resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} + dev: false /functions-have-names/1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} @@ -2315,6 +2060,10 @@ packages: engines: {node: '>=8.0.0'} dev: false + /geojson-vt/3.2.1: + resolution: {integrity: sha512-EvGQQi/zPrDA6zr6BnJD/YhwAkBP8nnJ9emh3EnHQKVMfg/MRVtPbMYdgVy/IaEmn4UfagD2a6fafPDL5hbtwg==} + dev: false + /get-caller-file/2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} @@ -2327,6 +2076,11 @@ packages: has: 1.0.3 has-symbols: 1.0.3 + /get-stream/6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + dev: false + /get-symbol-description/1.0.0: resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} engines: {node: '>= 0.4'} @@ -2334,6 +2088,10 @@ packages: call-bind: 1.0.2 get-intrinsic: 1.1.2 + /gl-matrix/3.4.3: + resolution: {integrity: sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA==} + dev: false + /glamor/2.20.40: resolution: {integrity: sha512-DNXCd+c14N9QF8aAKrfl4xakPk5FdcFwmH7sD0qnC0Pr7xoZ5W9yovhUrY/dJc3psfGGXC58vqQyRtuskyUJxA==} dependencies: @@ -2349,6 +2107,7 @@ packages: engines: {node: '>= 6'} dependencies: is-glob: 4.0.3 + dev: false /glob-parent/6.0.2: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} @@ -2366,6 +2125,7 @@ packages: minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 + dev: false /globals/11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} @@ -2377,6 +2137,7 @@ packages: engines: {node: '>=8'} dependencies: type-fest: 0.20.2 + dev: false /globby/11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} @@ -2388,6 +2149,7 @@ packages: ignore: 5.2.0 merge2: 1.4.1 slash: 3.0.0 + dev: false /grapheme-splitter/1.0.4: resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} @@ -2416,6 +2178,7 @@ packages: /has-flag/4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} + dev: false /has-property-descriptors/1.0.0: resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} @@ -2438,10 +2201,6 @@ packages: dependencies: function-bind: 1.1.1 - /hosted-git-info/2.8.9: - resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} - dev: true - /humanize-plus/1.8.2: resolution: {integrity: sha512-jaLeQyyzjjINGv7O9JJegjsaUcWjSj/1dcXvLEgU3pGdqCdP1PiC/uwr+saJXhTNBHZtmKnmpXyazgh+eceRxA==} engines: {node: '>= 0.8.0'} @@ -2460,16 +2219,12 @@ packages: /ieee754/1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - dev: true - - /ignore/4.0.6: - resolution: {integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==} - engines: {node: '>= 4'} - dev: true + dev: false /ignore/5.2.0: resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==} engines: {node: '>= 4'} + dev: false /immer/9.0.15: resolution: {integrity: sha512-2eB/sswms9AEUSkOm4SbV5Y7Vmt/bKRwByd52jfLkW4OLYeaTP3EEiJ9agqU0O/tq6Dk62Zfj+TJSqfm1rLVGQ==} @@ -2481,16 +2236,19 @@ packages: dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 + dev: false /imurmurhash/0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} + dev: false /inflight/1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} dependencies: once: 1.4.0 wrappy: 1.0.2 + dev: false /inherits/2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} @@ -2524,14 +2282,6 @@ packages: has-tostringtag: 1.0.0 dev: true - /is-arrayish/0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - dev: true - - /is-arrayish/0.3.2: - resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} - dev: false - /is-bigint/1.0.4: resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} dependencies: @@ -2568,6 +2318,7 @@ packages: /is-extglob/2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} + dev: false /is-fullwidth-code-point/3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} @@ -2579,11 +2330,7 @@ packages: engines: {node: '>=0.10.0'} dependencies: is-extglob: 2.1.1 - - /is-interactive/1.0.0: - resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} - engines: {node: '>=8'} - dev: true + dev: false /is-map/2.0.2: resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} @@ -2602,12 +2349,7 @@ packages: /is-number/7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} - - /is-reference/1.2.1: - resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} - dependencies: - '@types/estree': 1.0.0 - dev: true + dev: false /is-regex/1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} @@ -2653,11 +2395,6 @@ packages: has-tostringtag: 1.0.0 dev: true - /is-unicode-supported/0.1.0: - resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} - engines: {node: '>=10'} - dev: true - /is-weakmap/2.0.1: resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} dev: true @@ -2695,6 +2432,7 @@ packages: /isexe/2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + dev: false /isobject/3.0.1: resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} @@ -2715,14 +2453,6 @@ packages: /js-tokens/4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - /js-yaml/3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} - hasBin: true - dependencies: - argparse: 1.0.10 - esprima: 4.0.1 - dev: true - /js-yaml/4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true @@ -2736,19 +2466,13 @@ packages: hasBin: true dev: true - /json-parse-even-better-errors/2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - dev: true - /json-schema-traverse/0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - - /json-schema-traverse/1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - dev: true + dev: false /json-stable-stringify-without-jsonify/1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + dev: false /json5/1.0.1: resolution: {integrity: sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==} @@ -2768,7 +2492,11 @@ packages: engines: {node: '>=4.0'} dependencies: array-includes: 3.1.5 - object.assign: 4.1.3 + object.assign: 4.1.4 + dev: false + + /kdbush/3.0.0: + resolution: {integrity: sha512-hRkd6/XW4HTsA9vjVpY9tuXJYLSlelnkTmVFu4M9/7MIYQtFcHpbugAU7UbOfjOiVSVYl2fqgBuJ32JUmRo5Ew==} dev: false /levn/0.4.1: @@ -2777,22 +2505,12 @@ packages: dependencies: prelude-ls: 1.2.1 type-check: 0.4.0 + dev: false /libphonenumber-js/1.10.12: resolution: {integrity: sha512-xTFBs3ipFQNmjCUkDj6ZzRJvs97IyazFHBKWtrQrLiYs0Zk0GANob1hkMRlQUQXbJrpQGwnI+/yU4oyD4ohvpw==} dev: false - /lines-and-columns/1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - dev: true - - /locate-path/5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} - dependencies: - p-locate: 4.1.0 - dev: true - /locate-path/6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} @@ -2800,10 +2518,6 @@ packages: p-locate: 5.0.0 dev: false - /lodash-es/4.17.21: - resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} - dev: false - /lodash.debounce/4.0.8: resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} dev: false @@ -2820,33 +2534,18 @@ packages: resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} dev: false - /lodash.isplainobject/4.0.6: - resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} - dev: false - /lodash.merge/4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + dev: false /lodash.omit/4.5.0: resolution: {integrity: sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg==} dev: false - /lodash.truncate/4.4.2: - resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} - dev: true - /lodash.uniqby/4.7.0: resolution: {integrity: sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==} dev: false - /log-symbols/4.1.0: - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} - engines: {node: '>=10'} - dependencies: - chalk: 4.1.2 - is-unicode-supported: 0.1.0 - dev: true - /loose-envify/1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true @@ -2859,18 +2558,8 @@ packages: engines: {node: '>=10'} dependencies: yallist: 4.0.0 - - /luxon/2.4.0: - resolution: {integrity: sha512-w+NAwWOUL5hO0SgwOHsMBAmZ15SoknmQXhSO0hIbJCAmPKSsGeK8MlmhYh2w6Iib38IxN2M+/ooXWLbeis7GuA==} - engines: {node: '>=12'} dev: false - /magic-string/0.25.9: - resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} - dependencies: - sourcemap-codec: 1.4.8 - dev: true - /magic-string/0.26.2: resolution: {integrity: sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A==} engines: {node: '>=12'} @@ -2878,9 +2567,39 @@ packages: sourcemap-codec: 1.4.8 dev: true + /maplibre-gl/2.3.0: + resolution: {integrity: sha512-91vc5Quu9UDw0S90pJMDuE24XvXUjIYGaD5DTlhNs3egVmX0QwCpWl1R2tots3slHbZRJcQdRGUNxW7hKpi0Ow==} + requiresBuild: true + dependencies: + '@mapbox/geojson-rewind': 0.5.2 + '@mapbox/jsonlint-lines-primitives': 2.0.2 + '@mapbox/mapbox-gl-supported': 2.0.1 + '@mapbox/point-geometry': 0.1.0 + '@mapbox/tiny-sdf': 2.0.5 + '@mapbox/unitbezier': 0.0.1 + '@mapbox/vector-tile': 1.3.1 + '@mapbox/whoots-js': 3.1.0 + '@types/geojson': 7946.0.10 + '@types/mapbox__point-geometry': 0.1.2 + '@types/mapbox__vector-tile': 1.3.0 + '@types/pbf': 3.0.2 + csscolorparser: 1.0.3 + earcut: 2.2.4 + geojson-vt: 3.2.1 + gl-matrix: 3.4.3 + murmurhash-js: 1.0.0 + pbf: 3.2.1 + potpack: 1.0.2 + quickselect: 2.0.0 + supercluster: 7.1.5 + tinyqueue: 2.0.3 + vt-pbf: 3.1.3 + dev: false + /merge2/1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} + dev: false /micromatch/4.0.5: resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} @@ -2888,16 +2607,13 @@ packages: dependencies: braces: 3.0.2 picomatch: 2.3.1 - - /mimic-fn/2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - dev: true + dev: false /minimatch/3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: brace-expansion: 1.1.11 + dev: false /minimist/1.2.6: resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==} @@ -2939,13 +2655,19 @@ packages: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} dev: false + /murmurhash-js/1.0.0: + resolution: {integrity: sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw==} + dev: false + /nanoid/3.3.4: resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + dev: true /natural-compare/1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + dev: false /node-addon-api/4.3.0: resolution: {integrity: sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==} @@ -2963,24 +2685,10 @@ packages: hasBin: true dev: false - /node-modules-regexp/1.0.0: - resolution: {integrity: sha512-JMaRS9L4wSRIR+6PTVEikTrq/lMGEZR43a48ETeilY0Q0iMwVnccMFrUM1k+tNzmYuIU0Vh710bCUqHX+/+ctQ==} - engines: {node: '>=0.10.0'} - dev: true - /node-releases/2.0.6: resolution: {integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==} dev: true - /normalize-package-data/2.5.0: - resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} - dependencies: - hosted-git-info: 2.8.9 - resolve: 1.22.1 - semver: 5.7.1 - validate-npm-package-license: 3.0.4 - dev: true - /object-assign/4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} @@ -3001,8 +2709,8 @@ packages: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} - /object.assign/4.1.3: - resolution: {integrity: sha512-ZFJnX3zltyjcYJL0RoCJuzb+11zWGyaDbjgxZbdV7rFEcHQuYxrZqhow67aA7xpes6LhojyFDaBKAFfogQrikA==} + /object.assign/4.1.4: + resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 @@ -3049,13 +2757,6 @@ packages: dependencies: wrappy: 1.0.2 - /onetime/5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - dependencies: - mimic-fn: 2.1.0 - dev: true - /open/8.4.0: resolution: {integrity: sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==} engines: {node: '>=12'} @@ -3075,34 +2776,13 @@ packages: prelude-ls: 1.2.1 type-check: 0.4.0 word-wrap: 1.2.3 - - /ora/5.4.1: - resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} - engines: {node: '>=10'} - dependencies: - bl: 4.1.0 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-spinners: 2.7.0 - is-interactive: 1.0.0 - is-unicode-supported: 0.1.0 - log-symbols: 4.1.0 - strip-ansi: 6.0.1 - wcwidth: 1.0.1 - dev: true + dev: false /os-tmpdir/1.0.2: resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} engines: {node: '>=0.10.0'} dev: true - /p-limit/2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} - dependencies: - p-try: 2.2.0 - dev: true - /p-limit/3.1.0: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} @@ -3110,13 +2790,6 @@ packages: yocto-queue: 0.1.0 dev: false - /p-locate/4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} - dependencies: - p-limit: 2.3.0 - dev: true - /p-locate/5.0.0: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} @@ -3124,38 +2797,27 @@ packages: p-limit: 3.1.0 dev: false - /p-try/2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} - dev: true - /parent-module/1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} dependencies: callsites: 3.1.0 - - /parse-json/5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} - dependencies: - '@babel/code-frame': 7.18.6 - error-ex: 1.3.2 - json-parse-even-better-errors: 2.3.1 - lines-and-columns: 1.2.4 - dev: true + dev: false /path-exists/4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} + dev: false /path-is-absolute/1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} + dev: false /path-key/3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} + dev: false /path-parse/1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} @@ -3163,6 +2825,15 @@ packages: /path-type/4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} + dev: false + + /pbf/3.2.1: + resolution: {integrity: sha512-ClrV7pNOn7rtmoQVF4TS1vyU0WhYRnP92fzbfF75jAIwpnzdJXf8iTd4CMEqO4yUenH6NDqLiwjqlh6QgZzgLQ==} + hasBin: true + dependencies: + ieee754: 1.2.1 + resolve-protobuf-schema: 2.1.0 + dev: false /peek-stream/1.1.3: resolution: {integrity: sha512-FhJ+YbOSBb9/rIl2ZeE/QHEsWn7PqNYt8ARAY3kIgNGOk13g9FGyIY6JIl/xB/3TFRVoTv5as0l11weORrTekA==} @@ -3174,17 +2845,12 @@ packages: /picocolors/1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + dev: true /picomatch/2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - - /pirates/3.0.2: - resolution: {integrity: sha512-c5CgUJq6H2k6MJz72Ak1F5sN9n9wlSlJyEnwvpm9/y3WB4E3pHBDT2c6PEiS1vyJvq2bUxUAIu0EGf8Cx4Ic7Q==} - engines: {node: '>= 4'} - dependencies: - node-modules-regexp: 1.0.0 - dev: true + dev: false /postcss/8.4.16: resolution: {integrity: sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==} @@ -3193,10 +2859,16 @@ packages: nanoid: 3.3.4 picocolors: 1.0.0 source-map-js: 1.0.2 + dev: true + + /potpack/1.0.2: + resolution: {integrity: sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ==} + dev: false /prelude-ls/1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} + dev: false /prettier-plugin-tailwindcss/0.1.13_prettier@2.7.1: resolution: {integrity: sha512-/EKQURUrxLu66CMUg4+1LwGdxnz8of7IDvrSLqEtDqhLH61SAlNNUSr90UTvZaemujgl3OH/VHg+fyGltrNixw==} @@ -3225,11 +2897,6 @@ packages: tempfile: 1.1.1 dev: true - /progress/2.0.3: - resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} - engines: {node: '>=0.4.0'} - dev: true - /promise/7.3.1: resolution: {integrity: sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==} dependencies: @@ -3244,9 +2911,14 @@ packages: react-is: 16.13.1 dev: false + /protocol-buffers-schema/3.6.0: + resolution: {integrity: sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==} + dev: false + /punycode/2.1.1: resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} engines: {node: '>=6'} + dev: false /qrcode-generator/1.4.4: resolution: {integrity: sha512-HM7yY8O2ilqhmULxGMpcHSF1EhJJ9yBj8gvDEuZ6M+KGJ0YY2hKpnXvRD+hZPLrDVck3ExIGhmPtSdcjC+guuw==} @@ -3254,6 +2926,11 @@ packages: /queue-microtask/1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: false + + /quickselect/2.0.0: + resolution: {integrity: sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==} + dev: false /quotemeta/0.0.0: resolution: {integrity: sha512-1XGObUh7RN5b58vKuAsrlfqT+Rc4vmw8N4pP9gFCq1GFlTdV0Ex/D2Ro1Drvrqj++HPi3ig0Np17XPslELeMRA==} @@ -3352,25 +3029,6 @@ packages: loose-envify: 1.4.0 dev: false - /read-pkg-up/7.0.1: - resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} - engines: {node: '>=8'} - dependencies: - find-up: 4.1.0 - read-pkg: 5.2.0 - type-fest: 0.8.1 - dev: true - - /read-pkg/5.2.0: - resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} - engines: {node: '>=8'} - dependencies: - '@types/normalize-package-data': 2.4.1 - normalize-package-data: 2.5.0 - parse-json: 5.2.0 - type-fest: 0.6.0 - dev: true - /readable-stream/2.3.7: resolution: {integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==} dependencies: @@ -3407,20 +3065,23 @@ packages: /regexpp/3.2.0: resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} engines: {node: '>=8'} + dev: false /require-directory/2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} dev: true - /require-from-string/2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} - dev: true - /resolve-from/4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} + dev: false + + /resolve-protobuf-schema/2.1.0: + resolution: {integrity: sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==} + dependencies: + protocol-buffers-schema: 3.6.0 + dev: false /resolve/1.22.1: resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} @@ -3439,17 +3100,10 @@ packages: supports-preserve-symlinks-flag: 1.0.0 dev: false - /restore-cursor/3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} - engines: {node: '>=8'} - dependencies: - onetime: 5.1.2 - signal-exit: 3.0.7 - dev: true - /reusify/1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: false /rfc4648/1.5.2: resolution: {integrity: sha512-tLOizhR6YGovrEBLatX1sdcuhoSCXddw3mqNVAcKxGJ+J0hFeJ+SjeWCv5UPA/WU3YzWPPuCVYgXBKZUPGpKtg==} @@ -3460,17 +3114,7 @@ packages: hasBin: true dependencies: glob: 7.2.3 - - /rollup-plugin-external-globals/0.6.1: - resolution: {integrity: sha512-mlp3KNa5sE4Sp9UUR2rjBrxjG79OyZAh/QC18RHIjM+iYkbBwNXSo8DHRMZWtzJTrH8GxQ+SJvCTN3i14uMXIA==} - peerDependencies: - rollup: ^2.25.0 - dependencies: - '@rollup/pluginutils': 4.2.1 - estree-walker: 2.0.2 - is-reference: 1.2.1 - magic-string: 0.25.9 - dev: true + dev: false /rollup-plugin-visualizer/5.7.1: resolution: {integrity: sha512-E/IgOMnmXKlc6ICyf53ok1b6DxPeNVUs3R0kYYPuDpGfofT4bkiG+KtSMlGjMACFmfwbbqTVDZBIF7sMZVKJbA==} @@ -3491,11 +3135,13 @@ packages: hasBin: true optionalDependencies: fsevents: 2.3.2 + dev: true /run-parallel/1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: queue-microtask: 1.2.3 + dev: false /safe-buffer/5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} @@ -3515,11 +3161,6 @@ packages: loose-envify: 1.4.0 dev: false - /semver/5.7.1: - resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} - hasBin: true - dev: true - /semver/6.3.0: resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} hasBin: true @@ -3530,6 +3171,7 @@ packages: hasBin: true dependencies: lru-cache: 6.0.0 + dev: false /serialport/10.4.0: resolution: {integrity: sha512-PszPM5SnFMgSXom60PkKS2A9nMlNbHkuoyRBlzdSWw9rmgOn258+V0dYbWMrETJMM+TJV32vqBzjg5MmmUMwMw==} @@ -3562,10 +3204,12 @@ packages: engines: {node: '>=8'} dependencies: shebang-regex: 3.0.0 + dev: false /shebang-regex/3.0.0: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} + dev: false /side-channel/1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} @@ -3574,26 +3218,6 @@ packages: get-intrinsic: 1.1.2 object-inspect: 1.12.2 - /signal-exit/3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - dev: true - - /simple-git/3.12.0: - resolution: {integrity: sha512-cy1RSRFHGZSrlYa3MnUuNVOXLUdifEZD2X8+AZjg8mKCdRvtCFSga6acq5N2g0ggb8lH3jBi369MrFZ+Y6sfsA==} - dependencies: - '@kwsites/file-exists': 1.1.1 - '@kwsites/promise-deferred': 1.1.1 - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - dev: true - - /simple-swizzle/0.2.2: - resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} - dependencies: - is-arrayish: 0.3.2 - dev: false - /simple-zstd/1.4.0: resolution: {integrity: sha512-9zBNnu7MkwRiZm7voFUX7ehCcLO2d1FmJ2RWEVsN8Exw2tVYK9k/0/8WjPUmSmtoHOyoFTkHHaOLuPSwkgFmrA==} dependencies: @@ -3606,27 +3230,12 @@ packages: /slash/3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} - - /slice-ansi/4.0.0: - resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} - engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - astral-regex: 2.0.0 - is-fullwidth-code-point: 3.0.0 - dev: true - - /snarkdown/2.0.0: - resolution: {integrity: sha512-MgL/7k/AZdXCTJiNgrO7chgDqaB9FGM/1Tvlcenenb7div6obaDATzs16JhFyHHBGodHT3B7RzRc5qk8pFhg3A==} - dev: false - - /sortablejs/1.15.0: - resolution: {integrity: sha512-bv9qgVMjUMf89wAvM6AxVvS/4MX3sPeN0+agqShejLU5z5GX4C75ow1O2e5k4L6XItUyAK3gH6AxSbXrOM5e8w==} dev: false /source-map-js/1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} + dev: true /source-map/0.7.4: resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} @@ -3637,32 +3246,6 @@ packages: resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} dev: true - /spdx-correct/3.1.1: - resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} - dependencies: - spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.11 - dev: true - - /spdx-exceptions/2.3.0: - resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} - dev: true - - /spdx-expression-parse/3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} - dependencies: - spdx-exceptions: 2.3.0 - spdx-license-ids: 3.0.11 - dev: true - - /spdx-license-ids/3.0.11: - resolution: {integrity: sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==} - dev: true - - /sprintf-js/1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - dev: true - /stream-shift/1.0.1: resolution: {integrity: sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==} dev: true @@ -3729,12 +3312,19 @@ packages: /strip-json-comments/3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} + dev: false /sub-events/1.8.9: resolution: {integrity: sha512-RhhA2amqVzL6nO+aiZOqxBCgcA3ZLfp4W9iHFUELwq8132TS7pUReJV+bcRjtNKdqm/Ep1sD/h01eAcTBtgrBQ==} engines: {node: '>=10.0.0'} dev: false + /supercluster/7.1.5: + resolution: {integrity: sha512-EulshI3pGUM66o6ZdH3ReiFcvHpM3vAigyK+vcxdjpJyEbIIrtbmBdY23mGgnI24uXiGFvrGq9Gkum/8U7vJWg==} + dependencies: + kdbush: 3.0.0 + dev: false + /supports-color/5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -3747,34 +3337,12 @@ packages: engines: {node: '>=8'} dependencies: has-flag: 4.0.0 + dev: false /supports-preserve-symlinks-flag/1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - /swr/1.3.0_react@18.2.0: - resolution: {integrity: sha512-dkghQrOl2ORX9HYrMDtPa7LTVHJjCTeZoB1dqTbnnEDlSvN8JEKpYIYurDfvbQFUUS8Cg8PceFVZNkW0KNNYPw==} - peerDependencies: - react: ^16.11.0 || ^17.0.0 || ^18.0.0 - dependencies: - react: 18.2.0 - dev: false - - /tabbable/5.3.3: - resolution: {integrity: sha512-QD9qKY3StfbZqWOPLp0++pOrAVb/HbUi5xCc8cUo4XjP19808oaMiDzn0leBY5mCespIBM0CIZePzZjgzR83kA==} - dev: false - - /table/6.8.0: - resolution: {integrity: sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==} - engines: {node: '>=10.0.0'} - dependencies: - ajv: 8.11.0 - lodash.truncate: 4.4.2 - slice-ansi: 4.0.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - dev: true - /tar/6.1.11: resolution: {integrity: sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==} engines: {node: '>= 10'} @@ -3795,13 +3363,9 @@ packages: uuid: 2.0.3 dev: true - /term-size/2.2.1: - resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} - engines: {node: '>=8'} - dev: true - /text-table/0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + dev: false /through/2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} @@ -3824,6 +3388,10 @@ packages: resolution: {integrity: sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==} dev: false + /tinyqueue/2.0.3: + resolution: {integrity: sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA==} + dev: false + /to-fast-properties/2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} @@ -3834,6 +3402,7 @@ packages: engines: {node: '>=8.0'} dependencies: is-number: 7.0.0 + dev: false /tsconfig-paths/3.14.1: resolution: {integrity: sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==} @@ -3846,6 +3415,7 @@ packages: /tslib/1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + dev: false /tslib/2.4.0: resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} @@ -3859,26 +3429,19 @@ packages: dependencies: tslib: 1.14.1 typescript: 4.7.4 + dev: false /type-check/0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.2.1 + dev: false /type-fest/0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} - - /type-fest/0.6.0: - resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} - engines: {node: '>=8'} - dev: true - - /type-fest/0.8.1: - resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} - engines: {node: '>=8'} - dev: true + dev: false /typescript/4.7.4: resolution: {integrity: sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==} @@ -3909,31 +3472,6 @@ packages: has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 - /unimported/1.21.0: - resolution: {integrity: sha512-E/29LYJBLtP1UlZOanTUh3YAswBRtxGBK3z8lp3RepASllTny8q0NnWG5X0dDYBVQ6k0SxhVz9fAmGt1bQn+ag==} - engines: {node: '>=14.0.0'} - hasBin: true - dependencies: - '@typescript-eslint/parser': 5.33.1_hxadhbs2xogijvk7vq4t2azzbu - '@typescript-eslint/typescript-estree': 5.33.1_typescript@4.7.4 - chalk: 4.1.2 - debug: 4.3.4 - eslint: 7.32.0 - file-entry-cache: 6.0.1 - flow-remove-types: 2.156.0 - glob: 7.2.3 - json5: 2.2.1 - ora: 5.4.1 - read-pkg-up: 7.0.1 - resolve: 1.22.1 - simple-git: 3.12.0 - term-size: 2.2.1 - typescript: 4.7.4 - yargs: 16.2.0 - transitivePeerDependencies: - - supports-color - dev: true - /update-browserslist-db/1.0.5_browserslist@4.21.3: resolution: {integrity: sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==} hasBin: true @@ -3949,6 +3487,7 @@ packages: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: punycode: 2.1.1 + dev: false /use-sync-external-store/1.2.0_react@18.2.0: resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} @@ -3974,37 +3513,23 @@ packages: /v8-compile-cache/2.3.0: resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} - - /validate-npm-package-license/3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} - dependencies: - spdx-correct: 3.1.1 - spdx-expression-parse: 3.0.1 - dev: true + dev: false /validator/13.7.0: resolution: {integrity: sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==} engines: {node: '>= 0.10'} dev: false - /vite-plugin-cdn-import/0.3.5: - resolution: {integrity: sha512-e1raoalfBiIhv+hnMeSp1UNjloDDBhHpeFxkwRRdPBmTdDRqdEEn8owUmT5u8UBSVCs4xN3n/od4a91vXEhXPQ==} - dependencies: - rollup-plugin-external-globals: 0.6.1 - transitivePeerDependencies: - - rollup - dev: true - - /vite-plugin-environment/1.1.2_vite@3.0.7: + /vite-plugin-environment/1.1.2_vite@3.0.8: resolution: {integrity: sha512-WFgM/ibceOEIuficZVaLcmJvcMZiyTkGzeS8+pzfByGYRdewqil7LSLDV1DwJfFQIx/YzcW9YRSWQG7cJ2XT1w==} peerDependencies: vite: '>= 2.7' dependencies: - vite: 3.0.7 - dev: false + vite: 3.0.8 + dev: true - /vite/3.0.7: - resolution: {integrity: sha512-dILhvKba1mbP1wCezVQx/qhEK7/+jVn9ciadEcyKMMhZpsuAi/eWZfJRMkmYlkSFG7Qq9NvJbgFq4XOBxugJsA==} + /vite/3.0.8: + resolution: {integrity: sha512-AOZ4eN7mrkJiOLuw8IA7piS4IdOQyQCA81GxGsAQvAZzMRi9ZwGB3TOaYsj4uLAWK46T5L4AfQ6InNGlxX30IQ==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: @@ -4028,16 +3553,15 @@ packages: rollup: 2.77.3 optionalDependencies: fsevents: 2.3.2 - - /vlq/0.2.3: - resolution: {integrity: sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==} dev: true - /wcwidth/1.0.1: - resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + /vt-pbf/3.1.3: + resolution: {integrity: sha512-2LzDFzt0mZKZ9IpVF2r69G9bXaP2Q2sArJCmcCgvfTdCCZzSyz4aCLoQyUilu37Ll56tCblIZrXFIjNUpGIlmA==} dependencies: - defaults: 1.0.3 - dev: true + '@mapbox/point-geometry': 0.1.0 + '@mapbox/vector-tile': 1.3.1 + pbf: 3.2.1 + dev: false /whatwg-fetch/3.6.2: resolution: {integrity: sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==} @@ -4079,10 +3603,12 @@ packages: hasBin: true dependencies: isexe: 2.0.0 + dev: false /word-wrap/1.2.3: resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} engines: {node: '>=0.10.0'} + dev: false /wrap-ansi/7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} @@ -4096,15 +3622,6 @@ packages: /wrappy/1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - /xss/1.0.13: - resolution: {integrity: sha512-clu7dxTm1e8Mo5fz3n/oW3UCXBfV89xZ72jM8yzo1vR/pIS0w3sgB3XV2H8Vm6zfGnHL0FzvLJPJEBhd86/z4Q==} - engines: {node: '>= 0.10.0'} - hasBin: true - dependencies: - commander: 2.20.3 - cssfilter: 0.0.10 - dev: false - /xtend/4.0.2: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} @@ -4118,29 +3635,11 @@ packages: /yallist/4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - /yargs-parser/20.2.9: - resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} - engines: {node: '>=10'} - dev: true - /yargs-parser/21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} dev: true - /yargs/16.2.0: - resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} - engines: {node: '>=10'} - dependencies: - cliui: 7.0.4 - escalade: 3.1.1 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 20.2.9 - dev: true - /yargs/17.5.1: resolution: {integrity: sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==} engines: {node: '>=12'} @@ -4159,8 +3658,8 @@ packages: engines: {node: '>=10'} dev: false - /zustand/4.0.0_immer@9.0.15+react@18.2.0: - resolution: {integrity: sha512-OrsfQTnRXF1LZ9/vR/IqN9ws5EXUhb149xmPjErZnUrkgxS/gAHGy2dPNIVkVvoxrVe1sIydn4JjF0dYHmGeeQ==} + /zustand/4.1.0_immer@9.0.15+react@18.2.0: + resolution: {integrity: sha512-ba39yDM90wFHiCO5AuoP2Tr1vSY5Eggduk0ou91mWL/qKnz2sBq8AcdFoticOftt7AfIHRBENI7WfjkUrqB3vA==} engines: {node: '>=12.7.0'} peerDependencies: immer: '>=9.0' diff --git a/src/DeviceWrapper.tsx b/src/DeviceWrapper.tsx index dbeaaa60..931a2af8 100644 --- a/src/DeviceWrapper.tsx +++ b/src/DeviceWrapper.tsx @@ -1,6 +1,7 @@ import type React from "react"; -import { Device, DeviceContext } from "./core/stores/deviceStore.js"; +import { DeviceContext } from "./core/providers/useDevice.js"; +import type { Device } from "./core/stores/deviceStore.js"; export interface DeviceProps { children: React.ReactNode; diff --git a/src/PageRouter.tsx b/src/PageRouter.tsx index 7b37fec0..36e55db6 100644 --- a/src/PageRouter.tsx +++ b/src/PageRouter.tsx @@ -1,10 +1,12 @@ import type React from "react"; -import { useDevice } from "./core/stores/deviceStore.js"; +import { useDevice } from "@core/providers/useDevice.js"; + import { ChannelsPage } from "./pages/Channels/index.js"; import { ConfigPage } from "./pages/Config/index.js"; import { ExtensionsPage } from "./pages/Extensions/Index.js"; import { InfoPage } from "./pages/Info/index.js"; +import { MapPage } from "./pages/Map/index.js"; import { MessagesPage } from "./pages/Messages/index.js"; export const PageRouter = (): JSX.Element => { @@ -12,7 +14,7 @@ export const PageRouter = (): JSX.Element => { return ( <> {activePage === "messages" && } - {/* {activePage === "map" && } */} + {activePage === "map" && } {activePage === "extensions" && } {activePage === "config" && } {activePage === "channels" && } diff --git a/src/components/Dialog/PeersDialog.tsx b/src/components/Dialog/PeersDialog.tsx index 632e68e3..a4b9cfc1 100644 --- a/src/components/Dialog/PeersDialog.tsx +++ b/src/components/Dialog/PeersDialog.tsx @@ -11,8 +11,8 @@ import { Tooltip, } from "evergreen-ui"; -import { useDevice } from "@app/core/stores/deviceStore.js"; import { toMGRS } from "@app/core/utils/toMGRS.js"; +import { useDevice } from "@core/providers/useDevice.js"; import { Hashicon } from "@emeraldpay/hashicon-react"; import { Protobuf } from "@meshtastic/meshtasticjs"; diff --git a/src/components/PageComponents/Config/Bluetooth.tsx b/src/components/PageComponents/Config/Bluetooth.tsx new file mode 100644 index 00000000..e7c766c2 --- /dev/null +++ b/src/components/PageComponents/Config/Bluetooth.tsx @@ -0,0 +1,100 @@ +import type React from "react"; +import { useEffect, useState } from "react"; + +import { FormField, SelectField, Switch, TextInputField } from "evergreen-ui"; +import { Controller, useForm, useWatch } from "react-hook-form"; + +import { BluetoothValidation } from "@app/validation/config/bluetooth.js"; +import { Form } from "@components/form/Form"; +import { useDevice } from "@core/providers/useDevice.js"; +import { renderOptions } from "@core/utils/selectEnumOptions.js"; +import { classValidatorResolver } from "@hookform/resolvers/class-validator"; +import { Protobuf } from "@meshtastic/meshtasticjs"; + +export const Bluetooth = (): JSX.Element => { + const { config, connection } = useDevice(); + const [loading, setLoading] = useState(false); + + const { + register, + handleSubmit, + formState: { errors, isDirty }, + control, + reset, + } = useForm({ + defaultValues: config.bluetooth, + resolver: classValidatorResolver(BluetoothValidation), + }); + + useEffect(() => { + reset(config.bluetooth); + }, [reset, config.bluetooth]); + + const onSubmit = handleSubmit((data) => { + setLoading(true); + void connection?.setConfig( + { + payloadVariant: { + oneofKind: "bluetooth", + bluetooth: data, + }, + }, + async () => { + reset({ ...data }); + setLoading(false); + await Promise.resolve(); + } + ); + }); + + const pairingMode = useWatch({ + control, + name: "mode", + defaultValue: Protobuf.Config_BluetoothConfig_PairingMode.RandomPin, + }); + + return ( +
+ + ( + + )} + /> + + + + {renderOptions(Protobuf.Config_BluetoothConfig_PairingMode)} + + + + + ); +}; diff --git a/src/components/PageComponents/Config/Device.tsx b/src/components/PageComponents/Config/Device.tsx index 56938ef5..87722fcd 100644 --- a/src/components/PageComponents/Config/Device.tsx +++ b/src/components/PageComponents/Config/Device.tsx @@ -12,7 +12,7 @@ import { Controller, useForm } from "react-hook-form"; import { DeviceValidation } from "@app/validation/config/device.js"; import { Form } from "@components/form/Form"; -import { useDevice } from "@core/stores/deviceStore.js"; +import { useDevice } from "@core/providers/useDevice.js"; import { renderOptions } from "@core/utils/selectEnumOptions.js"; import { classValidatorResolver } from "@hookform/resolvers/class-validator"; import { Protobuf } from "@meshtastic/meshtasticjs"; diff --git a/src/components/PageComponents/Config/Display.tsx b/src/components/PageComponents/Config/Display.tsx index bcc8a0d1..411c765a 100644 --- a/src/components/PageComponents/Config/Display.tsx +++ b/src/components/PageComponents/Config/Display.tsx @@ -6,7 +6,7 @@ import { Controller, useForm } from "react-hook-form"; import { DisplayValidation } from "@app/validation/config/display.js"; import { Form } from "@components/form/Form"; -import { useDevice } from "@core/stores/deviceStore.js"; +import { useDevice } from "@core/providers/useDevice.js"; import { renderOptions } from "@core/utils/selectEnumOptions.js"; import { classValidatorResolver } from "@hookform/resolvers/class-validator"; import { Protobuf } from "@meshtastic/meshtasticjs"; diff --git a/src/components/PageComponents/Config/LoRa.tsx b/src/components/PageComponents/Config/LoRa.tsx index 2f881977..7a4c098f 100644 --- a/src/components/PageComponents/Config/LoRa.tsx +++ b/src/components/PageComponents/Config/LoRa.tsx @@ -6,7 +6,7 @@ import { Controller, useForm } from "react-hook-form"; import { LoRaValidation } from "@app/validation/config/lora.js"; import { Form } from "@components/form/Form"; -import { useDevice } from "@core/stores/deviceStore.js"; +import { useDevice } from "@core/providers/useDevice.js"; import { renderOptions } from "@core/utils/selectEnumOptions.js"; import { classValidatorResolver } from "@hookform/resolvers/class-validator"; import { Protobuf } from "@meshtastic/meshtasticjs"; diff --git a/src/components/PageComponents/Config/Position.tsx b/src/components/PageComponents/Config/Position.tsx index 9d0fdac0..76ffbaf8 100644 --- a/src/components/PageComponents/Config/Position.tsx +++ b/src/components/PageComponents/Config/Position.tsx @@ -12,7 +12,7 @@ import { Controller, useForm } from "react-hook-form"; import { PositionValidation } from "@app/validation/config/position.js"; import { Form } from "@components/form/Form"; -import { useDevice } from "@core/stores/deviceStore.js"; +import { useDevice } from "@core/providers/useDevice.js"; import { bitwiseDecode } from "@core/utils/bitwise"; import { classValidatorResolver } from "@hookform/resolvers/class-validator"; import { Protobuf } from "@meshtastic/meshtasticjs"; diff --git a/src/components/PageComponents/Config/Power.tsx b/src/components/PageComponents/Config/Power.tsx index ade1b7e0..edf33334 100644 --- a/src/components/PageComponents/Config/Power.tsx +++ b/src/components/PageComponents/Config/Power.tsx @@ -6,7 +6,7 @@ import { Controller, useForm } from "react-hook-form"; import { PowerValidation } from "@app/validation/config/power.js"; import { Form } from "@components/form/Form"; -import { useDevice } from "@core/stores/deviceStore.js"; +import { useDevice } from "@core/providers/useDevice.js"; import { renderOptions } from "@core/utils/selectEnumOptions.js"; import { classValidatorResolver } from "@hookform/resolvers/class-validator"; import { Protobuf } from "@meshtastic/meshtasticjs"; diff --git a/src/components/PageComponents/Config/User.tsx b/src/components/PageComponents/Config/User.tsx index 2d22bebe..4346f19e 100644 --- a/src/components/PageComponents/Config/User.tsx +++ b/src/components/PageComponents/Config/User.tsx @@ -7,7 +7,7 @@ import { base16 } from "rfc4648"; import { UserValidation } from "@app/validation/config/user.js"; import { Form } from "@components/form/Form"; -import { useDevice } from "@core/stores/deviceStore.js"; +import { useDevice } from "@core/providers/useDevice.js"; import { renderOptions } from "@core/utils/selectEnumOptions.js"; import { classValidatorResolver } from "@hookform/resolvers/class-validator"; import { Protobuf } from "@meshtastic/meshtasticjs"; diff --git a/src/components/PageComponents/Config/WiFi.tsx b/src/components/PageComponents/Config/WiFi.tsx index f3379cdd..8fd92f8a 100644 --- a/src/components/PageComponents/Config/WiFi.tsx +++ b/src/components/PageComponents/Config/WiFi.tsx @@ -13,7 +13,7 @@ import { Controller, useForm, useWatch } from "react-hook-form"; import { renderOptions } from "@app/core/utils/selectEnumOptions.js"; import { WiFiValidation } from "@app/validation/config/wifi.js"; import { Form } from "@components/form/Form"; -import { useDevice } from "@core/stores/deviceStore.js"; +import { useDevice } from "@core/providers/useDevice.js"; import { classValidatorResolver } from "@hookform/resolvers/class-validator"; import { Protobuf } from "@meshtastic/meshtasticjs"; diff --git a/src/components/PageComponents/ModuleConfig/CannedMessage.tsx b/src/components/PageComponents/ModuleConfig/CannedMessage.tsx index 7e7c25dc..4cacf614 100644 --- a/src/components/PageComponents/ModuleConfig/CannedMessage.tsx +++ b/src/components/PageComponents/ModuleConfig/CannedMessage.tsx @@ -6,7 +6,7 @@ import { Controller, useForm, useWatch } from "react-hook-form"; import { CannedMessageValidation } from "@app/validation/moduleConfig/cannedMessage.js"; import { Form } from "@components/form/Form"; -import { useDevice } from "@core/stores/deviceStore.js"; +import { useDevice } from "@core/providers/useDevice.js"; import { renderOptions } from "@core/utils/selectEnumOptions.js"; import { classValidatorResolver } from "@hookform/resolvers/class-validator"; import { Protobuf } from "@meshtastic/meshtasticjs"; diff --git a/src/components/PageComponents/ModuleConfig/ExternalNotification.tsx b/src/components/PageComponents/ModuleConfig/ExternalNotification.tsx index 3a691e23..6209e982 100644 --- a/src/components/PageComponents/ModuleConfig/ExternalNotification.tsx +++ b/src/components/PageComponents/ModuleConfig/ExternalNotification.tsx @@ -6,7 +6,7 @@ import { Controller, useForm, useWatch } from "react-hook-form"; import { ExternalNotificationValidation } from "@app/validation/moduleConfig/externalNotification.js"; import { Form } from "@components/form/Form"; -import { useDevice } from "@core/stores/deviceStore.js"; +import { useDevice } from "@core/providers/useDevice.js"; import { classValidatorResolver } from "@hookform/resolvers/class-validator"; export const ExternalNotification = (): JSX.Element => { diff --git a/src/components/PageComponents/ModuleConfig/MQTT.tsx b/src/components/PageComponents/ModuleConfig/MQTT.tsx index 00c7a957..46cab002 100644 --- a/src/components/PageComponents/ModuleConfig/MQTT.tsx +++ b/src/components/PageComponents/ModuleConfig/MQTT.tsx @@ -6,7 +6,7 @@ import { Controller, useForm, useWatch } from "react-hook-form"; import { MQTTValidation } from "@app/validation/moduleConfig/mqtt.js"; import { Form } from "@components/form/Form"; -import { useDevice } from "@core/stores/deviceStore.js"; +import { useDevice } from "@core/providers/useDevice.js"; import { classValidatorResolver } from "@hookform/resolvers/class-validator"; export const MQTT = (): JSX.Element => { diff --git a/src/components/PageComponents/ModuleConfig/RangeTest.tsx b/src/components/PageComponents/ModuleConfig/RangeTest.tsx index ee80cace..2a452763 100644 --- a/src/components/PageComponents/ModuleConfig/RangeTest.tsx +++ b/src/components/PageComponents/ModuleConfig/RangeTest.tsx @@ -6,7 +6,7 @@ import { Controller, useForm, useWatch } from "react-hook-form"; import { RangeTestValidation } from "@app/validation/moduleConfig/rangeTest.js"; import { Form } from "@components/form/Form"; -import { useDevice } from "@core/stores/deviceStore.js"; +import { useDevice } from "@core/providers/useDevice.js"; import { classValidatorResolver } from "@hookform/resolvers/class-validator"; export const RangeTest = (): JSX.Element => { diff --git a/src/components/PageComponents/ModuleConfig/Serial.tsx b/src/components/PageComponents/ModuleConfig/Serial.tsx index 5b644ace..39e7691d 100644 --- a/src/components/PageComponents/ModuleConfig/Serial.tsx +++ b/src/components/PageComponents/ModuleConfig/Serial.tsx @@ -6,7 +6,7 @@ import { Controller, useForm, useWatch } from "react-hook-form"; import { SerialValidation } from "@app/validation/moduleConfig/serial.js"; import { Form } from "@components/form/Form"; -import { useDevice } from "@core/stores/deviceStore.js"; +import { useDevice } from "@core/providers/useDevice.js"; import { classValidatorResolver } from "@hookform/resolvers/class-validator"; export const Serial = (): JSX.Element => { diff --git a/src/components/PageComponents/ModuleConfig/StoreForward.tsx b/src/components/PageComponents/ModuleConfig/StoreForward.tsx index 6685024e..3f16fe1e 100644 --- a/src/components/PageComponents/ModuleConfig/StoreForward.tsx +++ b/src/components/PageComponents/ModuleConfig/StoreForward.tsx @@ -6,7 +6,7 @@ import { Controller, useForm, useWatch } from "react-hook-form"; import { StoreForwardValidation } from "@app/validation/moduleConfig/storeForward.js"; import { Form } from "@components/form/Form"; -import { useDevice } from "@core/stores/deviceStore.js"; +import { useDevice } from "@core/providers/useDevice.js"; import { classValidatorResolver } from "@hookform/resolvers/class-validator"; export const StoreForward = (): JSX.Element => { diff --git a/src/components/PageComponents/ModuleConfig/Telemetry.tsx b/src/components/PageComponents/ModuleConfig/Telemetry.tsx index a7a1b489..02c129f2 100644 --- a/src/components/PageComponents/ModuleConfig/Telemetry.tsx +++ b/src/components/PageComponents/ModuleConfig/Telemetry.tsx @@ -6,7 +6,7 @@ import { Controller, useForm } from "react-hook-form"; import { TelemetryValidation } from "@app/validation/moduleConfig/telemetry.js"; import { Form } from "@components/form/Form"; -import { useDevice } from "@core/stores/deviceStore.js"; +import { useDevice } from "@core/providers/useDevice.js"; import { classValidatorResolver } from "@hookform/resolvers/class-validator"; export const Telemetry = (): JSX.Element => { diff --git a/src/components/Progress.tsx b/src/components/Progress.tsx index f3de555a..377603f6 100644 --- a/src/components/Progress.tsx +++ b/src/components/Progress.tsx @@ -9,7 +9,7 @@ import { StatusIndicator, } from "evergreen-ui"; -import { useDevice } from "@app/core/stores/deviceStore.js"; +import { useDevice } from "@core/providers/useDevice.js"; export const Progress = (): JSX.Element => { const { diff --git a/src/components/SlideSheets/PeerInfo.tsx b/src/components/SlideSheets/PeerInfo.tsx index bb65cdca..f5ab0984 100644 --- a/src/components/SlideSheets/PeerInfo.tsx +++ b/src/components/SlideSheets/PeerInfo.tsx @@ -3,7 +3,8 @@ import { useEffect, useState } from "react"; import { GeolocationIcon, Pane, PropertyIcon, SideSheet } from "evergreen-ui"; -import { Node, useDevice } from "@app/core/stores/deviceStore.js"; +import { useDevice } from "@core/providers/useDevice.js"; +import type { Node } from "@core/stores/deviceStore.js"; import { Hashicon } from "@emeraldpay/hashicon-react"; import { Protobuf } from "@meshtastic/meshtasticjs"; @@ -14,7 +15,6 @@ import { Overview } from "./tabs/nodes/Overview.js"; export const PeerInfo = () => { const { peerInfoOpen, activePeer, setPeerInfoOpen, nodes } = useDevice(); - const [selectedTab, setSelectedTab] = useState(0); const [node, setNode] = useState(); useEffect(() => { diff --git a/src/components/form/Form.tsx b/src/components/form/Form.tsx index cdc80167..d24df160 100644 --- a/src/components/form/Form.tsx +++ b/src/components/form/Form.tsx @@ -1,8 +1,7 @@ import type React from "react"; import type { HTMLProps } from "react"; -import { Button, majorScale, Pane, Spinner } from "evergreen-ui"; -import { FiSave } from "react-icons/fi"; +import { Button, majorScale, Pane, SavedIcon, Spinner } from "evergreen-ui"; export interface FormProps extends HTMLProps { onSubmit: (event: React.FormEvent) => Promise; @@ -39,7 +38,7 @@ export const Form = ({ type="submit" marginLeft="auto" disabled={!dirty} - iconBefore={} + iconBefore={} > Save diff --git a/src/components/layout/Sidebar/DeviceCard.tsx b/src/components/layout/Sidebar/DeviceCard.tsx index debde3e9..406d21dd 100644 --- a/src/components/layout/Sidebar/DeviceCard.tsx +++ b/src/components/layout/Sidebar/DeviceCard.tsx @@ -11,7 +11,7 @@ import { import { FiBluetooth, FiTerminal, FiWifi } from "react-icons/fi"; import { toMGRS } from "@app/core/utils/toMGRS.js"; -import { useDevice } from "@core/stores/deviceStore.js"; +import { useDevice } from "@core/providers/useDevice.js"; import { Hashicon } from "@emeraldpay/hashicon-react"; import { Types } from "@meshtastic/meshtasticjs"; @@ -33,7 +33,7 @@ export const DeviceCard = (): JSX.Element => { {myNode?.data.user?.longName} { name: "Map", icon: GlobeIcon, page: "map", - disabled: true, }, { name: "Extensions", diff --git a/src/core/providers/useCreateMapbox.ts b/src/core/providers/useCreateMapbox.ts new file mode 100644 index 00000000..d4c4a180 --- /dev/null +++ b/src/core/providers/useCreateMapbox.ts @@ -0,0 +1,32 @@ +import type React from "react"; +import { useEffect, useState } from "react"; + +import { Map, MapOptions } from "maplibre-gl"; + +export interface useMapboxProps { + ref: React.RefObject; + style: string; + options?: Partial; +} + +export function useCreateMapbox({ + ref, + style, + options, +}: useMapboxProps): Map | undefined { + const [mapInstance, setMapInstance] = useState(); + useEffect(() => { + const container = ref.current as HTMLDivElement; + if (mapInstance || !container) { + return; + } + const map = new Map({ + container, + style, + ...options, + }); + setMapInstance(map); + }, []); + + return mapInstance; +} diff --git a/src/core/providers/useDevice.ts b/src/core/providers/useDevice.ts new file mode 100644 index 00000000..0f6f4944 --- /dev/null +++ b/src/core/providers/useDevice.ts @@ -0,0 +1,13 @@ +import { createContext, useContext } from "react"; + +import type { Device } from "../stores/deviceStore.js"; + +export const DeviceContext = createContext(undefined); + +export const useDevice = (): Device => { + const context = useContext(DeviceContext); + if (context === undefined) { + throw new Error("useDevice must be used within a ConnectionProvider"); + } + return context; +}; diff --git a/src/core/providers/useMap.ts b/src/core/providers/useMap.ts new file mode 100644 index 00000000..a03703ac --- /dev/null +++ b/src/core/providers/useMap.ts @@ -0,0 +1,14 @@ +import { createContext, useContext } from "react"; + +import type { Map } from "maplibre-gl"; + +export interface MapContextValue { + ref: React.Ref; + map?: Map; +} + +export const MapContext = createContext({} as MapContextValue); + +export const useMap = (): MapContextValue => { + return useContext(MapContext); +}; diff --git a/src/core/utils/fetcher.ts b/src/core/utils/fetcher.ts deleted file mode 100644 index 1d9cc688..00000000 --- a/src/core/utils/fetcher.ts +++ /dev/null @@ -1,7 +0,0 @@ -export const fetcher = async ( - input: RequestInfo, - init?: RequestInit -): Promise => { - const res = await fetch(input, init); - return res.json() as Promise; -}; diff --git a/src/index.tsx b/src/index.tsx index 6f753990..24ed24ea 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -1,4 +1,5 @@ import "modern-css-reset/dist/reset.min.css"; +import "maplibre-gl/dist/maplibre-gl.css"; import type React from "react"; import { StrictMode } from "react"; diff --git a/src/pages/Channels/Channel.tsx b/src/pages/Channels/Channel.tsx index 754c50c8..796e6f03 100644 --- a/src/pages/Channels/Channel.tsx +++ b/src/pages/Channels/Channel.tsx @@ -19,7 +19,7 @@ import { import { Controller, useForm } from "react-hook-form"; import { Form } from "@components/form/Form"; -import { useDevice } from "@core/stores/deviceStore.js"; +import { useDevice } from "@core/providers/useDevice.js"; import { Protobuf } from "@meshtastic/meshtasticjs"; export interface SettingsPanelProps { diff --git a/src/pages/Channels/index.tsx b/src/pages/Channels/index.tsx index 13ef8d6b..a4826708 100644 --- a/src/pages/Channels/index.tsx +++ b/src/pages/Channels/index.tsx @@ -6,7 +6,7 @@ import { IoQrCodeOutline } from "react-icons/io5"; import { QRDialog } from "@app/components/Dialog/QRDialog.js"; import { TabbedContent, TabType } from "@components/layout/page/TabbedContent"; -import { useDevice } from "@core/stores/deviceStore.js"; +import { useDevice } from "@core/providers/useDevice.js"; import { Protobuf } from "@meshtastic/meshtasticjs"; import { Channel } from "./Channel.js"; diff --git a/src/pages/Config/DeviceConfig.tsx b/src/pages/Config/DeviceConfig.tsx index 18862b34..dd7c6150 100644 --- a/src/pages/Config/DeviceConfig.tsx +++ b/src/pages/Config/DeviceConfig.tsx @@ -3,7 +3,7 @@ import { useState } from "react"; import { Pane, Tab, Tablist } from "evergreen-ui"; -import { useDevice } from "@app/core/stores/deviceStore.js"; +import { Bluetooth } from "@app/components/PageComponents/Config/Bluetooth.js"; import { Device } from "@components/PageComponents/Config/Device.js"; import { Display } from "@components/PageComponents/Config/Display.js"; import { LoRa } from "@components/PageComponents/Config/LoRa.js"; @@ -11,6 +11,7 @@ import { Position } from "@components/PageComponents/Config/Position.js"; import { Power } from "@components/PageComponents/Config/Power.js"; import { User } from "@components/PageComponents/Config/User.js"; import { WiFi } from "@components/PageComponents/Config/WiFi.js"; +import { useDevice } from "@core/providers/useDevice.js"; export const DeviceConfig = (): JSX.Element => { const [selectedIndex, setSelectedIndex] = useState(0); @@ -46,8 +47,10 @@ export const DeviceConfig = (): JSX.Element => { label: "LoRa", element: LoRa, }, - // Channels - // Interface + { + label: "Bluetooth", + element: Bluetooth, + }, ]; return ( diff --git a/src/pages/Extensions/Environment.tsx b/src/pages/Extensions/Environment.tsx index 5a009b45..171f92f9 100644 --- a/src/pages/Extensions/Environment.tsx +++ b/src/pages/Extensions/Environment.tsx @@ -2,7 +2,7 @@ import type React from "react"; import { Pane } from "evergreen-ui"; -import { useDevice } from "@app/core/stores/deviceStore.js"; +import { useDevice } from "@core/providers/useDevice.js"; export const Environment = (): JSX.Element => { const { nodes } = useDevice(); diff --git a/src/pages/Extensions/FileBrowser.tsx b/src/pages/Extensions/FileBrowser.tsx index d677fb70..e9a7c94d 100644 --- a/src/pages/Extensions/FileBrowser.tsx +++ b/src/pages/Extensions/FileBrowser.tsx @@ -1,9 +1,7 @@ import type React from "react"; +import { useEffect, useState } from "react"; import { Pane } from "evergreen-ui"; -import useSWR from "swr"; - -import { fetcher } from "@core/utils/fetcher"; export interface File { nameModified: string; @@ -24,10 +22,15 @@ export interface Files { } export const FileBrowser = (): JSX.Element => { - const { data } = useSWR( - "http://meshtastic.local/json/fs/browse/static", - fetcher - ); + const [data, setData] = useState(); + + useEffect(() => { + void fetch("http://meshtastic.local/json/fs/browse/static").then( + async (res) => { + setData((await res.json()) as Files); + } + ); + }); return ( diff --git a/src/pages/Extensions/Index.tsx b/src/pages/Extensions/Index.tsx index bb5ebb6a..71d4a665 100644 --- a/src/pages/Extensions/Index.tsx +++ b/src/pages/Extensions/Index.tsx @@ -2,8 +2,8 @@ import type React from "react"; import { DocumentIcon, GanttChartIcon, RainIcon } from "evergreen-ui"; -import { useDevice } from "@app/core/stores/deviceStore.js"; import { TabbedContent, TabType } from "@components/layout/page/TabbedContent"; +import { useDevice } from "@core/providers/useDevice.js"; import { FileBrowser } from "@pages/Extensions/FileBrowser"; import { Environment } from "./Environment.js"; diff --git a/src/pages/Info/index.tsx b/src/pages/Info/index.tsx index 90347a5b..ccf1892d 100644 --- a/src/pages/Info/index.tsx +++ b/src/pages/Info/index.tsx @@ -3,7 +3,7 @@ import type React from "react"; import { Pane } from "evergreen-ui"; import JSONPretty from "react-json-pretty"; -import { useDevice } from "@app/core/stores/deviceStore.js"; +import { useDevice } from "@core/providers/useDevice.js"; export const InfoPage = (): JSX.Element => { const { hardware, nodes } = useDevice(); diff --git a/src/pages/Map/index.tsx b/src/pages/Map/index.tsx index 2f20e0c6..6eb75249 100644 --- a/src/pages/Map/index.tsx +++ b/src/pages/Map/index.tsx @@ -1,137 +1,63 @@ import type React from "react"; import { useEffect, useMemo, useRef } from "react"; -import { Pane } from "evergreen-ui"; +import { majorScale, Pane } from "evergreen-ui"; +import { Marker } from "maplibre-gl"; -import { useDevice } from "@app/core/stores/deviceStore.js"; -import Point from "@arcgis/core/geometry/Point"; -import Graphic from "@arcgis/core/Graphic"; -import FeatureLayer from "@arcgis/core/layers/FeatureLayer"; -import LabelClass from "@arcgis/core/layers/support/LabelClass"; -import Map from "@arcgis/core/Map"; -import LineCallout3D from "@arcgis/core/symbols/callouts/LineCallout3D"; -import LabelSymbol3D from "@arcgis/core/symbols/LabelSymbol3D"; -import TextSymbol3DLayer from "@arcgis/core/symbols/TextSymbol3DLayer"; -import SceneView from "@arcgis/core/views/SceneView"; +import { useCreateMapbox } from "@app/core/providers/useCreateMapbox.js"; +import { useDevice } from "@core/providers/useDevice.js"; export const MapPage = (): JSX.Element => { const { nodes } = useDevice(); - const nodesWithPosition = nodes.filter((node) => node.data.position); + const nodeMarkers = useMemo(() => new Map(), []); + const ref = useRef(null); - useEffect(() => { - console.log(nodesWithPosition); - }, [nodesWithPosition]); - - const labelClass = useMemo( - () => - new LabelClass({ - labelExpressionInfo: { - expression: "$feature.name", - }, - symbol: new LabelSymbol3D({ - symbolLayers: [ - new TextSymbol3DLayer({ - text: "{name}", - material: { - color: "black", - }, - halo: { - color: [255, 255, 255, 0.7], - size: 2, - }, - font: { - size: 12, - weight: "bold", - }, - size: 10, - }), - ], - verticalOffset: { - screenLength: 150, - maxWorldLength: 2000, - minWorldLength: 30, - }, - callout: new LineCallout3D({ - size: 0.5, - color: [0, 0, 0], - border: { - color: [255, 255, 255], - }, - }), - }), - }), - [] - ); - - const points: Graphic[] = nodesWithPosition.map( - (node, index) => - node.data.position - ? new Graphic({ - geometry: new Point({ - latitude: node.data.position.latitudeI / 1e7, - longitude: node.data.position.longitudeI / 1e7, - }), - attributes: { - ObjectID: index, - name: node.data.user?.longName, - }, - }) - : new Graphic() //should be undefined/removed from array - ); + const map = useCreateMapbox({ + ref, + style: + "https://raw.githubusercontent.com/hc-oss/maplibre-gl-styles/master/styles/osm-mapnik/v8/default.json", + }); useEffect(() => { - if (ref.current) { - const layer = new FeatureLayer({ - labelsVisible: true, - labelingInfo: [labelClass], - source: points, - fields: [ - { - name: "ObjectID", - alias: "ObjectID", - type: "oid", - }, - { - name: "name", - alias: "Name", - type: "string", - }, - ], - }); + nodes.map((n) => { + if (n.data.position?.longitudeI && n.data.position?.latitudeI && map) { + if (nodeMarkers.has(n.data.num)) { + nodeMarkers + .get(n.data.num) + ?.setLngLat([ + n.data.position?.longitudeI / 1e7, + n.data.position?.latitudeI / 1e7, + ]); + } else { + nodeMarkers.set( + n.data.num, + new Marker() + .setLngLat([ + n.data.position?.longitudeI / 1e7, + n.data.position?.latitudeI / 1e7, + ]) + .addTo(map) + ); + } + } + }); + }, [map, nodeMarkers, nodes]); - const map = new Map({ - basemap: "satellite", - ground: "world-elevation", - layers: [layer], - }); - - const scene = new SceneView({ - container: ref.current, - map: map, - camera: { - position: nodesWithPosition[0] - ? { - x: nodesWithPosition[0].data.position?.longitudeI ?? 0 / 1e7, - y: nodesWithPosition[0].data.position?.latitudeI ?? 0 / 1e7, - z: nodesWithPosition[0].data.position?.altitude ?? 0 / 1e7, - } - : { - y: -35.59, //Longitude - x: 148, //Latitude - z: 200, //Meters - }, - tilt: 75, - }, - }); - scene.on("click", (event) => { - void scene.hitTest(event).then((point) => { - console.log(point); - }); - }); - } - }, [labelClass, points]); - - return ; + return ( + + + + ); }; diff --git a/src/pages/Messages/ChannelChat.tsx b/src/pages/Messages/ChannelChat.tsx index 966bb943..13c9e01d 100644 --- a/src/pages/Messages/ChannelChat.tsx +++ b/src/pages/Messages/ChannelChat.tsx @@ -12,8 +12,8 @@ import { Tooltip, } from "evergreen-ui"; +import { useDevice } from "@core/providers/useDevice.js"; import type { Channel } from "@core/stores/deviceStore.js"; -import { useDevice } from "@core/stores/deviceStore.js"; import { Message } from "./Message.js"; import { NewLocationMessage } from "./NewLocationMessage.js"; diff --git a/src/pages/Messages/Message.tsx b/src/pages/Messages/Message.tsx index 932ef225..010750ef 100644 --- a/src/pages/Messages/Message.tsx +++ b/src/pages/Messages/Message.tsx @@ -10,7 +10,7 @@ import { Text, } from "evergreen-ui"; -import { useDevice } from "@app/core/stores/deviceStore.js"; +import { useDevice } from "@core/providers/useDevice.js"; import { Hashicon } from "@emeraldpay/hashicon-react"; import type { Protobuf, Types } from "@meshtastic/meshtasticjs"; diff --git a/src/pages/Messages/NewLocationMessage.tsx b/src/pages/Messages/NewLocationMessage.tsx index fabf1c88..62bf7eb8 100644 --- a/src/pages/Messages/NewLocationMessage.tsx +++ b/src/pages/Messages/NewLocationMessage.tsx @@ -8,8 +8,8 @@ import { TextInputField, } from "evergreen-ui"; -import { useDevice } from "@app/core/stores/deviceStore.js"; import { renderOptions } from "@app/core/utils/selectEnumOptions.js"; +import { useDevice } from "@core/providers/useDevice.js"; import { Protobuf } from "@meshtastic/meshtasticjs"; enum LocationType { diff --git a/src/pages/Messages/index.tsx b/src/pages/Messages/index.tsx index 6d56c779..a966b4bd 100644 --- a/src/pages/Messages/index.tsx +++ b/src/pages/Messages/index.tsx @@ -13,7 +13,7 @@ import { TabbedContent, TabType, } from "@components/layout/page/TabbedContent.js"; -import { useDevice } from "@core/stores/deviceStore.js"; +import { useDevice } from "@core/providers/useDevice.js"; import { Protobuf } from "@meshtastic/meshtasticjs"; import { ChannelChat } from "./ChannelChat.js"; diff --git a/src/validation/config/bluetooth.ts b/src/validation/config/bluetooth.ts new file mode 100644 index 00000000..fb8f4dbc --- /dev/null +++ b/src/validation/config/bluetooth.ts @@ -0,0 +1,14 @@ +import { IsBoolean, IsEnum, IsInt } from "class-validator"; + +import { Protobuf } from "@meshtastic/meshtasticjs"; + +export class BluetoothValidation implements Protobuf.Config_BluetoothConfig { + @IsBoolean() + enabled: boolean; + + @IsEnum(Protobuf.Config_BluetoothConfig_PairingMode) + mode: Protobuf.Config_BluetoothConfig_PairingMode; + + @IsInt() + fixedPin: number; +} diff --git a/vite.config.ts b/vite.config.ts index e6ee182d..5095eb7f 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,18 +1,17 @@ -import { execSync } from 'child_process'; -import { resolve } from 'path'; -import { visualizer } from 'rollup-plugin-visualizer'; -import { defineConfig } from 'vite'; -import importToCDN from 'vite-plugin-cdn-import'; -import EnvironmentPlugin from 'vite-plugin-environment'; +import { execSync } from "child_process"; +import { resolve } from "path"; +import { visualizer } from "rollup-plugin-visualizer"; +import { defineConfig } from "vite"; +import EnvironmentPlugin from "vite-plugin-environment"; -import react from '@vitejs/plugin-react'; +import react from "@vitejs/plugin-react"; -let hash = ''; +let hash = ""; try { - hash = execSync('git rev-parse --short HEAD').toString().trim(); + hash = execSync("git rev-parse --short HEAD").toString().trim(); } catch (error) { - hash = 'DEVELOPMENT'; + hash = "DEVELOPMENT"; } export default defineConfig({ @@ -21,69 +20,21 @@ export default defineConfig({ EnvironmentPlugin({ COMMIT_HASH: hash, }), - importToCDN({ - modules: [ - // { - // name: 'mapbox-gl', - // var: 'mapboxgl', - // path: `dist/mapbox-gl.js`, - // }, - // autoComplete('@arcgis/core'), - ], - }), - - // VitePWA({ - // mode: 'production', - - // includeAssets: [ - // 'favicon.svg', - // 'favicon.ico', - // 'robots.txt', - // 'touch-icon.png', - // ], - // manifest: { - // name: 'Meshtastic Web', - // short_name: 'Meshtastic', - // description: 'Meshtastic Web App', - // theme_color: '#67ea94', - // icons: [ - // { - // src: 'android-192.png', - // sizes: '192x192', - // type: 'image/png', - // }, - // { - // src: 'android-512.png', - // sizes: '512x512', - // type: 'image/png', - // }, - // { - // src: 'android-512.png', - // sizes: '512x512', - // type: 'image/png', - // purpose: 'any maskable', - // }, - // ], - // }, - // workbox: { - // sourcemap: true, - // }, - // }), ], build: { - target: 'esnext', - assetsDir: '', + target: "esnext", + assetsDir: "", rollupOptions: { plugins: [visualizer()], }, }, resolve: { alias: { - '@app': resolve(__dirname, './src'), - '@pages': resolve(__dirname, './src/pages'), - '@components': resolve(__dirname, './src/components'), - '@core': resolve(__dirname, './src/core'), - '@layouts': resolve(__dirname, './src/layouts'), + "@app": resolve(__dirname, "./src"), + "@pages": resolve(__dirname, "./src/pages"), + "@components": resolve(__dirname, "./src/components"), + "@core": resolve(__dirname, "./src/core"), + "@layouts": resolve(__dirname, "./src/layouts"), }, }, });