diff --git a/config/default/common/config/metadata/layers/reference/orbits/OrbitTracks_NOAA-20_Ascending.md b/config/default/common/config/metadata/layers/reference/orbits/OrbitTracks_NOAA-20_Ascending.md index 3866fe3b3e..d92ecbbefc 100644 --- a/config/default/common/config/metadata/layers/reference/orbits/OrbitTracks_NOAA-20_Ascending.md +++ b/config/default/common/config/metadata/layers/reference/orbits/OrbitTracks_NOAA-20_Ascending.md @@ -1,3 +1,3 @@ -The NOAA-20 - Orbit Track & Time (Ascending/Day) layer is the path of the NOAA-20 satellite on its ascending/day-time orbit. Overpass times are shown in Coordinated Universal Time (UTC). Local overpass time at the equator is approximately 12:40. +The NOAA-20 - Orbit Track & Time (Ascending/Day) layer is the path of the NOAA-20 satellite on its ascending/day-time orbit. Overpass times are shown in Coordinated Universal Time (UTC). Local overpass time at the equator is approximately 13:30. Orbital Track information from . diff --git a/config/default/common/config/metadata/layers/reference/orbits/OrbitTracks_NOAA-20_Descending.md b/config/default/common/config/metadata/layers/reference/orbits/OrbitTracks_NOAA-20_Descending.md index a33bea61fc..595eaad2e8 100644 --- a/config/default/common/config/metadata/layers/reference/orbits/OrbitTracks_NOAA-20_Descending.md +++ b/config/default/common/config/metadata/layers/reference/orbits/OrbitTracks_NOAA-20_Descending.md @@ -1,3 +1,3 @@ -The NOAA-20 - Orbit Track & Time (Descending/Night) layer is the path of the NOAA-20 satellite on its descending/night-time orbit. Overpass times are shown in Coordinated Universal Time (UTC). Local overpass time at the equator is approximately 00:40. +The NOAA-20 - Orbit Track & Time (Descending/Night) layer is the path of the NOAA-20 satellite on its descending/night-time orbit. Overpass times are shown in Coordinated Universal Time (UTC). Local overpass time at the equator is approximately 00:30. Orbital Track information from . diff --git a/config/default/common/config/metadata/layers/reference/orbits/OrbitTracks_Suomi_NPP_Ascending.md b/config/default/common/config/metadata/layers/reference/orbits/OrbitTracks_Suomi_NPP_Ascending.md index ee408e21c6..5cb2358e11 100644 --- a/config/default/common/config/metadata/layers/reference/orbits/OrbitTracks_Suomi_NPP_Ascending.md +++ b/config/default/common/config/metadata/layers/reference/orbits/OrbitTracks_Suomi_NPP_Ascending.md @@ -1,3 +1,3 @@ -The Suomi NPP Orbital Track & Overpass Time (Ascending/Day) layer is the path of the Suomi National Polar-orbiting Partnership (Suomi NPP) satellite on its ascending/day-time orbit. Overpass times are shown in Coordinated Universal Time (UTC). Local overpass time at the equator is approximately 13:00. +The Suomi NPP Orbital Track & Overpass Time (Ascending/Day) layer is the path of the Suomi National Polar-orbiting Partnership (Suomi NPP) satellite on its ascending/day-time orbit. Overpass times are shown in Coordinated Universal Time (UTC). Local overpass time at the equator is approximately 13:30. Orbital Track information from . diff --git a/config/default/common/config/metadata/layers/reference/orbits/OrbitTracks_Suomi_NPP_Descending.md b/config/default/common/config/metadata/layers/reference/orbits/OrbitTracks_Suomi_NPP_Descending.md index bd4d189aac..0f0f970abf 100644 --- a/config/default/common/config/metadata/layers/reference/orbits/OrbitTracks_Suomi_NPP_Descending.md +++ b/config/default/common/config/metadata/layers/reference/orbits/OrbitTracks_Suomi_NPP_Descending.md @@ -1,3 +1,3 @@ -The Suomi NPP Orbital Track & Overpass Time (Descending/Night) layer is the path of the Suomi National Polar-orbiting Partnership (Suomi NPP) satellite on its descending/night-time orbit. Overpass times are shown in Coordinated Universal Time (UTC). Local overpass time at the equator is approximately 01:00. +The Suomi NPP Orbital Track & Overpass Time (Descending/Night) layer is the path of the Suomi National Polar-orbiting Partnership (Suomi NPP) satellite on its descending/night-time orbit. Overpass times are shown in Coordinated Universal Time (UTC). Local overpass time at the equator is approximately 01:30. Orbital Track information from . diff --git a/config/default/common/config/metadata/layers/viirs/noaa20/VIIRS_NOAA20_Thermal_Anomalies_375m_All.md b/config/default/common/config/metadata/layers/viirs/noaa20/VIIRS_NOAA20_Thermal_Anomalies_375m_All.md index d9b7cd27d2..2b4b3d289f 100644 --- a/config/default/common/config/metadata/layers/viirs/noaa20/VIIRS_NOAA20_Thermal_Anomalies_375m_All.md +++ b/config/default/common/config/metadata/layers/viirs/noaa20/VIIRS_NOAA20_Thermal_Anomalies_375m_All.md @@ -2,6 +2,6 @@ The VIIRS (Visible Infrared Imaging Radiometer Suite) Fire and Thermal Anomalies The 375m I-band data complements the MODIS fire detections; they both show good agreement in hotspot detection but the improved spatial resolution of the 375m data provides a greater response over fires of relatively small areas and provides improved mapping of large fire perimeters. The 375m data also has improved nighttime performance. Consequently, these data are well suited for use in support of fire management (e.g., near real-time alert systems), as well as other science applications requiring improved fire mapping fidelity. -The VIIRS Fire and Thermal Anomalies product is available from the NOAA-20 satellite (also known as JPSS-1). The sensor resolution is 375 m, imagery resolution is 250 m, and the temporal resolution is twice daily. The VIIRS instrument is aboard the joint NASA/NOAA NOAA-20 satellite, crosses the equator approximately 50 minutes prior to Suomi NPP, at approximately 12:40 PM (ascending node) and 12:40 AM (descending node). The thermal anomalies are represented as points (approximate center of a 375 m pixel) in GIBS/Worldview. +The VIIRS Fire and Thermal Anomalies product is available from the NOAA-20 satellite (also known as JPSS-1), as well as the NOAA-21 (JPSS-2) and Suomi NPP satellites. The sensor resolution is 375 m, imagery resolution is 250 m, and the temporal resolution is twice daily. The VIIRS instrument is aboard the joint NASA/NOAA NOAA-20 satellite. The nominal (equator-crossing) observation times are 1:30PM (ascending node) and 1:30AM (descending node). NOAA-20 crosses the equator approximately 50 minutes after NOAA-21, with Suomi NPP in between the two satellites. The thermal anomalies are represented as points (approximate center of a 375 m pixel) in GIBS/Worldview. References: VJ114IMGT_NRT [doi:10.5067/FIRMS/VIIRS/VJ114IMGT_NRT.002](https://doi.org/10.5067/FIRMS/VIIRS/VJ114IMGT_NRT.002) diff --git a/config/default/common/config/metadata/layers/viirs/noaa20/VIIRS_NOAA20_Thermal_Anomalies_375m_Day.md b/config/default/common/config/metadata/layers/viirs/noaa20/VIIRS_NOAA20_Thermal_Anomalies_375m_Day.md index 7c2e378da7..f6dbc7761c 100644 --- a/config/default/common/config/metadata/layers/viirs/noaa20/VIIRS_NOAA20_Thermal_Anomalies_375m_Day.md +++ b/config/default/common/config/metadata/layers/viirs/noaa20/VIIRS_NOAA20_Thermal_Anomalies_375m_Day.md @@ -2,6 +2,6 @@ The VIIRS (Visible Infrared Imaging Radiometer Suite) Fire and Thermal Anomalies The 375m I-band data complements the MODIS fire detections; they both show good agreement in hotspot detection but the improved spatial resolution of the 375m data provides a greater response over fires of relatively small areas and provides improved mapping of large fire perimeters. The 375m data also has improved nighttime performance. Consequently, these data are well suited for use in support of fire management (e.g., near real-time alert systems), as well as other science applications requiring improved fire mapping fidelity. -The VIIRS Fire and Thermal Anomalies product is available from the NOAA-20 satellite (also known as JPSS-1). The sensor resolution is 375 m, imagery resolution is 250 m, and the temporal resolution is twice daily. The VIIRS instrument is aboard the joint NASA/NOAA NOAA-20 satellite,, crosses the equator approximately 50 minutes prior to Suomi NPP, at approximately 12:40 PM (ascending node) and 12:40 AM (descending node). The thermal anomalies are represented as points (approximate center of a 375 m pixel) in GIBS/Worldview. +The VIIRS Fire and Thermal Anomalies product is available from the NOAA-20 satellite (also known as JPSS-1), as well as the NOAA-21 (JPSS-2) and Suomi NPP satellites. The sensor resolution is 375 m, imagery resolution is 250 m, and the temporal resolution is twice daily. The VIIRS instrument is aboard the joint NASA/NOAA NOAA-20 satellite. The nominal (equator-crossing) observation times are 1:30PM (ascending node) and 1:30AM (descending node). NOAA-20 crosses the equator approximately 50 minutes after NOAA-21, with Suomi NPP in between the two satellites. The thermal anomalies are represented as points (approximate center of a 375 m pixel) in GIBS/Worldview. References: VJ114IMGT_NRT [doi:10.5067/FIRMS/VIIRS/VJ114IMGT_NRT.002](https://doi.org/10.5067/FIRMS/VIIRS/VJ114IMGT_NRT.002) diff --git a/config/default/common/config/metadata/layers/viirs/noaa20/VIIRS_NOAA20_Thermal_Anomalies_375m_Night.md b/config/default/common/config/metadata/layers/viirs/noaa20/VIIRS_NOAA20_Thermal_Anomalies_375m_Night.md index 05ebe3b9dc..ea5040036a 100644 --- a/config/default/common/config/metadata/layers/viirs/noaa20/VIIRS_NOAA20_Thermal_Anomalies_375m_Night.md +++ b/config/default/common/config/metadata/layers/viirs/noaa20/VIIRS_NOAA20_Thermal_Anomalies_375m_Night.md @@ -2,6 +2,6 @@ The VIIRS (Visible Infrared Imaging Radiometer Suite) Fire and Thermal Anomalies The 375m I-band data complements the MODIS fire detections; they both show good agreement in hotspot detection but the improved spatial resolution of the 375m data provides a greater response over fires of relatively small areas and provides improved mapping of large fire perimeters. The 375m data also has improved nighttime performance. Consequently, these data are well suited for use in support of fire management (e.g., near real-time alert systems), as well as other science applications requiring improved fire mapping fidelity. -The VIIRS Fire and Thermal Anomalies product is available from the NOAA-20 satellite (also known as JPSS-1). The sensor resolution is 375 m, imagery resolution is 250 m, and the temporal resolution is twice daily. The VIIRS instrument is aboard the joint NASA/NOAA NOAA-20 satellite,, crosses the equator approximately 50 minutes prior to Suomi NPP, at approximately 12:40 PM (ascending node) and 12:40 AM (descending node). The thermal anomalies are represented as points (approximate center of a 375 m pixel) in GIBS/Worldview. +The VIIRS Fire and Thermal Anomalies product is available from the NOAA-20 satellite (also known as JPSS-1), as well as the NOAA-21 (JPSS-2) and Suomi NPP satellites. The sensor resolution is 375 m, imagery resolution is 250 m, and the temporal resolution is twice daily. The VIIRS instrument is aboard the joint NASA/NOAA NOAA-20 satellite. The nominal (equator-crossing) observation times are 1:30PM (ascending node) and 1:30AM (descending node). NOAA-20 crosses the equator approximately 50 minutes after NOAA-21, with Suomi NPP in between the two satellites. The thermal anomalies are represented as points (approximate center of a 375 m pixel) in GIBS/Worldview. References: VJ114IMGT_NRT [doi:10.5067/FIRMS/VIIRS/VJ114IMGT_NRT.002](https://doi.org/10.5067/FIRMS/VIIRS/VJ114IMGT_NRT.002) diff --git a/config/default/common/config/metadata/layers/viirs/noaa21/VIIRS_NOAA21_Thermal_Anomalies_375m_All.md b/config/default/common/config/metadata/layers/viirs/noaa21/VIIRS_NOAA21_Thermal_Anomalies_375m_All.md new file mode 100644 index 0000000000..954791ce8a --- /dev/null +++ b/config/default/common/config/metadata/layers/viirs/noaa21/VIIRS_NOAA21_Thermal_Anomalies_375m_All.md @@ -0,0 +1,7 @@ +The VIIRS (Visible Infrared Imaging Radiometer Suite) Fire and Thermal Anomalies (Day and Night, 375m) layer shows active fire detections and thermal anomalies, such as volcanoes, and gas flares. Fires can be set naturally, such as by lightning, or by humans, whether intentionally or accidentally. Fire is often thought of as a menace and detriment to life, but in some ecosystems it is necessary to maintain the equilibrium, for example, some plants only release seeds under high temperatures that can only be achieved by fire, fires can also clear undergrowth and brush to help restore forests to good health, humans use fire in slash and burn agriculture, to clear away last year’s crop stubble and provide nutrients for the soil and to clear areas for pasture. The fire layer is useful for studying the spatial and temporal distribution of fire, to locate persistent hot spots such as volcanoes and gas flares, to locate the source of air pollution from smoke that may have adverse human health impacts. + +The 375m I-band data complements the MODIS fire detections; they both show good agreement in hotspot detection but the improved spatial resolution of the 375m data provides a greater response over fires of relatively small areas and provides improved mapping of large fire perimeters. The 375m data also has improved nighttime performance. Consequently, these data are well suited for use in support of fire management (e.g., near real-time alert systems), as well as other science applications requiring improved fire mapping fidelity. + +The VIIRS Fire and Thermal Anomalies product is available from the NOAA-21 satellite (also known as JPSS-2), as well as the NOAA-20 (JPSS-2) and Suomi NPP satellites. The sensor resolution is 375 m, imagery resolution is 250 m, and the temporal resolution is twice daily. The VIIRS instrument is aboard the joint NASA/NOAA NOAA-21 satellite. The nominal (equator-crossing) observation times are 1:30PM (ascending node) and 1:30AM (descending node). NOAA-21 crosses the equator approximately 50 minutes prior to NOAA-20, with Suomi NPP in between the two satellites. The thermal anomalies are represented as points (approximate center of a 375 m pixel) in GIBS/Worldview. + +References: VJ114IMGT_NRT [doi:10.5067/FIRMS/VIIRS/VJ114IMGT_NRT.002](https://doi.org/10.5067/FIRMS/VIIRS/VJ114IMGT_NRT.002) diff --git a/config/default/common/config/metadata/layers/viirs/noaa21/VIIRS_NOAA21_Thermal_Anomalies_375m_Day.md b/config/default/common/config/metadata/layers/viirs/noaa21/VIIRS_NOAA21_Thermal_Anomalies_375m_Day.md new file mode 100644 index 0000000000..989f24c7b7 --- /dev/null +++ b/config/default/common/config/metadata/layers/viirs/noaa21/VIIRS_NOAA21_Thermal_Anomalies_375m_Day.md @@ -0,0 +1,7 @@ +The VIIRS (Visible Infrared Imaging Radiometer Suite) Fire and Thermal Anomalies (Day, 375m) layer shows active fire detections and thermal anomalies, such as volcanoes, and gas flares. Fires can be set naturally, such as by lightning, or by humans, whether intentionally or accidentally. Fire is often thought of as a menace and detriment to life, but in some ecosystems it is necessary to maintain the equilibrium, for example, some plants only release seeds under high temperatures that can only be achieved by fire, fires can also clear undergrowth and brush to help restore forests to good health, humans use fire in slash and burn agriculture, to clear away last year’s crop stubble and provide nutrients for the soil and to clear areas for pasture. The fire layer is useful for studying the spatial and temporal distribution of fire, to locate persistent hot spots such as volcanoes and gas flares, to locate the source of air pollution from smoke that may have adverse human health impacts. + +The 375m I-band data complements the MODIS fire detections; they both show good agreement in hotspot detection but the improved spatial resolution of the 375m data provides a greater response over fires of relatively small areas and provides improved mapping of large fire perimeters. The 375m data also has improved nighttime performance. Consequently, these data are well suited for use in support of fire management (e.g., near real-time alert systems), as well as other science applications requiring improved fire mapping fidelity. + +The VIIRS Fire and Thermal Anomalies product is available from the NOAA-21 satellite (also known as JPSS-2), as well as the NOAA-20 (JPSS-2) and Suomi NPP satellites. The sensor resolution is 375 m, imagery resolution is 250 m, and the temporal resolution is twice daily. The VIIRS instrument is aboard the joint NASA/NOAA NOAA-21 satellite. The nominal (equator-crossing) observation times are 1:30PM (ascending node) and 1:30AM (descending node). NOAA-21 crosses the equator approximately 50 minutes prior to NOAA-20, with Suomi NPP in between the two satellites. The thermal anomalies are represented as points (approximate center of a 375 m pixel) in GIBS/Worldview. + +References: VJ114IMGT_NRT [doi:10.5067/FIRMS/VIIRS/VJ114IMGT_NRT.002](https://doi.org/10.5067/FIRMS/VIIRS/VJ114IMGT_NRT.002) diff --git a/config/default/common/config/metadata/layers/viirs/noaa21/VIIRS_NOAA21_Thermal_Anomalies_375m_Night.md b/config/default/common/config/metadata/layers/viirs/noaa21/VIIRS_NOAA21_Thermal_Anomalies_375m_Night.md new file mode 100644 index 0000000000..3c1ec1ccc2 --- /dev/null +++ b/config/default/common/config/metadata/layers/viirs/noaa21/VIIRS_NOAA21_Thermal_Anomalies_375m_Night.md @@ -0,0 +1,7 @@ +The VIIRS (Visible Infrared Imaging Radiometer Suite) Fire and Thermal Anomalies (Night, 375m) layer shows active fire detections and thermal anomalies, such as volcanoes, and gas flares. Fires can be set naturally, such as by lightning, or by humans, whether intentionally or accidentally. Fire is often thought of as a menace and detriment to life, but in some ecosystems it is necessary to maintain the equilibrium, for example, some plants only release seeds under high temperatures that can only be achieved by fire, fires can also clear undergrowth and brush to help restore forests to good health, humans use fire in slash and burn agriculture, to clear away last year’s crop stubble and provide nutrients for the soil and to clear areas for pasture. The fire layer is useful for studying the spatial and temporal distribution of fire, to locate persistent hot spots such as volcanoes and gas flares, to locate the source of air pollution from smoke that may have adverse human health impacts. + +The 375m I-band data complements the MODIS fire detections; they both show good agreement in hotspot detection but the improved spatial resolution of the 375m data provides a greater response over fires of relatively small areas and provides improved mapping of large fire perimeters. The 375m data also has improved nighttime performance. Consequently, these data are well suited for use in support of fire management (e.g., near real-time alert systems), as well as other science applications requiring improved fire mapping fidelity. + +The VIIRS Fire and Thermal Anomalies product is available from the NOAA-21 satellite (also known as JPSS-2), as well as the NOAA-20 (JPSS-2) and Suomi NPP satellites. The sensor resolution is 375 m, imagery resolution is 250 m, and the temporal resolution is twice daily. The VIIRS instrument is aboard the joint NASA/NOAA NOAA-21 satellite. The nominal (equator-crossing) observation times are 1:30PM (ascending node) and 1:30AM (descending node). NOAA-21 crosses the equator approximately 50 minutes prior to NOAA-20, with Suomi NPP in between the two satellites. The thermal anomalies are represented as points (approximate center of a 375 m pixel) in GIBS/Worldview. + +References: VJ114IMGT_NRT [doi:10.5067/FIRMS/VIIRS/VJ114IMGT_NRT.002](https://doi.org/10.5067/FIRMS/VIIRS/VJ114IMGT_NRT.002) diff --git a/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_Apparent_Reflectance_VNP02MOD_M09.md b/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_Apparent_Reflectance_VNP02MOD_M09.md index 6bbfe327a9..4162cccd28 100644 --- a/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_Apparent_Reflectance_VNP02MOD_M09.md +++ b/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_Apparent_Reflectance_VNP02MOD_M09.md @@ -2,7 +2,7 @@ The VIIRS Apparent Reflectance (VNP02MOD, Band M09) layer is a direct measure of The Apparent Reflectance (VNP02MOD, Band M09) layer is available from the joint NASA/NOAA Suomi National Polar orbiting Partnership (Suomi NPP) satellite (CLDCR_L2_VIIRS_SNPP) for the daytime overpass. The sensor resolution is 750 m at nadir, imagery resolution is 750 m at nadir, and the temporal resolution is daily. Resolution is coarser toward both the left and the right edges of an imaging swath. -Consult the [NASA VIIRS Suomi-NPP Level-2 Cirrus Reflectance Product User Guide](https://ladsweb.modaps.eosdis.nasa.gov/api/v2/content/archives/Document%20Archive/Science%20Data%20Product%20Documentation/VIIRS_Cirrus_Refl_User_Guide_Oct_2020.pdf) for additional information. +Consult the [NASA VIIRS Suomi NPP Level-2 Cirrus Reflectance Product User Guide](https://ladsweb.modaps.eosdis.nasa.gov/api/v2/content/archives/Document%20Archive/Science%20Data%20Product%20Documentation/VIIRS_Cirrus_Refl_User_Guide_Oct_2020.pdf) for additional information. References: CLDCR_L2_VIIRS_SNPP.001 [doi:10.5067/VIIRS/CLDCR_L2_VIIRS_SNPP.001](https://doi.org/10.5067/VIIRS/CLDCR_L2_VIIRS_SNPP.001) diff --git a/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_Cirrus_Reflectance_SWIR_M11.md b/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_Cirrus_Reflectance_SWIR_M11.md index e15ca8fb17..5f421935f8 100644 --- a/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_Cirrus_Reflectance_SWIR_M11.md +++ b/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_Cirrus_Reflectance_SWIR_M11.md @@ -2,7 +2,7 @@ The VIIRS Cirrus Reflectance (SWIR, Band M11) layer is a quantitative measure of The VIIRS Cirrus Reflectance (SWIR, Band M11) layer is available from the joint NASA/NOAA Suomi National Polar orbiting Partnership (Suomi NPP) satellite (CLDCR_L2_VIIRS_SNPP) for the daytime overpass. The sensor/algorithm resolution is 750 m at nadir, imagery resolution is 750 m at nadir, and the temporal resolution is daily. Resolution is coarser toward both the left and the right edges of an imaging swath. -Consult the [NASA VIIRS Suomi-NPP Level-2 Cirrus Reflectance Product User Guide](https://ladsweb.modaps.eosdis.nasa.gov/api/v2/content/archives/Document%20Archive/Science%20Data%20Product%20Documentation/VIIRS_Cirrus_Refl_User_Guide_Oct_2020.pdf) for additional information. +Consult the [NASA VIIRS Suomi NPP Level-2 Cirrus Reflectance Product User Guide](https://ladsweb.modaps.eosdis.nasa.gov/api/v2/content/archives/Document%20Archive/Science%20Data%20Product%20Documentation/VIIRS_Cirrus_Refl_User_Guide_Oct_2020.pdf) for additional information. References: CLDCR_L2_VIIRS_SNPP.001 [doi:10.5067/VIIRS/CLDCR_L2_VIIRS_SNPP.001](https://doi.org/10.5067/VIIRS/CLDCR_L2_VIIRS_SNPP.001) diff --git a/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_Cirrus_Reflectance_VIS_NIR.md b/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_Cirrus_Reflectance_VIS_NIR.md index ff91eaac80..51314358ba 100644 --- a/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_Cirrus_Reflectance_VIS_NIR.md +++ b/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_Cirrus_Reflectance_VIS_NIR.md @@ -2,7 +2,7 @@ The VIIRS Cirrus Reflectance (Visible & NIR) layer is a quantitative measure of The VIIRS Cirrus Reflectance (Visible & NIR) layer is available from the joint NASA/NOAA Suomi National Polar orbiting Partnership (Suomi NPP) satellite (CLDCR_L2_VIIRS_SNPP) for the daytime overpass. The sensor/algorithm resolution is 750 m at nadir, imagery resolution is 750 m at nadir, and the temporal resolution is daily. Resolution is coarser toward both the left and the right edges of an imaging swath. -Consult the [NASA VIIRS Suomi-NPP Level-2 Cirrus Reflectance Product User Guide](https://ladsweb.modaps.eosdis.nasa.gov/api/v2/content/archives/Document%20Archive/Science%20Data%20Product%20Documentation/VIIRS_Cirrus_Refl_User_Guide_Oct_2020.pdf) for additional information. +Consult the [NASA VIIRS Suomi NPP Level-2 Cirrus Reflectance Product User Guide](https://ladsweb.modaps.eosdis.nasa.gov/api/v2/content/archives/Document%20Archive/Science%20Data%20Product%20Documentation/VIIRS_Cirrus_Refl_User_Guide_Oct_2020.pdf) for additional information. References: CLDCR_L2_VIIRS_SNPP.001 [doi:10.5067/VIIRS/CLDCR_L2_VIIRS_SNPP.001](https://doi.org/10.5067/VIIRS/CLDCR_L2_VIIRS_SNPP.001) diff --git a/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_Thermal_Anomalies_375m_All.md b/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_Thermal_Anomalies_375m_All.md index 90bcf63cdb..0fecb6a0af 100644 --- a/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_Thermal_Anomalies_375m_All.md +++ b/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_Thermal_Anomalies_375m_All.md @@ -2,6 +2,6 @@ The VIIRS (Visible Infrared Imaging Radiometer Suite) Fire and Thermal Anomalies The 375m I-band data complements the MODIS fire detections; they both show good agreement in hotspot detection but the improved spatial resolution of the 375m data provides a greater response over fires of relatively small areas and provides improved mapping of large fire perimeters. The 375m data also has improved nighttime performance. Consequently, these data are well suited for use in support of fire management (e.g., near real-time alert systems), as well as other science applications requiring improved fire mapping fidelity. -The VIIRS Fire and Thermal Anomalies product is available from the joint NASA/NOAA Suomi National Polar orbiting Partnership (Suomi NPP) satellite. The sensor resolution is 375 m, imagery resolution is 250 m, and the temporal resolution is twice daily. The VIIRS sensor aboard the Suomi NPP satellite, crosses the equator at approximately 13:30 PM (ascending node) and 1:30 AM (descending node). The thermal anomalies are represented as points (approximate center of a 375 m pixel) in GIBS/Worldview. +The VIIRS Fire and Thermal Anomalies product is available from the joint NASA/NOAA Suomi National Polar orbiting Partnership (Suomi NPP) satellite as well as the NOAA-21 (JPSS-2) and NOAA-20 (JPSS-1) satellites. The sensor resolution is 375 m, imagery resolution is 250 m, and the temporal resolution is twice daily. The VIIRS sensor aboard the Suomi NPP satellite, crosses the equator at approximately 13:30 PM (ascending node) and 1:30 AM (descending node). The thermal anomalies are represented as points (approximate center of a 375 m pixel) in GIBS/Worldview. References: VNP14IMG_NRT [doi:10.5067/VIIRS/VNP14IMG_NRT.002](https://doi.org/10.5067/VIIRS/VNP14IMG_NRT.002); VNP14 [doi:10.5067/VIIRS/VNP14.001](https://doi.org/10.5067/VIIRS/VNP14.001) \ No newline at end of file diff --git a/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_Thermal_Anomalies_375m_Day.md b/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_Thermal_Anomalies_375m_Day.md index 8d7efb0005..81f332ae15 100644 --- a/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_Thermal_Anomalies_375m_Day.md +++ b/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_Thermal_Anomalies_375m_Day.md @@ -2,6 +2,6 @@ The VIIRS (Visible Infrared Imaging Radiometer Suite) Fire and Thermal Anomalies The 375m I-band data complements the MODIS fire detections; they both show good agreement in hotspot detection but the improved spatial resolution of the 375m data provides a greater response over fires of relatively small areas and provides improved mapping of large fire perimeters. The 375m data also has improved nighttime performance. Consequently, these data are well suited for use in support of fire management (e.g., near real-time alert systems), as well as other science applications requiring improved fire mapping fidelity. -The VIIRS Fire and Thermal Anomalies product is available from the joint NASA/NOAA Suomi National Polar orbiting Partnership (Suomi NPP) satellite. The sensor resolution is 375 m, imagery resolution is 250 m, and the temporal resolution is twice daily. The VIIRS sensor aboard the Suomi NPP satellite, crosses the equator at approximately 13:30 PM (ascending node) and 1:30 AM (descending node). The thermal anomalies are represented as points (approximate center of a 375 m pixel) in GIBS/Worldview. +The VIIRS Fire and Thermal Anomalies product is available from the joint NASA/NOAA Suomi National Polar orbiting Partnership (Suomi NPP) satellite as well as the NOAA-21 (JPSS-2) and NOAA-20 (JPSS-1) satellites. The sensor resolution is 375 m, imagery resolution is 250 m, and the temporal resolution is twice daily. The VIIRS sensor aboard the Suomi NPP satellite, crosses the equator at approximately 13:30 PM (ascending node) and 1:30 AM (descending node). The thermal anomalies are represented as points (approximate center of a 375 m pixel) in GIBS/Worldview. References: VNP14IMG_NRT [doi:10.5067/VIIRS/VNP14IMG_NRT.002](https://doi.org/10.5067/VIIRS/VNP14IMG_NRT.002); VNP14 [doi:10.5067/VIIRS/VNP14.001](https://doi.org/10.5067/VIIRS/VNP14.001) \ No newline at end of file diff --git a/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_Thermal_Anomalies_375m_Night.md b/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_Thermal_Anomalies_375m_Night.md index c35349e52e..158403d421 100644 --- a/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_Thermal_Anomalies_375m_Night.md +++ b/config/default/common/config/metadata/layers/viirs/snpp/VIIRS_SNPP_Thermal_Anomalies_375m_Night.md @@ -2,6 +2,6 @@ The VIIRS (Visible Infrared Imaging Radiometer Suite) Fire and Thermal Anomalies The 375m I-band data complements the MODIS fire detections; they both show good agreement in hotspot detection but the improved spatial resolution of the 375m data provides a greater response over fires of relatively small areas and provides improved mapping of large fire perimeters. The 375m data also has improved nighttime performance. Consequently, these data are well suited for use in support of fire management (e.g., near real-time alert systems), as well as other science applications requiring improved fire mapping fidelity. -The VIIRS Fire and Thermal Anomalies product is available from the joint NASA/NOAA Suomi National Polar orbiting Partnership (Suomi NPP) satellite. The sensor resolution is 375 m, imagery resolution is 250 m, and the temporal resolution is twice daily. The VIIRS sensor aboard the Suomi NPP satellite, crosses the equator at approximately 13:30 PM (ascending node) and 1:30 AM (descending node). The thermal anomalies are represented as points (approximate center of a 375 m pixel) in GIBS/Worldview. +The VIIRS Fire and Thermal Anomalies product is available from the joint NASA/NOAA Suomi National Polar orbiting Partnership (Suomi NPP) satellite as well as the NOAA-21 (JPSS-2) and NOAA-20 (JPSS-1) satellites. The sensor resolution is 375 m, imagery resolution is 250 m, and the temporal resolution is twice daily. The VIIRS sensor aboard the Suomi NPP satellite, crosses the equator at approximately 13:30 PM (ascending node) and 1:30 AM (descending node). The thermal anomalies are represented as points (approximate center of a 375 m pixel) in GIBS/Worldview. References: VNP14IMG_NRT [doi:10.5067/VIIRS/VNP14IMG_NRT.002](https://doi.org/10.5067/VIIRS/VNP14IMG_NRT.002); VNP14 [doi:10.5067/VIIRS/VNP14.001](https://doi.org/10.5067/VIIRS/VNP14.001) \ No newline at end of file diff --git a/config/default/common/config/wv.json/layerOrder.json b/config/default/common/config/wv.json/layerOrder.json index 8db0931eb2..25579fd12a 100644 --- a/config/default/common/config/wv.json/layerOrder.json +++ b/config/default/common/config/wv.json/layerOrder.json @@ -105,6 +105,9 @@ "Land_Water_Map", "MODIS_Terra_L3_Land_Water_Mask", "MODIS_Combined_L3_IGBP_Land_Cover_Type_Annual", + "VIIRS_NOAA21_Thermal_Anomalies_375m_All", + "VIIRS_NOAA21_Thermal_Anomalies_375m_Day", + "VIIRS_NOAA21_Thermal_Anomalies_375m_Night", "VIIRS_NOAA20_Thermal_Anomalies_375m_All", "VIIRS_NOAA20_Thermal_Anomalies_375m_Day", "VIIRS_NOAA20_Thermal_Anomalies_375m_Night", diff --git a/config/default/common/config/wv.json/layers/viirs/noaa21/VIIRS_NOAA21_Thermal_Anomalies_375m_All.json b/config/default/common/config/wv.json/layers/viirs/noaa21/VIIRS_NOAA21_Thermal_Anomalies_375m_All.json new file mode 100644 index 0000000000..3b3a1c079a --- /dev/null +++ b/config/default/common/config/wv.json/layers/viirs/noaa21/VIIRS_NOAA21_Thermal_Anomalies_375m_All.json @@ -0,0 +1,40 @@ +{ + "layers": { + "VIIRS_NOAA21_Thermal_Anomalies_375m_All": { + "id": "VIIRS_NOAA21_Thermal_Anomalies_375m_All", + "description": "viirs/noaa21/VIIRS_NOAA21_Thermal_Anomalies_375m_All", + "tags": "hotspots jpss2 jpss vectors jpss-2", + "group": "overlays", + "layergroup": "Fires and Thermal Anomalies", + "type": "vector", + "period": "daily", + "vectorStyle": { + "id": "FIRMS_VIIRS_Thermal_Anomalies", + "arctic": { + "id": "FIRMS_VIIRS_Thermal_Anomalies_polar" + } + }, + "transition": true, + "palette": { + "id": "VIIRS_All_Thermal_Anomalies", + "immutable": true + }, + "breakPointLayer": { + "id": "VIIRS_NOAA21_Thermal_Anomalies_375m_All", + "type": "wms", + "format": "image/png", + "breakPointType": "max", + "projections": { + "geographic": { + "resolutionBreakPoint": 0.017578125, + "source": "GIBS:wms" + }, + "arctic": { + "source": "GIBS:wms:arctic", + "resolutionBreakPoint": 2048 + } + } + } + } + } +} \ No newline at end of file diff --git a/config/default/common/config/wv.json/layers/viirs/noaa21/VIIRS_NOAA21_Thermal_Anomalies_375m_Day.json b/config/default/common/config/wv.json/layers/viirs/noaa21/VIIRS_NOAA21_Thermal_Anomalies_375m_Day.json new file mode 100644 index 0000000000..bb750a9312 --- /dev/null +++ b/config/default/common/config/wv.json/layers/viirs/noaa21/VIIRS_NOAA21_Thermal_Anomalies_375m_Day.json @@ -0,0 +1,40 @@ +{ + "layers": { + "VIIRS_NOAA21_Thermal_Anomalies_375m_Day": { + "id": "VIIRS_NOAA21_Thermal_Anomalies_375m_Day", + "description": "viirs/noaa21/VIIRS_NOAA21_Thermal_Anomalies_375m_Day", + "tags": "hotspots jpss2 jpss jpss-2 vectors", + "group": "overlays", + "type": "vector", + "vectorStyle": { + "id": "FIRMS_VIIRS_Thermal_Anomalies", + "arctic": { + "id": "FIRMS_VIIRS_Thermal_Anomalies_polar" + } + }, + "period": "daily", + "palette": { + "id": "VIIRS_All_Thermal_Anomalies", + "immutable": true + }, + "transition": true, + "breakPointLayer": { + "id": "VIIRS_NOAA21_Thermal_Anomalies_375m_Day", + "type": "wms", + "format": "image/png", + "breakPointType": "max", + "projections": { + "geographic": { + "resolutionBreakPoint": 0.017578125, + "source": "GIBS:wms" + }, + "arctic": { + "source": "GIBS:wms:arctic", + "resolutionBreakPoint": 2048 + } + } + }, + "layergroup": "Fires and Thermal Anomalies" + } + } +} \ No newline at end of file diff --git a/config/default/common/config/wv.json/layers/viirs/noaa21/VIIRS_NOAA21_Thermal_Anomalies_375m_Night.json b/config/default/common/config/wv.json/layers/viirs/noaa21/VIIRS_NOAA21_Thermal_Anomalies_375m_Night.json new file mode 100644 index 0000000000..bee0043cbc --- /dev/null +++ b/config/default/common/config/wv.json/layers/viirs/noaa21/VIIRS_NOAA21_Thermal_Anomalies_375m_Night.json @@ -0,0 +1,40 @@ +{ + "layers": { + "VIIRS_NOAA21_Thermal_Anomalies_375m_Night": { + "id": "VIIRS_NOAA21_Thermal_Anomalies_375m_Night", + "description": "viirs/noaa21/VIIRS_NOAA21_Thermal_Anomalies_375m_Night", + "tags": "hotspots jpss2 vectors jpss-2", + "group": "overlays", + "type": "vector", + "period": "daily", + "vectorStyle": { + "id": "FIRMS_VIIRS_Thermal_Anomalies", + "arctic": { + "id": "FIRMS_VIIRS_Thermal_Anomalies_polar" + } + }, + "palette": { + "id": "VIIRS_All_Thermal_Anomalies", + "immutable": true + }, + "transition": true, + "breakPointLayer": { + "id": "VIIRS_NOAA21_Thermal_Anomalies_375m_Night", + "type": "wms", + "format": "image/png", + "breakPointType": "max", + "projections": { + "geographic": { + "resolutionBreakPoint": 0.017578125, + "source": "GIBS:wms" + }, + "arctic": { + "source": "GIBS:wms:arctic", + "resolutionBreakPoint": 2048 + } + } + }, + "layergroup": "Fires and Thermal Anomalies" + } + } +} \ No newline at end of file diff --git a/config/default/common/config/wv.json/measurements/Featured - Fires and Thermal Anomalies.json b/config/default/common/config/wv.json/measurements/Featured - Fires and Thermal Anomalies.json index d5aa234130..5699a08f3b 100644 --- a/config/default/common/config/wv.json/measurements/Featured - Fires and Thermal Anomalies.json +++ b/config/default/common/config/wv.json/measurements/Featured - Fires and Thermal Anomalies.json @@ -3,7 +3,7 @@ "Fires and Thermal Anomalies - Featured": { "id": "featured-fires-thermal-anomalies", "title": "Fires and Thermal Anomalies (Vectors)", - "subtitle": "Aqua/MODIS, Terra/MODIS, Aqua and Terra/MODIS, Suomi NPP/VIIRS, NOAA-20/VIIRS, GOES-East/ABI, GOES-West/ABI", + "subtitle": "Aqua/MODIS, Terra/MODIS, Aqua and Terra/MODIS, Suomi NPP/VIIRS, NOAA-20/VIIRS, NOAA-21/VIIRS, GOES-East/ABI, GOES-West/ABI", "sources": { "Aqua/MODIS": { "id": "aqua-modis", @@ -67,6 +67,19 @@ "OrbitTracks_NOAA-20_Ascending", "OrbitTracks_NOAA-20_Descending" ] + }, + "NOAA-21/VIIRS": { + "id": "noaa21-viirs", + "title": "NOAA-21/VIIRS", + "description": "viirs/Fires_ThermalAnomalies", + "image": "", + "settings": [ + "VIIRS_NOAA21_Thermal_Anomalies_375m_All", + "VIIRS_NOAA21_Thermal_Anomalies_375m_Day", + "VIIRS_NOAA21_Thermal_Anomalies_375m_Night", + "OrbitTracks_NOAA-21_Ascending", + "OrbitTracks_NOAA-21_Descending" + ] } } } diff --git a/config/default/common/config/wv.json/measurements/Fires and Thermal Anomalies.json b/config/default/common/config/wv.json/measurements/Fires and Thermal Anomalies.json index 1263cd74db..40a8dc589d 100644 --- a/config/default/common/config/wv.json/measurements/Fires and Thermal Anomalies.json +++ b/config/default/common/config/wv.json/measurements/Fires and Thermal Anomalies.json @@ -3,7 +3,7 @@ "Fires and Thermal Anomalies": { "id": "fires-thermal-anomalies", "title": "Fires and Thermal Anomalies", - "subtitle": "Aqua/MODIS, Terra/MODIS, Aqua and Terra/MODIS, Suomi NPP/VIIRS, NOAA-20/VIIRS, GOES-East/ABI, GOES-West/ABI", + "subtitle": "Aqua/MODIS, Terra/MODIS, Aqua and Terra/MODIS, Suomi NPP/VIIRS, NOAA-20/VIIRS, NOAA-21/VIIRS, GOES-East/ABI, GOES-West/ABI", "sources": { "Aqua/MODIS": { "id": "aqua-modis", @@ -68,6 +68,19 @@ "OrbitTracks_NOAA-20_Descending" ] }, + "NOAA-21/VIIRS": { + "id": "noaa21-viirs", + "title": "NOAA-21/VIIRS", + "description": "viirs/Fires_ThermalAnomalies", + "image": "", + "settings": [ + "VIIRS_NOAA21_Thermal_Anomalies_375m_All", + "VIIRS_NOAA21_Thermal_Anomalies_375m_Day", + "VIIRS_NOAA21_Thermal_Anomalies_375m_Night", + "OrbitTracks_NOAA-21_Ascending", + "OrbitTracks_NOAA-21_Descending" + ] + }, "GOES-East/ABI": { "id": "goes-east-abi", "title": "GOES-East/ABI", diff --git a/e2e/features/animation/animation-test.spec.js b/e2e/features/animation/animation-test.spec.js index 5f178c311b..1f2d778f60 100644 --- a/e2e/features/animation/animation-test.spec.js +++ b/e2e/features/animation/animation-test.spec.js @@ -64,8 +64,8 @@ test('Disable playback when max frames exceeded', async () => { const { playButton, yearStartInput } = selectors await page.goto(animationGeostationary) await closeModal(page) - const animateYearDown = page.locator('.wv-date-range-selector > div > div > div:nth-child(3) > svg > .downarrow').first() - const animateYearUp = page.locator('.wv-date-range-selector > div > div > div > svg > .uparrow').first() + const animateYearDown = page.locator('.wv-date-range-selector > div > div > div:nth-child(3) > svg.downarrow').first() + const animateYearUp = page.locator('.wv-date-range-selector > div > div > div > svg.uparrow').first() await animateYearDown.click() await expect(playButton).toHaveClass(/disabled/) // Playback re-enabled when frames within the max diff --git a/e2e/features/share/share-test.spec.js b/e2e/features/share/share-test.spec.js index 81b81fd800..3dc630f5d8 100644 --- a/e2e/features/share/share-test.spec.js +++ b/e2e/features/share/share-test.spec.js @@ -54,7 +54,7 @@ test('Share link clipboard with no time query string param in the page url will const queryString = 'http://localhost:3000/' await page.goto(queryString) await closeModal(page) - await page.getByRole('button', { name: '×' }).click() + await page.locator('.tour-close-btn').click() await shareToolbarButton.click() const minutesOffset = 40 * 60000 // 40 minutes let date = new Date(new Date().getTime() - minutesOffset) diff --git a/e2e/features/timeline/date-selector-test.spec.js b/e2e/features/timeline/date-selector-test.spec.js index b6bfd88e57..2405262c23 100644 --- a/e2e/features/timeline/date-selector-test.spec.js +++ b/e2e/features/timeline/date-selector-test.spec.js @@ -50,7 +50,7 @@ test('Left timeline arrow will not be disabled by default', async () => { const queryString = 'http://localhost:3000/' await page.goto(queryString) await closeModal(page) - await page.getByRole('button', { name: '×' }).click() + await page.locator('.tour-close-btn').click() const leftArrow = await page.locator('#left-arrow-group') await expect(leftArrow).not.toHaveClass(/button-disabled/) }) @@ -59,7 +59,7 @@ test('Left timeline arrow will not be disabled by default', async () => { // test.only('Right timeline arrow will be disabled by default', async () => { // const queryString = 'http://localhost:3000/' // await page.goto(queryString) -// await page.getByRole('button', { name: '×' }).click() +// await page.locator('.tour-close-btn').click() // const rightArrow = await page.locator('#right-arrow-group') // await expect(rightArrow).toHaveClass(/button-disabled/) // }) @@ -68,7 +68,7 @@ test('Left timeline arrow will not be disabled by default', async () => { // test('Now button will be disabled by default', async () => { // const queryString = 'http://localhost:3000/' // await page.goto(queryString) -// await page.getByRole('button', { name: '×' }).click() +// await page.locator('.tour-close-btn').click() // const nowButton = page.locator('#now-button-group') // await expect(nowButton).toHaveClass(/button-disabled/) // }) diff --git a/e2e/test-utils/global-variables/selectors.js b/e2e/test-utils/global-variables/selectors.js index 9fde650d79..659a20c44f 100644 --- a/e2e/test-utils/global-variables/selectors.js +++ b/e2e/test-utils/global-variables/selectors.js @@ -15,8 +15,8 @@ module.exports = (page) => ({ animationButtonCase: page.locator('#timeline-header .animate-button'), animationButton: page.locator('.animate-button'), playButton: page.locator('#play-button'), - animateYearUp: page.locator('.wv-date-range-selector > div > div:nth-child(2) > div > svg > .uparrow'), - animateYearDown: page.locator('.wv-date-range-selector > div > div > div:nth-child(3) > svg > .downarrow'), + animateYearUp: page.locator('.wv-date-range-selector > div > div:nth-child(2) > div > svg.uparrow'), + animateYearDown: page.locator('.wv-date-range-selector > div > div > div:nth-child(3) > svg.downarrow'), yearStartInput: page.locator('#year-animation-widget-start'), monthStartInput: page.locator('#month-animation-widget-start'), dayStartInput: page.locator('#day-animation-widget-start'), diff --git a/package-lock.json b/package-lock.json index a7e2814d0b..db8560b216 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,15 +1,16 @@ { "name": "worldview", - "version": "4.46.0", + "version": "4.47.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "worldview", - "version": "4.46.0", + "version": "4.47.0", "hasInstallScript": true, "license": "NASA-1.3", "dependencies": { + "@edsc/earthdata-react-icons": "^0.0.2", "@elastic/react-search-ui": "^1.21.5", "@elastic/react-search-ui-views": "^1.21.2", "@fortawesome/fontawesome-svg-core": "^6.6.0", @@ -18,7 +19,7 @@ "@fortawesome/react-fontawesome": "^0.2.2", "@khanisak/temperature-converter": "^2.0.1", "@reduxjs/toolkit": "^2.2.7", - "axios": "^1.7.4", + "axios": "^1.7.7", "bluebird": "3.7.2", "bootstrap": "^5.3.3", "cachai": "^1.0.2", @@ -31,7 +32,7 @@ "eslint-plugin-react-hooks": "^4.6.2", "fetch-mock-jest": "^1.5.1", "file-saver": "^2.0.5", - "geographiclib-geodesic": "^2.0.0", + "geographiclib-geodesic": "^2.1.1", "history": "^5.3.0", "imagesloaded": "^5.0.0", "immutability-helper": "^3.1.1", @@ -80,11 +81,11 @@ "devDependencies": { "@babel/core": "^7.25.2", "@babel/eslint-parser": "^7.25.1", - "@babel/plugin-transform-class-properties": "^7.24.7", + "@babel/plugin-transform-class-properties": "^7.25.4", "@babel/plugin-transform-private-methods": "^7.24.7", - "@babel/preset-env": "^7.25.3", + "@babel/preset-env": "^7.25.4", "@babel/preset-react": "^7.24.7", - "@playwright/test": "^1.46.0", + "@playwright/test": "^1.47.0", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.15", "@webpack-cli/serve": "^2.0.5", "ajv": "^8.17.1", @@ -100,35 +101,35 @@ "eslint": "^8.57.0", "eslint-config-airbnb": "^19.0.4", "eslint-config-standard": "^17.1.0", - "eslint-import-resolver-webpack": "^0.13.8", - "eslint-plugin-import": "^2.29.1", - "eslint-plugin-jest": "^28.8.0", - "eslint-plugin-jsx-a11y": "^6.9.0", + "eslint-import-resolver-webpack": "^0.13.9", + "eslint-plugin-import": "^2.30.0", + "eslint-plugin-jest": "^28.8.3", + "eslint-plugin-jsx-a11y": "^6.10.0", "eslint-plugin-n": "^17.10.2", "eslint-plugin-no-storage": "^1.0.2", "eslint-plugin-node": "^11.1.0", "eslint-plugin-promise": "^6.6.0", - "eslint-plugin-react": "^7.34.4", + "eslint-plugin-react": "^7.35.2", "express": "^4.19.2", "glob": "^11.0.0", - "husky": "^9.1.4", + "husky": "^9.1.5", "jest": "^29.7.0", "jest-canvas-mock": "^2.5.2", "jest-environment-jsdom": "^29.7.0", - "mini-css-extract-plugin": "^2.9.0", + "mini-css-extract-plugin": "^2.9.1", "node-dir": "^0.1.17", "node-fetch": "^2.6.9", "node-ssh": "^13.2.0", "npm-run-all": "^4.1.5", "patch-package": "^8.0.0", - "postcss": "^8.4.41", + "postcss": "^8.4.45", "postcss-loader": "^8.1.1", "react-refresh": "^0.14.1", "react-test-renderer": "^18.3.0", "redux-mock-store": "^1.5.4", "run-script-os": "^1.1.6", - "sass": "^1.77.8", - "sass-loader": "^16.0.0", + "sass": "^1.78.0", + "sass-loader": "^16.0.1", "shelljs": "^0.8.5", "showdown": "^2.1.0", "stylelint": "^15.11.0", @@ -137,11 +138,11 @@ "tar": "^7.4.3", "terser-webpack-plugin": "^5.3.10", "uuid": "^10.0.0", - "webpack": "^5.93.0", + "webpack": "^5.94.0", "webpack-bundle-analyzer": "^4.10.2", "webpack-cli": "^5.1.4", - "webpack-dev-middleware": "^7.3.0", - "webpack-dev-server": "^5.0.4", + "webpack-dev-middleware": "^7.4.2", + "webpack-dev-server": "^5.1.0", "xml-js": "^1.6.11", "xml2js": "^0.6.2", "yargs": "^17.7.2" @@ -180,9 +181,10 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.2.tgz", - "integrity": "sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ==", + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.4.tgz", + "integrity": "sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==", + "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -235,11 +237,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.0.tgz", - "integrity": "sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==", + "version": "7.25.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.5.tgz", + "integrity": "sha512-abd43wyLfbWoxC6ahM8xTkqLpGB2iWBVyuKC9/srhFunCd1SDNrV1s72bBpK4hLj8KLzHBBcOblvLQZBNw9r3w==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.25.0", + "@babel/types": "^7.25.4", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" @@ -310,18 +313,18 @@ "license": "ISC" }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.24.7", + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.4.tgz", + "integrity": "sha512-ro/bFs3/84MDgDmMwbcHgDa8/E6J3QKNTk4xJJnVeFtGE+tL0K26E3pNxhYz2b67fJpt7Aphw5XcploKXuCvCQ==", "dev": true, "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-function-name": "^7.24.7", - "@babel/helper-member-expression-to-functions": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.8", "@babel/helper-optimise-call-expression": "^7.24.7", - "@babel/helper-replace-supers": "^7.24.7", + "@babel/helper-replace-supers": "^7.25.0", "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/traverse": "^7.25.4", "semver": "^6.3.1" }, "engines": { @@ -349,7 +352,9 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.1", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", + "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", "dev": true, "license": "MIT", "dependencies": { @@ -363,29 +368,6 @@ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.24.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.24.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.24.7", - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-member-expression-to-functions": { "version": "7.24.8", "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz", @@ -503,17 +485,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.24.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-string-parser": { "version": "7.24.8", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", @@ -577,11 +548,12 @@ } }, "node_modules/@babel/parser": { - "version": "7.25.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.3.tgz", - "integrity": "sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==", + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.4.tgz", + "integrity": "sha512-nq+eWrOgdtu3jG5Os4TQP3x3cLA8hR8TvJNjD8vnPa20WGycimcparWnLK4jJhElTK6SDyuJo1weMKO/5LpmLA==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.25.2" + "@babel/types": "^7.25.4" }, "bin": { "parser": "bin/babel-parser.js" @@ -950,15 +922,16 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.0.tgz", - "integrity": "sha512-uaIi2FdqzjpAMvVqvB51S42oC2JEVgh0LDsGfZVDysWE8LrJtQC2jvKmOqEYThKyB7bDEb7BP1GYWDm7tABA0Q==", + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.4.tgz", + "integrity": "sha512-jz8cV2XDDTqjKPwVPJBIjORVEmSGYhdRa8e5k5+vN+uwcjSrSxUaebBRa4ko1jqNF2uxyg8G6XYk30Jv285xzg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.24.8", "@babel/helper-remap-async-to-generator": "^7.25.0", "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/traverse": "^7.25.0" + "@babel/traverse": "^7.25.4" }, "engines": { "node": ">=6.9.0" @@ -1013,12 +986,14 @@ } }, "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.24.7", + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.4.tgz", + "integrity": "sha512-nZeZHyCWPfjkdU5pA/uHiTaDAFUEqkpzf1YoQT2NeSynCGYq9rxfyI3XpQbfx/a0hSnFH6TGlEXvae5Vi7GD8g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-create-class-features-plugin": "^7.25.4", + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -1044,16 +1019,17 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.0.tgz", - "integrity": "sha512-xyi6qjr/fYU304fiRwFbekzkqVJZ6A7hOjWZd+89FVcBqPV3S9Wuozz82xdpLspckeaafntbzglaW4pqpzvtSw==", + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.4.tgz", + "integrity": "sha512-oexUfaQle2pF/b6E0dwsxQtAol9TLSO88kQvym6HHBWFliV2lGdrPieX+WgMRLSJDVzdYywk7jXbLPuO2KLTLg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-compilation-targets": "^7.24.8", + "@babel/helper-compilation-targets": "^7.25.2", "@babel/helper-plugin-utils": "^7.24.8", "@babel/helper-replace-supers": "^7.25.0", - "@babel/traverse": "^7.25.0", + "@babel/traverse": "^7.25.4", "globals": "^11.1.0" }, "engines": { @@ -1474,12 +1450,14 @@ } }, "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.24.7", + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.4.tgz", + "integrity": "sha512-ao8BG7E2b/URaUQGqN3Tlsg+M3KlHY6rJ1O1gXAEUnZoyNQnvKyH87Kfg+FoxSeyWUB8ISZZsC91C44ZuBFytw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-create-class-features-plugin": "^7.25.4", + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -1725,12 +1703,14 @@ } }, "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.24.7", + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.4.tgz", + "integrity": "sha512-qesBxiWkgN1Q+31xUE9RcMk79eOXXDCv6tfyGMRSs4RGlioSg2WVyQAm07k726cSE56pa+Kb0y9epX2qaXzTvA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-create-regexp-features-plugin": "^7.25.2", + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -1740,12 +1720,13 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.25.3", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.25.3.tgz", - "integrity": "sha512-QsYW7UeAaXvLPX9tdVliMJE7MD7M6MLYVTovRTIwhoYQVFHR1rM4wO8wqAezYi3/BpSD+NzVCZ69R6smWiIi8g==", + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.25.4.tgz", + "integrity": "sha512-W9Gyo+KmcxjGahtt3t9fb14vFRWvPpu5pT6GBlovAK6BTBcxgjfVMSQCfJl4oi35ODrxP6xx2Wr8LNST57Mraw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.25.2", + "@babel/compat-data": "^7.25.4", "@babel/helper-compilation-targets": "^7.25.2", "@babel/helper-plugin-utils": "^7.24.8", "@babel/helper-validator-option": "^7.24.8", @@ -1774,13 +1755,13 @@ "@babel/plugin-syntax-top-level-await": "^7.14.5", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", "@babel/plugin-transform-arrow-functions": "^7.24.7", - "@babel/plugin-transform-async-generator-functions": "^7.25.0", + "@babel/plugin-transform-async-generator-functions": "^7.25.4", "@babel/plugin-transform-async-to-generator": "^7.24.7", "@babel/plugin-transform-block-scoped-functions": "^7.24.7", "@babel/plugin-transform-block-scoping": "^7.25.0", - "@babel/plugin-transform-class-properties": "^7.24.7", + "@babel/plugin-transform-class-properties": "^7.25.4", "@babel/plugin-transform-class-static-block": "^7.24.7", - "@babel/plugin-transform-classes": "^7.25.0", + "@babel/plugin-transform-classes": "^7.25.4", "@babel/plugin-transform-computed-properties": "^7.24.7", "@babel/plugin-transform-destructuring": "^7.24.8", "@babel/plugin-transform-dotall-regex": "^7.24.7", @@ -1808,7 +1789,7 @@ "@babel/plugin-transform-optional-catch-binding": "^7.24.7", "@babel/plugin-transform-optional-chaining": "^7.24.8", "@babel/plugin-transform-parameters": "^7.24.7", - "@babel/plugin-transform-private-methods": "^7.24.7", + "@babel/plugin-transform-private-methods": "^7.25.4", "@babel/plugin-transform-private-property-in-object": "^7.24.7", "@babel/plugin-transform-property-literals": "^7.24.7", "@babel/plugin-transform-regenerator": "^7.24.7", @@ -1821,10 +1802,10 @@ "@babel/plugin-transform-unicode-escapes": "^7.24.7", "@babel/plugin-transform-unicode-property-regex": "^7.24.7", "@babel/plugin-transform-unicode-regex": "^7.24.7", - "@babel/plugin-transform-unicode-sets-regex": "^7.24.7", + "@babel/plugin-transform-unicode-sets-regex": "^7.25.4", "@babel/preset-modules": "0.1.6-no-external-plugins", "babel-plugin-polyfill-corejs2": "^0.4.10", - "babel-plugin-polyfill-corejs3": "^0.10.4", + "babel-plugin-polyfill-corejs3": "^0.10.6", "babel-plugin-polyfill-regenerator": "^0.6.1", "core-js-compat": "^3.37.1", "semver": "^6.3.1" @@ -1897,15 +1878,16 @@ } }, "node_modules/@babel/traverse": { - "version": "7.25.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.3.tgz", - "integrity": "sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ==", + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.4.tgz", + "integrity": "sha512-VJ4XsrD+nOvlXyLzmLzUs/0qjFS4sK30te5yEFlvbbUNEgKaVb2BHZUpAL+ttLPQAHNrsI3zZisbfha5Cvr8vg==", + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.25.0", - "@babel/parser": "^7.25.3", + "@babel/generator": "^7.25.4", + "@babel/parser": "^7.25.4", "@babel/template": "^7.25.0", - "@babel/types": "^7.25.2", + "@babel/types": "^7.25.4", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -1914,9 +1896,10 @@ } }, "node_modules/@babel/types": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.2.tgz", - "integrity": "sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==", + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.4.tgz", + "integrity": "sha512-zQ1ijeeCXVEh+aNL0RlmkPkG8HUiDcU2pzQQFjtbntgAczRASFzj4H+6+bV+dy1ntKR14I/DypeuRG1uma98iQ==", + "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.24.8", "@babel/helper-validator-identifier": "^7.24.7", @@ -2021,6 +2004,15 @@ "node": ">=10.0.0" } }, + "node_modules/@edsc/earthdata-react-icons": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@edsc/earthdata-react-icons/-/earthdata-react-icons-0.0.2.tgz", + "integrity": "sha512-2E++Sd1CQiB2RQ17Hq+/6ftjfiuiH1a3FVevNKYLLgxipefOv70q2lFEW0VyhTX4kt8rCXPLZGA0CzMnzu0srQ==", + "peerDependencies": { + "react": "^17.0.0 || ^18.0.0", + "react-dom": "^17.0.0 || ^18.0.0" + } + }, "node_modules/@elastic/react-search-ui": { "version": "1.21.5", "license": "Apache-2.0", @@ -3305,13 +3297,13 @@ } }, "node_modules/@playwright/test": { - "version": "1.46.0", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.46.0.tgz", - "integrity": "sha512-/QYft5VArOrGRP5pgkrfKksqsKA6CEFyGQ/gjNe6q0y4tZ1aaPfq4gIjudr1s3D+pXyrPRdsy4opKDrjBabE5w==", + "version": "1.47.0", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.47.0.tgz", + "integrity": "sha512-SgAdlSwYVpToI4e/IH19IHHWvoijAYH5hu2MWSXptRypLSnzj51PcGD+rsOXFayde4P9ZLi+loXVwArg6IUkCA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "playwright": "1.46.0" + "playwright": "1.47.0" }, "bin": { "playwright": "cli.js" @@ -3429,6 +3421,13 @@ } } }, + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "dev": true, + "license": "MIT" + }, "node_modules/@sinclair/typebox": { "version": "0.27.8", "dev": true, @@ -3583,24 +3582,10 @@ "version": "3.0.0", "license": "MIT" }, - "node_modules/@types/eslint": { - "version": "8.4.6", - "license": "MIT", - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/eslint-scope": { - "version": "3.7.4", - "license": "MIT", - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, "node_modules/@types/estree": { "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", "license": "MIT" }, "node_modules/@types/express": { @@ -3801,11 +3786,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/semver": { - "version": "7.5.8", - "dev": true, - "license": "MIT" - }, "node_modules/@types/send": { "version": "0.17.4", "dev": true, @@ -3882,15 +3862,17 @@ "license": "MIT" }, "node_modules/@typescript-eslint/scope-manager": { - "version": "6.21.0", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.2.0.tgz", + "integrity": "sha512-OFn80B38yD6WwpoHU2Tz/fTz7CgFqInllBoC3WP+/jLbTb4gGPTy9HBSTsbDWkMdN55XlVU0mMDYAtgvlUspGw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0" + "@typescript-eslint/types": "8.2.0", + "@typescript-eslint/visitor-keys": "8.2.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -3898,11 +3880,13 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "6.21.0", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.2.0.tgz", + "integrity": "sha512-6a9QSK396YqmiBKPkJtxsgZZZVjYQ6wQ/TlI0C65z7vInaETuC6HAHD98AGLC8DyIPqHytvNuS8bBVvNLKyqvQ==", "dev": true, "license": "MIT", "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -3910,21 +3894,23 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.21.0", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.2.0.tgz", + "integrity": "sha512-kiG4EDUT4dImplOsbh47B1QnNmXSoUqOjWDvCJw/o8LgfD0yr7k2uy54D5Wm0j4t71Ge1NkynGhpWdS0dEIAUA==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0", + "@typescript-eslint/types": "8.2.0", + "@typescript-eslint/visitor-keys": "8.2.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", - "minimatch": "9.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -3938,6 +3924,8 @@ }, "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "license": "MIT", "dependencies": { @@ -3945,7 +3933,9 @@ } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { - "version": "9.0.3", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, "license": "ISC", "dependencies": { @@ -3959,39 +3949,40 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "6.21.0", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.2.0.tgz", + "integrity": "sha512-O46eaYKDlV3TvAVDNcoDzd5N550ckSe8G4phko++OCSC1dYIb9LTc3HDGYdWqWIAT5qDUKphO6sd9RrpIJJPfg==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.12", - "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.21.0", - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/typescript-estree": "6.21.0", - "semver": "^7.5.4" + "@typescript-eslint/scope-manager": "8.2.0", + "@typescript-eslint/types": "8.2.0", + "@typescript-eslint/typescript-estree": "8.2.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "eslint": "^8.57.0 || ^9.0.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.21.0", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.2.0.tgz", + "integrity": "sha512-sbgsPMW9yLvS7IhCi8IpuK1oBmtbWUNP+hBdwl/I9nzqVsszGnNGti5r9dUtF5RLivHUFFIdRvLiTsPhzSyJ3Q==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "6.21.0", - "eslint-visitor-keys": "^3.4.1" + "@typescript-eslint/types": "8.2.0", + "eslint-visitor-keys": "^3.4.3" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -4000,6 +3991,8 @@ }, "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, "license": "Apache-2.0", "engines": { @@ -4459,20 +4452,6 @@ "node": ">=0.10.0" } }, - "node_modules/array.prototype.find": { - "version": "2.2.2", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/array.prototype.findlast": { "version": "1.2.5", "dev": true, @@ -4493,15 +4472,18 @@ } }, "node_modules/array.prototype.findlastindex": { - "version": "1.2.3", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", + "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.2.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -4674,7 +4656,9 @@ } }, "node_modules/axe-core": { - "version": "4.9.1", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.0.tgz", + "integrity": "sha512-Mr2ZakwQ7XUAjp7pAwQWRhhK8mQQ6JAaNWSjmjxil0R8BPioMtQsTLOolGYkji1rcL++3dCqZA3zWqpT+9Ew6g==", "dev": true, "license": "MPL-2.0", "engines": { @@ -4682,9 +4666,9 @@ } }, "node_modules/axios": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.4.tgz", - "integrity": "sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==", + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz", + "integrity": "sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==", "license": "MIT", "dependencies": { "follow-redirects": "^1.15.6", @@ -4693,49 +4677,15 @@ } }, "node_modules/axobject-query": { - "version": "3.1.1", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", "dev": true, "license": "Apache-2.0", - "dependencies": { - "deep-equal": "^2.0.5" - } - }, - "node_modules/axobject-query/node_modules/deep-equal": { - "version": "2.2.3", - "dev": true, - "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.5", - "es-get-iterator": "^1.1.3", - "get-intrinsic": "^1.2.2", - "is-arguments": "^1.1.1", - "is-array-buffer": "^3.0.2", - "is-date-object": "^1.0.5", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "isarray": "^2.0.5", - "object-is": "^1.1.5", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "side-channel": "^1.0.4", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.13" - }, "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/axobject-query/node_modules/isarray": { - "version": "2.0.5", - "dev": true, - "license": "MIT" - }, "node_modules/babel-jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", @@ -4963,12 +4913,14 @@ } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.10.4", + "version": "0.10.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz", + "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.1", - "core-js-compat": "^3.36.1" + "@babel/helper-define-polyfill-provider": "^0.6.2", + "core-js-compat": "^3.38.0" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -5900,11 +5852,13 @@ } }, "node_modules/core-js-compat": { - "version": "3.37.1", + "version": "3.38.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.38.1.tgz", + "integrity": "sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw==", "dev": true, "license": "MIT", "dependencies": { - "browserslist": "^4.23.0" + "browserslist": "^4.23.3" }, "funding": { "type": "opencollective", @@ -6786,17 +6740,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/default-gateway": { - "version": "6.0.3", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "execa": "^5.0.0" - }, - "engines": { - "node": ">= 10" - } - }, "node_modules/define-data-property": { "version": "1.1.4", "license": "MIT", @@ -7582,11 +7525,12 @@ } }, "node_modules/eslint-import-resolver-webpack": { - "version": "0.13.8", + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-webpack/-/eslint-import-resolver-webpack-0.13.9.tgz", + "integrity": "sha512-yGngeefNiHXau2yzKKs2BNON4HLpxBabY40BGL/vUSKZtqzjlVsTTZm57jhHULhm+mJEwKsEIIN3NXup5AiiBQ==", "dev": true, "license": "MIT", "dependencies": { - "array.prototype.find": "^2.2.2", "debug": "^3.2.7", "enhanced-resolve": "^0.9.1", "find-root": "^1.1.0", @@ -7631,7 +7575,9 @@ } }, "node_modules/eslint-module-utils": { - "version": "2.8.0", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.11.0.tgz", + "integrity": "sha512-gbBE5Hitek/oG6MUVj6sFuzEjA/ClzNflVrLovHi/JgLdC7fiN5gLAY1WIPW1a0V5I999MnsrvVrCOGmmVqDBQ==", "dev": true, "license": "MIT", "dependencies": { @@ -7648,6 +7594,8 @@ }, "node_modules/eslint-module-utils/node_modules/debug": { "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "license": "MIT", "dependencies": { @@ -7692,25 +7640,28 @@ } }, "node_modules/eslint-plugin-import": { - "version": "2.29.1", + "version": "2.30.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.30.0.tgz", + "integrity": "sha512-/mHNE9jINJfiD2EKkg1BKyPyUk4zdnT54YgbOgfjSakWT5oyX/qQLVNTkehyfpcMxZXMy1zyonZ2v7hZTX43Yw==", "dev": true, "license": "MIT", "dependencies": { - "array-includes": "^3.1.7", - "array.prototype.findlastindex": "^1.2.3", + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.8", + "array.prototype.findlastindex": "^1.2.5", "array.prototype.flat": "^1.3.2", "array.prototype.flatmap": "^1.3.2", "debug": "^3.2.7", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.8.0", - "hasown": "^2.0.0", - "is-core-module": "^2.13.1", + "eslint-module-utils": "^2.9.0", + "hasown": "^2.0.2", + "is-core-module": "^2.15.1", "is-glob": "^4.0.3", "minimatch": "^3.1.2", - "object.fromentries": "^2.0.7", - "object.groupby": "^1.0.1", - "object.values": "^1.1.7", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.0", "semver": "^6.3.1", "tsconfig-paths": "^3.15.0" }, @@ -7741,9 +7692,9 @@ } }, "node_modules/eslint-plugin-jest": { - "version": "28.8.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-28.8.0.tgz", - "integrity": "sha512-Tubj1hooFxCl52G4qQu0edzV/+EZzPUeN8p2NnW5uu4fbDs+Yo7+qDVDc4/oG3FbCqEBmu/OC3LSsyiU22oghw==", + "version": "28.8.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-28.8.3.tgz", + "integrity": "sha512-HIQ3t9hASLKm2IhIOqnu+ifw7uLZkIlR7RYNv7fMcEi/p0CIiJmfriStQS2LDkgtY4nyLbIZAD+JL347Yc2ETQ==", "dev": true, "license": "MIT", "dependencies": { @@ -7767,7 +7718,9 @@ } }, "node_modules/eslint-plugin-jsx-a11y": { - "version": "6.9.0", + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.0.tgz", + "integrity": "sha512-ySOHvXX8eSN6zz8Bywacm7CvGNhUtdjvqfQDVe6020TUK34Cywkw7m0KsCCk1Qtm9G1FayfTN1/7mMYnYO2Bhg==", "dev": true, "license": "MIT", "dependencies": { @@ -7775,8 +7728,8 @@ "array-includes": "^3.1.8", "array.prototype.flatmap": "^1.3.2", "ast-types-flow": "^0.0.8", - "axe-core": "^4.9.1", - "axobject-query": "~3.1.1", + "axe-core": "^4.10.0", + "axobject-query": "^4.1.0", "damerau-levenshtein": "^1.0.8", "emoji-regex": "^9.2.2", "es-iterator-helpers": "^1.0.19", @@ -7792,7 +7745,7 @@ "node": ">=4.0" }, "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" } }, "node_modules/eslint-plugin-n": { @@ -7920,9 +7873,9 @@ } }, "node_modules/eslint-plugin-react": { - "version": "7.35.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.35.0.tgz", - "integrity": "sha512-v501SSMOWv8gerHkk+IIQBkcGRGrO2nfybfj5pLxuJNFTPxxA3PSryhXTK+9pNbtkggheDdsC0E9Q8CuPk6JKA==", + "version": "7.35.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.35.2.tgz", + "integrity": "sha512-Rbj2R9zwP2GYNcIak4xoAMV57hrBh3hTaR0k7hVjwCQgryE/pw5px4b13EYjduOI0hfXyZhwBxaGpOTbWSGzKQ==", "dev": true, "license": "MIT", "dependencies": { @@ -8434,7 +8387,9 @@ } }, "node_modules/fast-glob": { - "version": "3.3.1", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, "license": "MIT", "dependencies": { @@ -8910,7 +8865,9 @@ } }, "node_modules/geographiclib-geodesic": { - "version": "2.0.0", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/geographiclib-geodesic/-/geographiclib-geodesic-2.1.1.tgz", + "integrity": "sha512-lkd8EUkPSByobWu9BPMHTdYA5AUZxOa8McmUNtBE9KrvUJEvSADnN6gTDmhXbi6NzdA16LtWLpSxLE/lIIRhyA==", "license": "MIT" }, "node_modules/geotiff": { @@ -9474,10 +9431,11 @@ } }, "node_modules/husky": { - "version": "9.1.4", - "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.4.tgz", - "integrity": "sha512-bho94YyReb4JV7LYWRWxZ/xr6TtOTt8cMfmQ39MQYJ7f/YE268s3GdghGwi+y4zAeqewE5zYLvuhV0M0ijsDEA==", + "version": "9.1.5", + "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.5.tgz", + "integrity": "sha512-rowAVRUBfI0b4+niA4SJMhfQwc107VLkBUgEYYAOQAbqDCnra1nYh83hF/MDmhYs9t9n1E3DuKOrs2LYNC+0Ag==", "dev": true, + "license": "MIT", "bin": { "husky": "bin.js" }, @@ -9787,10 +9745,15 @@ } }, "node_modules/is-core-module": { - "version": "2.13.1", + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", "license": "MIT", "dependencies": { - "hasown": "^2.0.0" + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -12101,7 +12064,9 @@ } }, "node_modules/known-css-properties": { - "version": "0.28.0", + "version": "0.29.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.29.0.tgz", + "integrity": "sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==", "dev": true, "license": "MIT" }, @@ -12449,11 +12414,12 @@ "license": "MIT" }, "node_modules/micromatch": { - "version": "4.0.5", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, - "license": "MIT", "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" }, "engines": { @@ -12505,7 +12471,9 @@ } }, "node_modules/mini-css-extract-plugin": { - "version": "2.9.0", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.1.tgz", + "integrity": "sha512-+Vyi+GCCOHnrJ2VPS+6aPoXN2k2jgUzDRhTFLjjTBn23qyXJXkjUWQgTL+mXpF5/A8ixLdCc6kWsoeOjKGejKQ==", "dev": true, "license": "MIT", "dependencies": { @@ -13106,14 +13074,18 @@ } }, "node_modules/object.groupby": { - "version": "1.0.1", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/object.values": { @@ -13779,13 +13751,13 @@ } }, "node_modules/playwright": { - "version": "1.46.0", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.46.0.tgz", - "integrity": "sha512-XYJ5WvfefWONh1uPAUAi0H2xXV5S3vrtcnXe6uAOgdGi3aSpqOSXX08IAjXW34xitfuOJsvXU5anXZxPSEQiJw==", + "version": "1.47.0", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.47.0.tgz", + "integrity": "sha512-jOWiRq2pdNAX/mwLiwFYnPHpEZ4rM+fRSQpRHwEwZlP2PUANvL3+aJOF/bvISMhFD30rqMxUB4RJx9aQbfh4Ww==", "dev": true, "license": "Apache-2.0", "dependencies": { - "playwright-core": "1.46.0" + "playwright-core": "1.47.0" }, "bin": { "playwright": "cli.js" @@ -13798,9 +13770,9 @@ } }, "node_modules/playwright-core": { - "version": "1.46.0", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.46.0.tgz", - "integrity": "sha512-9Y/d5UIwuJk8t3+lhmMSAJyNP1BUC/DqP3cQJDQQL/oWqAiuPTLgy7Q5dzglmTLwcBRdetzgNM/gni7ckfTr6A==", + "version": "1.47.0", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.47.0.tgz", + "integrity": "sha512-1DyHT8OqkcfCkYUD9zzUTfg7EfTd+6a8MkD/NWOvjo0u/SCNd5YmY/lJwFvUZOxJbWNds+ei7ic2+R/cRz/PDg==", "dev": true, "license": "Apache-2.0", "bin": { @@ -13827,9 +13799,9 @@ } }, "node_modules/postcss": { - "version": "8.4.41", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz", - "integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==", + "version": "8.4.45", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.45.tgz", + "integrity": "sha512-7KTLTdzdZZYscUc65XmjFiB73vBhBfbPztCYdUNvlaso9PrzjzcmjqBPR0lNGkcVlcO4BjiO5rK/qNz+XAen1Q==", "dev": true, "funding": [ { @@ -15743,9 +15715,9 @@ "license": "MIT" }, "node_modules/sass": { - "version": "1.77.8", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.8.tgz", - "integrity": "sha512-4UHg6prsrycW20fqLGPShtEvo/WyHRVRHwOP4DzkUrObWoWI05QBSfzU71TVB7PFaL104TwNaHpjlWXAZbQiNQ==", + "version": "1.78.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.78.0.tgz", + "integrity": "sha512-AaIqGSrjo5lA2Yg7RvFZrlXDBCp3nV4XP73GrLGvdRWWwk+8H3l0SDvq/5bA4eF+0RFPLuWUk3E+P1U/YqnpsQ==", "dev": true, "license": "MIT", "dependencies": { @@ -15761,10 +15733,11 @@ } }, "node_modules/sass-loader": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.0.tgz", - "integrity": "sha512-n13Z+3rU9A177dk4888czcVFiC8CL9dii4qpXWUg3YIIgZEvi9TCFKjOQcbK0kJM7DJu9VucrZFddvNfYCPwtw==", + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.1.tgz", + "integrity": "sha512-xACl1ToTsKnL9Ce5yYpRxrLj9QUDCnwZNhzpC7tKiFyA8zXsd3Ap+HGVnbCgkdQcm43E+i6oKAWBsvGA6ZoiMw==", "dev": true, + "license": "MIT", "dependencies": { "neo-async": "^2.6.2" }, @@ -16897,11 +16870,13 @@ } }, "node_modules/stylelint-scss": { - "version": "5.3.0", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-5.3.2.tgz", + "integrity": "sha512-4LzLaayFhFyneJwLo0IUa8knuIvj+zF0vBFueQs4e3tEaAMIQX8q5th8ziKkgOavr6y/y9yoBe+RXN/edwLzsQ==", "dev": true, "license": "MIT", "dependencies": { - "known-css-properties": "^0.28.0", + "known-css-properties": "^0.29.0", "postcss-media-query-parser": "^0.2.3", "postcss-resolve-nested-selector": "^0.1.1", "postcss-selector-parser": "^6.0.13", @@ -16927,11 +16902,6 @@ "node": ">=12.0.0" } }, - "node_modules/stylelint/node_modules/known-css-properties": { - "version": "0.29.0", - "dev": true, - "license": "MIT" - }, "node_modules/stylelint/node_modules/resolve-from": { "version": "5.0.0", "dev": true, @@ -17348,6 +17318,8 @@ }, "node_modules/ts-api-utils": { "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", "dev": true, "license": "MIT", "engines": { @@ -17827,12 +17799,11 @@ } }, "node_modules/webpack": { - "version": "5.93.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.93.0.tgz", - "integrity": "sha512-Y0m5oEY1LRuwly578VqluorkXbvXKh7U3rLoQCEO04M97ScRr44afGVkI0FQFsXzysk5OgFAxjZAb9rsGQVihA==", + "version": "5.94.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.94.0.tgz", + "integrity": "sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==", "license": "MIT", "dependencies": { - "@types/eslint-scope": "^3.7.3", "@types/estree": "^1.0.5", "@webassemblyjs/ast": "^1.12.1", "@webassemblyjs/wasm-edit": "^1.12.1", @@ -17841,7 +17812,7 @@ "acorn-import-attributes": "^1.9.5", "browserslist": "^4.21.10", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.17.0", + "enhanced-resolve": "^5.17.1", "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", @@ -17981,9 +17952,9 @@ } }, "node_modules/webpack-dev-middleware": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-7.3.0.tgz", - "integrity": "sha512-xD2qnNew+F6KwOGZR7kWdbIou/ud7cVqLEXeK1q0nHcNsX/u7ul/fSdlOTX4ntSL5FNFy7ZJJXbf0piF591JYw==", + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-7.4.2.tgz", + "integrity": "sha512-xOO8n6eggxnwYpy1NlzUKpvrjfJTvae5/D6WOK0S2LSo7vjmo5gCM1DbLUmFqrMTJP+W/0YZNctm7jasWvLuBA==", "dev": true, "license": "MIT", "dependencies": { @@ -18095,7 +18066,9 @@ "peer": true }, "node_modules/webpack-dev-server": { - "version": "5.0.4", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.1.0.tgz", + "integrity": "sha512-aQpaN81X6tXie1FoOB7xlMfCsN19pSvRAeYUHOdFWOlhpQ/LlbfTqYwwmEDFV0h8GGuqmCmKmT+pxcUV/Nt2gQ==", "dev": true, "license": "MIT", "dependencies": { @@ -18112,8 +18085,7 @@ "colorette": "^2.0.10", "compression": "^1.7.4", "connect-history-api-fallback": "^2.0.0", - "default-gateway": "^6.0.3", - "express": "^4.17.3", + "express": "^4.19.2", "graceful-fs": "^4.2.6", "html-entities": "^2.4.0", "http-proxy-middleware": "^2.0.3", @@ -18121,14 +18093,13 @@ "launch-editor": "^2.6.1", "open": "^10.0.3", "p-retry": "^6.2.0", - "rimraf": "^5.0.5", "schema-utils": "^4.2.0", "selfsigned": "^2.4.1", "serve-index": "^1.9.1", "sockjs": "^0.3.24", "spdy": "^4.0.2", - "webpack-dev-middleware": "^7.1.0", - "ws": "^8.16.0" + "webpack-dev-middleware": "^7.4.2", + "ws": "^8.18.0" }, "bin": { "webpack-dev-server": "bin/webpack-dev-server.js" @@ -18152,33 +18123,6 @@ } } }, - "node_modules/webpack-dev-server/node_modules/brace-expansion": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/webpack-dev-server/node_modules/glob": { - "version": "10.4.5", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/webpack-dev-server/node_modules/ipaddr.js": { "version": "2.1.0", "dev": true, @@ -18201,39 +18145,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/webpack-dev-server/node_modules/jackspeak": { - "version": "3.4.3", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/webpack-dev-server/node_modules/lru-cache": { - "version": "10.4.3", - "dev": true, - "license": "ISC" - }, - "node_modules/webpack-dev-server/node_modules/minimatch": { - "version": "9.0.5", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/webpack-dev-server/node_modules/open": { "version": "10.1.0", "dev": true, @@ -18251,38 +18162,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/webpack-dev-server/node_modules/path-scurry": { - "version": "1.11.1", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/webpack-dev-server/node_modules/rimraf": { - "version": "5.0.5", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^10.3.7" - }, - "bin": { - "rimraf": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/webpack-dev-server/node_modules/schema-utils": { "version": "4.2.0", "dev": true, @@ -18321,7 +18200,9 @@ } }, "node_modules/webpack/node_modules/enhanced-resolve": { - "version": "5.17.0", + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", + "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", @@ -18333,6 +18214,8 @@ }, "node_modules/webpack/node_modules/tapable": { "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "license": "MIT", "engines": { "node": ">=6" diff --git a/package.json b/package.json index e7c117d12a..4f4038eaa1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "worldview", - "version": "4.46.0", + "version": "4.47.0", "description": "Interactive interface for browsing full-resolution, global satellite imagery", "keywords": [ "NASA", @@ -79,11 +79,11 @@ "devDependencies": { "@babel/core": "^7.25.2", "@babel/eslint-parser": "^7.25.1", - "@babel/plugin-transform-class-properties": "^7.24.7", + "@babel/plugin-transform-class-properties": "^7.25.4", "@babel/plugin-transform-private-methods": "^7.24.7", - "@babel/preset-env": "^7.25.3", + "@babel/preset-env": "^7.25.4", "@babel/preset-react": "^7.24.7", - "@playwright/test": "^1.46.0", + "@playwright/test": "^1.47.0", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.15", "@webpack-cli/serve": "^2.0.5", "ajv": "^8.17.1", @@ -99,35 +99,35 @@ "eslint": "^8.57.0", "eslint-config-airbnb": "^19.0.4", "eslint-config-standard": "^17.1.0", - "eslint-import-resolver-webpack": "^0.13.8", - "eslint-plugin-import": "^2.29.1", - "eslint-plugin-jest": "^28.8.0", - "eslint-plugin-jsx-a11y": "^6.9.0", + "eslint-import-resolver-webpack": "^0.13.9", + "eslint-plugin-import": "^2.30.0", + "eslint-plugin-jest": "^28.8.3", + "eslint-plugin-jsx-a11y": "^6.10.0", "eslint-plugin-n": "^17.10.2", "eslint-plugin-no-storage": "^1.0.2", "eslint-plugin-node": "^11.1.0", "eslint-plugin-promise": "^6.6.0", - "eslint-plugin-react": "^7.34.4", + "eslint-plugin-react": "^7.35.2", "express": "^4.19.2", "glob": "^11.0.0", - "husky": "^9.1.4", + "husky": "^9.1.5", "jest": "^29.7.0", "jest-canvas-mock": "^2.5.2", "jest-environment-jsdom": "^29.7.0", - "mini-css-extract-plugin": "^2.9.0", + "mini-css-extract-plugin": "^2.9.1", "node-dir": "^0.1.17", "node-fetch": "^2.6.9", "node-ssh": "^13.2.0", "npm-run-all": "^4.1.5", "patch-package": "^8.0.0", - "postcss": "^8.4.41", + "postcss": "^8.4.45", "postcss-loader": "^8.1.1", "react-refresh": "^0.14.1", "react-test-renderer": "^18.3.0", "redux-mock-store": "^1.5.4", "run-script-os": "^1.1.6", - "sass": "^1.77.8", - "sass-loader": "^16.0.0", + "sass": "^1.78.0", + "sass-loader": "^16.0.1", "shelljs": "^0.8.5", "showdown": "^2.1.0", "stylelint": "^15.11.0", @@ -136,16 +136,17 @@ "tar": "^7.4.3", "terser-webpack-plugin": "^5.3.10", "uuid": "^10.0.0", - "webpack": "^5.93.0", + "webpack": "^5.94.0", "webpack-bundle-analyzer": "^4.10.2", "webpack-cli": "^5.1.4", - "webpack-dev-middleware": "^7.3.0", - "webpack-dev-server": "^5.0.4", + "webpack-dev-middleware": "^7.4.2", + "webpack-dev-server": "^5.1.0", "xml-js": "^1.6.11", "xml2js": "^0.6.2", "yargs": "^17.7.2" }, "dependencies": { + "@edsc/earthdata-react-icons": "^0.0.2", "@elastic/react-search-ui": "^1.21.5", "@elastic/react-search-ui-views": "^1.21.2", "@fortawesome/fontawesome-svg-core": "^6.6.0", @@ -154,7 +155,7 @@ "@fortawesome/react-fontawesome": "^0.2.2", "@khanisak/temperature-converter": "^2.0.1", "@reduxjs/toolkit": "^2.2.7", - "axios": "^1.7.4", + "axios": "^1.7.7", "bluebird": "3.7.2", "bootstrap": "^5.3.3", "cachai": "^1.0.2", @@ -167,7 +168,7 @@ "eslint-plugin-react-hooks": "^4.6.2", "fetch-mock-jest": "^1.5.1", "file-saver": "^2.0.5", - "geographiclib-geodesic": "^2.0.0", + "geographiclib-geodesic": "^2.1.1", "history": "^5.3.0", "imagesloaded": "^5.0.0", "immutability-helper": "^3.1.1", diff --git a/web/.eslintrc b/web/.eslintrc index 1790df5a14..2b60e11521 100644 --- a/web/.eslintrc +++ b/web/.eslintrc @@ -25,7 +25,11 @@ }, "import/resolver": { "webpack": {} - } + }, + "import/core-modules": [ + "@edsc/earthdata-react-icons/horizon-design-system/earthdata/ui", + "@edsc/earthdata-react-icons/horizon-design-system/hds/ui" + ] }, "rules": { // The following rules are cases where our base rules diff --git a/web/fonts/Inter/Inter-Light.ttf b/web/fonts/Inter/Inter-Light.ttf new file mode 100644 index 0000000000..acae361282 Binary files /dev/null and b/web/fonts/Inter/Inter-Light.ttf differ diff --git a/web/fonts/Inter/Inter-Medium.ttf b/web/fonts/Inter/Inter-Medium.ttf new file mode 100644 index 0000000000..71d90172f1 Binary files /dev/null and b/web/fonts/Inter/Inter-Medium.ttf differ diff --git a/web/fonts/PublicSans/PublicSans-Regular.ttf b/web/fonts/PublicSans/PublicSans-Regular.ttf new file mode 100644 index 0000000000..8afd7e0a17 Binary files /dev/null and b/web/fonts/PublicSans/PublicSans-Regular.ttf differ diff --git a/web/fonts/PublicSans/PublicSans-VariableFont_wght.ttf b/web/fonts/PublicSans/PublicSans-VariableFont_wght.ttf new file mode 100644 index 0000000000..bc53efc12a Binary files /dev/null and b/web/fonts/PublicSans/PublicSans-VariableFont_wght.ttf differ diff --git a/web/images/layers/previews/arctic/VIIRS_NOAA21_Thermal_Anomalies_375m_All.jpg b/web/images/layers/previews/arctic/VIIRS_NOAA21_Thermal_Anomalies_375m_All.jpg new file mode 100644 index 0000000000..72daa4f85e Binary files /dev/null and b/web/images/layers/previews/arctic/VIIRS_NOAA21_Thermal_Anomalies_375m_All.jpg differ diff --git a/web/images/layers/previews/arctic/VIIRS_NOAA21_Thermal_Anomalies_375m_Day.jpg b/web/images/layers/previews/arctic/VIIRS_NOAA21_Thermal_Anomalies_375m_Day.jpg new file mode 100644 index 0000000000..68eea953bf Binary files /dev/null and b/web/images/layers/previews/arctic/VIIRS_NOAA21_Thermal_Anomalies_375m_Day.jpg differ diff --git a/web/images/layers/previews/arctic/VIIRS_NOAA21_Thermal_Anomalies_375m_Night.jpg b/web/images/layers/previews/arctic/VIIRS_NOAA21_Thermal_Anomalies_375m_Night.jpg new file mode 100644 index 0000000000..9081b9065e Binary files /dev/null and b/web/images/layers/previews/arctic/VIIRS_NOAA21_Thermal_Anomalies_375m_Night.jpg differ diff --git a/web/images/layers/previews/geographic/VIIRS_NOAA21_Thermal_Anomalies_375m_All.jpg b/web/images/layers/previews/geographic/VIIRS_NOAA21_Thermal_Anomalies_375m_All.jpg new file mode 100644 index 0000000000..5f5fa92a74 Binary files /dev/null and b/web/images/layers/previews/geographic/VIIRS_NOAA21_Thermal_Anomalies_375m_All.jpg differ diff --git a/web/images/layers/previews/geographic/VIIRS_NOAA21_Thermal_Anomalies_375m_Day.jpg b/web/images/layers/previews/geographic/VIIRS_NOAA21_Thermal_Anomalies_375m_Day.jpg new file mode 100644 index 0000000000..6cc83cc225 Binary files /dev/null and b/web/images/layers/previews/geographic/VIIRS_NOAA21_Thermal_Anomalies_375m_Day.jpg differ diff --git a/web/images/layers/previews/geographic/VIIRS_NOAA21_Thermal_Anomalies_375m_Night.jpg b/web/images/layers/previews/geographic/VIIRS_NOAA21_Thermal_Anomalies_375m_Night.jpg new file mode 100644 index 0000000000..9601098a53 Binary files /dev/null and b/web/images/layers/previews/geographic/VIIRS_NOAA21_Thermal_Anomalies_375m_Night.jpg differ diff --git a/web/js/components/layer/product-picker/search/search-layer-row.js b/web/js/components/layer/product-picker/search/search-layer-row.js index 611d79be9a..e3cf77e96f 100644 --- a/web/js/components/layer/product-picker/search/search-layer-row.js +++ b/web/js/components/layer/product-picker/search/search-layer-row.js @@ -3,6 +3,7 @@ import { connect } from 'react-redux'; import PropTypes from 'prop-types'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { Button, UncontrolledTooltip } from 'reactstrap'; +import { Check } from '@edsc/earthdata-react-icons/horizon-design-system/hds/ui'; import { addLayer as addLayerAction, removeLayer as removeLayerAction, @@ -129,7 +130,7 @@ class SearchLayerRow extends React.Component { onMouseEnter={() => this.toggleDeleteIcon(true)} onMouseLeave={() => this.toggleDeleteIcon(false)} > -
+
+ {isEnabled && ( + + )}
{layerNotices && (
diff --git a/web/js/components/layer/settings/associated-layers-toggle.js b/web/js/components/layer/settings/associated-layers-toggle.js index 68b1763ce4..360a851193 100644 --- a/web/js/components/layer/settings/associated-layers-toggle.js +++ b/web/js/components/layer/settings/associated-layers-toggle.js @@ -38,6 +38,7 @@ function AssociatedLayersToggle(props) { onChangePalette(id)} /> + {isSelected && ( + + )}