diff --git a/packages/website/package.json b/packages/website/package.json index c57498005..199972992 100644 --- a/packages/website/package.json +++ b/packages/website/package.json @@ -53,6 +53,7 @@ "react-dom": "^16.13.1", "react-dropzone": "^11.0.3", "react-ga4": "^2.1.0", + "react-helmet-async": "^2.0.5", "react-hook-form": "^7.41.5", "react-jwt": "^1.1.8", "react-leaflet": "^2.7.0", diff --git a/packages/website/src/assets/img/helmet/Dashboard.jpg b/packages/website/src/assets/img/helmet/Dashboard.jpg new file mode 100644 index 000000000..2fa83a8d7 Binary files /dev/null and b/packages/website/src/assets/img/helmet/Dashboard.jpg differ diff --git a/packages/website/src/assets/img/helmet/Map.jpg b/packages/website/src/assets/img/helmet/Map.jpg new file mode 100644 index 000000000..d400bc315 Binary files /dev/null and b/packages/website/src/assets/img/helmet/Map.jpg differ diff --git a/packages/website/src/assets/img/helmet/Startpage.jpg b/packages/website/src/assets/img/helmet/Startpage.jpg new file mode 100644 index 000000000..3bf4a14ad Binary files /dev/null and b/packages/website/src/assets/img/helmet/Startpage.jpg differ diff --git a/packages/website/src/assets/img/helmet/Tracker.jpg b/packages/website/src/assets/img/helmet/Tracker.jpg new file mode 100644 index 000000000..61f894ccd Binary files /dev/null and b/packages/website/src/assets/img/helmet/Tracker.jpg differ diff --git a/packages/website/src/index.tsx b/packages/website/src/index.tsx index 2e0b850cf..0e9567942 100644 --- a/packages/website/src/index.tsx +++ b/packages/website/src/index.tsx @@ -9,6 +9,7 @@ import { decodeToken } from 'react-jwt'; import { Provider } from 'react-redux'; import { SnackbarProvider } from 'notistack'; import { getAuth, onAuthStateChanged } from 'firebase/auth'; +import { HelmetProvider } from 'react-helmet-async'; import App from './layout/App'; import { store } from './store/configure'; import * as serviceWorker from './serviceWorker'; @@ -57,7 +58,9 @@ ReactDOM.render( <> - + + + , diff --git a/packages/website/src/routes/About/index.tsx b/packages/website/src/routes/About/index.tsx index 52e6541a9..f1d34b6b3 100644 --- a/packages/website/src/routes/About/index.tsx +++ b/packages/website/src/routes/About/index.tsx @@ -7,10 +7,12 @@ import { CardMedia, } from '@material-ui/core'; import classNames from 'classnames'; +import { Helmet } from 'react-helmet-async'; import NavBar from 'common/NavBar'; import Footer from 'common/Footer'; +import Startpage from '../../assets/img/helmet/Startpage.jpg'; import peter from '../../assets/img/peter.jpg'; import caesar from '../../assets/img/caesar.jpg'; import eric from '../../assets/img/eric.jpg'; @@ -18,6 +20,27 @@ import eric from '../../assets/img/eric.jpg'; const About = ({ classes }: AboutProps) => { return ( <> + + About Us - Aqualink + + + +
diff --git a/packages/website/src/routes/Buoy/index.tsx b/packages/website/src/routes/Buoy/index.tsx index 1925990a3..671a34168 100644 --- a/packages/website/src/routes/Buoy/index.tsx +++ b/packages/website/src/routes/Buoy/index.tsx @@ -6,16 +6,39 @@ import { Typography, Theme, } from '@material-ui/core'; +import { Helmet } from 'react-helmet-async'; import NavBar from 'common/NavBar'; import Footer from 'common/Footer'; import fullDiagramBuoy from '../../assets/img/fulldiag3_1.svg'; import fullDiagramInfra from '../../assets/img/fulldiag3.svg'; +import buoy from '../../assets/img/landing-page/buoy.jpg'; const Buoy = ({ classes }: BuoyProps) => { return ( <> + + + Aqualink Smart Buoy | Real-time seafloor & sea surface temperature + & sea surface temperature + + + + +
diff --git a/packages/website/src/routes/Drones/index.tsx b/packages/website/src/routes/Drones/index.tsx index 55335a634..29d5ec2e8 100644 --- a/packages/website/src/routes/Drones/index.tsx +++ b/packages/website/src/routes/Drones/index.tsx @@ -1,5 +1,6 @@ import React from 'react'; import { Box } from '@material-ui/core'; +import { Helmet } from 'react-helmet-async'; import NavBar from 'common/NavBar'; import Footer from 'common/Footer'; @@ -16,6 +17,21 @@ import dronebottom from '../../assets/img/dronebottom.jpg'; const Drones = () => ( <> + + Aqualink Drone | An Autonomous Surface Vehicle + + + + {/* Main container */} diff --git a/packages/website/src/routes/Faq/index.tsx b/packages/website/src/routes/Faq/index.tsx index e84145924..4def3c50e 100644 --- a/packages/website/src/routes/Faq/index.tsx +++ b/packages/website/src/routes/Faq/index.tsx @@ -6,13 +6,35 @@ import { Typography, CardMedia, } from '@material-ui/core'; +import { Helmet } from 'react-helmet-async'; import NavBar from 'common/NavBar'; import Footer from 'common/Footer'; +import Dashboard from '../../assets/img/helmet/Dashboard.jpg'; + const Faq = ({ classes }: FaqProps) => { return ( <> + + + Aqualink FAQ | Common Questions About Our Ocean Monitoring Platform + + + + +
{/* Main container */} diff --git a/packages/website/src/routes/HomeMap/index.tsx b/packages/website/src/routes/HomeMap/index.tsx index 77baf2bf4..3f7c908f0 100644 --- a/packages/website/src/routes/HomeMap/index.tsx +++ b/packages/website/src/routes/HomeMap/index.tsx @@ -9,6 +9,7 @@ import { withStyles, WithStyles, } from '@material-ui/core'; +import { Helmet } from 'react-helmet-async'; import SwipeableBottomSheet from 'react-swipeable-bottom-sheet'; import { sitesRequest, sitesListSelector } from 'store/Sites/sitesListSlice'; import { siteRequest } from 'store/Sites/selectedSiteSlice'; @@ -20,6 +21,8 @@ import HomepageNavBar from 'common/NavBar'; import SiteTable from './SiteTable'; import HomepageMap from './Map'; +import Map from '../../assets/img/helmet/Map.jpg'; + enum QueryParamKeys { SITE_ID = 'site_id', ZOOM_LEVEL = 'zoom', @@ -105,6 +108,27 @@ const Homepage = ({ classes }: HomepageProps) => { return ( <> + + + Aqualink Map | Interactive Ocean Monitoring for Marine Ecosystems + + + + +
{}}>
diff --git a/packages/website/src/routes/Landing/index.tsx b/packages/website/src/routes/Landing/index.tsx index f34dd6768..445d766c7 100644 --- a/packages/website/src/routes/Landing/index.tsx +++ b/packages/website/src/routes/Landing/index.tsx @@ -16,6 +16,7 @@ import { } from '@material-ui/core'; import ArrowDownwardIcon from '@material-ui/icons/ArrowDownward'; import { Link } from 'react-router-dom'; +import { Helmet } from 'react-helmet-async'; import classNames from 'classnames'; import NavBar from 'common/NavBar'; @@ -25,6 +26,8 @@ import Card from './Card'; import landingPageImage from '../../assets/img/landing-page/header.jpg'; import { cardTitles } from './titles'; +import Startpage from '../../assets/img/helmet/Startpage.jpg'; + interface LandingPageButton { label: string; to: string; @@ -73,6 +76,30 @@ const LandingPage = ({ classes }: LandingPageProps) => { return ( <> + + + Aqualink Ocean Monitoring for Marine Ecosystems. Free & open + + + + + {scrollPosition === 0 && isMobile && ( { return ( <> {newSiteId && } + + + Register sites on Aqualink and receive dashboards with real-time data + + + + + diff --git a/packages/website/src/routes/SiteRoutes/Site/__snapshots__/index.test.tsx.snap b/packages/website/src/routes/SiteRoutes/Site/__snapshots__/index.test.tsx.snap deleted file mode 100644 index 77e731112..000000000 --- a/packages/website/src/routes/SiteRoutes/Site/__snapshots__/index.test.tsx.snap +++ /dev/null @@ -1,6128 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`Site Detail Page should render with given state from Redux store: snapshot-with-data 1`] = ` -
- - - - - - - - - - Home - - - - - - - - Map - - - - - - - - Register a site - - - - - - - - Highlighted Sites - - - - - - - - Bristlemouth Explorer - - - - - - - - Track a heatwave - - - - - - - - About - - - - - - - - Faq - - - - - - - - Buoy - - - - - - - - Drone - - - - - - - Aqualink is open-source (MIT) -
- Join us and contribute! -
- -
-
-
-
- - - - - - - Aqua - - - link - - - -
- -
-
-
- - - -
-
- -
-
-
-
- - -
-
-
- - - -
-
- -
-
-
-
-
-
-
- - -
-
- -
-
-
- - Aqua - - - link - -
-
-
- - - -
-
-
-
-
- -
-
-
- - Create an account - -
-
-
-
-
-
- -
- - -
- -
-
-
-
- -
- - -
- -
-
-
-
- -
- - -
- -
-
-
-
- -
- - -
- -
-
-
-
- -
- - -
- -
-
-
-
- -
-
- - - I have read the - - - Terms and Conditions - - - -
-
-
- -
-
- - Have an account? - - - -
-
-
-
-
-
-
- - -
-
- -
-
-
- - Aqua - - - link - -
-
-
- - - -
-
-
-
-
-
-
-
- -
-
-
- -
-
-
- - Sign In - -
-
-
-
-
-
- -
- - -
- -
-
-
-
- -
- - -
- -
-
-
- -
-
- -
-
- - Don't have an account? - - - -
-
-
-
-
-
-
-
- -
-
-
- -
-
-
-
-
-
- - -
-
-
-
-
- -
-
-
- -
-
- - LAT: 0.000 - -
-
- - LONG: 0.000 - -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
-
- -
-
- -
-
- - SATELLITE OBSERVATION - -
-
-
-
-
- - -
-
- - SURFACE TEMP - - - - - -°C - - -
-
- - HISTORICAL MAX - - - - 0.0°C - - -
-
- - DEGREE HEATING WEEKS - - - - 0.0 - - -
-
- - SST ANOMALY - - - - - -°C - - -
-
-
-
-
- - - 0 - - -
-
- - - 2 - - -
-
- - - 4 - - -
-
- - - 6 - - -
-
- - - 8 - - -
-
- - - 10 - - -
-
- - - 12 - - -
-
- - - 14 - - -
-
- - - 16 - - -
-
- - - 18 - - -
-
- - - 20 - - -
-
- - - 25 - - -
-
-
-
-
-
- -
-
- - - No data available - - - Updated daily - - -
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
- -
-
- -
-
- - BUOY OBSERVATION - -
-
-
-
-
- -
-
- - TEMP AT 1m - - - - -°C - -
-
- - TEMP AT DEPTH - - - - -°C - -
-
-
-
- sensor -
-
-
-
- - No Live Telemetry - -
- - -
-
-
-
- -
-
- -
-
- - HEAT STRESS ALERT LEVEL - -
-
-
-
-
- -
- alert-level -
-
-
-
- -
-
- - - No data available - - - Updated daily - - -
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
- - -
-
- - WIND - - wind -
-
-
- - SPEED - -
- - - - - -
-
-
- - DIRECTION - -
- - - - - -
-
-
-
- - WAVES - - waves -
-
-
- - HEIGHT - -
- - - - - -
-
-
- - PERIOD - -
- - - - - -
-
-
- - DIRECTION - -
- - - - - -
-
-
-
-
-
-
- -
-
- - - No data available - - - Updated every 6 hours - - -
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
- -
- - - HEAT STRESS ANALYSIS (°C) - - -
- -
- -
- - - - Delete undefined - - - - - Are you sure you want to delete this survey point? It will be deleted across all surveys. - - - - - - - -
- -
-
- - Survey History - -
-
-
- - Survey Point: - -
-
-
-
-
-
- All -
- - - - - - All - - - -
-
-
-
-
-
-
- - Observation: - -
-
-
-
-
- - Any - -
- - - - - - Any - - - - Appears healthy - - - Showing possible signs of disease - - - Signs of disease are evident - - - Signs of mortality are evident - - - Signs of environmental disturbance are evident (e.g. storm damage) - - - Signs of anthropogenic disturbance are evident (e.g.,fishing gear, trampling) - - - Signs of damage from invasive species - - -
-
-
-
-
-
-
- -
    -
  • -
    - - 09/10/2020 - -
    -
    -
    - -
    -
    -
    -
    -
    -
    - -
    - -
    -
    -
    -
    - - User: - - - Joe Doe - -
    -
    -
    - - Comments: - - - No comments - -
    -
    -
    - - Temp: - - - 10.0 °C - -
    - -
    -
    -
    -
    -
    -
  • -
-
- -
-
-
- - 09/10/2020 - -
-
-
-
-
- -
- -
-
-
-
- - User: - - - Joe Doe - -
-
-
- - Comments: - - - No comments - -
-
-
- - Temp: - - - 10.0 °C - -
- -
-
-
-
-
-
-
- -
-
-
-
- -
-
- - -
-
- - - Aqua - - - link - - -
-
-
-
-
-`; - -exports[`Site Detail Page should render with given state from Redux store: snapshot-with-no-data 1`] = ` -
- - - - - - - - - - Home - - - - - - - - Map - - - - - - - - Register a site - - - - - - - - Highlighted Sites - - - - - - - - Bristlemouth Explorer - - - - - - - - Track a heatwave - - - - - - - - About - - - - - - - - Faq - - - - - - - - Buoy - - - - - - - - Drone - - - - - - - Aqualink is open-source (MIT) -
- Join us and contribute! -
- -
-
-
-
- - - - - - - Aqua - - - link - - - -
- -
-
-
- - - -
-
- -
-
-
-
- - -
-
-
- - - -
-
- -
-
-
-
-
-
-
- - -
-
- -
-
-
- - Aqua - - - link - -
-
-
- - - -
-
-
-
-
- -
-
-
- - Create an account - -
-
-
-
-
-
- -
- - -
- -
-
-
-
- -
- - -
- -
-
-
-
- -
- - -
- -
-
-
-
- -
- - -
- -
-
-
-
- -
- - -
- -
-
-
-
- -
-
- - - I have read the - - - Terms and Conditions - - - -
-
-
- -
-
- - Have an account? - - - -
-
-
-
-
-
-
- - -
-
- -
-
-
- - Aqua - - - link - -
-
-
- - - -
-
-
-
-
-
-
-
- -
-
-
- -
-
-
- - Sign In - -
-
-
-
-
-
- -
- - -
- -
-
-
-
- -
- - -
- -
-
-
- -
-
- -
-
- - Don't have an account? - - - -
-
-
-
-
-
-
-
- -
-
-
- -
-
-
-
-
-
- - -
-
-
-
- - - -
- -
-
-
- -
-
- - LAT: 0.000 - -
-
- - LONG: 0.000 - -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
-
- -
-
- -
-
- - SATELLITE OBSERVATION - -
-
-
-
-
- - -
-
- - SURFACE TEMP - - - - - -°C - - -
-
- - HISTORICAL MAX - - - - 0.0°C - - -
-
- - DEGREE HEATING WEEKS - - - - 0.0 - - -
-
- - SST ANOMALY - - - - - -°C - - -
-
-
-
-
- - - 0 - - -
-
- - - 2 - - -
-
- - - 4 - - -
-
- - - 6 - - -
-
- - - 8 - - -
-
- - - 10 - - -
-
- - - 12 - - -
-
- - - 14 - - -
-
- - - 16 - - -
-
- - - 18 - - -
-
- - - 20 - - -
-
- - - 25 - - -
-
-
-
-
-
- -
-
- - - No data available - - - Updated daily - - -
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
- -
-
- -
-
- - BUOY OBSERVATION - -
-
-
-
-
- -
-
- - TEMP AT 1m - - - - -°C - -
-
- - TEMP AT DEPTH - - - - -°C - -
-
-
-
- sensor -
-
-
-
- - No Live Telemetry - -
- - -
-
-
-
- -
-
- -
-
- - HEAT STRESS ALERT LEVEL - -
-
-
-
-
- -
- alert-level -
-
-
-
- -
-
- - - No data available - - - Updated daily - - -
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
- - -
-
- - WIND - - wind -
-
-
- - SPEED - -
- - - - - -
-
-
- - DIRECTION - -
- - - - - -
-
-
-
- - WAVES - - waves -
-
-
- - HEIGHT - -
- - - - - -
-
-
- - PERIOD - -
- - - - - -
-
-
- - DIRECTION - -
- - - - - -
-
-
-
-
-
-
- -
-
- - - No data available - - - Updated every 6 hours - - -
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
- -
- - - HEAT STRESS ANALYSIS (°C) - - -
- -
- -
- - - - Delete undefined - - - - - Are you sure you want to delete this survey point? It will be deleted across all surveys. - - - - - - - -
- -
-
- - Survey History - -
-
-
- - Survey Point: - -
-
-
-
-
-
- All -
- - - - - - All - - - -
-
-
-
-
-
-
- - Observation: - -
-
-
-
-
- - Any - -
- - - - - - Any - - - - Appears healthy - - - Showing possible signs of disease - - - Signs of disease are evident - - - Signs of mortality are evident - - - Signs of environmental disturbance are evident (e.g. storm damage) - - - Signs of anthropogenic disturbance are evident (e.g.,fishing gear, trampling) - - - Signs of damage from invasive species - - -
-
-
-
-
-
-
- -
    - - -
    - -
    -
-
-
- -
-
- - -
-
- - - Aqua - - - link - - -
-
-
-
-
-`; diff --git a/packages/website/src/routes/SiteRoutes/Site/index.tsx b/packages/website/src/routes/SiteRoutes/Site/index.tsx index 89dae1400..e6c44bfe3 100644 --- a/packages/website/src/routes/SiteRoutes/Site/index.tsx +++ b/packages/website/src/routes/SiteRoutes/Site/index.tsx @@ -26,6 +26,7 @@ import { surveysRequest, surveyListSelector, } from 'store/Survey/surveyListSlice'; +import { Helmet } from 'react-helmet-async'; import { userInfoSelector } from 'store/User/userSlice'; import { User } from 'store/User/types'; import { oceanSenseConfig } from 'constants/oceanSenseConfig'; @@ -44,6 +45,8 @@ import { DateTime } from 'luxon-extensions'; import SiteInfo from './SiteInfo'; import NotFoundPage from '../../NotFound/index'; +import Dashboard from '../../../assets/img/helmet/Dashboard.jpg'; + const getAlertMessage = ( user: User | null, siteId: string, @@ -212,6 +215,23 @@ const Site = ({ classes }: SiteProps) => { return ( <> + + Monitoring ${siteDetails?.name} | Aqualink Dashboard + + + + {!siteLoading && !siteDetails ? ( diff --git a/packages/website/src/routes/Tracker/index.tsx b/packages/website/src/routes/Tracker/index.tsx index 6f4e15d7e..e26e1a09a 100644 --- a/packages/website/src/routes/Tracker/index.tsx +++ b/packages/website/src/routes/Tracker/index.tsx @@ -11,6 +11,7 @@ import { makeStyles, } from '@material-ui/core'; import { Link } from 'react-router-dom'; +import { Helmet } from 'react-helmet-async'; import { useImageAspectRatio } from 'hooks/useImageAspectRatio'; import { isPositiveNumber } from 'helpers/numberUtils'; @@ -18,6 +19,7 @@ import NavBar from 'common/NavBar'; import Footer from 'common/Footer'; import FootPrintImage from './FootPrintImage'; +import TrackerImage from '../../assets/img/helmet/Tracker.jpg'; import hero from '../../assets/img/tracker-page/hero.png'; import image1 from '../../assets/img/tracker-page/image1.png'; import image2 from '../../assets/img/tracker-page/image2.png'; @@ -122,7 +124,7 @@ const useStyles = makeStyles((theme: Theme) => }), ); -interface TrackerProps { +interface ImageProps { shouldShowNav?: boolean; shouldShowFooter?: boolean; } @@ -146,6 +148,26 @@ const Tracker = ({ return ( <> {shouldShowNav && } + + + Tracking Ocean Heat Waves and Coral Bleaching Globally and Locally + + + + + diff --git a/yarn.lock b/yarn.lock index 0b455adc1..8b79bf952 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12108,6 +12108,13 @@ interpret@^1.0.0: resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== +invariant@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + ip-regex@^4.1.0: version "4.3.0" resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-4.3.0.tgz#687275ab0f57fa76978ff8f4dddc8a23d5990db5" @@ -17577,11 +17584,25 @@ react-event-listener@^0.6.0: prop-types "^15.6.0" warning "^4.0.1" +react-fast-compare@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-3.2.2.tgz#929a97a532304ce9fee4bcae44234f1ce2c21d49" + integrity sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ== + react-ga4@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/react-ga4/-/react-ga4-2.1.0.tgz#56601f59d95c08466ebd6edfbf8dede55c4678f9" integrity sha512-ZKS7PGNFqqMd3PJ6+C2Jtz/o1iU9ggiy8Y8nUeksgVuvNISbmrQtJiZNvC/TjDsqD0QlU5Wkgs7i+w9+OjHhhQ== +react-helmet-async@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/react-helmet-async/-/react-helmet-async-2.0.5.tgz#cfc70cd7bb32df7883a8ed55502a1513747223ec" + integrity sha512-rYUYHeus+i27MvFE+Jaa4WsyBKGkL6qVgbJvSBoX8mbsWoABJXdEO0bZyi0F6i+4f0NuIb8AvqPMj3iXFHkMwg== + dependencies: + invariant "^2.2.4" + react-fast-compare "^3.2.2" + shallowequal "^1.1.0" + react-hook-form@^7.41.5: version "7.43.9" resolved "https://registry.yarnpkg.com/react-hook-form/-/react-hook-form-7.43.9.tgz#84b56ac2f38f8e946c6032ccb760e13a1037c66d" @@ -18783,6 +18804,11 @@ shallow-equal@^1.2.1: resolved "https://registry.yarnpkg.com/shallow-equal/-/shallow-equal-1.2.1.tgz#4c16abfa56043aa20d050324efa68940b0da79da" integrity sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA== +shallowequal@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" + integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== + shapefile@~0.6.6: version "0.6.6" resolved "https://registry.yarnpkg.com/shapefile/-/shapefile-0.6.6.tgz#6fee152b9fb2b1c85f690285b692fb68c95a5f4f" @@ -19361,16 +19387,7 @@ string-natural-compare@^3.0.1: resolved "https://registry.yarnpkg.com/string-natural-compare/-/string-natural-compare-3.0.1.tgz#7a42d58474454963759e8e8b7ae63d71c1e7fdf4" integrity sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw== -"string-width-cjs@npm:string-width@^4.2.0": - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -19465,7 +19482,7 @@ stringify-object@^3.3.0: is-obj "^1.0.1" is-regexp "^1.0.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1": +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -19486,13 +19503,6 @@ strip-ansi@^5.1.0: dependencies: ansi-regex "^4.1.0" -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - strip-ansi@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.1.tgz#61740a08ce36b61e50e65653f07060d000975fb2" @@ -21371,7 +21381,7 @@ workbox-window@6.5.4: "@types/trusted-types" "^2.0.2" workbox-core "6.5.4" -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -21389,15 +21399,6 @@ wrap-ansi@^6.0.1, wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrap-ansi@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"