- NOTE:
+ Note:
+
{' '}
- Numerical analyses performed on imagery should only be used for initial basic exploratory purposes
+ Numerical analyses performed on imagery should only be used for initial basic exploratory purposes.
>
);
@@ -160,8 +161,8 @@ function ChartComponent (props) {
{' '}
{getLineChart(data)}
-
-
+
+
diff --git a/web/js/components/sidebar/charting-mode-options.js b/web/js/components/sidebar/charting-mode-options.js
index bc87823210..abeb6bb9e7 100644
--- a/web/js/components/sidebar/charting-mode-options.js
+++ b/web/js/components/sidebar/charting-mode-options.js
@@ -1,14 +1,13 @@
-import React, { useEffect } from 'react';
+import React, { useState, useEffect } from 'react';
import PropTypes from 'prop-types';
+import * as olProj from 'ol/proj';
import { Button, ButtonGroup, UncontrolledTooltip } from 'reactstrap';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { connect } from 'react-redux';
-import { Draw as OlInteractionDraw } from 'ol/interaction';
-import { createBox } from 'ol/interaction/Draw';
-import { Vector as OlVectorLayer } from 'ol/layer';
-import { transform } from 'ol/proj';
import { Vector as OlVectorSource } from 'ol/source';
import CustomButton from '../util/button';
+import Crop from '../util/image-crop';
+import util from '../../util/util';
import {
toggleChartingAOIOnOff,
toggleAOISelected,
@@ -19,14 +18,10 @@ import {
} from '../../modules/charting/actions';
import { openCustomContent } from '../../modules/modal/actions';
import { CRS } from '../../modules/map/constants';
-import { areCoordinatesWithinExtent } from '../../modules/location-search/util';
import ChartingInfo from '../charting/charting-info';
import SimpleStatistics from '../charting/simple-statistics';
import ChartingDateSelector from '../charting/charting-date-selector';
import ChartComponent from '../charting/chart-component';
-import {
- drawStyles, vectorStyles,
-} from '../charting/charting-area-of-interest-style';
const AOIFeatureObj = {};
const vectorLayers = {};
@@ -34,7 +29,7 @@ const sources = {};
let init = false;
let draw;
-function ChartingModeOptions (props) {
+function ChartingModeOptions(props) {
const {
activeLayer,
activeLayers,
@@ -50,7 +45,6 @@ function ChartingModeOptions (props) {
openChartingDateModal,
openChartingInfoModal,
olMap,
- proj,
projections,
renderedPalettes,
requestStatusMessage,
@@ -114,49 +108,6 @@ function ChartingModeOptions (props) {
return `${year} ${month} ${day}`;
}
- function getAreaOfInterestCoordinates(geometry) {
- updateAOICoordinates(geometry.getExtent());
- }
-
- const drawEndCallback = ({ feature }) => {
- // Add the draw feature to the collection
- AOIFeatureObj[crs][feature.ol_uid] = {
- feature,
- };
- endDrawingAreaOfInterest();
- toggleAreaOfInterestActive();
- toggleAreaOfInterestSelected();
- getAreaOfInterestCoordinates(feature.getGeometry());
- };
-
- function beginDrawingAOI () {
- resetAreaOfInterest();
- draw = new OlInteractionDraw({
- source: sources[crs], // Destination source for the drawn features (i.e. VectorSource)
- type: 'Circle', // Geometry type of the geometries being drawn with this instance.
- style: drawStyles, // Style used to indicate Area of Interest
- // This is from measurement tool; validate area selected
- condition(e) {
- const pixel = [e.originalEvent.x, e.originalEvent.y];
- const coord = olMap.getCoordinateFromPixel(pixel);
- const tCoord = transform(coord, crs, CRS.GEOGRAPHIC);
- return areCoordinatesWithinExtent(proj, tCoord);
- },
- geometryFunction: createBox(), // Function that is called when a geometry's coordinates are updated.
-
- });
- olMap.addInteraction(draw);
- draw.on('drawend', drawEndCallback);
-
- if (!vectorLayers[crs]) {
- vectorLayers[crs] = new OlVectorLayer({
- source: sources[crs],
- style: vectorStyles,
- map: olMap,
- });
- }
- }
-
useEffect(() => {
if (!init) {
projections.forEach((key) => {
@@ -179,11 +130,6 @@ function ChartingModeOptions (props) {
const onAreaOfInterestButtonClick = (evt) => {
toggleAreaOfInterestActive();
- if (!aoiActive) {
- beginDrawingAOI();
- } else {
- endDrawingAreaOfInterest();
- }
};
@@ -254,7 +200,7 @@ function ChartingModeOptions (props) {
areaOfInterestCoords,
bins,
} = uriParameters;
- let requestURL = `https://d1igaxm6d8pbn2.cloudfront.net/get_stats?_type=${type}×tamp=${timestamp}&steps=${steps}&layer=${layer}&colormap=${colormap}&bbox=${areaOfInterestCoords}&bins=${bins}`;
+ let requestURL = `https://worldview.sit.earthdata.nasa.gov/service/imagestat/get_stats?_type=${type}×tamp=${timestamp}&steps=${steps}&layer=${layer}&colormap=${colormap}&bbox=${areaOfInterestCoords}&bins=${bins}`;
if (type !== 'date') {
requestURL += `&end_timestamp=${endTimestamp}`;
}
@@ -376,6 +322,60 @@ function ChartingModeOptions (props) {
openChartingDateModal({ layerStartDate, layerEndDate }, timeSpanSelection);
}
+ const { screenHeight, screenWidth } = props;
+
+ const [boundaries, setBoundaries] = useState({
+ x: screenWidth / 2 - 100,
+ y: screenHeight / 2 - 100,
+ x2: screenWidth / 2 + 100,
+ y2: screenHeight / 2 + 100,
+ });
+ const {
+ x, y, y2, x2,
+ } = boundaries;
+
+ /**
+ * Convert pixel value to latitude longitude value
+ * @param {Array} pixelX
+ * @param {Array} pixelY
+ *
+ * @returns {Array}
+ */
+ function getLatLongFromPixelValue(pixelX, pixelY) {
+ const { proj, olMap } = props;
+ const coordinate = olMap.getCoordinateFromPixel([Math.floor(pixelX), Math.floor(pixelY)]);
+ const { crs } = proj.selected;
+ const [x, y] = olProj.transform(coordinate, crs, CRS.GEOGRAPHIC);
+
+ return [Number(x.toFixed(4)), Number(y.toFixed(4))];
+ }
+
+ const [bottomLeftLatLong, setBottomLeftLatLong] = useState(getLatLongFromPixelValue(x, y2));
+ const [topRightLatLong, setTopRightLatLong] = useState(getLatLongFromPixelValue(x2, y));
+
+ /**
+ * Update latitude longitude values on
+ * crop change
+ * @param {Object} boundaries
+ *
+ * @returns {null}
+ */
+ function onBoundaryUpdate(boundaries) {
+ const {
+ x, y, width, height,
+ } = boundaries;
+ const newBoundaries = {
+ x,
+ y,
+ x2: x + width,
+ y2: y + height,
+ };
+ setBoundaries(newBoundaries);
+ setBottomLeftLatLong(getLatLongFromPixelValue(newBoundaries.x, newBoundaries.y2));
+ setTopRightLatLong(getLatLongFromPixelValue(newBoundaries.x2, newBoundaries.y));
+ updateAOICoordinates([...bottomLeftLatLong, ...topRightLatLong]);
+ }
+
const layerInfo = getActiveChartingLayer();
const aoiTextPrompt = 'Area of Interest:';
const oneDateBtnStatus = timeSpanSelection === 'date' ? 'btn-active' : '';
@@ -383,6 +383,7 @@ function ChartingModeOptions (props) {
const dateRangeValue = timeSpanSelection === 'range' ? `${primaryDate} - ${secondaryDate}` : primaryDate;
const chartRequestMessage = chartRequestInProgress ? 'In progress...' : '';
const requestBtnText = timeSpanSelection === 'date' ? 'Generate Statistics' : 'Generate Chart';
+ const aoiBtnText = aoiActive ? 'Area Selected' : 'Entire Screen';
return (
Charting Information
@@ -412,13 +413,13 @@ function ChartingModeOptions (props) {
{aoiTextPrompt}
-
- Edit Coordinates
-
+ text={aoiBtnText}
+ />
Time:
@@ -441,41 +442,68 @@ function ChartingModeOptions (props) {
- NOTE:
+ Note:
+
{' '}
- Numerical analyses performed on imagery should only be used for initial basic exploratory purposes
+ Numerical analyses performed on imagery should only be used for initial basic exploratory purposes.
diff --git a/config/default/common/brand/about/imagery.md b/config/default/common/brand/about/imagery.md
index b1c0e3d755..80d12bbceb 100644
--- a/config/default/common/brand/about/imagery.md
+++ b/config/default/common/brand/about/imagery.md
@@ -3,11 +3,10 @@
href="https://earthdata.nasa.gov/collaborate/open-data-services-and-software/data-information-policy"
target="_blank" rel="noopener noreferrer">open data policy and we encourage publication of imagery
from
- Worldview; when doing so for image captions, please cite it as "NASA Worldview " and also consider including a
+ Worldview; when doing so for image captions, please cite it as "NASA Worldview" and also consider including a
direct link to the imagery in Worldview to allow others to explore the imagery.
For acknowledgment in scientific journals, please use: "We acknowledge the use of imagery from the NASA Worldview
application (https://worldview.earthdata.nasa.gov), part of the NASA Earth Observing
- System
- Data and Information System (EOSDIS)."
+ rel="noopener noreferrer">https://worldview.earthdata.nasa.gov), part of the NASA Earth Science
+ Data and Information System (ESDIS)."
\ No newline at end of file
diff --git a/config/default/common/brand/about/welcome.md b/config/default/common/brand/about/welcome.md
index ed9e5e43a1..65881627a0 100644
--- a/config/default/common/brand/about/welcome.md
+++ b/config/default/common/brand/about/welcome.md
@@ -6,8 +6,8 @@
target="_blank" rel="noopener noreferrer"> What's new in @OFFICIAL_NAME@!
This open source
- code app from NASA's EOSDIS provides the capability to interactively browse over 1000 global,
+ code app from NASA's ESDIS provides the capability to interactively browse over 1000 global,
full-resolution satellite imagery layers and then download the underlying data. Many of the imagery layers are
updated daily and are available within three hours of observation - essentially showing the entire Earth as it
looks "right now". This supports time-critical application areas such as wildfire management, air quality
@@ -26,6 +26,6 @@
mapping library, GIBS imagery can also be accessed from Google Earth, NASA World Wind, and several other
clients. We encourage interested developers to build their own clients or integrate NASA imagery into their
existing ones using these services.
diff --git a/config/default/common/config/metadata/layers/aeronet/AERONET_ANGSTROM_440-870NM.md b/config/default/common/config/metadata/layers/aeronet/AERONET_ANGSTROM_440-870NM.md
index 34067dc9e6..1f5a148b17 100644
--- a/config/default/common/config/metadata/layers/aeronet/AERONET_ANGSTROM_440-870NM.md
+++ b/config/default/common/config/metadata/layers/aeronet/AERONET_ANGSTROM_440-870NM.md
@@ -4,6 +4,6 @@ The angstrom parameter is calculated for all available wavelengths within the An
Each AERONET ground-based remote sensing aerosol network site consist of a sun photometer and satellite transmission system. Sun photometer measurements of the direct (collimated) solar radiation provide information to calculate the columnar aerosol optical depth (AOD). AOD can be used to compute columnar water vapor (Precipitable Water) and estimate the aerosol size using the Angstrom parameter relationship.
-The Near Real-Time layer displays the reading from the last one hour, ranging from < 0.0 to >= 2.5. Inactive sites are denoted in grey. Data for this layer is provided by the The AErosol RObotic NETwork ([AERONET](https://aeronet.gsfc.nasa.gov/)) program.
+The Near Real-Time layer displays the reading from the last one hour, ranging from < 0.0 to >= 2.5. Inactive sites are denoted in grey. Data for this layer is provided by the AErosol RObotic NETwork ([AERONET](https://aeronet.gsfc.nasa.gov/)) program.
References: [AERONET Aerosol Optical Depth](https://aeronet.gsfc.nasa.gov/new_web/aerosols.html)
\ No newline at end of file
diff --git a/config/default/common/config/metadata/layers/aeronet/AERONET_AOD_500NM.md b/config/default/common/config/metadata/layers/aeronet/AERONET_AOD_500NM.md
index 242aacca6e..d49573b5e3 100644
--- a/config/default/common/config/metadata/layers/aeronet/AERONET_AOD_500NM.md
+++ b/config/default/common/config/metadata/layers/aeronet/AERONET_AOD_500NM.md
@@ -4,6 +4,6 @@ Aerosol Optical Depth (AOD) (or Aerosol Optical Thickness) indicates the level a
Each AERONET ground-based remote sensing aerosol network site consist of a sun photometer and satellite transmission system. Sun photometer measurements of the direct (collimated) solar radiation provide information to calculate the columnar aerosol optical depth (AOD). AOD can be used to compute columnar water vapor (Precipitable Water) and estimate the aerosol size using the Angstrom parameter relationship.
-The Near Real-Time layer displays the reading from the last one hour, ranging from < 0.0 to 5.0. Inactive sites are denoted in grey. Data for this layer is provided by the The AErosol RObotic NETwork ([AERONET](https://aeronet.gsfc.nasa.gov/)) program.
+The Near Real-Time layer displays the reading from the last one hour, ranging from < 0.0 to 5.0. Inactive sites are denoted in grey. Data for this layer is provided by the AErosol RObotic NETwork ([AERONET](https://aeronet.gsfc.nasa.gov/)) program.
References: [AERONET Aerosol Optical Depth](https://aeronet.gsfc.nasa.gov/new_web/aerosols.html)
\ No newline at end of file
diff --git a/config/default/common/config/metadata/layers/aeronet/DAILY_AERONET_ANGSTROM_440-870NM.md b/config/default/common/config/metadata/layers/aeronet/DAILY_AERONET_ANGSTROM_440-870NM.md
index 6dd8462889..cac96d04df 100644
--- a/config/default/common/config/metadata/layers/aeronet/DAILY_AERONET_ANGSTROM_440-870NM.md
+++ b/config/default/common/config/metadata/layers/aeronet/DAILY_AERONET_ANGSTROM_440-870NM.md
@@ -4,7 +4,7 @@ The angstrom parameter is calculated for all available wavelengths within the An
Each AERONET ground-based remote sensing aerosol network site consist of a sun photometer and satellite transmission system. Sun photometer measurements of the direct (collimated) solar radiation provide information to calculate the columnar aerosol optical depth (AOD). AOD can be used to compute columnar water vapor (Precipitable Water) and estimate the aerosol size using the Angstrom parameter relationship.
-The Daily layer displays the daily average based on the UTC solar day, ranging from < 0.0 to >= 2.5. Inactive sites are denoted in grey. Data for this layer is provided by the The AErosol RObotic NETwork ([AERONET](https://aeronet.gsfc.nasa.gov/)) program.
+The Daily layer displays the daily average based on the UTC solar day, ranging from < 0.0 to >= 2.5. Inactive sites are denoted in grey. Data for this layer is provided by the AErosol RObotic NETwork ([AERONET](https://aeronet.gsfc.nasa.gov/)) program.
References: [AERONET Aerosol Optical Depth](https://aeronet.gsfc.nasa.gov/new_web/aerosols.html)
diff --git a/config/default/common/config/metadata/layers/aeronet/DAILY_AERONET_AOD_500NM.md b/config/default/common/config/metadata/layers/aeronet/DAILY_AERONET_AOD_500NM.md
index c5046bcd11..ca3f91f710 100644
--- a/config/default/common/config/metadata/layers/aeronet/DAILY_AERONET_AOD_500NM.md
+++ b/config/default/common/config/metadata/layers/aeronet/DAILY_AERONET_AOD_500NM.md
@@ -4,6 +4,6 @@ Aerosol Optical Depth (AOD) (or Aerosol Optical Thickness) indicates the level a
Each AERONET ground-based remote sensing aerosol network site consist of a sun photometer and satellite transmission system. Sun photometer measurements of the direct (collimated) solar radiation provide information to calculate the columnar aerosol optical depth (AOD). AOD can be used to compute columnar water vapor (Precipitable Water) and estimate the aerosol size using the Angstrom parameter relationship.
-The Daily layer displays the daily average based on the UTC solar day, ranging from < 0.0 to 5.0. Inactive sites are denoted in grey. Data for this layer is provided by the The AErosol RObotic NETwork ([AERONET](https://aeronet.gsfc.nasa.gov/)) program.
+The Daily layer displays the daily average based on the UTC solar day, ranging from < 0.0 to 5.0. Inactive sites are denoted in grey. Data for this layer is provided by the AErosol RObotic NETwork ([AERONET](https://aeronet.gsfc.nasa.gov/)) program.
References: [AERONET Aerosol Optical Depth](https://aeronet.gsfc.nasa.gov/new_web/aerosols.html)
\ No newline at end of file
diff --git a/config/default/common/config/metadata/layers/goes/GOES-East_ABI_Dust.md b/config/default/common/config/metadata/layers/goes/GOES-East_ABI_Dust.md
new file mode 100644
index 0000000000..8201d6dee8
--- /dev/null
+++ b/config/default/common/config/metadata/layers/goes/GOES-East_ABI_Dust.md
@@ -0,0 +1,18 @@
+Note: This layer is generally available for the **most recent 90 days**, though certain historical ranges are also preserved.
+
+The Dust RGB layer from the GOES-East Advanced Baseline Imager (ABI) is used to identify dust. Dust can be hard to see in visible and infrared imagery because it is optically thin, or because it appears similar to other cloud types such as cirrus. The Dust RGB layer contrasts airborne dust from clouds using band differencing and the IR thermal channel. The IR band differencing allows dust storms to be observed during both daytime and at night.
+
+To interpret the RGB image, the following is a guide as to what each color represents in the image:
+
+* Dust plume, day - bright magenta, pink, Note: Dust at night becomes purple shades below 3 km
+* Low, water cloud - light purple
+* Desert surface, day - light blue
+* Mid, thick clouds - tan shades
+* Mid, thin cloud - green
+* Cold, thick clouds - red
+* High, thin ice clouds - black
+* Very thin clouds, over warm surface - blue
+
+The Geostationary Operational Environmental Satellites (GOES)-East satellite (currently, GOES-16) is centered on 75.2 degrees W, covering the Conterminous US, Canada, Central and South America. The GOES-East ABI imagery is available on a rolling 90-day basis at 10 minute intervals. The sensor resolution is 2 km, the imagery resolution in Worldview/Global Imagery Browse Services (GIBS) is 2 km, the temporal resolution is 10 minutes, and the latency (time from satellite acquisition to availability in GIBS) is approximately 40 minutes.
+
+References: [GOES-R: Dust RGB Quick Guide](https://www.star.nesdis.noaa.gov/goes/documents/QuickGuide_Dust_RGB.pdf)
\ No newline at end of file
diff --git a/config/default/common/config/metadata/layers/goes/GOES-East_ABI_FireTemp.md b/config/default/common/config/metadata/layers/goes/GOES-East_ABI_FireTemp.md
new file mode 100644
index 0000000000..77bd025ec8
--- /dev/null
+++ b/config/default/common/config/metadata/layers/goes/GOES-East_ABI_FireTemp.md
@@ -0,0 +1,19 @@
+Note: This layer is generally available for the **most recent 90 days**, though certain historical ranges are also preserved.
+
+The Fire Temperature RGB layer from the GOES-East Advanced Baseline Imager (ABI) is used to identify where the most intense fires are occurring and differentiate these from "cooler" fires. The RGB takes advantage of the fact that from 3.9µm to shorter wavelengths, background solar radiation and surface reflectance increases. This means that fires need to be more intense in order to be detected by the 2.2 and 1.6µm bands, as more intense fires emit more radiation at these wavelengths. Therefore, small/"cool" fires will only show up at 3.9µm and appear red while increases in fire intensity cause greater contributions of the other channels resulting in white very intense fires.
+
+To interpret the RGB image, the following is a guide as to what each color represents in the image:
+
+* Warm fire - red
+* Very warm fire - orange
+* Hot fire - yellow
+* Very hot fire - near white
+* Burn scars - shades of maroon
+* Clear sky: land - purples to pink
+* Clear sky: water/snow/night - near black
+* Water clouds - shades of blue
+* Ice clouds - shades of green
+
+The Geostationary Operational Environmental Satellites (GOES)-East satellite (currently, GOES-16) is centered on 75.2 degrees W, covering the Conterminous US, Canada, Central and South America. The GOES-East ABI imagery is available on a rolling 90-day basis at 10 minute intervals. The sensor resolution is 2 km, the imagery resolution in Worldview/Global Imagery Browse Services (GIBS) is 2 km, the temporal resolution is 10 minutes, and the latency (time from satellite acquisition to availability in GIBS) is approximately 40 minutes.
+
+References: [GOES-R: Fire Temperature RGB Quick Guide](https://www.star.nesdis.noaa.gov/goes/documents/QuickGuide_Fire_Temperature_RGB.pdf)
\ No newline at end of file
diff --git a/config/default/common/config/metadata/layers/goes/GOES-West_ABI_Dust.md b/config/default/common/config/metadata/layers/goes/GOES-West_ABI_Dust.md
new file mode 100644
index 0000000000..8e01789613
--- /dev/null
+++ b/config/default/common/config/metadata/layers/goes/GOES-West_ABI_Dust.md
@@ -0,0 +1,18 @@
+Note: This layer is generally available for the **most recent 90 days**, though certain historical ranges are also preserved.
+
+The Dust RGB layer from the GOES-West Advanced Baseline Imager (ABI) is used to identify dust. Dust can be hard to see in visible and infrared imagery because it is optically thin, or because it appears similar to other cloud types such as cirrus. The Dust RGB layer contrasts airborne dust from clouds using band differencing and the IR thermal channel. The IR band differencing allows dust storms to be observed during both daytime and at night.
+
+To interpret the RGB image, the following is a guide as to what each color represents in the image:
+
+* Dust plume, day - bright magenta, pink, Note: Dust at night becomes purple shades below 3 km
+* Low, water cloud - light purple
+* Desert surface, day - light blue
+* Mid, thick clouds - tan shades
+* Mid, thin cloud - green
+* Cold, thick clouds - red
+* High, thin ice clouds - black
+* Very thin clouds, over warm surface - blue
+
+The Geostationary Operational Environmental Satellites (GOES)-West satellite (currently, GOES-18) is centered on 137.2 degrees W, covering most of the Pacific Ocean, the USA, most of Canada, Central America, the western half of South America, and parts of Australasia. The GOES-West ABI imagery is available on a rolling 90-day basis at 10 minute intervals. The sensor resolution is 2 km, the imagery resolution in Worldview/Global Imagery Browse Services (GIBS) is 2 km, the temporal resolution is 10 minutes, and the latency (time from satellite acquisition to availability in GIBS) is approximately 40 minutes.
+
+References: [GOES-R: Dust RGB Quick Guide](https://www.star.nesdis.noaa.gov/goes/documents/QuickGuide_Dust_RGB.pdf)
\ No newline at end of file
diff --git a/config/default/common/config/metadata/layers/goes/GOES-West_ABI_FireTemp.md b/config/default/common/config/metadata/layers/goes/GOES-West_ABI_FireTemp.md
new file mode 100644
index 0000000000..d49e9b67bf
--- /dev/null
+++ b/config/default/common/config/metadata/layers/goes/GOES-West_ABI_FireTemp.md
@@ -0,0 +1,19 @@
+Note: This layer is generally available for the **most recent 90 days**, though certain historical ranges are also preserved.
+
+The Fire Temperature RGB layer from the GOES-West Advanced Baseline Imager (ABI) is used to identify where the most intense fires are occurring and differentiate these from "cooler" fires. The RGB takes advantage of the fact that from 3.9µm to shorter wavelengths, background solar radiation and surface reflectance increases. This means that fires need to be more intense in order to be detected by the 2.2 and 1.6µm bands, as more intense fires emit more radiation at these wavelengths. Therefore, small/"cool" fires will only show up at 3.9µm and appear red while increases in fire intensity cause greater contributions of the other channels resulting in white very intense fires.
+
+To interpret the RGB image, the following is a guide as to what each color represents in the image:
+
+* Warm fire - red
+* Very warm fire - orange
+* Hot fire - yellow
+* Very hot fire - near white
+* Burn scars - shades of maroon
+* Clear sky: land - purples to pink
+* Clear sky: water/snow/night - near black
+* Water clouds - shades of blue
+* Ice clouds - shades of green
+
+The Geostationary Operational Environmental Satellites (GOES)-West satellite (currently, GOES-18) is centered on 137.2 degrees W, covering most of the Pacific Ocean, the USA, most of Canada, Central America, the western half of South America, and parts of Australasia. The GOES-West ABI imagery is available on a rolling 90-day basis at 10 minute intervals. The sensor resolution is 2 km, the imagery resolution in Worldview/Global Imagery Browse Services (GIBS) is 2 km, the temporal resolution is 10 minutes, and the latency (time from satellite acquisition to availability in GIBS) is approximately 40 minutes.
+
+References: [GOES-R: Fire Temperature RGB Quick Guide](https://www.star.nesdis.noaa.gov/goes/documents/QuickGuide_Fire_Temperature_RGB.pdf)
\ No newline at end of file
diff --git a/config/default/common/config/metadata/layers/modis/aqua/MODIS_Aqua_Cloud_Optical_Thickness_16_PCL.md b/config/default/common/config/metadata/layers/modis/aqua/MODIS_Aqua_Cloud_Optical_Thickness_16_PCL.md
index a190207d11..f8ec32ae0c 100644
--- a/config/default/common/config/metadata/layers/modis/aqua/MODIS_Aqua_Cloud_Optical_Thickness_16_PCL.md
+++ b/config/default/common/config/metadata/layers/modis/aqua/MODIS_Aqua_Cloud_Optical_Thickness_16_PCL.md
@@ -1,4 +1,4 @@
-The MODIS Cloud Optical Thickness (1.6 microns, PCL) layer is a measure of the amount of sunlight affected by absorption and scattering when passing through the clouds using Band 6 (1.6 μm). Clouds scatter and reflect most visible light. Hence it is simultaneously retrieved with Cloud Effective Radius by simultaneously measuring the reflection function of a non-absorbing and absorbing spectral channel (e.g., Visible/Near Infrared (VIS/NIR) and Shortwave Infrared (SWIR), respectively) and comparing the resulting measurements with theoretical forward model calculations. This layer is the the Cloud Optical Thickness PCL (partly cloudy) retrieval using Band 6 (1.6 μm) for pixels classified as either partly cloudy from 250 m cloud mask test or 1 km cloud edges.
+The MODIS Cloud Optical Thickness (1.6 microns, PCL) layer is a measure of the amount of sunlight affected by absorption and scattering when passing through the clouds using Band 6 (1.6 μm). Clouds scatter and reflect most visible light. Hence it is simultaneously retrieved with Cloud Effective Radius by simultaneously measuring the reflection function of a non-absorbing and absorbing spectral channel (e.g., Visible/Near Infrared (VIS/NIR) and Shortwave Infrared (SWIR), respectively) and comparing the resulting measurements with theoretical forward model calculations. This layer is the Cloud Optical Thickness PCL (partly cloudy) retrieval using Band 6 (1.6 μm) for pixels classified as either partly cloudy from 250 m cloud mask test or 1 km cloud edges.
The MODIS Cloud Optical Thickness layers are available from both the Terra (MOD06) and Aqua (MYD06) satellites for daytime overpasses. The sensor/algorithm resolution is 1 km, imagery resolution is 1 km, and the temporal resolution is daily.
diff --git a/config/default/common/config/metadata/layers/modis/aqua/MODIS_Aqua_Cloud_Optical_Thickness_PCL.md b/config/default/common/config/metadata/layers/modis/aqua/MODIS_Aqua_Cloud_Optical_Thickness_PCL.md
index 19a2d62f17..ba2e082f7f 100644
--- a/config/default/common/config/metadata/layers/modis/aqua/MODIS_Aqua_Cloud_Optical_Thickness_PCL.md
+++ b/config/default/common/config/metadata/layers/modis/aqua/MODIS_Aqua_Cloud_Optical_Thickness_PCL.md
@@ -1,4 +1,4 @@
-The MODIS Cloud Optical Thickness layer is a measure of the amount of sunlight affected by absorption and scattering when passing through the clouds. Clouds scatter and reflect most visible light. Hence it is simultaneously retrieved with Cloud Effective Radius by simultaneously measuring the reflection function of a non-absorbing and absorbing spectral channel (e.g., Visible/Near Infrared (VIS/NIR) and Shortwave Infrared (SWIR), respectively) and comparing the resulting measurements with theoretical forward model calculations. This layer is the the Cloud Optical Thickness PCL (partly cloudy) retrieval using Band 7 (2.1 μm) for pixels classified as either partly cloudy from 250 m cloud mask test or 1 km cloud edges.
+The MODIS Cloud Optical Thickness layer is a measure of the amount of sunlight affected by absorption and scattering when passing through the clouds. Clouds scatter and reflect most visible light. Hence it is simultaneously retrieved with Cloud Effective Radius by simultaneously measuring the reflection function of a non-absorbing and absorbing spectral channel (e.g., Visible/Near Infrared (VIS/NIR) and Shortwave Infrared (SWIR), respectively) and comparing the resulting measurements with theoretical forward model calculations. This layer is the Cloud Optical Thickness PCL (partly cloudy) retrieval using Band 7 (2.1 μm) for pixels classified as either partly cloudy from 250 m cloud mask test or 1 km cloud edges.
The MODIS Cloud Optical Thickness layers are available from both the Terra (MOD06) and Aqua (MYD06) satellites for daytime overpasses. The sensor/algorithm resolution is 1 km, imagery resolution is 1 km, and the temporal resolution is daily.
diff --git a/config/default/common/config/metadata/layers/modis/aqua/MODIS_Aqua_Cloud_Optical_Thickness_PCL_1621.md b/config/default/common/config/metadata/layers/modis/aqua/MODIS_Aqua_Cloud_Optical_Thickness_PCL_1621.md
index c3ed9d2f72..afd2fa77c0 100644
--- a/config/default/common/config/metadata/layers/modis/aqua/MODIS_Aqua_Cloud_Optical_Thickness_PCL_1621.md
+++ b/config/default/common/config/metadata/layers/modis/aqua/MODIS_Aqua_Cloud_Optical_Thickness_PCL_1621.md
@@ -1,4 +1,4 @@
-The MODIS Cloud Optical Thickness (1.6 microns, 1621 Algorithm, PCL) layer is a measure of the amount of sunlight affected by absorption and scattering when passing through the clouds using Band 6 (1.6 μm) and Band 7 (2.1 μm). Clouds scatter and reflect most visible light. This layer is the the Cloud Optical Thickness (1.6 microns, 1621 Algorithm, PCL) (partly cloudy) retrieval using Band 6 (1.6 μm) and Band 7 (2.1 μm) for pixels classified as either partly cloudy from 250 m cloud mask test or 1 km cloud edges.
+The MODIS Cloud Optical Thickness (1.6 microns, 1621 Algorithm, PCL) layer is a measure of the amount of sunlight affected by absorption and scattering when passing through the clouds using Band 6 (1.6 μm) and Band 7 (2.1 μm). Clouds scatter and reflect most visible light. This layer is the Cloud Optical Thickness (1.6 microns, 1621 Algorithm, PCL) (partly cloudy) retrieval using Band 6 (1.6 μm) and Band 7 (2.1 μm) for pixels classified as either partly cloudy from 250 m cloud mask test or 1 km cloud edges.
The MODIS Cloud Optical Thickness layers are available from both the Terra (MOD06) and Aqua (MYD06) satellites for daytime overpasses. The sensor/algorithm resolution is 1 km, imagery resolution is 1 km, and the temporal resolution is daily.
diff --git a/config/default/common/config/metadata/layers/modis/combined/MODIS_Combined_L3_IGBP_Land_Cover_Type_Annual.md b/config/default/common/config/metadata/layers/modis/combined/MODIS_Combined_L3_IGBP_Land_Cover_Type_Annual.md
index 6784bbf7fe..b3d44d8d2d 100644
--- a/config/default/common/config/metadata/layers/modis/combined/MODIS_Combined_L3_IGBP_Land_Cover_Type_Annual.md
+++ b/config/default/common/config/metadata/layers/modis/combined/MODIS_Combined_L3_IGBP_Land_Cover_Type_Annual.md
@@ -1,3 +1,3 @@
-The Terra and Aqua combined Moderate Resolution Imaging Spectroradiometer (MODIS) Land Cover Type (MCD12Q1) Version 6 data product provides global land cover types at yearly intervals. The MCD12Q1 Version 6 data product is derived using supervised classifications of MODIS Terra and Aqua reflectance data. The supervised classifications then undergo additional post-processing that incorporate prior knowledge and ancillary information to further refine specific classes. This layer defines land cover type based on the International Geosphere-Biosphere Programme (IGBP) classification scheme. The classification legend and class descriptions are listed in section 5 of the [User Guide](https://lpdaac.usgs.gov/documents/101/MCD12_User_Guide_V6.pdf).
+The Terra and Aqua combined Moderate Resolution Imaging Spectroradiometer (MODIS) Land Cover Type (MCD12Q1) Version 6.1 data product provides global land cover types at yearly intervals. The MCD12Q1 Version 6.1 data product is derived using supervised classifications of MODIS Terra and Aqua reflectance data. The supervised classifications then undergo additional post-processing that incorporate prior knowledge and ancillary information to further refine specific classes. This layer defines land cover type based on the International Geosphere-Biosphere Programme (IGBP) classification scheme. The classification legend and class descriptions are listed in section 5 of the [User Guide](https://lpdaac.usgs.gov/documents/1409/MCD12_User_Guide_V61.pdf).
-References: MCD12Q1 [doi:10.5067/MODIS/MCD12Q1.006](https://doi.org/10.5067/MODIS/MCD12Q1.006)
+References: MCD12Q1 [doi:10.5067/MODIS/MCD12Q1.061](https://doi.org/10.5067/MODIS/MCD12Q1.061)
diff --git a/config/default/common/config/metadata/layers/modis/terra/MODIS_Terra_Cloud_Optical_Thickness_16_PCL.md b/config/default/common/config/metadata/layers/modis/terra/MODIS_Terra_Cloud_Optical_Thickness_16_PCL.md
index b3f292c855..3594afe608 100644
--- a/config/default/common/config/metadata/layers/modis/terra/MODIS_Terra_Cloud_Optical_Thickness_16_PCL.md
+++ b/config/default/common/config/metadata/layers/modis/terra/MODIS_Terra_Cloud_Optical_Thickness_16_PCL.md
@@ -1,4 +1,4 @@
-The MODIS Cloud Optical Thickness (1.6 microns, PCL) layer is a measure of the amount of sunlight affected by absorption and scattering when passing through the clouds using Band 6 (1.6 μm). Clouds scatter and reflect most visible light. Hence it is simultaneously retrieved with Cloud Effective Radius by simultaneously measuring the reflection function of a non-absorbing and absorbing spectral channel (e.g., Visible/Near Infrared (VIS/NIR) and Shortwave Infrared (SWIR), respectively) and comparing the resulting measurements with theoretical forward model calculations. This layer is the the Cloud Optical Thickness PCL (partly cloudy) retrieval using Band 6 (1.6 μm) for pixels classified as either partly cloudy from 250 m cloud mask test or 1 km cloud edges.
+The MODIS Cloud Optical Thickness (1.6 microns, PCL) layer is a measure of the amount of sunlight affected by absorption and scattering when passing through the clouds using Band 6 (1.6 μm). Clouds scatter and reflect most visible light. Hence it is simultaneously retrieved with Cloud Effective Radius by simultaneously measuring the reflection function of a non-absorbing and absorbing spectral channel (e.g., Visible/Near Infrared (VIS/NIR) and Shortwave Infrared (SWIR), respectively) and comparing the resulting measurements with theoretical forward model calculations. This layer is the Cloud Optical Thickness PCL (partly cloudy) retrieval using Band 6 (1.6 μm) for pixels classified as either partly cloudy from 250 m cloud mask test or 1 km cloud edges.
The MODIS Cloud Optical Thickness layers are available from both the Terra (MOD06) and Aqua (MYD06) satellites for daytime overpasses. The sensor/algorithm resolution is 1 km, imagery resolution is 1 km, and the temporal resolution is daily.
diff --git a/config/default/common/config/metadata/layers/modis/terra/MODIS_Terra_Cloud_Optical_Thickness_PCL.md b/config/default/common/config/metadata/layers/modis/terra/MODIS_Terra_Cloud_Optical_Thickness_PCL.md
index 5b6386bb5d..c47ae72b79 100644
--- a/config/default/common/config/metadata/layers/modis/terra/MODIS_Terra_Cloud_Optical_Thickness_PCL.md
+++ b/config/default/common/config/metadata/layers/modis/terra/MODIS_Terra_Cloud_Optical_Thickness_PCL.md
@@ -1,4 +1,4 @@
-The MODIS Cloud Optical Thickness layer is a measure of the amount of sunlight affected by absorption and scattering when passing through the clouds. Clouds scatter and reflect most visible light. Hence it is simultaneously retrieved with Cloud Effective Radius by simultaneously measuring the reflection function of a non-absorbing and absorbing spectral channel (e.g., Visible/Near Infrared (VIS/NIR) and Shortwave Infrared (SWIR), respectively) and comparing the resulting measurements with theoretical forward model calculations. This layer is the the Cloud Optical Thickness PCL (partly cloudy) retrieval using Band 7 (2.1 μm) for pixels classified as either partly cloudy from 250 m cloud mask test or 1 km cloud edges.
+The MODIS Cloud Optical Thickness layer is a measure of the amount of sunlight affected by absorption and scattering when passing through the clouds. Clouds scatter and reflect most visible light. Hence it is simultaneously retrieved with Cloud Effective Radius by simultaneously measuring the reflection function of a non-absorbing and absorbing spectral channel (e.g., Visible/Near Infrared (VIS/NIR) and Shortwave Infrared (SWIR), respectively) and comparing the resulting measurements with theoretical forward model calculations. This layer is the Cloud Optical Thickness PCL (partly cloudy) retrieval using Band 7 (2.1 μm) for pixels classified as either partly cloudy from 250 m cloud mask test or 1 km cloud edges.
The MODIS Cloud Optical Thickness layers available are: the Cloud Optical Thickness retrieval using Band 7 (2.1 μm); (2) the Cloud Optical Thickness PCL (partly cloudy) retrieval using Band 7 (2.1 μm) for pixels classified as either partly cloudy from 250 m cloud mask test or 1 km cloud edges.
diff --git a/config/default/common/config/metadata/layers/modis/terra/MODIS_Terra_Cloud_Optical_Thickness_PCL_1621.md b/config/default/common/config/metadata/layers/modis/terra/MODIS_Terra_Cloud_Optical_Thickness_PCL_1621.md
index ee2f8f4599..d7e7054e9e 100644
--- a/config/default/common/config/metadata/layers/modis/terra/MODIS_Terra_Cloud_Optical_Thickness_PCL_1621.md
+++ b/config/default/common/config/metadata/layers/modis/terra/MODIS_Terra_Cloud_Optical_Thickness_PCL_1621.md
@@ -1,4 +1,4 @@
-The MODIS Cloud Optical Thickness (1.6 microns, 1621 Algorithm, PCL) layer is a measure of the amount of sunlight affected by absorption and scattering when passing through the clouds using Band 6 (1.6 μm) and Band 7 (2.1 μm). Clouds scatter and reflect most visible light. This layer is the the Cloud Optical Thickness (1.6 microns, 1621 Algorithm, PCL) (partly cloudy) retrieval using Band 6 (1.6 μm) and Band 7 (2.1 μm) for pixels classified as either partly cloudy from 250 m cloud mask test or 1 km cloud edges.
+The MODIS Cloud Optical Thickness (1.6 microns, 1621 Algorithm, PCL) layer is a measure of the amount of sunlight affected by absorption and scattering when passing through the clouds using Band 6 (1.6 μm) and Band 7 (2.1 μm). Clouds scatter and reflect most visible light. This layer is the Cloud Optical Thickness (1.6 microns, 1621 Algorithm, PCL) (partly cloudy) retrieval using Band 6 (1.6 μm) and Band 7 (2.1 μm) for pixels classified as either partly cloudy from 250 m cloud mask test or 1 km cloud edges.
The MODIS Cloud Optical Thickness layers are available from both the Terra (MOD06) and Aqua (MYD06) satellites for daytime overpasses. The sensor/algorithm resolution is 1 km, imagery resolution is 1 km, and the temporal resolution is daily.
diff --git a/config/default/common/config/metadata/layers/modis/terra/MODIS_Terra_EVI_8Day.md b/config/default/common/config/metadata/layers/modis/terra/MODIS_Terra_EVI_8Day.md
index 10d45d84e3..d09b431c46 100644
--- a/config/default/common/config/metadata/layers/modis/terra/MODIS_Terra_EVI_8Day.md
+++ b/config/default/common/config/metadata/layers/modis/terra/MODIS_Terra_EVI_8Day.md
@@ -1,5 +1,5 @@
The MODIS Enhanced Vegetation Index (EVI) is also used as a measure of the greenness and health of vegetation. It is calculated in a similar fashion as NDVI but it corrects for distortions caused by ground cover beneath the canopy vegetation and distortions in reflected light caused by particles in the air by using the blue band to remove residual atmosphere contamination caused by smoke and sub-pixel thin cirrus clouds. The EVI is more effective in areas with large amounts of chlorophyll such as rainforests. The index values range from -0.2 to 1 where higher values (0.3 to 1) indicate areas covered by green, leafy vegetation and lower values (0 to 0.3) indicate areas where there is little or no vegetation.
-The MODIS rolling 8-day EVI layer is available as a near real-time, rolling 8-day product (MOD13Q4N) from from the Terra satellite. It is created from a rolling 8-day land surface reflectance product, MOD09Q1N. The sensor resolution is 250 m, imagery resolution is 250 m, and the temporal resolution is an 8-day product which is updated daily, and available for the last 20 days.
+The MODIS rolling 8-day EVI layer is available as a near real-time, rolling 8-day product (MOD13Q4N) from the Terra satellite. It is created from a rolling 8-day land surface reflectance product, MOD09Q1N. The sensor resolution is 250 m, imagery resolution is 250 m, and the temporal resolution is an 8-day product which is updated daily.
References: MOD13Q4N [doi:10.5067/MODIS/MOD13Q4N.NRT.061](https://doi.org/10.5067/MODIS/MOD13Q4N.NRT.061)
\ No newline at end of file
diff --git a/config/default/common/config/metadata/layers/modis/terra/MODIS_Terra_L3_EVI_Monthly.md b/config/default/common/config/metadata/layers/modis/terra/MODIS_Terra_L3_EVI_Monthly.md
index 48155c0a3f..c7ce657788 100644
--- a/config/default/common/config/metadata/layers/modis/terra/MODIS_Terra_L3_EVI_Monthly.md
+++ b/config/default/common/config/metadata/layers/modis/terra/MODIS_Terra_L3_EVI_Monthly.md
@@ -1,4 +1,4 @@
-The Enhanced Vegetation Index (L3, Monthly) layer is created from from the Terra Moderate Resolution Imaging Spectroradiometer (MODIS) Vegetation Indices (MOD13A3) data which are provided monthly at 1 kilometer (km) spatial resolution as a gridded Level 3 product. In generating this monthly product, the algorithm ingests all the Terra MODIS Vegetation Indices 16-day products that overlap the month and employs a weighted temporal average.
+The Enhanced Vegetation Index (L3, Monthly) layer is created from the Terra Moderate Resolution Imaging Spectroradiometer (MODIS) Vegetation Indices (MOD13A3) data which are provided monthly at 1 kilometer (km) spatial resolution as a gridded Level 3 product. In generating this monthly product, the algorithm ingests all the Terra MODIS Vegetation Indices 16-day products that overlap the month and employs a weighted temporal average.
The Enhanced Vegetation Index (EVI) minimizes canopy background variations and maintains sensitivity over dense vegetation conditions. The EVI uses the blue band to remove residual atmosphere contamination caused by smoke and sub-pixel thin clouds. The MODIS EVI product is computed from surface reflectances corrected for molecular scattering, ozone absorption, and aerosols.
diff --git a/config/default/common/config/metadata/layers/modis/terra/MODIS_Terra_NDVI_8Day.md b/config/default/common/config/metadata/layers/modis/terra/MODIS_Terra_NDVI_8Day.md
index a9b1040f3e..8493fe8c60 100644
--- a/config/default/common/config/metadata/layers/modis/terra/MODIS_Terra_NDVI_8Day.md
+++ b/config/default/common/config/metadata/layers/modis/terra/MODIS_Terra_NDVI_8Day.md
@@ -1,5 +1,5 @@
The MODIS Normalized Difference Vegetation Index (NDVI) layer is a measure of the greenness and health of vegetation. The index is calculated based on how much red and near-infrared light is reflected by plant leaves. The index values range from -0.2 to 1 where higher values (0.3 to 1) indicate areas covered by green, leafy vegetation and lower values (0 to 0.3) indicate areas where there is little or no vegetation. Areas with a lot of green leaf growth, indicates the presence of chlorophyll which reflects more infrared light and less visible light, are depicted in dark green colors, areas with some green leaf growth are in light greens, and areas with little to no vegetation growth are depicted in tan colors.
-The MODIS rolling 8-day NDVI layer is available as a near real-time, rolling 8-day product (MOD13Q4N) from from the Terra satellite. It is created from a rolling 8-day land surface reflectance product, MOD09Q1N. The sensor resolution is 250 m, imagery resolution is 250 m, and the temporal resolution is an 8-day product which is updated daily, and available for the last 20 days.
+The MODIS rolling 8-day NDVI layer is available as a near real-time, rolling 8-day product (MOD13Q4N) from the Terra satellite. It is created from a rolling 8-day land surface reflectance product, MOD09Q1N. The sensor resolution is 250 m, imagery resolution is 250 m, and the temporal resolution is an 8-day product which is updated daily.
References: MOD13Q4N [doi:10.5067/MODIS/MOD13Q4N.NRT.061](https://doi.org/10.5067/MODIS/MOD13Q4N.NRT.061)
diff --git a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_Customizable_Sentinel.md b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_Customizable_Sentinel.md
index 97b51ad36a..4f13ed2d40 100644
--- a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_Customizable_Sentinel.md
+++ b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_Customizable_Sentinel.md
@@ -2,7 +2,7 @@
This Reflectance imagery layer can be customized to display any available Red-Green-Blue (R-G-B) band combination. Select the desired combination in via the Options panel. The layer is dynamically generated, therefore it may take longer to display.
-The Reflectance imagery layer from Sentinel-2A and Sentinel-2B /MSI product (S30) is available through the HLS project from the Multi-Spectral Instrument (MSI) aboard the European Union’s Copernicus Sentinel-2A and Sentinel-2B satellites. The sensor resolution is 10, 20, and 60 m, imagery resolution is resampled to 30 m, and the temporal resolution is daily with a 5 day revisit time. The imagery is available in Worldview/GIBS approximately 2 - 4 days after satellite overpass. There is a separate combined Landsat 8 and 9 imagery layer available.
+The Reflectance imagery layer from Sentinel-2A and Sentinel-2B/MSI product (S30) is available through the HLS project from the Multi-Spectral Instrument (MSI) aboard the European Union’s Copernicus Sentinel-2A and Sentinel-2B satellites. The sensor resolution is 10, 20, and 60 m, imagery resolution is resampled to 30 m, and the temporal resolution is daily with a 5 day revisit time. The imagery is available in Worldview/GIBS approximately 2 - 4 days after satellite overpass. There is a separate combined Landsat 8 and 9 imagery layer available.
This imagery layer is provided dynamically through the [NASA Interagency Implementation and Advanced Concepts Team (IMPACT)](https://earthdata.nasa.gov/esds/impact). As it is dynamically generated, it may take slightly longer to display than normal. The imagery is also only available at higher zoom levels.
diff --git a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_EVI_Landsat.md b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_EVI_Landsat.md
new file mode 100644
index 0000000000..d0833af5a8
--- /dev/null
+++ b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_EVI_Landsat.md
@@ -0,0 +1,21 @@
+**NOTE: This layer is undergoing beta testing.**
+
+The dynamically generated Enhanced Vegetation Index (EVI) imagery layer is an index for quantifying green vegetation. EVI is similar to NDVI but corrects for some atmospheric conditions, canopy background noise, and is more sensitive to areas with dense vegetation. It reflects the state of vegetation health based on how vegetation reflects light at certain wavelengths.
+
+It is calculated using:
+
+`EVI = G * ((NIR - R) / (NIR + C1 * R – C2 * B + L))`
+
+Specifically for Landsat 8 and 9:
+
+`EVI = 2.5 * ((B5 – B4) / (B5 + 6 * B4 – 7.5 * B2 + 1))`
+
+It incorporates an “L” value to adjust for canopy background, “C” values as coefficients for atmospheric resistance, and values from the blue band (B). These enhancements allow for index calculation as a ratio between the R and NIR values, while reducing the background noise, atmospheric noise, and saturation in most cases.
+
+The image is applied with a divergent blue-green to brown color palette. It depicts areas with a lot of green leaf growth, indicating the presence of chlorophyll, in dark green colors. Chlorophyll reflects more infrared light and less visible light. Areas with some green leaf growth are in light yellows, and areas with little to no vegetation growth are in shades of brown.
+
+The Reflectance imagery layer from Landsat 8 and 9/OLI product (L30) is available through the HLS project from the Operational Land Imager (OLI) aboard the Landsat 8 and 9 satellites. The sensor resolution is 30 m, imagery resolution is 30 m, and the temporal resolution is daily with an 8 day revisit time. The imagery is available in Worldview/GIBS approximately 2 - 4 days after satellite overpass. There is a separate combined Sentinel-2A and Sentinel-2B imagery layer available.
+
+This imagery layer is provided dynamically through the [NASA Interagency Implementation and Advanced Concepts Team (IMPACT)](https://earthdata.nasa.gov/esds/impact). As it is dynamically generated, it may take slightly longer to display than normal. The imagery is also only available at higher zoom levels.
+
+References: HLSL30 v002 [doi:10.5067/HLS/HLSL30.002](https://doi.org/10.5067/HLS/HLSL30.002)
\ No newline at end of file
diff --git a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_EVI_Sentinel.md b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_EVI_Sentinel.md
new file mode 100644
index 0000000000..3ca71393b8
--- /dev/null
+++ b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_EVI_Sentinel.md
@@ -0,0 +1,21 @@
+**NOTE: This layer is undergoing beta testing.**
+
+The dynamically generated Enhanced Vegetation Index (EVI) imagery layer is an index for quantifying green vegetation. EVI is similar to NDVI but corrects for some atmospheric conditions, canopy background noise, and is more sensitive to areas with dense vegetation. It reflects the state of vegetation health based on how vegetation reflects light at certain wavelengths.
+
+It is calculated using:
+
+`EVI = G * ((NIR - R) / (NIR + C1 * R – C2 * B + L))`
+
+Specifically for Sentinel-2A and -2B:
+
+`EVI = 2.5 * ((B8A – B4) / (B8A + 6 * B4 – 7.5 * B2 + 1))`
+
+It incorporates an “L” value to adjust for canopy background, “C” values as coefficients for atmospheric resistance, and values from the blue band (B). These enhancements allow for index calculation as a ratio between the R and NIR values, while reducing the background noise, atmospheric noise, and saturation in most cases.
+
+The image is applied with a divergent blue-green to brown color palette. It depicts areas with a lot of green leaf growth, indicating the presence of chlorophyll, in dark green colors. Chlorophyll reflects more infrared light and less visible light. Areas with some green leaf growth are in light yellows, and areas with little to no vegetation growth are in shades of brown.
+
+The Reflectance imagery layer from Sentinel-2A and Sentinel-2B/MSI product (S30) is available through the HLS project from the Multi-Spectral Instrument (MSI) aboard the European Union’s Copernicus Sentinel-2A and Sentinel-2B satellites. The sensor resolution is 10, 20, and 60 m, imagery resolution is resampled to 30 m, and the temporal resolution is daily with a 5 day revisit time. The imagery is available in Worldview/GIBS approximately 2 - 4 days after satellite overpass. There is a separate combined Landsat 8 and 9 imagery layer available.
+
+This imagery layer is provided dynamically through the [NASA Interagency Implementation and Advanced Concepts Team (IMPACT)](https://earthdata.nasa.gov/esds/impact). As it is dynamically generated, it may take slightly longer to display than normal. The imagery is only available at higher zoom levels.
+
+References: HLSS30 v002 [doi:10.5067/HLS/HLSS30.002](https://doi.org/10.5067/HLS/HLSS30.002)
\ No newline at end of file
diff --git a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_False_Color_Sentinel.md b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_False_Color_Sentinel.md
index 57650c4945..f31733ead1 100644
--- a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_False_Color_Sentinel.md
+++ b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_False_Color_Sentinel.md
@@ -2,7 +2,7 @@
The dynamically generated Reflectance (Bands 8-4-3, Color Infrared) imagery layer is a false color composite that is used to gauge plant health and assess plant density. Plants reflect in near infrared and green light, while absorbing in red. Areas with better vegetation health appear red, and denser plant growth is a darker red. Cities, urban areas, and exposed ground appear grey or tan and water is blue or black.
-The Reflectance imagery layer from Sentinel-2A and Sentinel-2B /MSI product (S30) is available through the HLS project from the Multi-Spectral Instrument (MSI) aboard the European Union’s Copernicus Sentinel-2A and Sentinel-2B satellites. The sensor resolution is 10, 20, and 60 m, imagery resolution is resampled to 30 m, and the temporal resolution is daily with a 5 day revisit time. The imagery is available in Worldview/GIBS approximately 2 - 4 days after satellite overpass. There is a separate combined Landsat 8 and 9 imagery layer available.
+The Reflectance imagery layer from Sentinel-2A and Sentinel-2B/MSI product (S30) is available through the HLS project from the Multi-Spectral Instrument (MSI) aboard the European Union’s Copernicus Sentinel-2A and Sentinel-2B satellites. The sensor resolution is 10, 20, and 60 m, imagery resolution is resampled to 30 m, and the temporal resolution is daily with a 5 day revisit time. The imagery is available in Worldview/GIBS approximately 2 - 4 days after satellite overpass. There is a separate combined Landsat 8 and 9 imagery layer available.
This imagery layer is provided dynamically through the [NASA Interagency Implementation and Advanced Concepts Team (IMPACT)](https://earthdata.nasa.gov/esds/impact). As it is dynamically generated, it may take slightly longer to display than normal. The imagery is only available at higher zoom levels.
diff --git a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_False_Color_Urban_Landsat.md b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_False_Color_Urban_Landsat.md
index c58c169e35..e81a0fde12 100644
--- a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_False_Color_Urban_Landsat.md
+++ b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_False_Color_Urban_Landsat.md
@@ -2,7 +2,7 @@
The dynamically generated Reflectance (Bands 7-6-4, Urban False Color) imagery layer is useful for visualizing urban areas more clearly. Urban areas are white, grey, or purple and vegetation appear in shades of green. Snow and ice are dark blue, and water is black or blue. Flooded areas are very dark blue, sometimes black. Wildfires and lava in calderas of volcanoes display in shades of yellow and red.
-The Reflectance imagery layer from Landsat 8 and 9/OLI product (L30) is available through the HLS project from the Operational Land Imager (OLI) aboard the Landsat 8 and 9 satellites. The sensor resolution is 30 m, imagery resolution is 30 m, and the temporal resolution is daily with an 8 day revisit time. The imagery is available in Worldview/GIBS approximately 2 - 4 days after satellite overpass. There is a separate combined Sentinel-2A and Sentinel-2B imagery layer available.
+The Reflectance imagery layer from Landsat 8 and 9/OLI product (L30) is available through the HLS project from the Operational Land Imager (OLI) aboard the Landsat 8 and 9 satellites. The sensor resolution is 30 m, imagery resolution is 30 m, and the temporal resolution is daily with an 8 day revisit time. The imagery is available in Worldview/GIBS approximately 2 - 4 days after satellite overpass. There is a separate combined Sentinel-2A and Sentinel-2B imagery layer available.
This imagery layer is provided dynamically through the [NASA Interagency Implementation and Advanced Concepts Team (IMPACT)](https://earthdata.nasa.gov/esds/impact). As it is dynamically generated, it may take slightly longer to display than normal. The imagery is also only available at higher zoom levels.
diff --git a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_False_Color_Urban_Sentinel.md b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_False_Color_Urban_Sentinel.md
index d73f7c7d17..3cdc1dedf5 100644
--- a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_False_Color_Urban_Sentinel.md
+++ b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_False_Color_Urban_Sentinel.md
@@ -3,7 +3,7 @@
The dynamically generated Reflectance (Bands 12-11-4, Urban False Color) imagery layer is useful for visualizing urban areas more clearly. Urban areas are white, grey, or purple and vegetation appear in shades of green. Snow and ice are dark blue, and water is black or blue. Flooded areas are very dark blue, sometimes black. Wildfires and lava in calderas of volcanoes display in shades of yellow and red.
-The Reflectance imagery layer from Sentinel-2A and Sentinel-2B /MSI product (S30) is available through the HLS project from the Multi-Spectral Instrument (MSI) aboard the European Union’s Copernicus Sentinel-2A and Sentinel-2B satellites. The sensor resolution is 10, 20, and 60 m, imagery resolution is resampled to 30 m, and the temporal resolution is daily with a 5 day revisit time. The imagery is available in Worldview/GIBS approximately 2 - 4 days after satellite overpass. There is a separate combined Landsat 8 and 9 imagery layer available.
+The Reflectance imagery layer from Sentinel-2A and Sentinel-2B/MSI product (S30) is available through the HLS project from the Multi-Spectral Instrument (MSI) aboard the European Union’s Copernicus Sentinel-2A and Sentinel-2B satellites. The sensor resolution is 10, 20, and 60 m, imagery resolution is resampled to 30 m, and the temporal resolution is daily with a 5 day revisit time. The imagery is available in Worldview/GIBS approximately 2 - 4 days after satellite overpass. There is a separate combined Landsat 8 and 9 imagery layer available.
This imagery layer is provided dynamically through the [NASA Interagency Implementation and Advanced Concepts Team (IMPACT)](https://earthdata.nasa.gov/esds/impact). As it is dynamically generated, it may take slightly longer to display than normal. The imagery is also only available at higher zoom levels.
diff --git a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_False_Color_Vegetation_Landsat.md b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_False_Color_Vegetation_Landsat.md
index a811a77498..4786c517c3 100644
--- a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_False_Color_Vegetation_Landsat.md
+++ b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_False_Color_Vegetation_Landsat.md
@@ -2,7 +2,7 @@
The dynamically generated Reflectance (Bands 6-5-4, Vegetative Analysis False Color) imagery layer is useful for looking at vegetation. Vegetation are in shades of green. Burned areas appear bright red, while bare ground appear light red/pink. Water is black.
-The Reflectance imagery layer from Landsat 8 and 9/OLI product (L30) is available through the HLS project from the Operational Land Imager (OLI) aboard the Landsat 8 and 9 satellites. The sensor resolution is 30 m, imagery resolution is 30 m, and the temporal resolution is daily with an 8 day revisit time. The imagery is available in Worldview/GIBS approximately 2 - 4 days after satellite overpass. There is a separate combined Sentinel-2A and Sentinel-2B imagery layer available.
+The Reflectance imagery layer from Landsat 8 and 9/OLI product (L30) is available through the HLS project from the Operational Land Imager (OLI) aboard the Landsat 8 and 9 satellites. The sensor resolution is 30 m, imagery resolution is 30 m, and the temporal resolution is daily with an 8 day revisit time. The imagery is available in Worldview/GIBS approximately 2 - 4 days after satellite overpass. There is a separate combined Sentinel-2A and Sentinel-2B imagery layer available.
This imagery layer is provided dynamically through the [NASA Interagency Implementation and Advanced Concepts Team (IMPACT)](https://earthdata.nasa.gov/esds/impact). As it is dynamically generated, it may take slightly longer to display than normal. The imagery is also only available at higher zoom levels.
diff --git a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_False_Color_Vegetation_Sentinel.md b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_False_Color_Vegetation_Sentinel.md
index 2cbd0dc69c..647dc4987f 100644
--- a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_False_Color_Vegetation_Sentinel.md
+++ b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_False_Color_Vegetation_Sentinel.md
@@ -2,7 +2,7 @@
The dynamically generated Reflectance (Bands 11-8A-4, Vegetative Analysis False Color) imagery layer is useful for looking at vegetation. Vegetation are in shades of green. Burned areas appear bright red, while bare ground appear light red/pink. Water is black.
-The Reflectance imagery layer from Sentinel-2A and Sentinel-2B /MSI product (S30) is available through the HLS project from the Multi-Spectral Instrument (MSI) aboard the European Union’s Copernicus Sentinel-2A and Sentinel-2B satellites. The sensor resolution is 10, 20, and 60 m, imagery resolution is resampled to 30 m, and the temporal resolution is daily with a 5 day revisit time. The imagery is available in Worldview/GIBS approximately 2 - 4 days after satellite overpass. There is a separate combined Landsat 8 and 9 imagery layer available.
+The Reflectance imagery layer from Sentinel-2A and Sentinel-2B/MSI product (S30) is available through the HLS project from the Multi-Spectral Instrument (MSI) aboard the European Union’s Copernicus Sentinel-2A and Sentinel-2B satellites. The sensor resolution is 10, 20, and 60 m, imagery resolution is resampled to 30 m, and the temporal resolution is daily with a 5 day revisit time. The imagery is available in Worldview/GIBS approximately 2 - 4 days after satellite overpass. There is a separate combined Landsat 8 and 9 imagery layer available.
This imagery layer is provided dynamically through the [NASA Interagency Implementation and Advanced Concepts Team (IMPACT)](https://earthdata.nasa.gov/esds/impact). As it is dynamically generated, it may take slightly longer to display than normal. The imagery is also only available at higher zoom levels.
diff --git a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_MSAVI_Landsat.md b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_MSAVI_Landsat.md
new file mode 100644
index 0000000000..17f9cbb37e
--- /dev/null
+++ b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_MSAVI_Landsat.md
@@ -0,0 +1,19 @@
+**NOTE: This layer is undergoing beta testing.**
+
+The dynamically generated Modified Soil Adjusted Vegetation Index (MSAVI) imagery layer minimizes the effect of bare soil on the Soil Adjusted Vegetation Index (SAVI). MSAVI is calculated as a ratio between the R and NIR values with an inductive L function applied to maximize reduction of soil effects on the vegetation signal.
+
+It is calculated using:
+
+`MSAVI = (2 * NIR + 1 – sqrt ((2 * NIR + 1)2 – 8 * (NIR - R))) / 2`
+
+Specifically for Landsat 8 and 9:
+
+`MSAVI = (2 * Band 5 + 1 – sqrt ((2 * Band 5 + 1)2 – 8 * (Band 5 – Band 4))) / 2`
+
+The image is applied with a divergent blue-green to brown color palette. It depicts areas with a lot of green leaf growth, indicating the presence of chlorophyll, in dark green colors. Chlorophyll reflects more infrared light and less visible light. Areas with some green leaf growth are in light greens, and areas with little to no vegetation growth are in shades of brown.
+
+The Reflectance imagery layer from Landsat 8 and 9/OLI product (L30) is available through the HLS project from the Operational Land Imager (OLI) aboard the Landsat 8 and 9 satellites. The sensor resolution is 30 m, imagery resolution is 30 m, and the temporal resolution is daily with an 8 day revisit time. The imagery is available in Worldview/GIBS approximately 2 - 4 days after satellite overpass. There is a separate combined Sentinel-2A and Sentinel-2B imagery layer available.
+
+This imagery layer is provided dynamically through the [NASA Interagency Implementation and Advanced Concepts Team (IMPACT)](https://earthdata.nasa.gov/esds/impact). As it is dynamically generated, it may take slightly longer to display than normal. The imagery is also only available at higher zoom levels.
+
+References: HLSL30 v002 [doi:10.5067/HLS/HLSL30.002](https://doi.org/10.5067/HLS/HLSL30.002)
\ No newline at end of file
diff --git a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_MSAVI_Sentinel.md b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_MSAVI_Sentinel.md
new file mode 100644
index 0000000000..d9c70968fd
--- /dev/null
+++ b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_MSAVI_Sentinel.md
@@ -0,0 +1,19 @@
+**NOTE: This layer is undergoing beta testing.**
+
+The dynamically generated Modified Soil Adjusted Vegetation Index (MSAVI) imagery layer minimizes the effect of bare soil on the Soil Adjusted Vegetation Index (SAVI). MSAVI is calculated as a ratio between the R and NIR values with an inductive L function applied to maximize reduction of soil effects on the vegetation signal.
+
+It is calculated using:
+
+`MSAVI = (2 * NIR + 1 – sqrt ((2 * NIR + 1)2 – 8 * (NIR - R))) / 2`
+
+Specifically for Sentinel-2A and -2B:
+
+`MSAVI = (2 * Band 8A + 1 – sqrt ((2 * Band 8A + 1)2 – 8 * (Band 8A – Band 4))) / 2`
+
+The image is applied with a divergent blue-green to brown color palette. It depicts areas with a lot of green leaf growth, indicating the presence of chlorophyll, in dark green colors. Chlorophyll reflects more infrared light and less visible light. Areas with some green leaf growth are in light greens, and areas with little to no vegetation growth are in shades of brown.
+
+The Reflectance imagery layer from Sentinel-2A and Sentinel-2B/MSI product (S30) is available through the HLS project from the Multi-Spectral Instrument (MSI) aboard the European Union’s Copernicus Sentinel-2A and Sentinel-2B satellites. The sensor resolution is 10, 20, and 60 m, imagery resolution is resampled to 30 m, and the temporal resolution is daily with a 5 day revisit time. The imagery is available in Worldview/GIBS approximately 2 - 4 days after satellite overpass. There is a separate combined Landsat 8 and 9 imagery layer available.
+
+This imagery layer is provided dynamically through the [NASA Interagency Implementation and Advanced Concepts Team (IMPACT)](https://earthdata.nasa.gov/esds/impact). As it is dynamically generated, it may take slightly longer to display than normal. The imagery is only available at higher zoom levels.
+
+References: HLSS30 v002 [doi:10.5067/HLS/HLSS30.002](https://doi.org/10.5067/HLS/HLSS30.002)
\ No newline at end of file
diff --git a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_Moisture_Index_Landsat.md b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_Moisture_Index_Landsat.md
index 059908f068..25b2aa691e 100644
--- a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_Moisture_Index_Landsat.md
+++ b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_Moisture_Index_Landsat.md
@@ -1,8 +1,14 @@
**NOTE: This layer is undergoing beta testing.**
-The dynamically generated Normalized Difference Moisture Index (NDMI) (B5-B6)/(B5+B6) imagery layer is an index to determine vegetation water content and monitor drought. It is calculated using near infrared and shortwave infrared (SWIR) wavelengths using the calculation NDMI = (B5-B6)/(B5+B6). On the rainbow color scale, darker blue colors represent high canopy without water stress, and greenish to yellow colors area areas approaching water stress.
+The dynamically generated Normalized Difference Moisture Index (NDMI) (B5-B6)/(B5+B6) imagery layer is an index to determine vegetation water content and monitor drought. It is calculated using near infrared and shortwave infrared (SWIR) wavelengths.
-The Reflectance imagery layer from Landsat 8 and 9/OLI product (L30) is available through the HLS project from the Operational Land Imager (OLI) aboard the Landsat 8 and 9 satellites. The sensor resolution is 30 m, imagery resolution is 30 m, and the temporal resolution is daily with an 8 day revisit time. The imagery is available in Worldview/GIBS approximately 2 - 4 days after satellite overpass. There is a separate combined Sentinel-2A and Sentinel-2B imagery layer available.
+It is calculated using:
+
+`NDMI = (B5-B6)/(B5+B6)`
+
+The image is applied with a divergent blue to red color palette. Darker blue colors represent high canopy without water stress, and red colors are areas approaching water stress.
+
+The Reflectance imagery layer from Landsat 8 and 9/OLI product (L30) is available through the HLS project from the Operational Land Imager (OLI) aboard the Landsat 8 and 9 satellites. The sensor resolution is 30 m, imagery resolution is 30 m, and the temporal resolution is daily with an 8 day revisit time. The imagery is available in Worldview/GIBS approximately 2 - 4 days after satellite overpass. There is a separate combined Sentinel-2A and Sentinel-2B imagery layer available.
This imagery layer is provided dynamically through the [NASA Interagency Implementation and Advanced Concepts Team (IMPACT)](https://earthdata.nasa.gov/esds/impact). As it is dynamically generated, it may take slightly longer to display than normal. The imagery is also only available at higher zoom levels.
diff --git a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_Moisture_Index_Sentinel.md b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_Moisture_Index_Sentinel.md
index 4e7b971669..43a95b2af1 100644
--- a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_Moisture_Index_Sentinel.md
+++ b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_Moisture_Index_Sentinel.md
@@ -1,8 +1,14 @@
**NOTE: This layer is undergoing beta testing.**
-The dynamically generated Normalized Difference Moisture Index (NDMI) (B8A-B11)/(B8A+B11) imagery layer is an index to determine vegetation water content and monitor drought. It is calculated using near infrared and shortwave infrared (SWIR) wavelengths using the calculation NDMI = (B8A-B11)/(B8A+B11). On the rainbow color scale, darker blue colors represent high canopy without water stress, and greenish to yellow colors area areas approaching water stress.
+The dynamically generated Normalized Difference Moisture Index (NDMI) (B8A-B11)/(B8A+B11) imagery layer is an index to determine vegetation water content and monitor drought. It is calculated using near infrared and shortwave infrared (SWIR) wavelengths.
-The Reflectance imagery layer from Sentinel-2A and Sentinel-2B /MSI product (S30) is available through the HLS project from the Multi-Spectral Instrument (MSI) aboard the European Union’s Copernicus Sentinel-2A and Sentinel-2B satellites. The sensor resolution is 10, 20, and 60 m, imagery resolution is resampled to 30 m, and the temporal resolution is daily with a 5 day revisit time. The imagery is available in Worldview/GIBS approximately 2 - 4 days after satellite overpass. There is a separate combined Landsat 8 and 9 imagery layer available.
+It is calculated using:
+
+`NDMI = (B8A-B11)/(B8A+B11)`
+
+The image is applied with a divergent blue to red color palette. The image is applied with a divergent blue to red color palette. Darker blue colors represent high canopy without water stress, and red colors are areas approaching water stress.
+
+The Reflectance imagery layer from Sentinel-2A and Sentinel-2B/MSI product (S30) is available through the HLS project from the Multi-Spectral Instrument (MSI) aboard the European Union’s Copernicus Sentinel-2A and Sentinel-2B satellites. The sensor resolution is 10, 20, and 60 m, imagery resolution is resampled to 30 m, and the temporal resolution is daily with a 5 day revisit time. The imagery is available in Worldview/GIBS approximately 2 - 4 days after satellite overpass. There is a separate combined Landsat 8 and 9 imagery layer available.
This imagery layer is provided dynamically through the [NASA Interagency Implementation and Advanced Concepts Team (IMPACT)](https://earthdata.nasa.gov/esds/impact). As it is dynamically generated, it may take slightly longer to display than normal. The imagery is only available at higher zoom levels.
diff --git a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_NBR2_Landsat.md b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_NBR2_Landsat.md
new file mode 100644
index 0000000000..897f6d5f46
--- /dev/null
+++ b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_NBR2_Landsat.md
@@ -0,0 +1,19 @@
+**NOTE: This layer is undergoing beta testing.**
+
+The dynamically generated Normalized Burn Ratio 2 (NBR2) imagery layer modifies the Normalized Burn Ratio (NBR) to highlight water sensitivity in vegetation and may be useful in post-fire recovery studies. NBR2 is calculated as a ratio between the SWIR values, substituting the SWIR1 band for the NIR band used in NBR.
+
+It is calculated using:
+
+`NBR2 = (SWIR1 – SWIR2) / (SWIR1 + SWIR2)`
+
+Specifically for Landsat 8 and 9:
+
+`NBR2 = (Band 6 – Band 7) / (Band 6 + Band 7)`
+
+The divergent purple to orange color palette depicts vegetated areas in shades of purple and burned areas in shades of orange.
+
+The Reflectance imagery layer from Landsat 8 and 9/OLI product (L30) is available through the HLS project from the Operational Land Imager (OLI) aboard the Landsat 8 and 9 satellites. The sensor resolution is 30 m, imagery resolution is 30 m, and the temporal resolution is daily with an 8 day revisit time. The imagery is available in Worldview/GIBS approximately 2 - 4 days after satellite overpass. There is a separate combined Sentinel-2A and Sentinel-2B imagery layer available.
+
+This imagery layer is provided dynamically through the [NASA Interagency Implementation and Advanced Concepts Team (IMPACT)](https://earthdata.nasa.gov/esds/impact). As it is dynamically generated, it may take slightly longer to display than normal. The imagery is also only available at higher zoom levels.
+
+References: HLSL30 v002 [doi:10.5067/HLS/HLSL30.002](https://doi.org/10.5067/HLS/HLSL30.002)
\ No newline at end of file
diff --git a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_NBR2_Sentinel.md b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_NBR2_Sentinel.md
new file mode 100644
index 0000000000..6646b0cb8e
--- /dev/null
+++ b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_NBR2_Sentinel.md
@@ -0,0 +1,19 @@
+**NOTE: This layer is undergoing beta testing.**
+
+The dynamically generated Normalized Burn Ratio 2 (NBR2) imagery layer modifies the Normalized Burn Ratio (NBR) to highlight water sensitivity in vegetation and may be useful in post-fire recovery studies. NBR2 is calculated as a ratio between the SWIR values, substituting the SWIR1 band for the NIR band used in NBR.
+
+It is calculated using:
+
+`NBR2 = (SWIR1 – SWIR2) / (SWIR1 + SWIR2)`
+
+Specifically for Sentinel-2A and -2B:
+
+`NBR2 = (Band 11 – Band 12) / (Band 11 + Band 12)`
+
+The divergent purple to orange color palette depicts vegetated areas in shades of purple and burned areas in shades of orange.
+
+The Reflectance imagery layer from Sentinel-2A and Sentinel-2B/MSI product (S30) is available through the HLS project from the Multi-Spectral Instrument (MSI) aboard the European Union’s Copernicus Sentinel-2A and Sentinel-2B satellites. The sensor resolution is 10, 20, and 60 m, imagery resolution is resampled to 30 m, and the temporal resolution is daily with a 5 day revisit time. The imagery is available in Worldview/GIBS approximately 2 - 4 days after satellite overpass. There is a separate combined Landsat 8 and 9 imagery layer available.
+
+This imagery layer is provided dynamically through the [NASA Interagency Implementation and Advanced Concepts Team (IMPACT)](https://earthdata.nasa.gov/esds/impact). As it is dynamically generated, it may take slightly longer to display than normal. The imagery is only available at higher zoom levels.
+
+References: HLSS30 v002 [doi:10.5067/HLS/HLSS30.002](https://doi.org/10.5067/HLS/HLSS30.002)
\ No newline at end of file
diff --git a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_NBR_Landsat.md b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_NBR_Landsat.md
new file mode 100644
index 0000000000..18d8accfaa
--- /dev/null
+++ b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_NBR_Landsat.md
@@ -0,0 +1,19 @@
+**NOTE: This layer is undergoing beta testing.**
+
+The dynamically generated Normalized Burn Ratio (NBR) imagery layer is used to identify burned areas and provide a measure of burn severity. It is calculated as a ratio between the NIR and SWIR values.
+
+It is calculated using:
+
+`NBR = (NIR - SWIR) / (NIR + SWIR)`
+
+Specifically for Landsat 8 and 9:
+
+`NBR = (Band 5 – Band 7) / (Band 5 + Band 7)`
+
+The divergent purple to orange color palette depicts vegetated areas in shades of purple and burned areas in shades of orange.
+
+The Reflectance imagery layer from Landsat 8 and 9/OLI product (L30) is available through the HLS project from the Operational Land Imager (OLI) aboard the Landsat 8 and 9 satellites. The sensor resolution is 30 m, imagery resolution is 30 m, and the temporal resolution is daily with an 8 day revisit time. The imagery is available in Worldview/GIBS approximately 2 - 4 days after satellite overpass. There is a separate combined Sentinel-2A and Sentinel-2B imagery layer available.
+
+This imagery layer is provided dynamically through the [NASA Interagency Implementation and Advanced Concepts Team (IMPACT)](https://earthdata.nasa.gov/esds/impact). As it is dynamically generated, it may take slightly longer to display than normal. The imagery is also only available at higher zoom levels.
+
+References: HLSL30 v002 [doi:10.5067/HLS/HLSL30.002](https://doi.org/10.5067/HLS/HLSL30.002)
\ No newline at end of file
diff --git a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_NBR_Sentinel.md b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_NBR_Sentinel.md
new file mode 100644
index 0000000000..e71e0e66ab
--- /dev/null
+++ b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_NBR_Sentinel.md
@@ -0,0 +1,19 @@
+**NOTE: This layer is undergoing beta testing.**
+
+The dynamically generated Normalized Burn Ratio (NBR) imagery layer is used to identify burned areas and provide a measure of burn severity. It is calculated as a ratio between the NIR and SWIR values.
+
+It is calculated using:
+
+`NBR = (NIR - SWIR) / (NIR + SWIR)`
+
+Specifically for Sentinel-2A and -2B:
+
+`NBR = (Band 8A – Band 12) / (Band 8A + Band 12)`
+
+The divergent purple to orange color palette depicts vegetated areas in shades of purple and burned areas in shades of orange.
+
+The Reflectance imagery layer from Sentinel-2A and Sentinel-2B/MSI product (S30) is available through the HLS project from the Multi-Spectral Instrument (MSI) aboard the European Union’s Copernicus Sentinel-2A and Sentinel-2B satellites. The sensor resolution is 10, 20, and 60 m, imagery resolution is resampled to 30 m, and the temporal resolution is daily with a 5 day revisit time. The imagery is available in Worldview/GIBS approximately 2 - 4 days after satellite overpass. There is a separate combined Landsat 8 and 9 imagery layer available.
+
+This imagery layer is provided dynamically through the [NASA Interagency Implementation and Advanced Concepts Team (IMPACT)](https://earthdata.nasa.gov/esds/impact). As it is dynamically generated, it may take slightly longer to display than normal. The imagery is only available at higher zoom levels.
+
+References: HLSS30 v002 [doi:10.5067/HLS/HLSS30.002](https://doi.org/10.5067/HLS/HLSS30.002)
\ No newline at end of file
diff --git a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_NDSI_Landsat.md b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_NDSI_Landsat.md
index c8b45a257b..6db520945f 100644
--- a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_NDSI_Landsat.md
+++ b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_NDSI_Landsat.md
@@ -1,8 +1,12 @@
**NOTE: This layer is undergoing beta testing.**
-The dynamically generated Normalized Difference Snow Index (NDSI) (B3-B6)/(B3+B6) imagery layer is an index for quantifying snow cover. It can also be used to differentiate snow from cloud cover because while snow absorbs in the shortwave infrared light, it reflects the visible light, and cloud is generally reflective in both wavelengths. Snow cover is shown in dark blues. It is calculated using the calculation NDSI = (B3-B6)/(B3+B6).
+The dynamically generated Normalized Difference Snow Index (NDSI) (B3-B6)/(B3+B6) imagery layer is an index for quantifying snow cover. It can also be used to differentiate snow from cloud cover because while snow absorbs in the shortwave infrared light, it reflects the visible light, and cloud is generally reflective in both wavelengths. Snow cover is shown in dark blues.
-The Reflectance imagery layer from Landsat 8 and 9/OLI product (L30) is available through the HLS project from the Operational Land Imager (OLI) aboard the Landsat 8 and 9 satellites. The sensor resolution is 30 m, imagery resolution is 30 m, and the temporal resolution is daily with an 8 day revisit time. The imagery is available in Worldview/GIBS approximately 2 - 4 days after satellite overpass. There is a separate combined Sentinel-2A and Sentinel-2B imagery layer available.
+It is calculated using:
+
+`NDSI = (B3-B6)/(B3+B6)`
+
+The Reflectance imagery layer from Landsat 8 and 9/OLI product (L30) is available through the HLS project from the Operational Land Imager (OLI) aboard the Landsat 8 and 9 satellites. The sensor resolution is 30 m, imagery resolution is 30 m, and the temporal resolution is daily with an 8 day revisit time. The imagery is available in Worldview/GIBS approximately 2 - 4 days after satellite overpass. There is a separate combined Sentinel-2A and Sentinel-2B imagery layer available.
This imagery layer is provided dynamically through the [NASA Interagency Implementation and Advanced Concepts Team (IMPACT)](https://earthdata.nasa.gov/esds/impact). As it is dynamically generated, it may take slightly longer to display than normal. The imagery is also only available at higher zoom levels.
diff --git a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_NDSI_Sentinel.md b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_NDSI_Sentinel.md
index fda7447686..ee3e999e9f 100644
--- a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_NDSI_Sentinel.md
+++ b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_NDSI_Sentinel.md
@@ -1,8 +1,12 @@
**NOTE: This layer is undergoing beta testing.**
-The dynamically generated Normalized Difference Snow Index (NDSI) (B3-B11)/(B3+B11) imagery layer is an index for quantifying snow cover. It can also be used to differentiate snow from cloud cover because while snow absorbs in the shortwave infrared light, it reflects the visible light, and cloud is generally reflective in both wavelengths. Snow cover is shown in dark blues. It is calculated using the calculation NDSI = (B3-B11)/(B3+B11).
+The dynamically generated Normalized Difference Snow Index (NDSI) (B3-B11)/(B3+B11) imagery layer is an index for quantifying snow cover. It can also be used to differentiate snow from cloud cover because while snow absorbs in the shortwave infrared light, it reflects the visible light, and cloud is generally reflective in both wavelengths. Snow cover is shown in dark blues.
-The Reflectance imagery layer from Sentinel-2A and Sentinel-2B /MSI product (S30) is available through the HLS project from the Multi-Spectral Instrument (MSI) aboard the European Union’s Copernicus Sentinel-2A and Sentinel-2B satellites. The sensor resolution is 10, 20, and 60 m, imagery resolution is resampled to 30 m, and the temporal resolution is daily with a 5 day revisit time. The imagery is available in Worldview/GIBS approximately 2 - 4 days after satellite overpass. There is a separate combined Landsat 8 and 9 imagery layer available.
+It is calculated using:
+
+`NDSI = (B3-B11)/(B3+B11)`
+
+The Reflectance imagery layer from Sentinel-2A and Sentinel-2B/MSI product (S30) is available through the HLS project from the Multi-Spectral Instrument (MSI) aboard the European Union’s Copernicus Sentinel-2A and Sentinel-2B satellites. The sensor resolution is 10, 20, and 60 m, imagery resolution is resampled to 30 m, and the temporal resolution is daily with a 5 day revisit time. The imagery is available in Worldview/GIBS approximately 2 - 4 days after satellite overpass. There is a separate combined Landsat 8 and 9 imagery layer available.
This imagery layer is provided dynamically through the [NASA Interagency Implementation and Advanced Concepts Team (IMPACT)](https://earthdata.nasa.gov/esds/impact). As it is dynamically generated, it may take slightly longer to display than normal. The imagery is only available at higher zoom levels.
diff --git a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_NDVI_Landsat.md b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_NDVI_Landsat.md
index 1ce64e7f0f..f08c5789b2 100644
--- a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_NDVI_Landsat.md
+++ b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_NDVI_Landsat.md
@@ -1,8 +1,14 @@
**NOTE: This layer is undergoing beta testing.**
-The dynamically generated Normalized Difference Vegetation Index (NDVI) (B5-B4)/(B5+B4) imagery layer is an index for quantifying green vegetation. It reflects the state of vegetation health based on how vegetation reflects light at certain wavelengths. It is calculated using near infrared and red wavelengths using the calculation NDVI = (B5-B4)/(B5+B4). Depicted in dark green colors are areas with a lot of green leaf growth which indicates the presence of chlorophyll. Chlorophyll reflects more infrared light and less visible light. Areas with some green leaf growth are in light greens, and areas with little to no vegetation growth are even lighter greens.
+The dynamically generated Normalized Difference Vegetation Index (NDVI) (B5-B4)/(B5+B4) imagery layer is an index for quantifying green vegetation. It reflects the state of vegetation health based on how vegetation reflects light at certain wavelengths. It is calculated using near infrared and red wavelengths.
-The Reflectance imagery layer from Landsat 8 and 9/OLI product (L30) is available through the HLS project from the Operational Land Imager (OLI) aboard the Landsat 8 and 9 satellites. The sensor resolution is 30 m, imagery resolution is 30 m, and the temporal resolution is daily with an 8 day revisit time. The imagery is available in Worldview/GIBS approximately 2 - 4 days after satellite overpass. There is a separate combined Sentinel-2A and Sentinel-2B imagery layer available.
+It is calculated using:
+
+`NDVI = (B5-B4)/(B5+B4)`
+
+The image is applied with a divergent blue-green to brown color palette. It depicts areas with a lot of green leaf growth, indicating the presence of chlorophyll, in dark green colors. Chlorophyll reflects more infrared light and less visible light. Areas with some green leaf growth are in light yellows, and areas with little to no vegetation growth are shades of brown.
+
+The Reflectance imagery layer from Landsat 8 and 9/OLI product (L30) is available through the HLS project from the Operational Land Imager (OLI) aboard the Landsat 8 and 9 satellites. The sensor resolution is 30 m, imagery resolution is 30 m, and the temporal resolution is daily with an 8 day revisit time. The imagery is available in Worldview/GIBS approximately 2 - 4 days after satellite overpass. There is a separate combined Sentinel-2A and Sentinel-2B imagery layer available.
This imagery layer is provided dynamically through the [NASA Interagency Implementation and Advanced Concepts Team (IMPACT)](https://earthdata.nasa.gov/esds/impact). As it is dynamically generated, it may take slightly longer to display than normal. The imagery is also only available at higher zoom levels.
diff --git a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_NDVI_Sentinel.md b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_NDVI_Sentinel.md
index 5567553cbc..d4e69d5a0e 100644
--- a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_NDVI_Sentinel.md
+++ b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_NDVI_Sentinel.md
@@ -1,8 +1,14 @@
**NOTE: This layer is undergoing beta testing.**
-The dynamically generated Normalized Difference Vegetation Index (NDVI) (B8-B4)/(B8+B4) imagery layer is an index for quantifying green vegetation. It reflects the state of vegetation health based on how vegetation reflects light at certain wavelengths. It is calculated using near infrared and red wavelengths using the calculation NDVI = (B8-B4)/(B8+B4). Depicted in dark green colors are areas with a lot of green leaf growth which indicates the presence of chlorophyll. Chlorophyll reflects more infrared light and less visible light. Areas with some green leaf growth are in light greens, and areas with little to no vegetation growth are even lighter greens.
+The dynamically generated Normalized Difference Vegetation Index (NDVI) (B8-B4)/(B8+B4) imagery layer is an index for quantifying green vegetation. It reflects the state of vegetation health based on how vegetation reflects light at certain wavelengths. It is calculated using near infrared and red wavelengths.
-The Reflectance imagery layer from Sentinel-2A and Sentinel-2B /MSI product (S30) is available through the HLS project from the Multi-Spectral Instrument (MSI) aboard the European Union’s Copernicus Sentinel-2A and Sentinel-2B satellites. The sensor resolution is 10, 20, and 60 m, imagery resolution is resampled to 30 m, and the temporal resolution is daily with a 5 day revisit time. The imagery is available in Worldview/GIBS approximately 2 - 4 days after satellite overpass. There is a separate combined Landsat 8 and 9 imagery layer available.
+It is calculated using:
+
+`NDVI = (B8-B4)/(B8+B4)`
+
+The image is applied with a divergent blue-green to brown color palette. It depicts areas with a lot of green leaf growth, indicating the presence of chlorophyll, in dark green colors. Chlorophyll reflects more infrared light and less visible light. Areas with some green leaf growth are in light yellows, and areas with little to no vegetation growth are in shades of brown.
+
+The Reflectance imagery layer from Sentinel-2A and Sentinel-2B/MSI product (S30) is available through the HLS project from the Multi-Spectral Instrument (MSI) aboard the European Union’s Copernicus Sentinel-2A and Sentinel-2B satellites. The sensor resolution is 10, 20, and 60 m, imagery resolution is resampled to 30 m, and the temporal resolution is daily with a 5 day revisit time. The imagery is available in Worldview/GIBS approximately 2 - 4 days after satellite overpass. There is a separate combined Landsat 8 and 9 imagery layer available.
This imagery layer is provided dynamically through the [NASA Interagency Implementation and Advanced Concepts Team (IMPACT)](https://earthdata.nasa.gov/esds/impact). As it is dynamically generated, it may take slightly longer to display than normal. The imagery is only available at higher zoom levels.
diff --git a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_NDWI_Landsat.md b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_NDWI_Landsat.md
index b2f7844439..932a30adc1 100644
--- a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_NDWI_Landsat.md
+++ b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_NDWI_Landsat.md
@@ -1,8 +1,14 @@
**NOTE: This layer is undergoing beta testing.**
-The dynamically generated Normalized Difference Water Index (NDWI) (B3-B5)/(B3+B5) imagery layer is useful for identifying water bodies and to monitor changes related to water content in water bodies. It is calculated using green and near infrared wavelengths using the caculation NDWI = (B3-B5)/(B3+B5). The index can overestimate water bodies as it is sensitive to built-up areas. Teal and blues indicate water bodies.
+The dynamically generated Normalized Difference Water Index (NDWI) (B3-B5)/(B3+B5) imagery layer is useful for identifying water bodies and to monitor changes related to water content in water bodies. It is calculated using green and near infrared wavelengths.
-The Reflectance imagery layer from Landsat 8 and 9/OLI product (L30) is available through the HLS project from the Operational Land Imager (OLI) aboard the Landsat 8 and 9 satellites. The sensor resolution is 30 m, imagery resolution is 30 m, and the temporal resolution is daily with an 8 day revisit time. The imagery is available in Worldview/GIBS approximately 2 - 4 days after satellite overpass. There is a separate combined Sentinel-2A and Sentinel-2B imagery layer available.
+It is calculated using:
+
+`NDWI = (B3-B5)/(B3+B5)`
+
+The index can overestimate water bodies as it is sensitive to built-up areas. Teal and blues indicate water bodies.
+
+The Reflectance imagery layer from Landsat 8 and 9/OLI product (L30) is available through the HLS project from the Operational Land Imager (OLI) aboard the Landsat 8 and 9 satellites. The sensor resolution is 30 m, imagery resolution is 30 m, and the temporal resolution is daily with an 8 day revisit time. The imagery is available in Worldview/GIBS approximately 2 - 4 days after satellite overpass. There is a separate combined Sentinel-2A and Sentinel-2B imagery layer available.
This imagery layer is provided dynamically through the [NASA Interagency Implementation and Advanced Concepts Team (IMPACT)](https://earthdata.nasa.gov/esds/impact). As it is dynamically generated, it may take slightly longer to display than normal. The imagery is also only available at higher zoom levels.
diff --git a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_NDWI_Sentinel.md b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_NDWI_Sentinel.md
index 8313920aa0..14031585b0 100644
--- a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_NDWI_Sentinel.md
+++ b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_NDWI_Sentinel.md
@@ -1,8 +1,14 @@
**NOTE: This layer is undergoing beta testing.**
-The dynamically generated Normalized Difference Water Index (NDWI) (B3-B8)/(B3+B8) imagery layer is useful for identifying water bodies and to monitor changes related to water content in water bodies. It is calculated using green and near infrared wavelengths using the caculation NDWI = (B3-B8)/(B3+B8). The index can overestimate water bodies as it is sensitive to built-up areas. Teal and blues indicate water bodies.
+The dynamically generated Normalized Difference Water Index (NDWI) (B3-B8)/(B3+B8) imagery layer is useful for identifying water bodies and to monitor changes related to water content in water bodies. It is calculated using green and near infrared wavelengths.
-The Reflectance imagery layer from Sentinel-2A and Sentinel-2B /MSI product (S30) is available through the HLS project from the Multi-Spectral Instrument (MSI) aboard the European Union’s Copernicus Sentinel-2A and Sentinel-2B satellites. The sensor resolution is 10, 20, and 60 m, imagery resolution is resampled to 30 m, and the temporal resolution is daily with a 5 day revisit time. The imagery is available in Worldview/GIBS approximately 2 - 4 days after satellite overpass. There is a separate combined Landsat 8 and 9 imagery layer available.
+It is calculated using:
+
+`NDWI = (B3-B8)/(B3+B8)`
+
+The index can overestimate water bodies as it is sensitive to built-up areas. Teal and blues indicate water bodies.
+
+The Reflectance imagery layer from Sentinel-2A and Sentinel-2B/MSI product (S30) is available through the HLS project from the Multi-Spectral Instrument (MSI) aboard the European Union’s Copernicus Sentinel-2A and Sentinel-2B satellites. The sensor resolution is 10, 20, and 60 m, imagery resolution is resampled to 30 m, and the temporal resolution is daily with a 5 day revisit time. The imagery is available in Worldview/GIBS approximately 2 - 4 days after satellite overpass. There is a separate combined Landsat 8 and 9 imagery layer available.
This imagery layer is provided dynamically through the [NASA Interagency Implementation and Advanced Concepts Team (IMPACT)](https://earthdata.nasa.gov/esds/impact). As it is dynamically generated, it may take slightly longer to display than normal. The imagery is only available at higher zoom levels.
diff --git a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_S30_Nadir_BRDF_Adjusted_Reflectance.md b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_S30_Nadir_BRDF_Adjusted_Reflectance.md
index 8a7ba7f705..41050c4a89 100644
--- a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_S30_Nadir_BRDF_Adjusted_Reflectance.md
+++ b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_S30_Nadir_BRDF_Adjusted_Reflectance.md
@@ -1,4 +1,4 @@
-The Reflectance (Nadir BRDF Adjusted) imagery layer from Sentinel-2A and Sentinel-2B /MSI is a true-color or natural color image because this combination of wavelengths is similar to what the human eye would see. It consists of natural-looking images of land surface, oceanic and atmospheric features. The Reflectance (Nadir BRDF Adjusted) imagery layer from Sentinel-2A and Sentinel-2B /MSI provides 30m Nadir Bidirectional Reflectance Distribution Function (BRDF)-Adjusted Reflectance (NBAR) and is derived from a combination of the European Union’s Copernicus Sentinel-2A and Sentinel-2B Multi-Spectral Instrument (MSI) data products through the Harmonized Landsat and Sentinel-2 (HLS) project.
+The Reflectance (Nadir BRDF Adjusted) imagery layer from Sentinel-2A and Sentinel-2B/MSI is a true-color or natural color image because this combination of wavelengths is similar to what the human eye would see. It consists of natural-looking images of land surface, oceanic and atmospheric features. The Reflectance (Nadir BRDF Adjusted) imagery layer from Sentinel-2A and Sentinel-2B /MSI provides 30m Nadir Bidirectional Reflectance Distribution Function (BRDF)-Adjusted Reflectance (NBAR) and is derived from a combination of the European Union’s Copernicus Sentinel-2A and Sentinel-2B Multi-Spectral Instrument (MSI) data products through the Harmonized Landsat and Sentinel-2 (HLS) project.
The Reflectance (Nadir BRDF-Adjusted) product (S30) is available through the HLS project from the Multi-Spectral Instrument (MSI) aboard the European Union’s Copernicus Sentinel-2A and Sentinel-2B satellites. The sensor resolution is 10, 20, and 60 m, imagery resolution is resampled to 30 m, and the temporal resolution is daily with a 5 day revisit time. The imagery is available in Worldview/GIBS approximately 2 - 4 days after satellite overpass. There is a separate combined Landsat 8 and 9 imagery layer available.
diff --git a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_SAVI_Landsat.md b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_SAVI_Landsat.md
new file mode 100644
index 0000000000..5298a56428
--- /dev/null
+++ b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_SAVI_Landsat.md
@@ -0,0 +1,19 @@
+**NOTE: This layer is undergoing beta testing.**
+
+The dynamically generated Soil Adjusted Vegetation Index (SAVI) imagery layer is used to correct Normalized Difference Vegetation Index (NDVI) for the influence of soil brightness in areas where vegetative cover is low. Surface Reflectance-derived SAVI is calculated as a ratio between the R and NIR values with a soil brightness correction factor (L) defined as 0.5 to accommodate most land cover types.
+
+It is calculated using:
+
+`SAVI = ((NIR - R) / (NIR + R + L)) * (1 + L)`
+
+Specifically for Landsat 8 and 9:
+
+`SAVI = ((Band 5 – Band 4) / (Band 5 + Band 4 + 0.5)) * (1.5)`
+
+The image is applied with a divergent blue-green to brown color palette. It depicts areas with a lot of green leaf growth, indicating the presence of chlorophyll, in dark green colors. Chlorophyll reflects more infrared light and less visible light. Areas with some green leaf growth are in light greens, and areas with little to no vegetation growth are in shades of brown.
+
+The Reflectance imagery layer from Landsat 8 and 9/OLI product (L30) is available through the HLS project from the Operational Land Imager (OLI) aboard the Landsat 8 and 9 satellites. The sensor resolution is 30 m, imagery resolution is 30 m, and the temporal resolution is daily with an 8 day revisit time. The imagery is available in Worldview/GIBS approximately 2 - 4 days after satellite overpass. There is a separate combined Sentinel-2A and Sentinel-2B imagery layer available.
+
+This imagery layer is provided dynamically through the [NASA Interagency Implementation and Advanced Concepts Team (IMPACT)](https://earthdata.nasa.gov/esds/impact). As it is dynamically generated, it may take slightly longer to display than normal. The imagery is also only available at higher zoom levels.
+
+References: HLSL30 v002 [doi:10.5067/HLS/HLSL30.002](https://doi.org/10.5067/HLS/HLSL30.002)
\ No newline at end of file
diff --git a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_SAVI_Sentinel.md b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_SAVI_Sentinel.md
new file mode 100644
index 0000000000..d840a1ab0e
--- /dev/null
+++ b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_SAVI_Sentinel.md
@@ -0,0 +1,19 @@
+**NOTE: This layer is undergoing beta testing.**
+
+The dynamically generated Soil Adjusted Vegetation Index (SAVI) imagery layer is used to correct Normalized Difference Vegetation Index (NDVI) for the influence of soil brightness in areas where vegetative cover is low. Surface Reflectance-derived SAVI is calculated as a ratio between the R and NIR values with a soil brightness correction factor (L) defined as 0.5 to accommodate most land cover types.
+
+It is calculated using:
+
+`SAVI = ((NIR - R) / (NIR + R + L)) * (1 + L)`
+
+Specifically for Sentinel-2A and -2B:
+
+`SAVI = ((Band 8A – Band 4) / (Band 8A + Band 4 + 0.428)) * (1.428)`
+
+The image is applied with a divergent blue-green to brown color palette. It depicts areas with a lot of green leaf growth, indicating the presence of chlorophyll, in dark green colors. Chlorophyll reflects more infrared light and less visible light. Areas with some green leaf growth are in light greens, and areas with little to no vegetation growth are in shades of brown.
+
+The Reflectance imagery layer from Sentinel-2A and Sentinel-2B/MSI product (S30) is available through the HLS project from the Multi-Spectral Instrument (MSI) aboard the European Union’s Copernicus Sentinel-2A and Sentinel-2B satellites. The sensor resolution is 10, 20, and 60 m, imagery resolution is resampled to 30 m, and the temporal resolution is daily with a 5 day revisit time. The imagery is available in Worldview/GIBS approximately 2 - 4 days after satellite overpass. There is a separate combined Landsat 8 and 9 imagery layer available.
+
+This imagery layer is provided dynamically through the [NASA Interagency Implementation and Advanced Concepts Team (IMPACT)](https://earthdata.nasa.gov/esds/impact). As it is dynamically generated, it may take slightly longer to display than normal. The imagery is only available at higher zoom levels.
+
+References: HLSS30 v002 [doi:10.5067/HLS/HLSS30.002](https://doi.org/10.5067/HLS/HLSS30.002)
\ No newline at end of file
diff --git a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_SWIR_Sentinel.md b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_SWIR_Sentinel.md
deleted file mode 100644
index 51c13bb88f..0000000000
--- a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_SWIR_Sentinel.md
+++ /dev/null
@@ -1,9 +0,0 @@
-**NOTE: This layer is undergoing beta testing.**
-
-The dynamically generated Reflectance (Bands 12-8A-4, Shortwave Infrared) imagery layer is useful looking at how much water is present in plants and soils, as water absorbs in shortwave infrared wavelengths. It can be used to distinguish between cloud types like water clouds versus ice clouds, snow and ice, which appear white. Vegetation is in shades of green, soils and urban areas are in shades of brown, and water is black. Freshly burned areas appear red.
-
-The Reflectance imagery layer from Sentinel-2A and Sentinel-2B /MSI product (S30) is available through the HLS project from the Multi-Spectral Instrument (MSI) aboard the European Union’s Copernicus Sentinel-2A and Sentinel-2B satellites. The sensor resolution is 10, 20, and 60 m, imagery resolution is resampled to 30 m, and the temporal resolution is daily with a 5 day revisit time. The imagery is available in Worldview/GIBS approximately 2 - 4 days after satellite overpass. There is a separate combined Landsat 8 and 9 imagery layer available.
-
-This imagery layer is provided dynamically through the [NASA Interagency Implementation and Advanced Concepts Team (IMPACT)](https://earthdata.nasa.gov/esds/impact). As it is dynamically generated, it may take slightly longer to display than normal. The imagery is also only available at higher zoom levels.
-
-References: HLSS30 v002 [doi:10.5067/HLS/HLSS30.002](https://doi.org/10.5067/HLS/HLSS30.002)
\ No newline at end of file
diff --git a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_Shortwave_Infrared_Landsat.md b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_Shortwave_Infrared_Landsat.md
index 4db1316a16..cb85dd5f5c 100644
--- a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_Shortwave_Infrared_Landsat.md
+++ b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_Shortwave_Infrared_Landsat.md
@@ -2,7 +2,7 @@
The dynamically generated Reflectance (Bands 7-5-4, Shortwave Infrared) imagery layer is useful looking at how much water is present in plants and soils, as water absorbs in shortwave infrared wavelengths. It can be used to distinguish between cloud types like water clouds versus ice clouds, snow and ice, which appear white. Vegetation is in shades of green, soils and urban areas are in shades of brown, and water is black. Freshly burned areas appear red.
-The Reflectance imagery layer from Landsat 8 and 9/OLI product (L30) is available through the HLS project from the Operational Land Imager (OLI) aboard the Landsat 8 and 9 satellites. The sensor resolution is 30 m, imagery resolution is 30 m, and the temporal resolution is daily with an 8 day revisit time. The imagery is available in Worldview/GIBS approximately 2 - 4 days after satellite overpass. There is a separate combined Sentinel-2A and Sentinel-2B imagery layer available.
+The Reflectance imagery layer from Landsat 8 and 9/OLI product (L30) is available through the HLS project from the Operational Land Imager (OLI) aboard the Landsat 8 and 9 satellites. The sensor resolution is 30 m, imagery resolution is 30 m, and the temporal resolution is daily with an 8 day revisit time. The imagery is available in Worldview/GIBS approximately 2 - 4 days after satellite overpass. There is a separate combined Sentinel-2A and Sentinel-2B imagery layer available.
This imagery layer is provided dynamically through the [NASA Interagency Implementation and Advanced Concepts Team (IMPACT)](https://earthdata.nasa.gov/esds/impact). As it is dynamically generated, it may take slightly longer to display than normal. The imagery is also only available at higher zoom levels.
diff --git a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_Shortwave_Infrared_Sentinel.md b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_Shortwave_Infrared_Sentinel.md
index 51c13bb88f..b8171f9070 100644
--- a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_Shortwave_Infrared_Sentinel.md
+++ b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_Shortwave_Infrared_Sentinel.md
@@ -2,7 +2,7 @@
The dynamically generated Reflectance (Bands 12-8A-4, Shortwave Infrared) imagery layer is useful looking at how much water is present in plants and soils, as water absorbs in shortwave infrared wavelengths. It can be used to distinguish between cloud types like water clouds versus ice clouds, snow and ice, which appear white. Vegetation is in shades of green, soils and urban areas are in shades of brown, and water is black. Freshly burned areas appear red.
-The Reflectance imagery layer from Sentinel-2A and Sentinel-2B /MSI product (S30) is available through the HLS project from the Multi-Spectral Instrument (MSI) aboard the European Union’s Copernicus Sentinel-2A and Sentinel-2B satellites. The sensor resolution is 10, 20, and 60 m, imagery resolution is resampled to 30 m, and the temporal resolution is daily with a 5 day revisit time. The imagery is available in Worldview/GIBS approximately 2 - 4 days after satellite overpass. There is a separate combined Landsat 8 and 9 imagery layer available.
+The Reflectance imagery layer from Sentinel-2A and Sentinel-2B/MSI product (S30) is available through the HLS project from the Multi-Spectral Instrument (MSI) aboard the European Union’s Copernicus Sentinel-2A and Sentinel-2B satellites. The sensor resolution is 10, 20, and 60 m, imagery resolution is resampled to 30 m, and the temporal resolution is daily with a 5 day revisit time. The imagery is available in Worldview/GIBS approximately 2 - 4 days after satellite overpass. There is a separate combined Landsat 8 and 9 imagery layer available.
This imagery layer is provided dynamically through the [NASA Interagency Implementation and Advanced Concepts Team (IMPACT)](https://earthdata.nasa.gov/esds/impact). As it is dynamically generated, it may take slightly longer to display than normal. The imagery is also only available at higher zoom levels.
diff --git a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_TVI_Landsat.md b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_TVI_Landsat.md
new file mode 100644
index 0000000000..ebab183e80
--- /dev/null
+++ b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_TVI_Landsat.md
@@ -0,0 +1,19 @@
+**NOTE: This layer is undergoing beta testing.**
+
+The dynamically generated Triangular Vegetation Index imagery layer is good for estimating green leaf area index (LAI), but its sensitivity to chlorophyll increases with an increase in canopy density.
+
+It is calculated using:
+
+`TVI = 120(NIR - Green) - 200(Red-Green) / 2`
+
+Specifically for Landsat 8 and 9:
+
+`TVI = 120(Band 5 – Band 3) - 200(Band 4 - Band 3) / 2`
+
+The image is applied with a divergent blue-green to brown color palette. It depicts areas with a lot of green leaf growth, indicating the presence of chlorophyll, in dark green colors. Chlorophyll reflects more infrared light and less visible light. Areas with some green leaf growth are in light yellows, and areas with little to no vegetation growth are in shades of brown.
+
+The Reflectance imagery layer from Landsat 8 and 9/OLI product (L30) is available through the HLS project from the Operational Land Imager (OLI) aboard the Landsat 8 and 9 satellites. The sensor resolution is 30 m, imagery resolution is 30 m, and the temporal resolution is daily with an 8 day revisit time. The imagery is available in Worldview/GIBS approximately 2 - 4 days after satellite overpass. There is a separate combined Sentinel-2A and Sentinel-2B imagery layer available.
+
+This imagery layer is provided dynamically through the [NASA Interagency Implementation and Advanced Concepts Team (IMPACT)](https://earthdata.nasa.gov/esds/impact). As it is dynamically generated, it may take slightly longer to display than normal. The imagery is also only available at higher zoom levels.
+
+References: HLSL30 v002 [doi:10.5067/HLS/HLSL30.002](https://doi.org/10.5067/HLS/HLSL30.002)
\ No newline at end of file
diff --git a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_TVI_Sentinel.md b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_TVI_Sentinel.md
new file mode 100644
index 0000000000..d04d1fab98
--- /dev/null
+++ b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_TVI_Sentinel.md
@@ -0,0 +1,17 @@
+**NOTE: This layer is undergoing beta testing.**
+
+The dynamically generated Triangular Vegetation Index imagery layer is good for estimating green leaf area index (LAI), but its sensitivity to chlorophyll increases with an increase in canopy density.
+
+It is calculated using:
+`TVI = (120(NIR - Green) - 200(Red-Green)) / 2`
+
+Specifically for Sentinel-2A and -2B:
+`TVI = (120(Band 8A – Band 3) - 200(Band 4 - Band 3)) / 2`
+
+The image is applied with a divergent blue-green to brown color palette. It depicts areas with a lot of green leaf growth, indicating the presence of chlorophyll, in dark green colors. Chlorophyll reflects more infrared light and less visible light. Areas with some green leaf growth are in light yellows, and areas with little to no vegetation growth are in shades of brown.
+
+The Reflectance imagery layer from Sentinel-2A and Sentinel-2B/MSI product (S30) is available through the HLS project from the Multi-Spectral Instrument (MSI) aboard the European Union’s Copernicus Sentinel-2A and Sentinel-2B satellites. The sensor resolution is 10, 20, and 60 m, imagery resolution is resampled to 30 m, and the temporal resolution is daily with a 5 day revisit time. The imagery is available in Worldview/GIBS approximately 2 - 4 days after satellite overpass. There is a separate combined Landsat 8 and 9 imagery layer available.
+
+This imagery layer is provided dynamically through the [NASA Interagency Implementation and Advanced Concepts Team (IMPACT)](https://earthdata.nasa.gov/esds/impact). As it is dynamically generated, it may take slightly longer to display than normal. The imagery is only available at higher zoom levels.
+
+References: HLSS30 v002 [doi:10.5067/HLS/HLSS30.002](https://doi.org/10.5067/HLS/HLSS30.002)
\ No newline at end of file
diff --git a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_True_Color_Landsat.md b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_True_Color_Landsat.md
index 0bcce7c63f..048c1cb82f 100644
--- a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_True_Color_Landsat.md
+++ b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_True_Color_Landsat.md
@@ -2,7 +2,7 @@
The dynamically generated Reflectance (Bands 4-3-2, True Color) imagery layer is a true-color or natural color image because this combination of wavelengths is similar to what the human eye would see. It consists of natural-looking images of land surface, oceanic and atmospheric features.
-The Reflectance imagery layer from Landsat 8 and 9/OLI product (L30) is available through the HLS project from the Operational Land Imager (OLI) aboard the Landsat 8 and 9 satellites. The sensor resolution is 30 m, imagery resolution is 30 m, and the temporal resolution is daily with a 16 day revisit time. The imagery is available in Worldview/GIBS approximately 2 - 4 days after satellite overpass. There is a separate combined Sentinel-2A and Sentinel-2B imagery layer available.
+The Reflectance imagery layer from Landsat 8 and 9/OLI product (L30) is available through the HLS project from the Operational Land Imager (OLI) aboard the Landsat 8 and 9 satellites. The sensor resolution is 30 m, imagery resolution is 30 m, and the temporal resolution is daily with a 16 day revisit time. The imagery is available in Worldview/GIBS approximately 2 - 4 days after satellite overpass. There is a separate combined Sentinel-2A and Sentinel-2B imagery layer available.
This imagery layer is provided dynamically through the [NASA Interagency Implementation and Advanced Concepts Team (IMPACT)](https://earthdata.nasa.gov/esds/impact). As it is dynamically generated, it may take slightly longer to display than normal. The imagery is also only available at higher zoom levels.
diff --git a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_True_Color_Sentinel.md b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_True_Color_Sentinel.md
index 5c06f8e2f4..967bf969ea 100644
--- a/config/default/common/config/metadata/layers/multi-mission/hls/HLS_True_Color_Sentinel.md
+++ b/config/default/common/config/metadata/layers/multi-mission/hls/HLS_True_Color_Sentinel.md
@@ -2,7 +2,7 @@
The dynamically generated Reflectance (Bands 4-3-2, True Color) imagery layer is a true-color or natural color image because this combination of wavelengths is similar to what the human eye would see. It consists of natural-looking images of land surface, oceanic and atmospheric features.
-The Reflectance imagery layer from Sentinel-2A and Sentinel-2B /MSI product (S30) is available through the HLS project from the Multi-Spectral Instrument (MSI) aboard the European Union’s Copernicus Sentinel-2A and Sentinel-2B satellites. The sensor resolution is 10, 20, and 60 m, imagery resolution is resampled to 30 m, and the temporal resolution is daily with a 5 day revisit time. The imagery is available in Worldview/GIBS approximately 2 - 4 days after satellite overpass. There is a separate combined Landsat 8 and 9 imagery layer available.
+The Reflectance imagery layer from Sentinel-2A and Sentinel-2B/MSI product (S30) is available through the HLS project from the Multi-Spectral Instrument (MSI) aboard the European Union’s Copernicus Sentinel-2A and Sentinel-2B satellites. The sensor resolution is 10, 20, and 60 m, imagery resolution is resampled to 30 m, and the temporal resolution is daily with a 5 day revisit time. The imagery is available in Worldview/GIBS approximately 2 - 4 days after satellite overpass. There is a separate combined Landsat 8 and 9 imagery layer available.
This imagery layer is provided dynamically through the [NASA Interagency Implementation and Advanced Concepts Team (IMPACT)](https://earthdata.nasa.gov/esds/impact). As it is dynamically generated, it may take slightly longer to display than normal. The imagery is also only available at higher zoom levels.
diff --git a/config/default/common/config/metadata/layers/multi-mission/hls/Reflectance.md b/config/default/common/config/metadata/layers/multi-mission/hls/Reflectance.md
index 765496deb4..c72d9c5c4b 100644
--- a/config/default/common/config/metadata/layers/multi-mission/hls/Reflectance.md
+++ b/config/default/common/config/metadata/layers/multi-mission/hls/Reflectance.md
@@ -1,5 +1,7 @@
### About HLS
The Harmonized Landsat and Sentinel-2 (HLS) project provides consistent surface reflectance data from the Operational Land Imager (OLI) aboard the joint NASA/USGS Landsat 8 and 9 satellites and the Multi-Spectral Instrument (MSI) aboard the European Union’s Copernicus Sentinel-2A and Sentinel-2B satellites. The combined measurements between Landsat 8, Landsat 9, Sentinel-2A, and Sentinel-2B enable global observations of the land every 2-3 days at 30 meter (m) spatial resolution. The HLS project uses a set of algorithms to obtain seamless products from OLI and MSI that include atmospheric correction, cloud and cloud-shadow masking, spatial co-registration and common gridding, illumination and view angle normalization, and spectral bandpass adjustment.
+NOTE: Stray swaths of incorrectly dated imagery may appear near the dateline by eastern Australia/New Zealand due to an artifact caused by USGS and ESA using UTC time to name the Landsat and Sentinel-2 Level 1 products. The observations are labeled one day early with respect to the local time.
+
References: [Harmonized Landsat Sentinel-2 (HLS) Product User Guide](https://lpdaac.usgs.gov/documents/1698/HLS_User_Guide_V2.pdf)
diff --git a/config/default/common/config/metadata/layers/multi-mission/imerg/IMERG_Precipitation_Rate.md b/config/default/common/config/metadata/layers/multi-mission/imerg/IMERG_Precipitation_Rate.md
index d6ecbc8b17..0664e9a3bb 100644
--- a/config/default/common/config/metadata/layers/multi-mission/imerg/IMERG_Precipitation_Rate.md
+++ b/config/default/common/config/metadata/layers/multi-mission/imerg/IMERG_Precipitation_Rate.md
@@ -1,3 +1,3 @@
-The IMERG Precipitation Rate layer displays rain rate and snow rate in millimeters per hour (mm/hr). It is estimated by the Integrated Multi-satellitE Retrievals for Global Precipitation Measurement (GPM) (IMERG) algorithm. The IMERG algorithm uses passive-microwave data from the GPM constellation of satellites and also infrared data from geosynchronous satellites. IMERG “morphs” observations to earlier or later times using wind obtained from weather-model analyses. The output field has 0.1 x 0.1 degree latitude-longitude resolution (approximately 11 by 11 km at the Equator). The grid covers the globe, although precipitation cannot always be estimated near the Poles. Within hours of observations being collected, the NASA Precipitation Processing System (PPS) provides Early IMERG estimates, while the higher-quality Final IMERG estimates are produced approximately 4 months later, once calibration datasets become available such as monthly rain-gauge analyses. The imagery viewed in Worldview and the Global Imagery Browse Services (GIBS) is a 2 km, custom daily imagery product generated by PPS from 30-minute Early IMERG (GPM_3IMERGHHE) and Final IMERG (GPM_3IMERGHH) data products.
+The IMERG Precipitation Rate layer displays rain rate and snow rate in millimeters per hour (mm/hr). It is estimated by the Integrated Multi-satellitE Retrievals for Global Precipitation Measurement (GPM) (IMERG) algorithm. The IMERG algorithm uses passive-microwave observations from the GPM constellation of satellites, infrared observations from geosynchronous satellites, and calibration data derived from rain gauges. IMERG “morphs” observations to earlier or later times using wind obtained from weather-model analyses. The output field has 0.1 x 0.1 degree latitude-longitude resolution (approximately 11 by 11 km at the Equator). The grid covers the globe, although precipitation cannot always be estimated near the Poles. Within hours of observations being collected, the NASA Precipitation Processing System (PPS) provides Early IMERG estimates, while the higher-quality Final IMERG estimates are produced approximately 4 months later, once calibration datasets become available such as monthly rain-gauge analyses. The imagery viewed in Worldview and the Global Imagery Browse Services (GIBS) is a custom daily imagery product generated by PPS from 30-minute Early IMERG (GPM_3IMERGHHE) and Final IMERG (GPM_3IMERGHH) data products.
-References: GPM_3IMERGHHE [doi:10.5067/GPM/IMERG/3B-HH-E/06](https://doi.org/10.5067/GPM/IMERG/3B-HH-E/06) and GPM_3IMERGHH [doi:10.5067/GPM/IMERG/3B-HH/07](https://doi.org/10.5067/GPM/IMERG/3B-HH/07). Please note that, while the above half hourly data references are used by PPS as a basis to generate the daily IMERG imagery viewed in Worldview/GIBS, there is not a specific data product that directly corresponds to this daily imagery.
\ No newline at end of file
+References: GPM_3IMERGHHE [doi:10.5067/GPM/IMERG/3B-HH-E/07](https://doi.org/10.5067/GPM/IMERG/3B-HH-E/07) and GPM_3IMERGHH [doi:10.5067/GPM/IMERG/3B-HH/07](https://doi.org/10.5067/GPM/IMERG/3B-HH/07). Please note that, while the above half hourly data references are used by PPS as a basis to generate the daily IMERG imagery viewed in Worldview/GIBS, there is not a specific data product that directly corresponds to this daily imagery.
\ No newline at end of file
diff --git a/config/default/common/config/metadata/layers/multi-mission/opera/OPERA_L3_Dynamic_Surface_Water_Extent-HLS.md b/config/default/common/config/metadata/layers/multi-mission/opera/OPERA_L3_Dynamic_Surface_Water_Extent-HLS.md
new file mode 100644
index 0000000000..783c4db80b
--- /dev/null
+++ b/config/default/common/config/metadata/layers/multi-mission/opera/OPERA_L3_Dynamic_Surface_Water_Extent-HLS.md
@@ -0,0 +1,3 @@
+The OPERA Dynamic Surface Water Extent imagery layer is a Level-3 (L3) product that maps surface water every few days. The resolution is 30 m and the layer has 5 classifications: Not Water, Open Water, Partial Surface Water, Snow/Ice, and Cloud/Cloud Shadow. The input dataset for generating each product is the Harmonized Landsat Sentinel-2 (HLS) dataset. The OPERA Dynamic Surface Water Extent (L3) imagery layer is available through the Observational Products for End-Users from Remote Sensing Analysis (OPERA) project.
+
+References: [OPERA_L3_DSWX-HLS_V1](https://podaac.jpl.nasa.gov/dataset/OPERA_L3_DSWX-HLS_V1)
\ No newline at end of file
diff --git a/config/default/common/config/metadata/layers/multi-mission/opera/OPERA_L3_Dynamic_Surface_Water_Extent-HLS_Provisional.md b/config/default/common/config/metadata/layers/multi-mission/opera/OPERA_L3_Dynamic_Surface_Water_Extent-HLS_Provisional.md
deleted file mode 100644
index 04608b3d45..0000000000
--- a/config/default/common/config/metadata/layers/multi-mission/opera/OPERA_L3_Dynamic_Surface_Water_Extent-HLS_Provisional.md
+++ /dev/null
@@ -1,3 +0,0 @@
-The OPERA Dynamic Surface Water Extent Provisional imagery layer is a Level-3 (L3) product that maps surface water every few days. The resolution is 30 m and the layer has 5 classifications: Not Water, Open Water, Partial Surface Water, Snow/Ice, and Cloud/Cloud Shadow. The input dataset for generating each product is the Harmonized Landsat Sentinel-2 (HLS) dataset. The OPERA Dynamic Surface Water Extent Provisional (L3) imagery layer is available through the Observational Products for End-Users from Remote Sensing Analysis (OPERA) project.
-
-References: OPERA_L3_DSWX-HLS_PROVISIONAL_V1 [doi:10.5067/OPDSW-PL3V1](https://doi.org/10.5067/OPDSW-PL3V1)
\ No newline at end of file
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/seawifs/SEAWIFS_ORBVIEW-2_GAC_True_Color.md b/config/default/common/config/metadata/layers/seawifs/SEAWIFS_ORBVIEW-2_GAC_True_Color.md
new file mode 100644
index 0000000000..5adc6e1bc9
--- /dev/null
+++ b/config/default/common/config/metadata/layers/seawifs/SEAWIFS_ORBVIEW-2_GAC_True_Color.md
@@ -0,0 +1,5 @@
+The SeaWiFS Corrected Reflectance (True Color) layer provides true-color or natural color images because the combination of wavelengths produces an image that is similar to what the human eye would see. The images are natural-looking images of land surface, oceanic and atmospheric features.
+
+The SeaWiFS instrument was launched by Orbital Sciences Corporation on the OrbView-2 (a.k.a. SeaStar) satellite in August 1997, and collected data from September 1997 until the end of mission in December 2010. SeaWiFS had 8 spectral bands from 412 to 865 nm. It collected global data at 4 km resolution, and local data (limited onboard storage and direct broadcast) at 1 km. The mission and sensor were optimized for ocean color measurements, with a local noon (descending) equator crossing time orbit, fore-and-aft tilt capability, full dynamic range, and low polarization sensitivity.
+
+The SeaWiFS Corrected Reflectance (Global Area Coverage (GAC)) product is available from the OrbView-2 satellite for September 4, 1997 to December 11, 2010. The sensor and imagery resolution is 4 km, and the temporal resolution is daily.
\ No newline at end of file
diff --git a/config/default/common/config/metadata/layers/sedac/NDH_Cyclone_Proportional_Economic_Loss_Risk_Deciles_2000.md b/config/default/common/config/metadata/layers/sedac/NDH_Cyclone_Proportional_Economic_Loss_Risk_Deciles_2000.md
index b300e0a66d..ff8e34b3f2 100644
--- a/config/default/common/config/metadata/layers/sedac/NDH_Cyclone_Proportional_Economic_Loss_Risk_Deciles_2000.md
+++ b/config/default/common/config/metadata/layers/sedac/NDH_Cyclone_Proportional_Economic_Loss_Risk_Deciles_2000.md
@@ -1,4 +1,4 @@
-The Cyclone Hazard: Economic Risk layer indicates the the proportional economic impacts of global cyclone hazard for the period 1981-2000. The information displayed in Worldview/Global Imagery Browse Services (GIBS) reflects the decile within which the risk lies, ranging from low to high economic risk: 1st to 10th decile.
+The Cyclone Hazard: Economic Risk layer indicates the proportional economic impacts of global cyclone hazard for the period 1981-2000. The information displayed in Worldview/Global Imagery Browse Services (GIBS) reflects the decile within which the risk lies, ranging from low to high economic risk: 1st to 10th decile.
Global Cyclone Proportional Economic Loss Risk Deciles is a 2.5 minute grid of cyclone hazard economic loss as proportions of Gross Domestic Product (GDP) per analytical unit. Estimates of GDP at risk are based on regional economic loss rates derived from historical records of the Emergency Events Database (EM-DAT). Loss rates are weighted by the hazard's frequency and distribution. The vulnerability weights are based on historical economic losses in previous disasters. The economic loss risks are applied to GDP per unit area exposure to obtain economic loss risks. The weights are an aggregate index relative to losses within each region and country wealth class (classifications based on 2000 GDP) over the 20-year period from 1981 –2000. This index is then normalized by GDP.The methodology of Sachs et al. (2003) is followed to determine baseline estimates of GDP per grid cell. To better reflect the confidence surrounding the data and procedures, the range of proportionalities is classified into deciles, 10 classes of an approximately equal number of grid cells of increasing risk.
diff --git a/config/default/common/config/metadata/layers/sedac/NDH_Flood_Proportional_Economic_Loss_Risk_Deciles_2000.md b/config/default/common/config/metadata/layers/sedac/NDH_Flood_Proportional_Economic_Loss_Risk_Deciles_2000.md
index 063c2bcbe2..17090f5f47 100644
--- a/config/default/common/config/metadata/layers/sedac/NDH_Flood_Proportional_Economic_Loss_Risk_Deciles_2000.md
+++ b/config/default/common/config/metadata/layers/sedac/NDH_Flood_Proportional_Economic_Loss_Risk_Deciles_2000.md
@@ -1,4 +1,4 @@
-The Flood Hazard: Economic Risk layer indicates the the proportional economic impacts of global flood hazard between 1985 and 2003. The information displayed in Worldview/Global Imagery Browse Services (GIBS) reflects the decile within which the risk lies, ranging from low to high economic risk: 1st to 10th decile.
+The Flood Hazard: Economic Risk layer indicates the proportional economic impacts of global flood hazard between 1985 and 2003. The information displayed in Worldview/Global Imagery Browse Services (GIBS) reflects the decile within which the risk lies, ranging from low to high economic risk: 1st to 10th decile.
Global Flood Proportional Economic Loss Risk Deciles is a 2.5 minute grid of flood hazard economic loss as proportions of Gross Domestic Product (GDP) per analytical unit. Estimates of GDP at risk are based on regional economic loss rates derived from historical records of the Emergency Events Database (EM-DAT). Loss rates are weighted by the hazard's frequency and distribution. The vulnerability weights are based on historical economic losses in previous disasters. The economic loss risks are applied to GDP per unit area exposure to obtain economic loss risks. The weights are an aggregate index relative to losses within each region and country wealth class (classifications based on 2000 GDP) over the 20-year period from 1981 –2000. This index is then normalized by GDP. The methodology of Sachs et al. (2003) is followed to determine baseline estimates of GDP per grid cell. To better reflect the confidence surrounding the data and procedures, the range of proportionalities is classified into deciles, 10 classes of an approximately equal number of grid cells of increasing risk.
diff --git a/config/default/common/config/metadata/layers/sedac/NDH_Volcano_Proportional_Economic_Loss_Risk_Deciles_2000.md b/config/default/common/config/metadata/layers/sedac/NDH_Volcano_Proportional_Economic_Loss_Risk_Deciles_2000.md
index f1e30faa93..4ea57cfce6 100644
--- a/config/default/common/config/metadata/layers/sedac/NDH_Volcano_Proportional_Economic_Loss_Risk_Deciles_2000.md
+++ b/config/default/common/config/metadata/layers/sedac/NDH_Volcano_Proportional_Economic_Loss_Risk_Deciles_2000.md
@@ -1,4 +1,4 @@
-The Volcano Hazard: Economic Risk layer indicates the the proportional economic impacts of global volcano hazard from 1979 to 2000. The information displayed in Worldview/Global Imagery Browse Services (GIBS) reflects the decile within which the risk lies, ranging from low to high economic risk: 1st to 10th decile.
+The Volcano Hazard: Economic Risk layer indicates the proportional economic impacts of global volcano hazard from 1979 to 2000. The information displayed in Worldview/Global Imagery Browse Services (GIBS) reflects the decile within which the risk lies, ranging from low to high economic risk: 1st to 10th decile.
Global Volcano Proportional Economic Loss Risk Deciles is a 2.5 minute grid of volcano hazard economic loss as proportions of Gross Domestic Product (GDP) per analytical unit. Estimates of GDP at risk are based on regional economic loss rates derived from historical records of the Emergency Events Database (EM-DAT). Loss rates are weighted by the hazard's frequency and distribution. The vulnerability weights are based on historical economic losses in previous disasters. The economic loss risks are applied to GDP per unit area exposure to obtain economic loss risks. The weights are an aggregate index relative to losses within each region and country wealth class (classifications based on 2000 GDP) over the 20-year period from 1981 –2000. This index is then normalized by GDP. The methodology of Sachs et al. (2003) is followed to determine baseline estimates of GDP per grid cell. To better reflect the confidence surrounding the data and procedures, the range of proportionalities is classified into deciles, 10 classes of an approximately equal number of grid cells of increasing risk.
diff --git a/config/default/common/config/metadata/layers/sedac/Summer_Day_Max_Land_Surface_Temp_2013.md b/config/default/common/config/metadata/layers/sedac/Summer_Day_Max_Land_Surface_Temp_2013.md
index 4e670e1664..cdab330b16 100644
--- a/config/default/common/config/metadata/layers/sedac/Summer_Day_Max_Land_Surface_Temp_2013.md
+++ b/config/default/common/config/metadata/layers/sedac/Summer_Day_Max_Land_Surface_Temp_2013.md
@@ -1,4 +1,4 @@
-The Summer Daytime Maximum Land Surface Temperature layer is from the The Global Summer Land Surface Temperature (LST) Grids, 2013 data set. The Global Summer Land Surface Temperature (LST) Grids, 2013, represent daytime maximum temperature and nighttime minimum temperature in degree Celsius at a spatial resolution of 30 arc-seconds (~1 km) during summer months of the northern and southern hemisphere for the year 2013. The grids are produced using Aqua Level-3 Moderate Resolution Imaging Spectroradiometer (MODIS) Version 5 global daytime and nighttime LST 8-day composite data (MYD11A2).
+The Summer Daytime Maximum Land Surface Temperature layer is from the Global Summer Land Surface Temperature (LST) Grids, 2013 data set. The Global Summer Land Surface Temperature (LST) Grids, 2013, represent daytime maximum temperature and nighttime minimum temperature in degree Celsius at a spatial resolution of 30 arc-seconds (~1 km) during summer months of the northern and southern hemisphere for the year 2013. The grids are produced using Aqua Level-3 Moderate Resolution Imaging Spectroradiometer (MODIS) Version 5 global daytime and nighttime LST 8-day composite data (MYD11A2).
For most regions, the LST grids provide the daytime maximum (1:30 p.m. overpass) and nighttime minimum (1:30 a.m. overpass) LST values for each grid cell from a 40-day time-span during July-August (Julian days 185-224) 2013 in the northern hemisphere and January-February (Julian days 001-040) 2013 in the southern hemisphere. LST grid cells with missing values resulting from high cloud cover in tropical regions were filled with daytime maximum and nighttime minimum LST values from April-May 2013 in the northern hemisphere and December 2013-January 2014 in the southern hemisphere, where available. Some data gaps remain in areas where data were insufficient (e.g., Central Africa).
diff --git a/config/default/common/config/metadata/layers/sedac/Summer_Night_Min_Land_Surface_Temp_2013.md b/config/default/common/config/metadata/layers/sedac/Summer_Night_Min_Land_Surface_Temp_2013.md
index 74b1455fb6..9239e9004e 100644
--- a/config/default/common/config/metadata/layers/sedac/Summer_Night_Min_Land_Surface_Temp_2013.md
+++ b/config/default/common/config/metadata/layers/sedac/Summer_Night_Min_Land_Surface_Temp_2013.md
@@ -1,4 +1,4 @@
-The Summer Nighttime Minimum Land Surface Temperature layer is from the The Global Summer Land Surface Temperature (LST) Grids, 2013 data set. The Global Summer Land Surface Temperature (LST) Grids, 2013, represent daytime maximum temperature and nighttime minimum temperature in degree Celsius at a spatial resolution of 30 arc-seconds (~1 km) during summer months of the northern and southern hemisphere for the year 2013. The grids are produced using Aqua Level-3 Moderate Resolution Imaging Spectroradiometer (MODIS) Version 5 global daytime and nighttime LST 8-day composite data (MYD11A2).
+The Summer Nighttime Minimum Land Surface Temperature layer is from the Global Summer Land Surface Temperature (LST) Grids, 2013 data set. The Global Summer Land Surface Temperature (LST) Grids, 2013, represent daytime maximum temperature and nighttime minimum temperature in degree Celsius at a spatial resolution of 30 arc-seconds (~1 km) during summer months of the northern and southern hemisphere for the year 2013. The grids are produced using Aqua Level-3 Moderate Resolution Imaging Spectroradiometer (MODIS) Version 5 global daytime and nighttime LST 8-day composite data (MYD11A2).
For most regions, the LST grids provide the daytime maximum (1:30 p.m. overpass) and nighttime minimum (1:30 a.m. overpass) LST values for each grid cell from a 40-day time-span during July-August (Julian days 185-224) 2013 in the northern hemisphere and January-February (Julian days 001-040) 2013 in the southern hemisphere. LST grid cells with missing values resulting from high cloud cover in tropical regions were filled with daytime maximum and nighttime minimum LST values from April-May 2013 in the northern hemisphere and December 2013-January 2014 in the southern hemisphere, where available. Some data gaps remain in areas where data were insufficient (e.g., Central Africa).
diff --git a/config/default/common/config/metadata/layers/srtm/SRTM_Color_Index.md b/config/default/common/config/metadata/layers/srtm/SRTM_Color_Index.md
index 3d0120ed5c..7994453f0d 100644
--- a/config/default/common/config/metadata/layers/srtm/SRTM_Color_Index.md
+++ b/config/default/common/config/metadata/layers/srtm/SRTM_Color_Index.md
@@ -1,3 +1,3 @@
-The Shuttle Radar Topography Mission (NASA SRTM v3, Color Index) layer is from the the NASA Making Earth System Data Records for Use in Research Environments (MEaSUREs) Version 3 Shuttle Radar Topography Mission (SRTM) data product (SRTMGL1). This layer provides near-global, void-free, elevation information at 1 arc second (~30 meter) spatial resolution between 60° north and 56° south latitude. NASA SRTM data products result from a collaborative effort by the National Aeronautics and Space Administration (NASA) and the National Geospatial-Intelligence Agency (NGA), as well as the participation of the German and Italian space agencies. The purpose of the SRTM was to generate a digital elevation model (DEM) of 80% of the Earth's surface using radar interferometry. SRTM was a primary component of the payload on the Space Shuttle Endeavour during its STS-99 mission. Endeavour launched February 11, 2000 and flew for 11 days. On the default palette, white indicates the highest elevations, then brown, yellow and greens indicate low elevations.
+The Shuttle Radar Topography Mission (NASA SRTM v3, Color Index) layer is from the NASA Making Earth System Data Records for Use in Research Environments (MEaSUREs) Version 3 Shuttle Radar Topography Mission (SRTM) data product (SRTMGL1). This layer provides near-global, void-free, elevation information at 1 arc second (~30 meter) spatial resolution between 60° north and 56° south latitude. NASA SRTM data products result from a collaborative effort by the National Aeronautics and Space Administration (NASA) and the National Geospatial-Intelligence Agency (NGA), as well as the participation of the German and Italian space agencies. The purpose of the SRTM was to generate a digital elevation model (DEM) of 80% of the Earth's surface using radar interferometry. SRTM was a primary component of the payload on the Space Shuttle Endeavour during its STS-99 mission. Endeavour launched February 11, 2000 and flew for 11 days. On the default palette, white indicates the highest elevations, then brown, yellow and greens indicate low elevations.
References: [LP DAAC - NASA MEaSUREs SRTM Version 3](https://doi.org/10.5067/MEaSUREs/SRTM/SRTMGL1.003)
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/categories/featured/All.json b/config/default/common/config/wv.json/categories/featured/All.json
index 40163a65b1..3c224edcec 100644
--- a/config/default/common/config/wv.json/categories/featured/All.json
+++ b/config/default/common/config/wv.json/categories/featured/All.json
@@ -9,7 +9,8 @@
"measurements": [
"TEMPO - Featured",
"Land Surface Reflectance - Featured",
- "Surface Water Extent - Featured",
+ "Surface Water Extent",
+ "Vegetation Disturbance Status",
"Aboveground Biomass",
"Land Surface Metrics - Featured",
"Geostationary",
diff --git a/config/default/common/config/wv.json/layerOrder.json b/config/default/common/config/wv.json/layerOrder.json
index a36cf12e5d..25579fd12a 100644
--- a/config/default/common/config/wv.json/layerOrder.json
+++ b/config/default/common/config/wv.json/layerOrder.json
@@ -12,16 +12,28 @@
"HLS_False_Color_Vegetation_Landsat",
"HLS_False_Color_Urban_Landsat",
"HLS_Shortwave_Infrared_Landsat",
- "OPERA_L3_Dynamic_Surface_Water_Extent-HLS_Provisional",
+ "OPERA_L3_Dynamic_Surface_Water_Extent-HLS",
"OPERA_L3_DIST-ALERT-HLS_Color_Index",
"HLS_NDVI_Landsat",
"HLS_NDWI_Landsat",
"HLS_NDSI_Landsat",
+ "HLS_EVI_Landsat",
+ "HLS_SAVI_Landsat",
+ "HLS_MSAVI_Landsat",
+ "HLS_NBR2_Landsat",
+ "HLS_NBR_Landsat",
+ "HLS_TVI_Landsat",
"HLS_Moisture_Index_Landsat",
"HLS_NDVI_Sentinel",
"HLS_NDWI_Sentinel",
"HLS_NDSI_Sentinel",
"HLS_Moisture_Index_Sentinel",
+ "HLS_EVI_Sentinel",
+ "HLS_SAVI_Sentinel",
+ "HLS_MSAVI_Sentinel",
+ "HLS_NBR2_Sentinel",
+ "HLS_NBR_Sentinel",
+ "HLS_TVI_Sentinel",
"VIIRS_SNPP_CorrectedReflectance_TrueColor_Granule",
"VIIRS_SNPP_CorrectedReflectance_BandsM11-I2-I1_Granule",
"VIIRS_SNPP_CorrectedReflectance_BandsM3-I3-M11_Granule",
@@ -93,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",
@@ -145,6 +160,7 @@
"VIIRS_NOAA20_Photosynthetically_Available_Radiation",
"VIIRS_SNPP_L2_Chlorophyll_A",
"VIIRS_SNPP_L2_Photosynthetically_Available_Radiation",
+ "SEAWIFS_ORBVIEW-2_GAC_True_Color",
"SEAWIFS_ORBVIEW-2_GAC_Chlorophyll_a",
"GOES-East_ABI_GeoColor",
"GOES-West_ABI_GeoColor",
@@ -157,6 +173,10 @@
"GOES-East_ABI_Air_Mass",
"GOES-West_ABI_Air_Mass",
"Himawari_AHI_Air_Mass",
+ "GOES-East_ABI_Dust",
+ "GOES-West_ABI_Dust",
+ "GOES-East_ABI_FireTemp",
+ "GOES-West_ABI_FireTemp",
"GHRSST_L4_MUR_Sea_Surface_Temperature",
"GHRSST_L4_MUR_Sea_Surface_Temperature_Anomalies",
"GHRSST_L4_AVHRR-OI_Sea_Surface_Temperature",
diff --git a/config/default/common/config/wv.json/layers/aeronet/AERONET_ANGSTROM_440-870NM.json b/config/default/common/config/wv.json/layers/aeronet/AERONET_ANGSTROM_440-870NM.json
index 25def2cb44..218f0f88f8 100644
--- a/config/default/common/config/wv.json/layers/aeronet/AERONET_ANGSTROM_440-870NM.json
+++ b/config/default/common/config/wv.json/layers/aeronet/AERONET_ANGSTROM_440-870NM.json
@@ -22,7 +22,7 @@
"dateInterval": "60"
}
],
- "wrapX": true,
+ "wrapX": false,
"projections": {
"geographic": {
"source": "AERONET"
diff --git a/config/default/common/config/wv.json/layers/aeronet/AERONET_AOD_500NM.json b/config/default/common/config/wv.json/layers/aeronet/AERONET_AOD_500NM.json
index de01568951..3fcc09e18f 100644
--- a/config/default/common/config/wv.json/layers/aeronet/AERONET_AOD_500NM.json
+++ b/config/default/common/config/wv.json/layers/aeronet/AERONET_AOD_500NM.json
@@ -22,7 +22,7 @@
"dateInterval": "60"
}
],
- "wrapX": true,
+ "wrapX": false,
"projections": {
"geographic": {
"source": "AERONET"
diff --git a/config/default/common/config/wv.json/layers/aeronet/DAILY_AERONET_ANGSTROM_440-870NM.json b/config/default/common/config/wv.json/layers/aeronet/DAILY_AERONET_ANGSTROM_440-870NM.json
index 1ac9145c31..ccdff0e757 100644
--- a/config/default/common/config/wv.json/layers/aeronet/DAILY_AERONET_ANGSTROM_440-870NM.json
+++ b/config/default/common/config/wv.json/layers/aeronet/DAILY_AERONET_ANGSTROM_440-870NM.json
@@ -14,7 +14,7 @@
"vectorStyle": {
"id": "DAILY_AERONET_ANGSTROM_440-870NM"
},
- "wrapX": true,
+ "wrapX": false,
"projections": {
"geographic": {
"source": "AERONET"
diff --git a/config/default/common/config/wv.json/layers/aeronet/DAILY_AERONET_AOD_500NM.json b/config/default/common/config/wv.json/layers/aeronet/DAILY_AERONET_AOD_500NM.json
index c66b0c0241..cd441dd0eb 100644
--- a/config/default/common/config/wv.json/layers/aeronet/DAILY_AERONET_AOD_500NM.json
+++ b/config/default/common/config/wv.json/layers/aeronet/DAILY_AERONET_AOD_500NM.json
@@ -14,7 +14,7 @@
"vectorStyle": {
"id": "DAILY_AERONET_AOD_500NM"
},
- "wrapX": true,
+ "wrapX": false,
"projections": {
"geographic": {
"source": "AERONET"
diff --git a/config/default/common/config/wv.json/layers/goes/GOES-East_ABI_Dust.json b/config/default/common/config/wv.json/layers/goes/GOES-East_ABI_Dust.json
new file mode 100644
index 0000000000..e364dd48f8
--- /dev/null
+++ b/config/default/common/config/wv.json/layers/goes/GOES-East_ABI_Dust.json
@@ -0,0 +1,15 @@
+{
+ "layers": {
+ "GOES-East_ABI_Dust": {
+ "id": "GOES-East_ABI_Dust",
+ "description": "goes/GOES-East_ABI_Dust",
+ "group": "overlays",
+ "tags": "geostationary geo",
+ "layergroup": "Geostationary",
+ "wrapX": true,
+ "availability": {
+ "rollingWindow": 90
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/config/default/common/config/wv.json/layers/goes/GOES-East_ABI_FireTemp.json b/config/default/common/config/wv.json/layers/goes/GOES-East_ABI_FireTemp.json
new file mode 100644
index 0000000000..e46973cc12
--- /dev/null
+++ b/config/default/common/config/wv.json/layers/goes/GOES-East_ABI_FireTemp.json
@@ -0,0 +1,15 @@
+{
+ "layers": {
+ "GOES-East_ABI_FireTemp": {
+ "id": "GOES-East_ABI_FireTemp",
+ "description": "goes/GOES-East_ABI_FireTemp",
+ "group": "overlays",
+ "tags": "geostationary geo",
+ "layergroup": "Geostationary",
+ "wrapX": true,
+ "availability": {
+ "rollingWindow": 90
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/config/default/common/config/wv.json/layers/goes/GOES-West_ABI_Dust.json b/config/default/common/config/wv.json/layers/goes/GOES-West_ABI_Dust.json
new file mode 100644
index 0000000000..0e5f723d01
--- /dev/null
+++ b/config/default/common/config/wv.json/layers/goes/GOES-West_ABI_Dust.json
@@ -0,0 +1,15 @@
+{
+ "layers": {
+ "GOES-West_ABI_Dust": {
+ "id": "GOES-West_ABI_Dust",
+ "description": "goes/GOES-West_ABI_Dust",
+ "group": "overlays",
+ "tags": "geostationary geo",
+ "layergroup": "Geostationary",
+ "wrapX": true,
+ "availability": {
+ "rollingWindow": 90
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/config/default/common/config/wv.json/layers/goes/GOES-West_ABI_FireTemp.json b/config/default/common/config/wv.json/layers/goes/GOES-West_ABI_FireTemp.json
new file mode 100644
index 0000000000..d85ea80300
--- /dev/null
+++ b/config/default/common/config/wv.json/layers/goes/GOES-West_ABI_FireTemp.json
@@ -0,0 +1,15 @@
+{
+ "layers": {
+ "GOES-West_ABI_FireTemp": {
+ "id": "GOES-West_ABI_FireTemp",
+ "description": "goes/GOES-West_ABI_FireTemp",
+ "group": "overlays",
+ "tags": "geostationary geo",
+ "layergroup": "Geostationary",
+ "wrapX": true,
+ "availability": {
+ "rollingWindow": 90
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/config/default/common/config/wv.json/layers/modis/terra/MODIS_Terra_EVI_8Day.json b/config/default/common/config/wv.json/layers/modis/terra/MODIS_Terra_EVI_8Day.json
index 2f7d0086eb..34ece0fc6a 100644
--- a/config/default/common/config/wv.json/layers/modis/terra/MODIS_Terra_EVI_8Day.json
+++ b/config/default/common/config/wv.json/layers/modis/terra/MODIS_Terra_EVI_8Day.json
@@ -4,10 +4,7 @@
"id": "MODIS_Terra_EVI_8Day",
"description": "modis/terra/MODIS_Terra_EVI_8Day",
"group": "overlays",
- "layergroup": "Vegetation Indices",
- "availability": {
- "rollingWindow": 20
- }
+ "layergroup": "Vegetation Indices"
}
}
}
\ No newline at end of file
diff --git a/config/default/common/config/wv.json/layers/modis/terra/MODIS_Terra_NDVI_8Day.json b/config/default/common/config/wv.json/layers/modis/terra/MODIS_Terra_NDVI_8Day.json
index 66b3dd5e36..c3533b46f1 100644
--- a/config/default/common/config/wv.json/layers/modis/terra/MODIS_Terra_NDVI_8Day.json
+++ b/config/default/common/config/wv.json/layers/modis/terra/MODIS_Terra_NDVI_8Day.json
@@ -5,10 +5,7 @@
"description": "modis/terra/MODIS_Terra_NDVI_8Day",
"group": "overlays",
"tags": "ndvi normalized difference vegetation index",
- "layergroup": "Vegetation Indices",
- "availability": {
- "rollingWindow": 20
- }
+ "layergroup": "Vegetation Indices"
}
}
}
\ No newline at end of file
diff --git a/config/default/common/config/wv.json/layers/multi-mission/hls/HLS_EVI_Landsat.json b/config/default/common/config/wv.json/layers/multi-mission/hls/HLS_EVI_Landsat.json
new file mode 100644
index 0000000000..87dbda301f
--- /dev/null
+++ b/config/default/common/config/wv.json/layers/multi-mission/hls/HLS_EVI_Landsat.json
@@ -0,0 +1,36 @@
+{
+ "layers": {
+ "HLS_EVI_Landsat": {
+ "id": "HLS_EVI_Landsat",
+ "enableCMRDataFinder": true,
+ "collectionConceptID": "C2021957657-LPCLOUD",
+ "title": "Enhanced Vegetation Index (EVI) *BETA*",
+ "subtitle": "Landsat 8 & 9 / OLI",
+ "description": "multi-mission/hls/HLS_EVI_Landsat",
+ "tags": "corrected surface landsat oli l30 evi",
+ "group": "overlays",
+ "layergroup": "Land Surface Reflectance",
+ "format": "image/png",
+ "type": "titiler",
+ "period": "daily",
+ "orbitTracks": ["OrbitTracks_Landsat-8_Descending", "OrbitTracks_Landsat-9_Descending"],
+ "orbitDirection": ["descending", "descending"],
+ "bandCombo": {
+ "assets": ["B05", "B04", "B02"],
+ "expression": "(2.5*(B05-B04))/(B05+6*B04-7.5*B02+1)",
+ "rescale": "-1,1",
+ "colormap_name": "brbg"
+ },
+ "disableSnapshot": true,
+ "minZoom": 7,
+ "wrapX": false,
+ "projections": {
+ "geographic": {
+ "source": "DDV",
+ "matrixSet": "31.25m"
+ }
+ },
+ "startDate": "2022-01-01T00:00:00Z"
+ }
+ }
+}
\ No newline at end of file
diff --git a/config/default/common/config/wv.json/layers/multi-mission/hls/HLS_EVI_Sentinel.json b/config/default/common/config/wv.json/layers/multi-mission/hls/HLS_EVI_Sentinel.json
new file mode 100644
index 0000000000..a391d2a0de
--- /dev/null
+++ b/config/default/common/config/wv.json/layers/multi-mission/hls/HLS_EVI_Sentinel.json
@@ -0,0 +1,36 @@
+{
+ "layers": {
+ "HLS_EVI_Sentinel": {
+ "id": "HLS_EVI_Sentinel",
+ "enableCMRDataFinder": true,
+ "collectionConceptID": "C2021957295-LPCLOUD",
+ "title": "Enhanced Vegetation Index (EVI) *BETA*",
+ "subtitle": "Sentinel-2A & -2B / MSI",
+ "description": "multi-mission/hls/HLS_EVI_Sentinel",
+ "tags": "corrected surface Sentinel msi s30 evi",
+ "group": "overlays",
+ "layergroup": "Land Surface Reflectance",
+ "format": "image/png",
+ "type": "titiler",
+ "period": "daily",
+ "orbitTracks": ["OrbitTracks_Sentinel-2A_Descending", "OrbitTracks_Sentinel-2B_Descending"],
+ "orbitDirection": ["descending", "descending"],
+ "bandCombo": {
+ "assets": ["B05", "B04", "B02"],
+ "expression": "(2.5*(B05-B04))/(B05+6*B04-7.5*B02+1)",
+ "rescale": "-1,1",
+ "colormap_name": "brbg"
+ },
+ "disableSnapshot": true,
+ "minZoom": 7,
+ "wrapX": false,
+ "projections": {
+ "geographic": {
+ "source": "DDV",
+ "matrixSet": "31.25m"
+ }
+ },
+ "startDate": "2022-01-01T00:00:00Z"
+ }
+ }
+}
\ No newline at end of file
diff --git a/config/default/common/config/wv.json/layers/multi-mission/hls/HLS_MSAVI_Landsat.json b/config/default/common/config/wv.json/layers/multi-mission/hls/HLS_MSAVI_Landsat.json
new file mode 100644
index 0000000000..aca90cc04f
--- /dev/null
+++ b/config/default/common/config/wv.json/layers/multi-mission/hls/HLS_MSAVI_Landsat.json
@@ -0,0 +1,36 @@
+{
+ "layers": {
+ "HLS_MSAVI_Landsat": {
+ "id": "HLS_MSAVI_Landsat",
+ "enableCMRDataFinder": true,
+ "collectionConceptID": "C2021957657-LPCLOUD",
+ "title": "Modified Soil Adjusted Vegetation Index (MSAVI) *BETA*",
+ "subtitle": "Landsat 8 & 9 / OLI",
+ "description": "multi-mission/hls/HLS_MSAVI_Landsat",
+ "tags": "corrected surface landsat oli l30 msavi",
+ "group": "overlays",
+ "layergroup": "Land Surface Reflectance",
+ "format": "image/png",
+ "type": "titiler",
+ "period": "daily",
+ "orbitTracks": ["OrbitTracks_Landsat-8_Descending", "OrbitTracks_Landsat-9_Descending"],
+ "orbitDirection": ["descending", "descending"],
+ "bandCombo": {
+ "assets": ["B05", "B04"],
+ "expression": "(2*B05+1-sqrt((2*B05+1)**2-8*(B05-B04)))/2",
+ "rescale": "-1,1",
+ "colormap_name": "brbg"
+ },
+ "disableSnapshot": true,
+ "minZoom": 7,
+ "wrapX": false,
+ "projections": {
+ "geographic": {
+ "source": "DDV",
+ "matrixSet": "31.25m"
+ }
+ },
+ "startDate": "2022-01-01T00:00:00Z"
+ }
+ }
+}
\ No newline at end of file
diff --git a/config/default/common/config/wv.json/layers/multi-mission/hls/HLS_MSAVI_Sentinel.json b/config/default/common/config/wv.json/layers/multi-mission/hls/HLS_MSAVI_Sentinel.json
new file mode 100644
index 0000000000..291fd6c816
--- /dev/null
+++ b/config/default/common/config/wv.json/layers/multi-mission/hls/HLS_MSAVI_Sentinel.json
@@ -0,0 +1,36 @@
+{
+ "layers": {
+ "HLS_MSAVI_Sentinel": {
+ "id": "HLS_MSAVI_Sentinel",
+ "enableCMRDataFinder": true,
+ "collectionConceptID": "C2021957295-LPCLOUD",
+ "title": "Modified Soil Adjusted Vegetation Index (MSAVI) *BETA*",
+ "subtitle": "Sentinel-2A & -2B / MSI",
+ "description": "multi-mission/hls/HLS_MSAVI_Sentinel",
+ "tags": "corrected surface Sentinel msi s30 msavi",
+ "group": "overlays",
+ "layergroup": "Land Surface Reflectance",
+ "format": "image/png",
+ "type": "titiler",
+ "period": "daily",
+ "orbitTracks": ["OrbitTracks_Sentinel-2A_Descending", "OrbitTracks_Sentinel-2B_Descending"],
+ "orbitDirection": ["descending", "descending"],
+ "bandCombo": {
+ "assets": ["B05", "B04"],
+ "expression": "(2*B05+1-sqrt((2*B05+1)**2-8*(B05-B04)))/2",
+ "rescale": "-1,1",
+ "colormap_name": "brbg"
+ },
+ "disableSnapshot": true,
+ "minZoom": 7,
+ "wrapX": false,
+ "projections": {
+ "geographic": {
+ "source": "DDV",
+ "matrixSet": "31.25m"
+ }
+ },
+ "startDate": "2022-01-01T00:00:00Z"
+ }
+ }
+}
\ No newline at end of file
diff --git a/config/default/common/config/wv.json/layers/multi-mission/hls/HLS_Moisture_Index_Landsat.json b/config/default/common/config/wv.json/layers/multi-mission/hls/HLS_Moisture_Index_Landsat.json
index ac9425c0e8..ca6054af38 100644
--- a/config/default/common/config/wv.json/layers/multi-mission/hls/HLS_Moisture_Index_Landsat.json
+++ b/config/default/common/config/wv.json/layers/multi-mission/hls/HLS_Moisture_Index_Landsat.json
@@ -19,7 +19,7 @@
"assets": ["B05", "B06"],
"expression": "(B05-B06)/(B05+B06)",
"rescale": "-1,1",
- "colormap_name": "jet_r"
+ "colormap_name": "bwr_r"
},
"disableSnapshot": true,
"minZoom": 7,
diff --git a/config/default/common/config/wv.json/layers/multi-mission/hls/HLS_Moisture_Index_Sentinel.json b/config/default/common/config/wv.json/layers/multi-mission/hls/HLS_Moisture_Index_Sentinel.json
index b1d939f5da..d9c424c482 100644
--- a/config/default/common/config/wv.json/layers/multi-mission/hls/HLS_Moisture_Index_Sentinel.json
+++ b/config/default/common/config/wv.json/layers/multi-mission/hls/HLS_Moisture_Index_Sentinel.json
@@ -19,7 +19,7 @@
"assets": ["B8A", "B11"],
"expression": "(B8A-B11)/(B8A+B11)",
"rescale": "-1,1",
- "colormap_name": "jet_r"
+ "colormap_name": "bwr_r"
},
"disableSnapshot": true,
"minZoom": 7,
diff --git a/config/default/common/config/wv.json/layers/multi-mission/hls/HLS_NBR2_Landsat.json b/config/default/common/config/wv.json/layers/multi-mission/hls/HLS_NBR2_Landsat.json
new file mode 100644
index 0000000000..72635a0e42
--- /dev/null
+++ b/config/default/common/config/wv.json/layers/multi-mission/hls/HLS_NBR2_Landsat.json
@@ -0,0 +1,36 @@
+{
+ "layers": {
+ "HLS_NBR2_Landsat": {
+ "id": "HLS_NBR2_Landsat",
+ "enableCMRDataFinder": true,
+ "collectionConceptID": "C2021957657-LPCLOUD",
+ "title": "Normalized Burn Ratio 2 (NBR2) *BETA*",
+ "subtitle": "Landsat 8 & 9 / OLI",
+ "description": "multi-mission/hls/HLS_NBR2_Landsat",
+ "tags": "corrected surface landsat oli l30 nbr2",
+ "group": "overlays",
+ "layergroup": "Land Surface Reflectance",
+ "format": "image/png",
+ "type": "titiler",
+ "period": "daily",
+ "orbitTracks": ["OrbitTracks_Landsat-8_Descending", "OrbitTracks_Landsat-9_Descending"],
+ "orbitDirection": ["descending", "descending"],
+ "bandCombo": {
+ "assets": ["B06", "B07"],
+ "expression": "(B06-B07)/(B06+B07)",
+ "rescale": "-1,1",
+ "colormap_name": "puor"
+ },
+ "disableSnapshot": true,
+ "minZoom": 7,
+ "wrapX": false,
+ "projections": {
+ "geographic": {
+ "source": "DDV",
+ "matrixSet": "31.25m"
+ }
+ },
+ "startDate": "2022-01-01T00:00:00Z"
+ }
+ }
+}
\ No newline at end of file
diff --git a/config/default/common/config/wv.json/layers/multi-mission/hls/HLS_NBR2_Sentinel.json b/config/default/common/config/wv.json/layers/multi-mission/hls/HLS_NBR2_Sentinel.json
new file mode 100644
index 0000000000..7985ecafb7
--- /dev/null
+++ b/config/default/common/config/wv.json/layers/multi-mission/hls/HLS_NBR2_Sentinel.json
@@ -0,0 +1,36 @@
+{
+ "layers": {
+ "HLS_NBR2_Sentinel": {
+ "id": "HLS_NBR2_Sentinel",
+ "enableCMRDataFinder": true,
+ "collectionConceptID": "C2021957295-LPCLOUD",
+ "title": "Normalized Burn Ratio 2 (NBR2) *BETA*",
+ "subtitle": "Sentinel-2A & -2B / MSI",
+ "description": "multi-mission/hls/HLS_NBR2_Sentinel",
+ "tags": "corrected surface Sentinel msi s30 nbr2",
+ "group": "overlays",
+ "layergroup": "Land Surface Reflectance",
+ "format": "image/png",
+ "type": "titiler",
+ "period": "daily",
+ "orbitTracks": ["OrbitTracks_Sentinel-2A_Descending", "OrbitTracks_Sentinel-2B_Descending"],
+ "orbitDirection": ["descending", "descending"],
+ "bandCombo": {
+ "assets": ["B06", "B07"],
+ "expression": "(B06-B07)/(B06+B07)",
+ "rescale": "-1,1",
+ "colormap_name": "puor"
+ },
+ "disableSnapshot": true,
+ "minZoom": 7,
+ "wrapX": false,
+ "projections": {
+ "geographic": {
+ "source": "DDV",
+ "matrixSet": "31.25m"
+ }
+ },
+ "startDate": "2022-01-01T00:00:00Z"
+ }
+ }
+}
\ No newline at end of file
diff --git a/config/default/common/config/wv.json/layers/multi-mission/hls/HLS_NBR_Landsat.json b/config/default/common/config/wv.json/layers/multi-mission/hls/HLS_NBR_Landsat.json
new file mode 100644
index 0000000000..92b0d9d847
--- /dev/null
+++ b/config/default/common/config/wv.json/layers/multi-mission/hls/HLS_NBR_Landsat.json
@@ -0,0 +1,36 @@
+{
+ "layers": {
+ "HLS_NBR_Landsat": {
+ "id": "HLS_NBR_Landsat",
+ "enableCMRDataFinder": true,
+ "collectionConceptID": "C2021957657-LPCLOUD",
+ "title": "Normalized Burn Ratio (NBR) *BETA*",
+ "subtitle": "Landsat 8 & 9 / OLI",
+ "description": "multi-mission/hls/HLS_NBR_Landsat",
+ "tags": "corrected surface landsat oli l30 nbr",
+ "group": "overlays",
+ "layergroup": "Land Surface Reflectance",
+ "format": "image/png",
+ "type": "titiler",
+ "period": "daily",
+ "orbitTracks": ["OrbitTracks_Landsat-8_Descending", "OrbitTracks_Landsat-9_Descending"],
+ "orbitDirection": ["descending", "descending"],
+ "bandCombo": {
+ "assets": ["B05", "B07"],
+ "expression": "(B05-B07)/(B05+B07)",
+ "rescale": "-1,1",
+ "colormap_name": "puor"
+ },
+ "disableSnapshot": true,
+ "minZoom": 7,
+ "wrapX": false,
+ "projections": {
+ "geographic": {
+ "source": "DDV",
+ "matrixSet": "31.25m"
+ }
+ },
+ "startDate": "2022-01-01T00:00:00Z"
+ }
+ }
+}
\ No newline at end of file
diff --git a/config/default/common/config/wv.json/layers/multi-mission/hls/HLS_NBR_Sentinel.json b/config/default/common/config/wv.json/layers/multi-mission/hls/HLS_NBR_Sentinel.json
new file mode 100644
index 0000000000..0669e23800
--- /dev/null
+++ b/config/default/common/config/wv.json/layers/multi-mission/hls/HLS_NBR_Sentinel.json
@@ -0,0 +1,36 @@
+{
+ "layers": {
+ "HLS_NBR_Sentinel": {
+ "id": "HLS_NBR_Sentinel",
+ "enableCMRDataFinder": true,
+ "collectionConceptID": "C2021957295-LPCLOUD",
+ "title": "Normalized Burn Ratio (NBR) *BETA*",
+ "subtitle": "Sentinel-2A & -2B / MSI",
+ "description": "multi-mission/hls/HLS_NBR_Sentinel",
+ "tags": "corrected surface Sentinel msi s30 nbr",
+ "group": "overlays",
+ "layergroup": "Land Surface Reflectance",
+ "format": "image/png",
+ "type": "titiler",
+ "period": "daily",
+ "orbitTracks": ["OrbitTracks_Sentinel-2A_Descending", "OrbitTracks_Sentinel-2B_Descending"],
+ "orbitDirection": ["descending", "descending"],
+ "bandCombo": {
+ "assets": ["B05", "B07"],
+ "expression": "(B05-B07)/(B05+B07)",
+ "rescale": "-1,1",
+ "colormap_name": "puor"
+ },
+ "disableSnapshot": true,
+ "minZoom": 7,
+ "wrapX": false,
+ "projections": {
+ "geographic": {
+ "source": "DDV",
+ "matrixSet": "31.25m"
+ }
+ },
+ "startDate": "2022-01-01T00:00:00Z"
+ }
+ }
+}
\ No newline at end of file
diff --git a/config/default/common/config/wv.json/layers/multi-mission/hls/HLS_NDVI_Landsat.json b/config/default/common/config/wv.json/layers/multi-mission/hls/HLS_NDVI_Landsat.json
index 900498a1f7..40d97be3af 100644
--- a/config/default/common/config/wv.json/layers/multi-mission/hls/HLS_NDVI_Landsat.json
+++ b/config/default/common/config/wv.json/layers/multi-mission/hls/HLS_NDVI_Landsat.json
@@ -19,7 +19,7 @@
"assets": ["B05", "B04"],
"expression": "(B05-B04)/(B05+B04)",
"rescale": "-1,1",
- "colormap_name": "greens"
+ "colormap_name": "brbg"
},
"disableSnapshot": true,
"minZoom": 7,
diff --git a/config/default/common/config/wv.json/layers/multi-mission/hls/HLS_NDVI_Sentinel.json b/config/default/common/config/wv.json/layers/multi-mission/hls/HLS_NDVI_Sentinel.json
index 570a12746e..a0435549c7 100644
--- a/config/default/common/config/wv.json/layers/multi-mission/hls/HLS_NDVI_Sentinel.json
+++ b/config/default/common/config/wv.json/layers/multi-mission/hls/HLS_NDVI_Sentinel.json
@@ -19,7 +19,7 @@
"assets": ["B08", "B04"],
"expression": "(B08-B04)/(B08+B04)",
"rescale": "-1,1",
- "colormap_name": "greens"
+ "colormap_name": "brbg"
},
"disableSnapshot": true,
"minZoom": 7,
diff --git a/config/default/common/config/wv.json/layers/multi-mission/hls/HLS_SAVI_Landsat.json b/config/default/common/config/wv.json/layers/multi-mission/hls/HLS_SAVI_Landsat.json
new file mode 100644
index 0000000000..61b6607b84
--- /dev/null
+++ b/config/default/common/config/wv.json/layers/multi-mission/hls/HLS_SAVI_Landsat.json
@@ -0,0 +1,36 @@
+{
+ "layers": {
+ "HLS_SAVI_Landsat": {
+ "id": "HLS_SAVI_Landsat",
+ "enableCMRDataFinder": true,
+ "collectionConceptID": "C2021957657-LPCLOUD",
+ "title": "Soil Adjusted Vegetation Index (SAVI) *BETA*",
+ "subtitle": "Landsat 8 & 9 / OLI",
+ "description": "multi-mission/hls/HLS_SAVI_Landsat",
+ "tags": "corrected surface landsat oli l30 savi",
+ "group": "overlays",
+ "layergroup": "Land Surface Reflectance",
+ "format": "image/png",
+ "type": "titiler",
+ "period": "daily",
+ "orbitTracks": ["OrbitTracks_Landsat-8_Descending", "OrbitTracks_Landsat-9_Descending"],
+ "orbitDirection": ["descending", "descending"],
+ "bandCombo": {
+ "assets": ["B05", "B04"],
+ "expression": "1.5*((B05-B04)/(B05+B04+0.5))",
+ "rescale": "-1,1",
+ "colormap_name": "brbg"
+ },
+ "disableSnapshot": true,
+ "minZoom": 7,
+ "wrapX": false,
+ "projections": {
+ "geographic": {
+ "source": "DDV",
+ "matrixSet": "31.25m"
+ }
+ },
+ "startDate": "2022-01-01T00:00:00Z"
+ }
+ }
+}
\ No newline at end of file
diff --git a/config/default/common/config/wv.json/layers/multi-mission/hls/HLS_SAVI_Sentinel.json b/config/default/common/config/wv.json/layers/multi-mission/hls/HLS_SAVI_Sentinel.json
new file mode 100644
index 0000000000..998bb1e731
--- /dev/null
+++ b/config/default/common/config/wv.json/layers/multi-mission/hls/HLS_SAVI_Sentinel.json
@@ -0,0 +1,36 @@
+{
+ "layers": {
+ "HLS_SAVI_Sentinel": {
+ "id": "HLS_SAVI_Sentinel",
+ "enableCMRDataFinder": true,
+ "collectionConceptID": "C2021957295-LPCLOUD",
+ "title": "Soil Adjusted Vegetation Index (SAVI) *BETA*",
+ "subtitle": "Sentinel-2A & -2B / MSI",
+ "description": "multi-mission/hls/HLS_SAVI_Sentinel",
+ "tags": "corrected surface Sentinel msi s30 savi",
+ "group": "overlays",
+ "layergroup": "Land Surface Reflectance",
+ "format": "image/png",
+ "type": "titiler",
+ "period": "daily",
+ "orbitTracks": ["OrbitTracks_Sentinel-2A_Descending", "OrbitTracks_Sentinel-2B_Descending"],
+ "orbitDirection": ["descending", "descending"],
+ "bandCombo": {
+ "assets": ["B05", "B04"],
+ "expression": "1.5*((B05-B04)/(B05+B04+0.5))",
+ "rescale": "-1,1",
+ "colormap_name": "brbg"
+ },
+ "disableSnapshot": true,
+ "minZoom": 7,
+ "wrapX": false,
+ "projections": {
+ "geographic": {
+ "source": "DDV",
+ "matrixSet": "31.25m"
+ }
+ },
+ "startDate": "2022-01-01T00:00:00Z"
+ }
+ }
+}
\ No newline at end of file
diff --git a/config/default/common/config/wv.json/layers/multi-mission/hls/HLS_TVI_Landsat.json b/config/default/common/config/wv.json/layers/multi-mission/hls/HLS_TVI_Landsat.json
new file mode 100644
index 0000000000..44abb743ee
--- /dev/null
+++ b/config/default/common/config/wv.json/layers/multi-mission/hls/HLS_TVI_Landsat.json
@@ -0,0 +1,36 @@
+{
+ "layers": {
+ "HLS_TVI_Landsat": {
+ "id": "HLS_TVI_Landsat",
+ "enableCMRDataFinder": true,
+ "collectionConceptID": "C2021957657-LPCLOUD",
+ "title": "Triangular Vegetation Index (TVI) *BETA*",
+ "subtitle": "Landsat 8 & 9 / OLI",
+ "description": "multi-mission/hls/HLS_TVI_Landsat",
+ "tags": "corrected surface landsat oli l30 tvi",
+ "group": "overlays",
+ "layergroup": "Land Surface Reflectance",
+ "format": "image/png",
+ "type": "titiler",
+ "period": "daily",
+ "orbitTracks": ["OrbitTracks_Landsat-8_Descending", "OrbitTracks_Landsat-9_Descending"],
+ "orbitDirection": ["descending", "descending"],
+ "bandCombo": {
+ "assets": ["B03", "B04", "B05"],
+ "expression": "(120*(B05-B03)-200*(B04-B03))/2",
+ "rescale": "-1,1",
+ "colormap_name": "brbg"
+ },
+ "disableSnapshot": true,
+ "minZoom": 7,
+ "wrapX": false,
+ "projections": {
+ "geographic": {
+ "source": "DDV",
+ "matrixSet": "31.25m"
+ }
+ },
+ "startDate": "2022-01-01T00:00:00Z"
+ }
+ }
+}
\ No newline at end of file
diff --git a/config/default/common/config/wv.json/layers/multi-mission/hls/HLS_TVI_Sentinel.json b/config/default/common/config/wv.json/layers/multi-mission/hls/HLS_TVI_Sentinel.json
new file mode 100644
index 0000000000..1a142eb817
--- /dev/null
+++ b/config/default/common/config/wv.json/layers/multi-mission/hls/HLS_TVI_Sentinel.json
@@ -0,0 +1,36 @@
+{
+ "layers": {
+ "HLS_TVI_Sentinel": {
+ "id": "HLS_TVI_Sentinel",
+ "enableCMRDataFinder": true,
+ "collectionConceptID": "C2021957295-LPCLOUD",
+ "title": "Triangular Vegetation Index (TVI) *BETA*",
+ "subtitle": "Sentinel-2A & -2B / MSI",
+ "description": "multi-mission/hls/HLS_TVI_Sentinel",
+ "tags": "corrected surface Sentinel msi s30 tvi",
+ "group": "overlays",
+ "layergroup": "Land Surface Reflectance",
+ "format": "image/png",
+ "type": "titiler",
+ "period": "daily",
+ "orbitTracks": ["OrbitTracks_Sentinel-2A_Descending", "OrbitTracks_Sentinel-2B_Descending"],
+ "orbitDirection": ["descending", "descending"],
+ "bandCombo": {
+ "assets": ["B03", "B04", "B05"],
+ "expression": "(120*(B05-B03)-200*(B04-B03))/2",
+ "rescale": "-1,1",
+ "colormap_name": "brbg"
+ },
+ "disableSnapshot": true,
+ "minZoom": 7,
+ "wrapX": false,
+ "projections": {
+ "geographic": {
+ "source": "DDV",
+ "matrixSet": "31.25m"
+ }
+ },
+ "startDate": "2022-01-01T00:00:00Z"
+ }
+ }
+}
\ No newline at end of file
diff --git a/config/default/common/config/wv.json/layers/multi-mission/opera/OPERA_L3_DIST-ALERT-HLS_Color_Index.json b/config/default/common/config/wv.json/layers/multi-mission/opera/OPERA_L3_DIST-ALERT-HLS_Color_Index.json
index cdfb1bc593..051ee27e94 100644
--- a/config/default/common/config/wv.json/layers/multi-mission/opera/OPERA_L3_DIST-ALERT-HLS_Color_Index.json
+++ b/config/default/common/config/wv.json/layers/multi-mission/opera/OPERA_L3_DIST-ALERT-HLS_Color_Index.json
@@ -2,6 +2,7 @@
"layers": {
"OPERA_L3_DIST-ALERT-HLS_Color_Index": {
"id": "OPERA_L3_DIST-ALERT-HLS_Color_Index",
+ "enableCMRDataFinder": true,
"description": "multi-mission/opera/OPERA_L3_DIST-ALERT-HLS_Color_Index",
"tags": "lpdaac LPDAAC land surface vegetation disturbance opera",
"group": "overlays",
diff --git a/config/default/common/config/wv.json/layers/multi-mission/opera/OPERA_L3_Dynamic_Surface_Water_Extent-HLS_Provisional.json b/config/default/common/config/wv.json/layers/multi-mission/opera/OPERA_L3_Dynamic_Surface_Water_Extent-HLS.json
similarity index 59%
rename from config/default/common/config/wv.json/layers/multi-mission/opera/OPERA_L3_Dynamic_Surface_Water_Extent-HLS_Provisional.json
rename to config/default/common/config/wv.json/layers/multi-mission/opera/OPERA_L3_Dynamic_Surface_Water_Extent-HLS.json
index 6339b12718..aff0ca43d3 100644
--- a/config/default/common/config/wv.json/layers/multi-mission/opera/OPERA_L3_Dynamic_Surface_Water_Extent-HLS_Provisional.json
+++ b/config/default/common/config/wv.json/layers/multi-mission/opera/OPERA_L3_Dynamic_Surface_Water_Extent-HLS.json
@@ -1,9 +1,9 @@
{
"layers": {
- "OPERA_L3_Dynamic_Surface_Water_Extent-HLS_Provisional": {
- "id": "OPERA_L3_Dynamic_Surface_Water_Extent-HLS_Provisional",
+ "OPERA_L3_Dynamic_Surface_Water_Extent-HLS": {
+ "id": "OPERA_L3_Dynamic_Surface_Water_Extent-HLS",
"enableCMRDataFinder": true,
- "description": "multi-mission/opera/OPERA_L3_Dynamic_Surface_Water_Extent-HLS_Provisional",
+ "description": "multi-mission/opera/OPERA_L3_Dynamic_Surface_Water_Extent-HLS",
"tags": "podaac PO.DAAC DSWx flood opera",
"group": "overlays",
"layergroup": "Surface Water Extent"
diff --git a/config/default/common/config/wv.json/layers/seawifs/SEAWIFS_ORBVIEW-2_GAC_True_Color.json b/config/default/common/config/wv.json/layers/seawifs/SEAWIFS_ORBVIEW-2_GAC_True_Color.json
new file mode 100644
index 0000000000..221b557908
--- /dev/null
+++ b/config/default/common/config/wv.json/layers/seawifs/SEAWIFS_ORBVIEW-2_GAC_True_Color.json
@@ -0,0 +1,12 @@
+{
+ "layers": {
+ "SEAWIFS_ORBVIEW-2_GAC_True_Color": {
+ "id": "SEAWIFS_ORBVIEW-2_GAC_True_Color",
+ "description": "seawifs/SEAWIFS_ORBVIEW-2_GAC_True_Color",
+ "tags": "cr",
+ "group": "overlays",
+ "layergroup": "Corrected Reflectance",
+ "wrapadjacentdays": true
+ }
+ }
+}
\ No newline at end of file
diff --git a/config/default/common/config/wv.json/layers/tempo/TEMPO_L2_Cloud_Cloud_Fraction_Total_Granule.json b/config/default/common/config/wv.json/layers/tempo/TEMPO_L2_Cloud_Cloud_Fraction_Total_Granule.json
index 628556ff1c..8aa472cca7 100644
--- a/config/default/common/config/wv.json/layers/tempo/TEMPO_L2_Cloud_Cloud_Fraction_Total_Granule.json
+++ b/config/default/common/config/wv.json/layers/tempo/TEMPO_L2_Cloud_Cloud_Fraction_Total_Granule.json
@@ -11,7 +11,7 @@
"type": "granule",
"period": "subdaily",
"count": 1,
- "cmrAvailability": true,
+ "dataAvailability": "dd",
"startDate": "2024-05-13T10:41:03Z",
"disableSnapshot": true
}
diff --git a/config/default/common/config/wv.json/layers/tempo/TEMPO_L2_Cloud_Cloud_Pressure_Total_Granule.json b/config/default/common/config/wv.json/layers/tempo/TEMPO_L2_Cloud_Cloud_Pressure_Total_Granule.json
index 8abc8fed42..8579f5d45b 100644
--- a/config/default/common/config/wv.json/layers/tempo/TEMPO_L2_Cloud_Cloud_Pressure_Total_Granule.json
+++ b/config/default/common/config/wv.json/layers/tempo/TEMPO_L2_Cloud_Cloud_Pressure_Total_Granule.json
@@ -11,7 +11,7 @@
"type": "granule",
"period": "subdaily",
"count": 1,
- "cmrAvailability": true,
+ "dataAvailability": "dd",
"startDate": "2024-05-13T10:41:03Z",
"disableSnapshot": true
diff --git a/config/default/common/config/wv.json/layers/tempo/TEMPO_L2_Formaldehyde_Vertical_Column_Granule.json b/config/default/common/config/wv.json/layers/tempo/TEMPO_L2_Formaldehyde_Vertical_Column_Granule.json
index 351a69d85d..ae91fa2735 100644
--- a/config/default/common/config/wv.json/layers/tempo/TEMPO_L2_Formaldehyde_Vertical_Column_Granule.json
+++ b/config/default/common/config/wv.json/layers/tempo/TEMPO_L2_Formaldehyde_Vertical_Column_Granule.json
@@ -11,7 +11,7 @@
"type": "granule",
"period": "subdaily",
"count": 1,
- "cmrAvailability": true,
+ "dataAvailability": "dd",
"startDate": "2024-05-13T10:41:03Z",
"disableSnapshot": true
diff --git a/config/default/common/config/wv.json/layers/tempo/TEMPO_L2_NO2_Vertical_Column_Stratosphere_Granule.json b/config/default/common/config/wv.json/layers/tempo/TEMPO_L2_NO2_Vertical_Column_Stratosphere_Granule.json
index 8df3d42c28..35bc063b7f 100644
--- a/config/default/common/config/wv.json/layers/tempo/TEMPO_L2_NO2_Vertical_Column_Stratosphere_Granule.json
+++ b/config/default/common/config/wv.json/layers/tempo/TEMPO_L2_NO2_Vertical_Column_Stratosphere_Granule.json
@@ -11,7 +11,7 @@
"type": "granule",
"period": "subdaily",
"count": 1,
- "cmrAvailability": true,
+ "dataAvailability": "dd",
"startDate": "2024-05-13T10:41:03Z",
"disableSnapshot": true
diff --git a/config/default/common/config/wv.json/layers/tempo/TEMPO_L2_NO2_Vertical_Column_Troposphere_Granule.json b/config/default/common/config/wv.json/layers/tempo/TEMPO_L2_NO2_Vertical_Column_Troposphere_Granule.json
index 7fbaf4edc7..bd2ccf74b7 100644
--- a/config/default/common/config/wv.json/layers/tempo/TEMPO_L2_NO2_Vertical_Column_Troposphere_Granule.json
+++ b/config/default/common/config/wv.json/layers/tempo/TEMPO_L2_NO2_Vertical_Column_Troposphere_Granule.json
@@ -11,7 +11,7 @@
"type": "granule",
"period": "subdaily",
"count": 1,
- "cmrAvailability": true,
+ "dataAvailability": "dd",
"startDate": "2024-05-13T10:41:03Z",
"disableSnapshot": true
diff --git a/config/default/common/config/wv.json/layers/tempo/TEMPO_L2_Ozone_Cloud_Fraction_Granule.json b/config/default/common/config/wv.json/layers/tempo/TEMPO_L2_Ozone_Cloud_Fraction_Granule.json
index 4df6cb24d3..aea95bf1ec 100644
--- a/config/default/common/config/wv.json/layers/tempo/TEMPO_L2_Ozone_Cloud_Fraction_Granule.json
+++ b/config/default/common/config/wv.json/layers/tempo/TEMPO_L2_Ozone_Cloud_Fraction_Granule.json
@@ -11,7 +11,7 @@
"type": "granule",
"period": "subdaily",
"count": 1,
- "cmrAvailability": true,
+ "dataAvailability": "dd",
"startDate": "2024-05-13T10:41:03Z",
"disableSnapshot": true
diff --git a/config/default/common/config/wv.json/layers/tempo/TEMPO_L2_Ozone_Column_Amount_Granule.json b/config/default/common/config/wv.json/layers/tempo/TEMPO_L2_Ozone_Column_Amount_Granule.json
index 42b847d438..622252174e 100644
--- a/config/default/common/config/wv.json/layers/tempo/TEMPO_L2_Ozone_Column_Amount_Granule.json
+++ b/config/default/common/config/wv.json/layers/tempo/TEMPO_L2_Ozone_Column_Amount_Granule.json
@@ -11,7 +11,7 @@
"type": "granule",
"period": "subdaily",
"count": 1,
- "cmrAvailability": true,
+ "dataAvailability": "dd",
"startDate": "2024-05-13T10:41:03Z",
"disableSnapshot": true
diff --git a/config/default/common/config/wv.json/layers/tempo/TEMPO_L2_Ozone_UV_Aerosol_Index_Granule.json b/config/default/common/config/wv.json/layers/tempo/TEMPO_L2_Ozone_UV_Aerosol_Index_Granule.json
index 968fad9fc8..d896aa2480 100644
--- a/config/default/common/config/wv.json/layers/tempo/TEMPO_L2_Ozone_UV_Aerosol_Index_Granule.json
+++ b/config/default/common/config/wv.json/layers/tempo/TEMPO_L2_Ozone_UV_Aerosol_Index_Granule.json
@@ -11,7 +11,7 @@
"type": "granule",
"period": "subdaily",
"count": 1,
- "cmrAvailability": true,
+ "dataAvailability": "dd",
"startDate": "2024-05-13T10:41:03Z",
"disableSnapshot": true
diff --git a/config/default/common/config/wv.json/layers/tempo/TEMPO_L3_Cloud_Cloud_Fraction_Total.json b/config/default/common/config/wv.json/layers/tempo/TEMPO_L3_Cloud_Cloud_Fraction_Total.json
index 2c7624f56c..817fbe1a83 100644
--- a/config/default/common/config/wv.json/layers/tempo/TEMPO_L3_Cloud_Cloud_Fraction_Total.json
+++ b/config/default/common/config/wv.json/layers/tempo/TEMPO_L3_Cloud_Cloud_Fraction_Total.json
@@ -8,7 +8,7 @@
"tags": "",
"group": "overlays",
"layergroup": "Cloud Fraction",
- "cmrAvailability": true,
+ "dataAvailability": "dd",
"startDate": "2024-05-13T10:30:00Z",
"disableSnapshot": true
}
diff --git a/config/default/common/config/wv.json/layers/tempo/TEMPO_L3_Cloud_Cloud_Pressure_Total.json b/config/default/common/config/wv.json/layers/tempo/TEMPO_L3_Cloud_Cloud_Pressure_Total.json
index 1a0d073635..da9adb8607 100644
--- a/config/default/common/config/wv.json/layers/tempo/TEMPO_L3_Cloud_Cloud_Pressure_Total.json
+++ b/config/default/common/config/wv.json/layers/tempo/TEMPO_L3_Cloud_Cloud_Pressure_Total.json
@@ -8,7 +8,7 @@
"tags": "",
"group": "overlays",
"layergroup": "Cloud Pressure",
- "cmrAvailability": true,
+ "dataAvailability": "dd",
"startDate": "2024-05-13T10:30:00Z",
"disableSnapshot": true
diff --git a/config/default/common/config/wv.json/layers/tempo/TEMPO_L3_Formaldehyde_Vertical_Column.json b/config/default/common/config/wv.json/layers/tempo/TEMPO_L3_Formaldehyde_Vertical_Column.json
index 6275dc6593..db0cb02620 100644
--- a/config/default/common/config/wv.json/layers/tempo/TEMPO_L3_Formaldehyde_Vertical_Column.json
+++ b/config/default/common/config/wv.json/layers/tempo/TEMPO_L3_Formaldehyde_Vertical_Column.json
@@ -8,7 +8,7 @@
"tags": "",
"group": "overlays",
"layergroup": "Formaldehyde",
- "cmrAvailability": true,
+ "dataAvailability": "dd",
"startDate": "2024-05-13T10:30:00Z",
"disableSnapshot": true
diff --git a/config/default/common/config/wv.json/layers/tempo/TEMPO_L3_NO2_Vertical_Column_Stratosphere.json b/config/default/common/config/wv.json/layers/tempo/TEMPO_L3_NO2_Vertical_Column_Stratosphere.json
index e8ce817279..7bbd709218 100644
--- a/config/default/common/config/wv.json/layers/tempo/TEMPO_L3_NO2_Vertical_Column_Stratosphere.json
+++ b/config/default/common/config/wv.json/layers/tempo/TEMPO_L3_NO2_Vertical_Column_Stratosphere.json
@@ -8,7 +8,7 @@
"tags": "",
"group": "overlays",
"layergroup": "Nitrogen Dioxide",
- "cmrAvailability": true,
+ "dataAvailability": "dd",
"startDate": "2024-05-13T10:30:00Z",
"disableSnapshot": true
diff --git a/config/default/common/config/wv.json/layers/tempo/TEMPO_L3_NO2_Vertical_Column_Troposphere.json b/config/default/common/config/wv.json/layers/tempo/TEMPO_L3_NO2_Vertical_Column_Troposphere.json
index 7226d45c0b..e9c02fd04a 100644
--- a/config/default/common/config/wv.json/layers/tempo/TEMPO_L3_NO2_Vertical_Column_Troposphere.json
+++ b/config/default/common/config/wv.json/layers/tempo/TEMPO_L3_NO2_Vertical_Column_Troposphere.json
@@ -8,7 +8,7 @@
"tags": "",
"group": "overlays",
"layergroup": "Nitrogen Dioxide",
- "cmrAvailability": true,
+ "dataAvailability": "dd",
"startDate": "2024-05-13T10:30:00Z",
"disableSnapshot": true
diff --git a/config/default/common/config/wv.json/layers/tempo/TEMPO_L3_Ozone_Cloud_Fraction.json b/config/default/common/config/wv.json/layers/tempo/TEMPO_L3_Ozone_Cloud_Fraction.json
index 6c76585de7..8fa481a1ea 100644
--- a/config/default/common/config/wv.json/layers/tempo/TEMPO_L3_Ozone_Cloud_Fraction.json
+++ b/config/default/common/config/wv.json/layers/tempo/TEMPO_L3_Ozone_Cloud_Fraction.json
@@ -8,7 +8,7 @@
"tags": "",
"group": "overlays",
"layergroup": "Ozone",
- "cmrAvailability": true,
+ "dataAvailability": "dd",
"startDate": "2024-05-13T10:30:00Z",
"disableSnapshot": true
diff --git a/config/default/common/config/wv.json/layers/tempo/TEMPO_L3_Ozone_Column_Amount.json b/config/default/common/config/wv.json/layers/tempo/TEMPO_L3_Ozone_Column_Amount.json
index 0e7d9eb8db..8c1d85cea0 100644
--- a/config/default/common/config/wv.json/layers/tempo/TEMPO_L3_Ozone_Column_Amount.json
+++ b/config/default/common/config/wv.json/layers/tempo/TEMPO_L3_Ozone_Column_Amount.json
@@ -8,7 +8,7 @@
"tags": "",
"group": "overlays",
"layergroup": "Ozone",
- "cmrAvailability": true,
+ "dataAvailability": "dd",
"startDate": "2024-05-13T10:30:00Z",
"disableSnapshot": true
diff --git a/config/default/common/config/wv.json/layers/tempo/TEMPO_L3_Ozone_UV_Aerosol_Index.json b/config/default/common/config/wv.json/layers/tempo/TEMPO_L3_Ozone_UV_Aerosol_Index.json
index 066ca16c59..5df8232b43 100644
--- a/config/default/common/config/wv.json/layers/tempo/TEMPO_L3_Ozone_UV_Aerosol_Index.json
+++ b/config/default/common/config/wv.json/layers/tempo/TEMPO_L3_Ozone_UV_Aerosol_Index.json
@@ -8,7 +8,7 @@
"tags": "",
"group": "overlays",
"layergroup": "Aerosol Index",
- "cmrAvailability": true,
+ "dataAvailability": "dd",
"startDate": "2024-05-13T10:30:00Z",
"disableSnapshot": true
diff --git a/config/default/common/config/wv.json/layers/viirs/noaa20/VIIRS_NOAA20_CorrectedReflectance_BandsM11-I2-I1_Granule.json b/config/default/common/config/wv.json/layers/viirs/noaa20/VIIRS_NOAA20_CorrectedReflectance_BandsM11-I2-I1_Granule.json
index 8e42feaf45..c5e854b3be 100644
--- a/config/default/common/config/wv.json/layers/viirs/noaa20/VIIRS_NOAA20_CorrectedReflectance_BandsM11-I2-I1_Granule.json
+++ b/config/default/common/config/wv.json/layers/viirs/noaa20/VIIRS_NOAA20_CorrectedReflectance_BandsM11-I2-I1_Granule.json
@@ -7,7 +7,7 @@
"group": "overlays",
"layergroup": "Granules",
"type": "granule",
- "cmrAvailability": true,
+ "dataAvailability": "dd",
"period": "subdaily",
"associatedLayers": ["VIIRS_NOAA20_CorrectedReflectance_BandsM11-I2-I1"],
"availability": {
diff --git a/config/default/common/config/wv.json/layers/viirs/noaa20/VIIRS_NOAA20_CorrectedReflectance_BandsM3-I3-M11_Granule.json b/config/default/common/config/wv.json/layers/viirs/noaa20/VIIRS_NOAA20_CorrectedReflectance_BandsM3-I3-M11_Granule.json
index b72b32c48c..a20427eed4 100644
--- a/config/default/common/config/wv.json/layers/viirs/noaa20/VIIRS_NOAA20_CorrectedReflectance_BandsM3-I3-M11_Granule.json
+++ b/config/default/common/config/wv.json/layers/viirs/noaa20/VIIRS_NOAA20_CorrectedReflectance_BandsM3-I3-M11_Granule.json
@@ -7,7 +7,7 @@
"group": "overlays",
"layergroup": "Granules",
"type": "granule",
- "cmrAvailability": true,
+ "dataAvailability": "dd",
"period": "subdaily",
"associatedLayers": ["VIIRS_NOAA20_CorrectedReflectance_BandsM3-I3-M11"],
"availability": {
diff --git a/config/default/common/config/wv.json/layers/viirs/noaa20/VIIRS_NOAA20_CorrectedReflectance_TrueColor_Granule.json b/config/default/common/config/wv.json/layers/viirs/noaa20/VIIRS_NOAA20_CorrectedReflectance_TrueColor_Granule.json
index 573329650b..2849f6404c 100644
--- a/config/default/common/config/wv.json/layers/viirs/noaa20/VIIRS_NOAA20_CorrectedReflectance_TrueColor_Granule.json
+++ b/config/default/common/config/wv.json/layers/viirs/noaa20/VIIRS_NOAA20_CorrectedReflectance_TrueColor_Granule.json
@@ -7,7 +7,7 @@
"group": "overlays",
"layergroup": "Granules",
"type": "granule",
- "cmrAvailability": true,
+ "dataAvailability": "dd",
"period": "subdaily",
"associatedLayers": ["VIIRS_NOAA20_CorrectedReflectance_TrueColor"],
"availability": {
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/layers/viirs/snpp/VIIRS_SNPP_CorrectedReflectance_BandsM11-I2-I1_Granule.json b/config/default/common/config/wv.json/layers/viirs/snpp/VIIRS_SNPP_CorrectedReflectance_BandsM11-I2-I1_Granule.json
index c5134461cc..1f319a8e0e 100644
--- a/config/default/common/config/wv.json/layers/viirs/snpp/VIIRS_SNPP_CorrectedReflectance_BandsM11-I2-I1_Granule.json
+++ b/config/default/common/config/wv.json/layers/viirs/snpp/VIIRS_SNPP_CorrectedReflectance_BandsM11-I2-I1_Granule.json
@@ -7,7 +7,7 @@
"group": "overlays",
"layergroup": "Granules",
"type": "granule",
- "cmrAvailability": true,
+ "dataAvailability": "dd",
"period": "subdaily",
"associatedLayers": ["VIIRS_SNPP_CorrectedReflectance_BandsM11-I2-I1"],
"availability": {
diff --git a/config/default/common/config/wv.json/layers/viirs/snpp/VIIRS_SNPP_CorrectedReflectance_BandsM3-I3-M11_Granule.json b/config/default/common/config/wv.json/layers/viirs/snpp/VIIRS_SNPP_CorrectedReflectance_BandsM3-I3-M11_Granule.json
index e983470c9b..6d501f3484 100644
--- a/config/default/common/config/wv.json/layers/viirs/snpp/VIIRS_SNPP_CorrectedReflectance_BandsM3-I3-M11_Granule.json
+++ b/config/default/common/config/wv.json/layers/viirs/snpp/VIIRS_SNPP_CorrectedReflectance_BandsM3-I3-M11_Granule.json
@@ -7,7 +7,7 @@
"group": "overlays",
"layergroup": "Granules",
"type": "granule",
- "cmrAvailability": true,
+ "dataAvailability": "dd",
"period": "subdaily",
"associatedLayers": ["VIIRS_SNPP_CorrectedReflectance_BandsM3-I3-M11"],
"availability": {
diff --git a/config/default/common/config/wv.json/layers/viirs/snpp/VIIRS_SNPP_CorrectedReflectance_TrueColor_Granule.json b/config/default/common/config/wv.json/layers/viirs/snpp/VIIRS_SNPP_CorrectedReflectance_TrueColor_Granule.json
index 6641da00db..08e74b3be9 100644
--- a/config/default/common/config/wv.json/layers/viirs/snpp/VIIRS_SNPP_CorrectedReflectance_TrueColor_Granule.json
+++ b/config/default/common/config/wv.json/layers/viirs/snpp/VIIRS_SNPP_CorrectedReflectance_TrueColor_Granule.json
@@ -7,7 +7,7 @@
"group": "overlays",
"layergroup": "Granules",
"type": "granule",
- "cmrAvailability": true,
+ "dataAvailability": "dd",
"period": "subdaily",
"associatedLayers": ["VIIRS_SNPP_CorrectedReflectance_TrueColor"],
"availability": {
diff --git a/config/default/common/config/wv.json/measurements/Corrected Reflectance.json b/config/default/common/config/wv.json/measurements/Corrected Reflectance.json
index dae277aaa1..7ab43d36a3 100644
--- a/config/default/common/config/wv.json/measurements/Corrected Reflectance.json
+++ b/config/default/common/config/wv.json/measurements/Corrected Reflectance.json
@@ -3,7 +3,7 @@
"Corrected Reflectance": {
"id": "corrected-reflectance",
"title": "Corrected Reflectance",
- "subtitle": "Aqua/MODIS, Terra/MODIS, Suomi NPP/VIIRS, NOAA-20/VIIRS, NOAA-21/VIIRS, PACE/OCI, Landsat/WELD",
+ "subtitle": "Aqua/MODIS, Terra/MODIS, Suomi NPP/VIIRS, NOAA-20/VIIRS, NOAA-21/VIIRS, PACE/OCI, Landsat/WELD, OrbView-2/SeaWiFS",
"sources": {
"Aqua/MODIS": {
"id": "aqua-modis",
@@ -93,6 +93,15 @@
"Landsat_WELD_CorrectedReflectance_Bands743_Global_Annual",
"Landsat_WELD_CorrectedReflectance_Bands743_Global_Monthly"
]
+ },
+ "OrbView-2/SeaWiFS": {
+ "id": "orbview-2-seawifs",
+ "title": "OrbView-2/SeaWiFS",
+ "description": "",
+ "image": "",
+ "settings": [
+ "SEAWIFS_ORBVIEW-2_GAC_True_Color"
+ ]
}
}
}
diff --git a/config/default/common/config/wv.json/measurements/Dust.json b/config/default/common/config/wv.json/measurements/Dust.json
index 48952fc4b8..7b839f4414 100644
--- a/config/default/common/config/wv.json/measurements/Dust.json
+++ b/config/default/common/config/wv.json/measurements/Dust.json
@@ -3,7 +3,7 @@
"Dust": {
"id": "dust",
"title": "Dust",
- "subtitle": "Aqua/AIRS, MERRA-2",
+ "subtitle": "Aqua/AIRS, GOES-East/ABI, GOES-West/ABI, MERRA-2",
"sources": {
"Aqua/AIRS": {
"id": "aqua-airs",
@@ -17,6 +17,24 @@
"OrbitTracks_Aqua_Descending"
]
},
+ "GOES-East/ABI": {
+ "id": "goes-east-abi",
+ "title": "GOES-East/ABI",
+ "description": "",
+ "image": "",
+ "settings": [
+ "GOES-East_ABI_Dust"
+ ]
+ },
+ "GOES-West/ABI": {
+ "id": "goes-west-abi",
+ "title": "GOES-West/ABI",
+ "description": "",
+ "image": "",
+ "settings": [
+ "GOES-West_ABI_Dust"
+ ]
+ },
"MERRA-2": {
"id": "merra2",
"title": "MERRA-2",
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 17e658261a..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",
+ "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/Featured - Surface Water Extent.json b/config/default/common/config/wv.json/measurements/Featured - Surface Water Extent.json
deleted file mode 100644
index d87c21a16e..0000000000
--- a/config/default/common/config/wv.json/measurements/Featured - Surface Water Extent.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "measurements": {
- "Surface Water Extent - Featured": {
- "id": "featured-surface-water-extent",
- "title": "Surface Water Extent",
- "subtitle": "DSWx-HLS",
- "sources": {
- "DSWx-HLS": {
- "id": "dswx-hls",
- "title": "DSWx-HLS",
- "description": "",
- "image": "",
- "settings": [
- "OPERA_L3_Dynamic_Surface_Water_Extent-HLS_Provisional",
- "OrbitTracks_Landsat-8_Descending",
- "OrbitTracks_Sentinel-2A_Descending",
- "OrbitTracks_Sentinel-2B_Descending"
- ]
- }
- }
- }
- }
-}
diff --git a/config/default/common/config/wv.json/measurements/Featured - Vegetation Disturbance Status.json b/config/default/common/config/wv.json/measurements/Featured - Vegetation Disturbance Status.json
deleted file mode 100644
index e6aa0dbb11..0000000000
--- a/config/default/common/config/wv.json/measurements/Featured - Vegetation Disturbance Status.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "measurements": {
- "Vegetation Disturbance Status": {
- "id": "vegetation-disturbance-status",
- "title": "Vegetation Disturbance Status",
- "subtitle": "DIST-ALERT-HLS",
- "sources": {
- "DIST-ALERT-HLS": {
- "id": "DIST-ALERT-HLS",
- "title": "DIST-ALERT-HLS",
- "description": "",
- "image": "",
- "settings": [
- "OPERA_L3_DIST-ALERT-HLS_Color_Index_Provisional",
- "OrbitTracks_Landsat-8_Descending",
- "OrbitTracks_Sentinel-2A_Descending",
- "OrbitTracks_Sentinel-2B_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 fe93515d13..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",
+ "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,37 @@
"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"
+ ]
+ },
+ "GOES-East/ABI": {
+ "id": "goes-east-abi",
+ "title": "GOES-East/ABI",
+ "description": "",
+ "image": "",
+ "settings": [
+ "GOES-East_ABI_FireTemp"
+ ]
+ },
+ "GOES-West/ABI": {
+ "id": "goes-west-abi",
+ "title": "GOES-West/ABI",
+ "description": "",
+ "image": "",
+ "settings": [
+ "GOES-West_ABI_FireTemp"
+ ]
}
}
}
diff --git a/config/default/common/config/wv.json/measurements/Flood.json b/config/default/common/config/wv.json/measurements/Flood.json
index 315f04ee3d..68f00cd6c6 100644
--- a/config/default/common/config/wv.json/measurements/Flood.json
+++ b/config/default/common/config/wv.json/measurements/Flood.json
@@ -21,7 +21,7 @@
"description": "",
"image": "",
"settings": [
- "OPERA_L3_Dynamic_Surface_Water_Extent-HLS_Provisional",
+ "OPERA_L3_Dynamic_Surface_Water_Extent-HLS",
"OrbitTracks_Landsat-8_Descending",
"OrbitTracks_Sentinel-2A_Descending",
"OrbitTracks_Sentinel-2B_Descending"
diff --git a/config/default/common/config/wv.json/measurements/Surface Water Extent.json b/config/default/common/config/wv.json/measurements/Surface Water Extent.json
index ed70814293..bf279bbed7 100644
--- a/config/default/common/config/wv.json/measurements/Surface Water Extent.json
+++ b/config/default/common/config/wv.json/measurements/Surface Water Extent.json
@@ -11,7 +11,7 @@
"description": "",
"image": "",
"settings": [
- "OPERA_L3_Dynamic_Surface_Water_Extent-HLS_Provisional",
+ "OPERA_L3_Dynamic_Surface_Water_Extent-HLS",
"OrbitTracks_Landsat-8_Descending",
"OrbitTracks_Sentinel-2A_Descending",
"OrbitTracks_Sentinel-2B_Descending"
diff --git a/config/default/common/config/wv.json/measurements/Vegetation Indices.json b/config/default/common/config/wv.json/measurements/Vegetation Indices.json
index 0069cf7d80..fa21e3b26c 100644
--- a/config/default/common/config/wv.json/measurements/Vegetation Indices.json
+++ b/config/default/common/config/wv.json/measurements/Vegetation Indices.json
@@ -37,8 +37,14 @@
"description": "multi-mission/hls/Reflectance",
"image": "",
"settings": [
- "HLS_NDVI_Sentinel",
"HLS_Customizable_Sentinel",
+ "HLS_NDVI_Sentinel",
+ "HLS_EVI_Sentinel",
+ "HLS_SAVI_Sentinel",
+ "HLS_MSAVI_Sentinel",
+ "HLS_NBR_Sentinel",
+ "HLS_NBR2_Sentinel",
+ "HLS_TVI_Sentinel",
"HLS_MGRS_Granule_Grid",
"OrbitTracks_Sentinel-2A_Descending",
"OrbitTracks_Sentinel-2B_Descending"
@@ -50,8 +56,14 @@
"description": "",
"image": "",
"settings": [
- "HLS_NDVI_Landsat",
"HLS_Customizable_Landsat",
+ "HLS_NDVI_Landsat",
+ "HLS_EVI_Landsat",
+ "HLS_SAVI_Landsat",
+ "HLS_MSAVI_Landsat",
+ "HLS_NBR_Landsat",
+ "HLS_NBR2_Landsat",
+ "HLS_TVI_Landsat",
"HLS_MGRS_Granule_Grid",
"OrbitTracks_Landsat-8_Descending",
"OrbitTracks_Landsat-9_Descending"
diff --git a/config/default/common/config/wv.json/naturalEvents.json b/config/default/common/config/wv.json/naturalEvents.json
index 1760500740..188ec55b7c 100644
--- a/config/default/common/config/wv.json/naturalEvents.json
+++ b/config/default/common/config/wv.json/naturalEvents.json
@@ -679,7 +679,7 @@
false
],
[
- "VIIRS_SNPP_Chlorophyll_a",
+ "VIIRS_SNPP_L2_Chlorophyll_A",
false
]
],
diff --git a/config/default/common/config/wv.json/stories/default/surface_water_extent.json b/config/default/common/config/wv.json/stories/default/surface_water_extent.json
index fbfa0d49eb..ac07a70145 100644
--- a/config/default/common/config/wv.json/stories/default/surface_water_extent.json
+++ b/config/default/common/config/wv.json/stories/default/surface_water_extent.json
@@ -25,7 +25,7 @@
"element": "",
"action": ""
},
- "stepLink": "v=-174.25840338686484,-75.27671304270082,141.53238355885279,76.68146944943469&l=Coastlines_15m,Reference_Features_15m,Reference_Labels_15m,OPERA_L3_Dynamic_Surface_Water_Extent-HLS_Provisional(disabled=5),Land_Water_Map&lg=true&t=2023-09-16-T00%3A00%3A00Z"
+ "stepLink": "v=-174.25840338686484,-75.27671304270082,141.53238355885279,76.68146944943469&l=Coastlines_15m,Reference_Features_15m,Reference_Labels_15m,OPERA_L3_Dynamic_Surface_Water_Extent-HLS(disabled=5),Land_Water_Map&lg=true&t=2023-09-16-T00%3A00%3A00Z"
},
{
"id": "002",
@@ -52,7 +52,7 @@
"element": "",
"action": ""
},
- "stepLink": "v=-71.07486930852178,-33.93435707600563,-70.75488664634847,-33.77658661292407&l=Reference_Labels_15m,Coastlines_15m,OPERA_L3_Dynamic_Surface_Water_Extent-HLS_Provisional(disabled=5-3-0-4),HLS_L30_Nadir_BRDF_Adjusted_Reflectance&lg=true&l1=Reference_Labels_15m,Coastlines_15m,OPERA_L3_Dynamic_Surface_Water_Extent-HLS_Provisional(disabled=5-0-3-4),HLS_L30_Nadir_BRDF_Adjusted_Reflectance&lg1=true&ca=true&t=2023-09-15-T00%3A00%3A00Z&t1=2023-12-20-T00%3A00%3A00Z"
+ "stepLink": "v=-71.07486930852178,-33.93435707600563,-70.75488664634847,-33.77658661292407&l=Reference_Labels_15m,Coastlines_15m,OPERA_L3_Dynamic_Surface_Water_Extent-HLS(disabled=5-3-0-4),HLS_L30_Nadir_BRDF_Adjusted_Reflectance&lg=true&l1=Reference_Labels_15m,Coastlines_15m,OPERA_L3_Dynamic_Surface_Water_Extent-HLS(disabled=5-0-3-4),HLS_L30_Nadir_BRDF_Adjusted_Reflectance&lg1=true&ca=true&t=2023-09-15-T00%3A00%3A00Z&t1=2023-12-20-T00%3A00%3A00Z"
},
{
"id": "005",
@@ -70,7 +70,7 @@
"element": "",
"action": ""
},
- "stepLink": "v=66.26097333885345,26.79208364911574,70.01383041589206,28.63900515761756&l=Reference_Labels_15m,Coastlines_15m,OPERA_L3_Dynamic_Surface_Water_Extent-HLS_Provisional(disabled=5-4-0-3),HLS_L30_Nadir_BRDF_Adjusted_Reflectance,and_Water_Map&lg=true&l1=Reference_Labels_15m,Coastlines_15m,OPERA_L3_Dynamic_Surface_Water_Extent-HLS_Provisional(disabled=5-4-0-3),HLS_L30_Nadir_BRDF_Adjusted_Reflectance,Land_Water_Map&lg1=true&ca=false&t=2023-05-03-T00%3A00%3A00Z&t1=2023-08-07-T00%3A00%3A00Z"
+ "stepLink": "v=66.26097333885345,26.79208364911574,70.01383041589206,28.63900515761756&l=Reference_Labels_15m,Coastlines_15m,OPERA_L3_Dynamic_Surface_Water_Extent-HLS(disabled=5-4-0-3),HLS_L30_Nadir_BRDF_Adjusted_Reflectance,and_Water_Map&lg=true&l1=Reference_Labels_15m,Coastlines_15m,OPERA_L3_Dynamic_Surface_Water_Extent-HLS(disabled=5-4-0-3),HLS_L30_Nadir_BRDF_Adjusted_Reflectance,Land_Water_Map&lg1=true&ca=false&t=2023-05-03-T00%3A00%3A00Z&t1=2023-08-07-T00%3A00%3A00Z"
},
{
"id": "007",
@@ -79,7 +79,7 @@
"element": "",
"action": ""
},
- "stepLink": "v=31.018443108847784,45.69828845075648,38.249357239823404,48.92781515503184&l=Coastlines_15m,OPERA_L3_Dynamic_Surface_Water_Extent-HLS_Provisional(disabled=5-0),HLS_S30_Nadir_BRDF_Adjusted_Reflectance&lg=true&l1=Coastlines_15m,OPERA_L3_Dynamic_Surface_Water_Extent-HLS_Provisional(disabled=5-0),HLS_S30_Nadir_BRDF_Adjusted_Reflectance&lg1=true&ca=false&t=2023-06-05-T00%3A00%3A00ZZ&t1=2023-07-05-T00%3A00%3A00Z"
+ "stepLink": "v=31.018443108847784,45.69828845075648,38.249357239823404,48.92781515503184&l=Coastlines_15m,OPERA_L3_Dynamic_Surface_Water_Extent-HLS(disabled=5-0),HLS_S30_Nadir_BRDF_Adjusted_Reflectance&lg=true&l1=Coastlines_15m,OPERA_L3_Dynamic_Surface_Water_Extent-HLS(disabled=5-0),HLS_S30_Nadir_BRDF_Adjusted_Reflectance&lg1=true&ca=false&t=2023-06-05-T00%3A00%3A00ZZ&t1=2023-07-05-T00%3A00%3A00Z"
},
{
"id": "008",
@@ -88,7 +88,7 @@
"element": "",
"action": ""
},
- "stepLink": "v=33.22962382325344,46.70304759196583,33.49071034396659,46.83177875820307&l=Coastlines_15m,OPERA_L3_Dynamic_Surface_Water_Extent-HLS_Provisional(disabled=5-0-4),HLS_S30_Nadir_BRDF_Adjusted_Reflectance&lg=true&l1=Coastlines_15m,OPERA_L3_Dynamic_Surface_Water_Extent-HLS_Provisional(disabled=5-0-4),HLS_S30_Nadir_BRDF_Adjusted_Reflectance&lg1=true&ca=true&t=2023-06-05-T00%3A00%3A00Z&t1=2023-08-04-T00%3A00%3A00Z"
+ "stepLink": "v=33.22962382325344,46.70304759196583,33.49071034396659,46.83177875820307&l=Coastlines_15m,OPERA_L3_Dynamic_Surface_Water_Extent-HLS(disabled=5-0-4),HLS_S30_Nadir_BRDF_Adjusted_Reflectance&lg=true&l1=Coastlines_15m,OPERA_L3_Dynamic_Surface_Water_Extent-HLS(disabled=5-0-4),HLS_S30_Nadir_BRDF_Adjusted_Reflectance&lg1=true&ca=true&t=2023-06-05-T00%3A00%3A00Z&t1=2023-08-04-T00%3A00%3A00Z"
},
{
"id": "009",
@@ -97,7 +97,7 @@
"element": "",
"action": ""
},
- "stepLink": "v=-120.92334499025998,35.39339081276658,-118.47118410883445,36.5345735740097&l=Reference_Labels_15m,Reference_Features_15m,Coastlines_15m,HLS_L30_Nadir_BRDF_Adjusted_Reflectance,Land_Water_Map&lg=true&l1=Reference_Labels_15m,Reference_Features_15m,Coastlines_15m,OPERA_L3_Dynamic_Surface_Water_Extent-HLS_Provisional(disabled=0-4),HLS_L30_Nadir_BRDF_Adjusted_Reflectance,Land_Water_Map&lg1=true&ca=false&t=2023-04-30-T00%3A00%3A00Z&t1=2023-04-30-T00%3A00%3A00Z"
+ "stepLink": "v=-120.92334499025998,35.39339081276658,-118.47118410883445,36.5345735740097&l=Reference_Labels_15m,Reference_Features_15m,Coastlines_15m,HLS_L30_Nadir_BRDF_Adjusted_Reflectance,Land_Water_Map&lg=true&l1=Reference_Labels_15m,Reference_Features_15m,Coastlines_15m,OPERA_L3_Dynamic_Surface_Water_Extent-HLS(disabled=0-4),HLS_L30_Nadir_BRDF_Adjusted_Reflectance,Land_Water_Map&lg1=true&ca=false&t=2023-04-30-T00%3A00%3A00Z&t1=2023-04-30-T00%3A00%3A00Z"
}
]
}
diff --git a/config/default/common/config/wv.json/stories/default/worldview_intro.json b/config/default/common/config/wv.json/stories/default/worldview_intro.json
index 6ed19a4350..260d7c340d 100644
--- a/config/default/common/config/wv.json/stories/default/worldview_intro.json
+++ b/config/default/common/config/wv.json/stories/default/worldview_intro.json
@@ -118,7 +118,7 @@
},
{
"target": "#wv-share-button",
- "content": "Create a custom URL link of your Worldview page and share Worldview via social media with friends and colleagues!",
+ "content": "Create a custom URL link of your Worldview map view, access information about embedding Worldview, learn how to use imagery directly from GIBS, and remember to cite us!",
"placementBeacon": "bottom"
},
{
diff --git a/config/default/common/config/wv.json/stories/severe-storm/atmospheric_rivers.json b/config/default/common/config/wv.json/stories/severe-storm/atmospheric_rivers.json
index 8def7fb1b1..4490266e36 100644
--- a/config/default/common/config/wv.json/stories/severe-storm/atmospheric_rivers.json
+++ b/config/default/common/config/wv.json/stories/severe-storm/atmospheric_rivers.json
@@ -93,7 +93,7 @@
"element": "",
"action": ""
},
- "stepLink": "v=-120.32664595033344,35.56312423104413,-119.07005472101878,36.370066631457775&l=Reference_Features_15m,Coastlines_15m,OPERA_L3_Dynamic_Surface_Water_Extent-HLS_Provisional(hidden,disabled=5-0-4),HLS_S30_Nadir_BRDF_Adjusted_Reflectance(hidden),HLS_L30_Nadir_BRDF_Adjusted_Reflectance&lg=true&l1=Reference_Features_15m,Coastlines_15m,OPERA_L3_Dynamic_Surface_Water_Extent-HLS_Provisional(disabled=5-0-4),HLS_S30_Nadir_BRDF_Adjusted_Reflectance(hidden),HLS_L30_Nadir_BRDF_Adjusted_Reflectance&lg1=true&ca=false&tr=atmospheric_rivers&t=2023-03-13-T05%3A35%3A22Z&t1=2023-04-30-T09%3A35%3A22Z"
+ "stepLink": "v=-120.32664595033344,35.56312423104413,-119.07005472101878,36.370066631457775&l=Reference_Features_15m,Coastlines_15m,OPERA_L3_Dynamic_Surface_Water_Extent-HLS(hidden,disabled=5-0-4),HLS_S30_Nadir_BRDF_Adjusted_Reflectance(hidden),HLS_L30_Nadir_BRDF_Adjusted_Reflectance&lg=true&l1=Reference_Features_15m,Coastlines_15m,OPERA_L3_Dynamic_Surface_Water_Extent-HLS(disabled=5-0-4),HLS_S30_Nadir_BRDF_Adjusted_Reflectance(hidden),HLS_L30_Nadir_BRDF_Adjusted_Reflectance&lg1=true&ca=false&tr=atmospheric_rivers&t=2023-03-13-T05%3A35%3A22Z&t1=2023-04-30-T09%3A35%3A22Z"
},
{
"id": "009",
diff --git a/doc/branding.md b/doc/branding.md
index fe2fb22836..886b345731 100644
--- a/doc/branding.md
+++ b/doc/branding.md
@@ -8,13 +8,13 @@ To add custom branding to Worldview,
Update the following fields in `config/default/common/brand.json` with custom branding:
* `packageName`: Application name used to create builds, (i.e. `worldview`).
-* `name`: Application name shown to end users (i.e. `EOSDIS Worldview`).
+* `name`: Application name shown to end users (i.e. `NASA Worldview`).
* `email`: Email address for support requests.
Naming can be more specific by omitting the `name` field and using
the following instead:
-* `officialName`: Full name of the application (i.e. `EOSDIS Worldview`).
+* `officialName`: Full name of the application (i.e. `NASA Worldview`).
* `shortName`: Short name of the application (i.e. `Worldview`).
To add a logo, replace `config/default/common/brand/images/wv-logo.png` with an image
diff --git a/doc/config/layers.md b/doc/config/layers.md
index 4aec705876..88bedaa2d2 100644
--- a/doc/config/layers.md
+++ b/doc/config/layers.md
@@ -113,6 +113,7 @@ Example:
* **temporal**: Used to override the layer temporal availability declared in the capabilities document. Note: Changing the temporal availability can cause missing layer coverage within the interface for layers tiles that aren't available from the source at the revised temporal range. This option can be added as a string with the new availability range. For example, `"1981-10-13/2019-10-11/P1M"`.
* **count**: Used to override the default number of granules displayed on the map and in the granule count slider component for granule layers.
* **cmrAvailability**: Boolean - Whether or not to use the CMR API for data availability.
+* **dataAvailability**: String - `cmr` or `dd`. Get the layer's data availability from either the CMR API or GIBS DescribeDomains request.
## Full Example
@@ -136,7 +137,7 @@ Example:
"id": "AIRS_RH400_A"
},
"temporal": "1981-10-13/2019-10-11/P1M",
- "cmrAvailability": false
+ "dataAvailability": "dd"
}
}
}
@@ -164,7 +165,7 @@ Granule layers will require specific configuration options within the `config/wv
],
"ongoing": true,
"type": "granule",
- "cmrAvailability": true,
+ "dataAvailability": "dd",
"period": "subdaily",
"count": 1
}
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/layers/layer-picker-test.spec.js b/e2e/features/layers/layer-picker-test.spec.js
index 9e1156d473..d9e9cefc35 100644
--- a/e2e/features/layers/layer-picker-test.spec.js
+++ b/e2e/features/layers/layer-picker-test.spec.js
@@ -155,8 +155,8 @@ test('Disabling coverage filter updates list', async () => {
} = selectors
await availableFilterCheckbox.click()
await expect(availableFilterCheckboxInput).not.toBeChecked()
- await expect(layersSearchRow).toHaveCount(14)
- await expect(layerResultsCountText).toContainText('Showing 14 out of')
+ await expect(layersSearchRow).toHaveCount(15)
+ await expect(layerResultsCountText).toContainText('Showing 15 out of')
})
test('Finding layer by ID with search', async () => {
diff --git a/e2e/features/share/share-test.spec.js b/e2e/features/share/share-test.spec.js
index 4409ce4e6a..3dc630f5d8 100644
--- a/e2e/features/share/share-test.spec.js
+++ b/e2e/features/share/share-test.spec.js
@@ -29,12 +29,12 @@ test('Clicking the share link button opens the share dialog', async () => {
await expect(shareToolbar).toBeVisible()
})
-test('Share tabs link and social are visible and enabled', async () => {
+test('Share tabs link and cite us are visible and enabled', async () => {
const linkShareNav = await page.locator('.link-share-nav')
- const socialShareNav = await page.locator('.social-share-nav')
+ const citeUsShareNav = await page.locator('.cite-us-share-nav')
const linkShareActive = await page.locator('.link-share-nav a')
await expect(linkShareNav).toBeVisible()
- await expect(socialShareNav).toBeVisible()
+ await expect(citeUsShareNav).toBeVisible()
await expect(linkShareActive).toHaveClass(/active/)
})
@@ -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)
@@ -72,20 +72,6 @@ test('Share link clipboard with no time query string param in the page url will
expect(shareLinkValue).toContain(`t=${year}-${monthText}-${dayText}`)
})
-test('Clicking the social tab displays social share buttons', async () => {
- const { shareToolbarButton } = selectors
- const facebook = await page.locator('#fb-share')
- const twitter = await page.locator('#tw-share')
- const reddit = await page.locator('#rd-share')
- const email = await page.locator('#email-share')
- await shareToolbarButton.click()
- await page.locator('.social-share-nav a').click()
- await expect(facebook).toBeVisible()
- await expect(twitter).toBeVisible()
- await expect(reddit).toBeVisible()
- await expect(email).toBeVisible()
-})
-
test('Clicking Shorten link works with links less than 2049 characters', async () => {
const { shareToolbarButton } = selectors
const shortQueryString = 'http://localhost:3000/?l=Reference_Labels_15m,Reference_Features_15m,Coastlines_15m,VIIRS_NOAA20_CorrectedReflectance_TrueColor(hidden),VIIRS_SNPP_CorrectedReflectance_TrueColor(hidden),MODIS_Aqua_CorrectedReflectance_TrueColor(hidden),MODIS_Terra_CorrectedReflectance_TrueColor&lg=true&t=2022-08-10-T15%3A15%3A05Z'
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 f2dbaa9edb..58e74ead32 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,24 +1,25 @@
{
"name": "worldview",
- "version": "4.41.0",
+ "version": "4.49.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "worldview",
- "version": "4.41.0",
+ "version": "4.49.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.5.2",
- "@fortawesome/free-brands-svg-icons": "^6.5.2",
- "@fortawesome/free-solid-svg-icons": "^6.5.2",
+ "@fortawesome/fontawesome-svg-core": "^6.6.0",
+ "@fortawesome/free-brands-svg-icons": "^6.6.0",
+ "@fortawesome/free-solid-svg-icons": "^6.6.0",
"@fortawesome/react-fontawesome": "^0.2.2",
"@khanisak/temperature-converter": "^2.0.1",
- "@reduxjs/toolkit": "^2.2.5",
- "axios": "^1.7.2",
+ "@reduxjs/toolkit": "^2.2.7",
+ "axios": "^1.7.7",
"bluebird": "3.7.2",
"bootstrap": "^5.3.3",
"cachai": "^1.0.2",
@@ -29,8 +30,9 @@
"element-resize-detector": "^1.2.4",
"elm-pep": "^1.0.6",
"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",
@@ -41,25 +43,25 @@
"moment-locales-webpack-plugin": "^1.2.0",
"node-dir": "^0.1.17",
"ol": "^8.2.0",
- "ol-mapbox-style": "^12.3.3",
+ "ol-mapbox-style": "^12.3.5",
"p-queue": "^8.0.1",
- "proj4": "^2.11.0",
+ "proj4": "^2.12.1",
"prop-types": "^15.8.1",
- "qs": "^6.12.1",
+ "qs": "^6.13.0",
"react": "^18.3.1",
"react-beautiful-dnd": "^13.1.1",
"react-device-detect": "^2.2.3",
"react-dom": "^18.3.0",
"react-draggable": "^4.4.6",
- "react-image-crop": "^11.0.4",
+ "react-image-crop": "^11.0.7",
"react-infinite-scroller": "^1.2.6",
- "react-joyride": "^2.8.2",
+ "react-joyride": "^2.9.2",
"react-mobile-datepicker": "^4.0.2",
"react-redux": "^9.1.1",
"react-resizable": "^3.0.5",
"react-swipe-to-delete-component": "1.0.5",
"react-visibility-sensor": "^5.1.1",
- "reactstrap": "^9.2.2",
+ "reactstrap": "^9.2.3",
"recharts": "^2.12.7",
"redux": "^5.0.1",
"redux-location-state": "^2.8.2",
@@ -71,83 +73,82 @@
"simplebar-react": "^3.2.6",
"stackblur": "^1.0.0",
"supercluster": "^8.0.1",
- "tough-cookie": "^4.1.4",
+ "tough-cookie": "^5.0.0",
"upng-js": "^2.1.0",
"url-template": "^3.1.1",
"what-input": "^5.2.12"
},
"devDependencies": {
- "@babel/core": "^7.24.7",
- "@babel/eslint-parser": "^7.24.7",
- "@babel/plugin-transform-class-properties": "^7.24.7",
- "@babel/plugin-transform-private-methods": "^7.24.7",
- "@babel/preset-env": "^7.24.7",
- "@babel/preset-react": "^7.24.7",
- "@playwright/test": "^1.44.1",
+ "@babel/core": "^7.25.7",
+ "@babel/eslint-parser": "^7.25.7",
+ "@babel/plugin-transform-class-properties": "^7.25.7",
+ "@babel/plugin-transform-private-methods": "^7.25.7",
+ "@babel/preset-env": "^7.25.7",
+ "@babel/preset-react": "^7.25.7",
+ "@playwright/test": "^1.47.2",
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.15",
"@webpack-cli/serve": "^2.0.5",
- "ajv": "^8.16.0",
- "autoprefixer": "^10.4.19",
- "babel-loader": "^9.1.3",
- "cheerio": "^1.0.0-rc.12",
+ "ajv": "^8.17.1",
+ "autoprefixer": "^10.4.20",
+ "babel-loader": "^9.2.1",
+ "cheerio": "^1.0.0",
"clean-webpack-plugin": "^4.0.0",
"cross-env": "^7.0.3",
"css-loader": "^7.1.2",
"css-minimizer-webpack-plugin": "^7.0.0",
"css-url-relative-plugin": "^1.1.0",
- "cssnano": "^7.0.2",
- "eslint": "^8.57.0",
+ "cssnano": "^7.0.6",
+ "eslint": "^8.57.1",
"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.6.0",
- "eslint-plugin-jsx-a11y": "^6.8.0",
- "eslint-plugin-n": "^16.6.2",
+ "eslint-import-resolver-webpack": "^0.13.9",
+ "eslint-plugin-import": "^2.31.0",
+ "eslint-plugin-jest": "^28.8.3",
+ "eslint-plugin-jsx-a11y": "^6.10.0",
+ "eslint-plugin-n": "^17.10.3",
"eslint-plugin-no-storage": "^1.0.2",
"eslint-plugin-node": "^11.1.0",
- "eslint-plugin-promise": "^6.2.0",
- "eslint-plugin-react": "^7.34.2",
- "express": "^4.19.2",
- "fetch-mock": "^9.11.0",
- "glob": "^10.4.1",
- "husky": "^9.0.11",
+ "eslint-plugin-promise": "^6.6.0",
+ "eslint-plugin-react": "^7.37.0",
+ "express": "^4.21.0",
+ "glob": "^11.0.0",
+ "husky": "^9.1.6",
"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.38",
+ "postcss": "^8.4.47",
"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.5",
- "sass-loader": "^14.2.1",
+ "sass": "^1.79.4",
+ "sass-loader": "^16.0.2",
"shelljs": "^0.8.5",
"showdown": "^2.1.0",
"stylelint": "^15.11.0",
"stylelint-config-standard-scss": "^11.1.0",
"stylelint-high-performance-animation": "^1.10.0",
- "tar": "^7.2.0",
+ "tar": "^7.4.3",
"terser-webpack-plugin": "^5.3.10",
"uuid": "^10.0.0",
- "webpack": "^5.92.0",
+ "webpack": "^5.95.0",
"webpack-bundle-analyzer": "^4.10.2",
"webpack-cli": "^5.1.4",
- "webpack-dev-middleware": "^7.2.1",
- "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"
},
"engines": {
- "node": ">= 20.12.2"
+ "node": ">= 20.16.0"
}
},
"node_modules/@aashutoshrathi/word-wrap": {
@@ -159,7 +160,6 @@
},
"node_modules/@ampproject/remapping": {
"version": "2.2.0",
- "dev": true,
"license": "Apache-2.0",
"dependencies": {
"@jridgewell/gen-mapping": "^0.1.0",
@@ -170,10 +170,11 @@
}
},
"node_modules/@babel/code-frame": {
- "version": "7.24.7",
- "license": "MIT",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.25.7.tgz",
+ "integrity": "sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==",
"dependencies": {
- "@babel/highlight": "^7.24.7",
+ "@babel/highlight": "^7.25.7",
"picocolors": "^1.0.0"
},
"engines": {
@@ -181,30 +182,28 @@
}
},
"node_modules/@babel/compat-data": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.7.tgz",
- "integrity": "sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==",
- "dev": true,
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.7.tgz",
+ "integrity": "sha512-9ickoLz+hcXCeh7jrcin+/SLWm+GkxE2kTvoYyp38p4WkdFXfQJxDFGWp/YHjiKLPx06z2A7W8XKuqbReXDzsw==",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/core": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.7.tgz",
- "integrity": "sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==",
- "dev": true,
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.7.tgz",
+ "integrity": "sha512-yJ474Zv3cwiSOO9nXJuqzvwEeM+chDuQ8GJirw+pZ91sCGCyOZ3dJkVE09fTV0VEVzXyLWhh3G/AolYTPX7Mow==",
"dependencies": {
"@ampproject/remapping": "^2.2.0",
- "@babel/code-frame": "^7.24.7",
- "@babel/generator": "^7.24.7",
- "@babel/helper-compilation-targets": "^7.24.7",
- "@babel/helper-module-transforms": "^7.24.7",
- "@babel/helpers": "^7.24.7",
- "@babel/parser": "^7.24.7",
- "@babel/template": "^7.24.7",
- "@babel/traverse": "^7.24.7",
- "@babel/types": "^7.24.7",
+ "@babel/code-frame": "^7.25.7",
+ "@babel/generator": "^7.25.7",
+ "@babel/helper-compilation-targets": "^7.25.7",
+ "@babel/helper-module-transforms": "^7.25.7",
+ "@babel/helpers": "^7.25.7",
+ "@babel/parser": "^7.25.7",
+ "@babel/template": "^7.25.7",
+ "@babel/traverse": "^7.25.7",
+ "@babel/types": "^7.25.7",
"convert-source-map": "^2.0.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.2",
@@ -220,9 +219,10 @@
}
},
"node_modules/@babel/eslint-parser": {
- "version": "7.24.7",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.25.7.tgz",
+ "integrity": "sha512-B+BO9x86VYsQHimucBAL1fxTJKF4wyKY6ZVzee9QgzdZOUfs3BaR6AQrgoGrRI+7IFS1wUz/VyQ+SoBcSpdPbw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1",
"eslint-visitor-keys": "^2.1.0",
@@ -237,13 +237,14 @@
}
},
"node_modules/@babel/generator": {
- "version": "7.24.7",
- "license": "MIT",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.7.tgz",
+ "integrity": "sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==",
"dependencies": {
- "@babel/types": "^7.24.7",
+ "@babel/types": "^7.25.7",
"@jridgewell/gen-mapping": "^0.3.5",
"@jridgewell/trace-mapping": "^0.3.25",
- "jsesc": "^2.5.1"
+ "jsesc": "^3.0.2"
},
"engines": {
"node": ">=6.9.0"
@@ -262,38 +263,38 @@
}
},
"node_modules/@babel/helper-annotate-as-pure": {
- "version": "7.24.7",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.7.tgz",
+ "integrity": "sha512-4xwU8StnqnlIhhioZf1tqnVWeQ9pvH/ujS8hRfw/WOza+/a+1qv69BWNy+oY231maTCWgKWhfBU7kDpsds6zAA==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/types": "^7.24.7"
+ "@babel/types": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-builder-binary-assignment-operator-visitor": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz",
- "integrity": "sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.25.7.tgz",
+ "integrity": "sha512-12xfNeKNH7jubQNm7PAkzlLwEmCs1tfuX3UjIw6vP6QXi+leKh6+LyC/+Ed4EIQermwd58wsyh070yjDHFlNGg==",
"dev": true,
"dependencies": {
- "@babel/traverse": "^7.24.7",
- "@babel/types": "^7.24.7"
+ "@babel/traverse": "^7.25.7",
+ "@babel/types": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-compilation-targets": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz",
- "integrity": "sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==",
- "dev": true,
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.7.tgz",
+ "integrity": "sha512-DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQaV4A==",
"dependencies": {
- "@babel/compat-data": "^7.24.7",
- "@babel/helper-validator-option": "^7.24.7",
- "browserslist": "^4.22.2",
+ "@babel/compat-data": "^7.25.7",
+ "@babel/helper-validator-option": "^7.25.7",
+ "browserslist": "^4.24.0",
"lru-cache": "^5.1.1",
"semver": "^6.3.1"
},
@@ -303,7 +304,6 @@
},
"node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": {
"version": "5.1.1",
- "dev": true,
"license": "ISC",
"dependencies": {
"yallist": "^3.0.2"
@@ -311,22 +311,20 @@
},
"node_modules/@babel/helper-compilation-targets/node_modules/yallist": {
"version": "3.1.1",
- "dev": true,
"license": "ISC"
},
"node_modules/@babel/helper-create-class-features-plugin": {
- "version": "7.24.7",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.7.tgz",
+ "integrity": "sha512-bD4WQhbkx80mAyj/WCm4ZHcF4rDxkoLFO6ph8/5/mQ3z4vAzltQXAmbc7GvVJx5H+lk5Mi5EmbTeox5nMGCsbw==",
"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-optimise-call-expression": "^7.24.7",
- "@babel/helper-replace-supers": "^7.24.7",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7",
- "@babel/helper-split-export-declaration": "^7.24.7",
+ "@babel/helper-annotate-as-pure": "^7.25.7",
+ "@babel/helper-member-expression-to-functions": "^7.25.7",
+ "@babel/helper-optimise-call-expression": "^7.25.7",
+ "@babel/helper-replace-supers": "^7.25.7",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7",
+ "@babel/traverse": "^7.25.7",
"semver": "^6.3.1"
},
"engines": {
@@ -337,13 +335,13 @@
}
},
"node_modules/@babel/helper-create-regexp-features-plugin": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.24.7.tgz",
- "integrity": "sha512-03TCmXy2FtXJEZfbXDTSqq1fRJArk7lX9DOFC/47VthYcxyIOx+eXQmdo6DOQvrbpIix+KfXwvuXdFDZHxt+rA==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.7.tgz",
+ "integrity": "sha512-byHhumTj/X47wJ6C6eLpK7wW/WBEcnUeb7D0FNc/jFQnQVw7DOso3Zz5u9x/zLrFVkHa89ZGDbkAa1D54NdrCQ==",
"dev": true,
"dependencies": {
- "@babel/helper-annotate-as-pure": "^7.24.7",
- "regexpu-core": "^5.3.1",
+ "@babel/helper-annotate-as-pure": "^7.25.7",
+ "regexpu-core": "^6.1.1",
"semver": "^6.3.1"
},
"engines": {
@@ -354,7 +352,7 @@
}
},
"node_modules/@babel/helper-define-polyfill-provider": {
- "version": "0.6.1",
+ "version": "0.6.2",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -368,71 +366,40 @@
"@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
}
},
- "node_modules/@babel/helper-environment-visitor": {
- "version": "7.24.7",
- "license": "MIT",
- "dependencies": {
- "@babel/types": "^7.24.7"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-function-name": {
- "version": "7.24.7",
- "license": "MIT",
- "dependencies": {
- "@babel/template": "^7.24.7",
- "@babel/types": "^7.24.7"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-hoist-variables": {
- "version": "7.24.7",
- "license": "MIT",
- "dependencies": {
- "@babel/types": "^7.24.7"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
"node_modules/@babel/helper-member-expression-to-functions": {
- "version": "7.24.7",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.7.tgz",
+ "integrity": "sha512-O31Ssjd5K6lPbTX9AAYpSKrZmLeagt9uwschJd+Ixo6QiRyfpvgtVQp8qrDR9UNFjZ8+DO34ZkdrN+BnPXemeA==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/traverse": "^7.24.7",
- "@babel/types": "^7.24.7"
+ "@babel/traverse": "^7.25.7",
+ "@babel/types": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-module-imports": {
- "version": "7.24.7",
- "license": "MIT",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.7.tgz",
+ "integrity": "sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw==",
"dependencies": {
- "@babel/traverse": "^7.24.7",
- "@babel/types": "^7.24.7"
+ "@babel/traverse": "^7.25.7",
+ "@babel/types": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-module-transforms": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz",
- "integrity": "sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==",
- "dev": true,
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.7.tgz",
+ "integrity": "sha512-k/6f8dKG3yDz/qCwSM+RKovjMix563SLxQFo0UhRNo239SP6n9u5/eLtKD6EAjwta2JHJ49CsD8pms2HdNiMMQ==",
"dependencies": {
- "@babel/helper-environment-visitor": "^7.24.7",
- "@babel/helper-module-imports": "^7.24.7",
- "@babel/helper-simple-access": "^7.24.7",
- "@babel/helper-split-export-declaration": "^7.24.7",
- "@babel/helper-validator-identifier": "^7.24.7"
+ "@babel/helper-module-imports": "^7.25.7",
+ "@babel/helper-simple-access": "^7.25.7",
+ "@babel/helper-validator-identifier": "^7.25.7",
+ "@babel/traverse": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -442,33 +409,35 @@
}
},
"node_modules/@babel/helper-optimise-call-expression": {
- "version": "7.24.7",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.7.tgz",
+ "integrity": "sha512-VAwcwuYhv/AT+Vfr28c9y6SHzTan1ryqrydSTFGjU0uDJHw3uZ+PduI8plCLkRsDnqK2DMEDmwrOQRsK/Ykjng==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/types": "^7.24.7"
+ "@babel/types": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-plugin-utils": {
- "version": "7.24.7",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.7.tgz",
+ "integrity": "sha512-eaPZai0PiqCi09pPs3pAFfl/zYgGaE6IdXtYvmf0qlcDTd3WCtO7JWCcRd64e0EQrcYgiHibEZnOGsSY4QSgaw==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-remap-async-to-generator": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.24.7.tgz",
- "integrity": "sha512-9pKLcTlZ92hNZMQfGCHImUpDOlAgkkpqalWEeftW5FBya75k8Li2ilerxkM/uBEj01iBZXcCIB/bwvDYgWyibA==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.7.tgz",
+ "integrity": "sha512-kRGE89hLnPfcz6fTrlNU+uhgcwv0mBE4Gv3P9Ke9kLVJYpi4AMVVEElXvB5CabrPZW4nCM8P8UyyjrzCM0O2sw==",
"dev": true,
"dependencies": {
- "@babel/helper-annotate-as-pure": "^7.24.7",
- "@babel/helper-environment-visitor": "^7.24.7",
- "@babel/helper-wrap-function": "^7.24.7"
+ "@babel/helper-annotate-as-pure": "^7.25.7",
+ "@babel/helper-wrap-function": "^7.25.7",
+ "@babel/traverse": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -478,13 +447,14 @@
}
},
"node_modules/@babel/helper-replace-supers": {
- "version": "7.24.7",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.7.tgz",
+ "integrity": "sha512-iy8JhqlUW9PtZkd4pHM96v6BdJ66Ba9yWSE4z0W4TvSZwLBPkyDsiIU3ENe4SmrzRBs76F7rQXTy1lYC49n6Lw==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/helper-environment-visitor": "^7.24.7",
- "@babel/helper-member-expression-to-functions": "^7.24.7",
- "@babel/helper-optimise-call-expression": "^7.24.7"
+ "@babel/helper-member-expression-to-functions": "^7.25.7",
+ "@babel/helper-optimise-call-expression": "^7.25.7",
+ "@babel/traverse": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -494,95 +464,86 @@
}
},
"node_modules/@babel/helper-simple-access": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz",
- "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==",
- "dev": true,
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.7.tgz",
+ "integrity": "sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ==",
"dependencies": {
- "@babel/traverse": "^7.24.7",
- "@babel/types": "^7.24.7"
+ "@babel/traverse": "^7.25.7",
+ "@babel/types": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-skip-transparent-expression-wrappers": {
- "version": "7.24.7",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.7.tgz",
+ "integrity": "sha512-pPbNbchZBkPMD50K0p3JGcFMNLVUCuU/ABybm/PGNj4JiHrpmNyqqCphBk4i19xXtNV0JhldQJJtbSW5aUvbyA==",
"dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/traverse": "^7.24.7",
- "@babel/types": "^7.24.7"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-split-export-declaration": {
- "version": "7.24.7",
- "license": "MIT",
"dependencies": {
- "@babel/types": "^7.24.7"
+ "@babel/traverse": "^7.25.7",
+ "@babel/types": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-string-parser": {
- "version": "7.24.7",
- "license": "MIT",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.7.tgz",
+ "integrity": "sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-validator-identifier": {
- "version": "7.24.7",
- "license": "MIT",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz",
+ "integrity": "sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-validator-option": {
- "version": "7.24.7",
- "dev": true,
- "license": "MIT",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.7.tgz",
+ "integrity": "sha512-ytbPLsm+GjArDYXJ8Ydr1c/KJuutjF2besPNbIZnZ6MKUxi/uTA22t2ymmA4WFjZFpjiAMO0xuuJPqK2nvDVfQ==",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-wrap-function": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.24.7.tgz",
- "integrity": "sha512-N9JIYk3TD+1vq/wn77YnJOqMtfWhNewNE+DJV4puD2X7Ew9J4JvrzrFDfTfyv5EgEXVy9/Wt8QiOErzEmv5Ifw==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.7.tgz",
+ "integrity": "sha512-MA0roW3JF2bD1ptAaJnvcabsVlNQShUaThyJbCDD4bCp8NEgiFvpoqRI2YS22hHlc2thjO/fTg2ShLMC3jygAg==",
"dev": true,
"dependencies": {
- "@babel/helper-function-name": "^7.24.7",
- "@babel/template": "^7.24.7",
- "@babel/traverse": "^7.24.7",
- "@babel/types": "^7.24.7"
+ "@babel/template": "^7.25.7",
+ "@babel/traverse": "^7.25.7",
+ "@babel/types": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helpers": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.7.tgz",
- "integrity": "sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==",
- "dev": true,
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.7.tgz",
+ "integrity": "sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQpSiGQ0Jg6tRA==",
"dependencies": {
- "@babel/template": "^7.24.7",
- "@babel/types": "^7.24.7"
+ "@babel/template": "^7.25.7",
+ "@babel/types": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/highlight": {
- "version": "7.24.7",
- "license": "MIT",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.25.7.tgz",
+ "integrity": "sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==",
"dependencies": {
- "@babel/helper-validator-identifier": "^7.24.7",
+ "@babel/helper-validator-identifier": "^7.25.7",
"chalk": "^2.4.2",
"js-tokens": "^4.0.0",
"picocolors": "^1.0.0"
@@ -592,8 +553,12 @@
}
},
"node_modules/@babel/parser": {
- "version": "7.24.7",
- "license": "MIT",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.7.tgz",
+ "integrity": "sha512-aZn7ETtQsjjGG5HruveUK06cU3Hljuhd9Iojm4M8WWv3wLE6OkE5PWbDUkItmMgegmccaITudyuW5RPYrYlgWw==",
+ "dependencies": {
+ "@babel/types": "^7.25.7"
+ },
"bin": {
"parser": "bin/babel-parser.js"
},
@@ -602,13 +567,28 @@
}
},
"node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.7.tgz",
- "integrity": "sha512-TiT1ss81W80eQsN+722OaeQMY/G4yTb4G9JrqeiDADs3N8lbPMGldWi9x8tyqCW5NLx1Jh2AvkE6r6QvEltMMQ==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.7.tgz",
+ "integrity": "sha512-UV9Lg53zyebzD1DwQoT9mzkEKa922LNUp5YkTJ6Uta0RbyXaQNUgcvSt7qIu1PpPzVb6rd10OVNTzkyBGeVmxQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/traverse": "^7.25.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": {
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.7.tgz",
+ "integrity": "sha512-GDDWeVLNxRIkQTnJn2pDOM1pkCgYdSqPeT1a9vh9yIqu2uzzgw1zcqEb+IJOhy+dTBMlNdThrDIksr2o09qrrQ==",
"dev": true,
"dependencies": {
- "@babel/helper-environment-visitor": "^7.24.7",
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -618,12 +598,12 @@
}
},
"node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.7.tgz",
- "integrity": "sha512-unaQgZ/iRu/By6tsjMZzpeBZjChYfLYry6HrEXPoz3KmfF0sVBQ1l8zKMQ4xRGLWVsjuvB8nQfjNP/DcfEOCsg==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.7.tgz",
+ "integrity": "sha512-wxyWg2RYaSUYgmd9MR0FyRGyeOMQE/Uzr1wzd/g5cf5bwi9A4v6HFdDm7y1MgDtod/fLOSTZY6jDgV0xU9d5bA==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -633,14 +613,14 @@
}
},
"node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.7.tgz",
- "integrity": "sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.7.tgz",
+ "integrity": "sha512-Xwg6tZpLxc4iQjorYsyGMyfJE7nP5MV8t/Ka58BgiA7Jw0fRqQNcANlLfdJ/yvBt9z9LD2We+BEkT7vLqZRWng==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7",
- "@babel/plugin-transform-optional-chaining": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7",
+ "@babel/plugin-transform-optional-chaining": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -650,13 +630,13 @@
}
},
"node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.7.tgz",
- "integrity": "sha512-utA4HuR6F4Vvcr+o4DnjL8fCOlgRFGbeeBEGNg3ZTrLFw6VWG5XmUrvcQ0FjIYMU2ST4XcR2Wsp7t9qOAPnxMg==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.7.tgz",
+ "integrity": "sha512-UVATLMidXrnH+GMUIuxq55nejlj02HP7F5ETyBONzP6G87fPBogG4CH6kxrSrdIuAjdwNO9VzyaYsrZPscWUrw==",
"dev": true,
"dependencies": {
- "@babel/helper-environment-visitor": "^7.24.7",
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/traverse": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -749,12 +729,12 @@
}
},
"node_modules/@babel/plugin-syntax-import-assertions": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.7.tgz",
- "integrity": "sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.25.7.tgz",
+ "integrity": "sha512-ZvZQRmME0zfJnDQnVBKYzHxXT7lYBB3Revz1GuS7oLXWMgqUPX4G+DDbT30ICClht9WKV34QVrZhSw6WdklwZQ==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -764,12 +744,12 @@
}
},
"node_modules/@babel/plugin-syntax-import-attributes": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz",
- "integrity": "sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.25.7.tgz",
+ "integrity": "sha512-AqVo+dguCgmpi/3mYBdu9lkngOBlQ2w2vnNpa6gfiCxQZLzV4ZbhsXitJ2Yblkoe1VQwtHSaNmIaGll/26YWRw==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -801,11 +781,12 @@
}
},
"node_modules/@babel/plugin-syntax-jsx": {
- "version": "7.24.7",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.7.tgz",
+ "integrity": "sha512-ruZOnKO+ajVL/MVx+PwNBPOkrnXTXoWMtte1MBpegfCArhqOe3Bj52avVj1huLLxNKYKXYaSxZ2F+woK1ekXfw==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -939,12 +920,12 @@
}
},
"node_modules/@babel/plugin-transform-arrow-functions": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz",
- "integrity": "sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.7.tgz",
+ "integrity": "sha512-EJN2mKxDwfOUCPxMO6MUI58RN3ganiRAG/MS/S3HfB6QFNjroAMelQo/gybyYq97WerCBAZoyrAoW8Tzdq2jWg==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -954,15 +935,15 @@
}
},
"node_modules/@babel/plugin-transform-async-generator-functions": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.7.tgz",
- "integrity": "sha512-o+iF77e3u7ZS4AoAuJvapz9Fm001PuD2V3Lp6OSE4FYQke+cSewYtnek+THqGRWyQloRCyvWL1OkyfNEl9vr/g==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.7.tgz",
+ "integrity": "sha512-4B6OhTrwYKHYYgcwErvZjbmH9X5TxQBsaBHdzEIB4l71gR5jh/tuHGlb9in47udL2+wVUcOz5XXhhfhVJwEpEg==",
"dev": true,
"dependencies": {
- "@babel/helper-environment-visitor": "^7.24.7",
- "@babel/helper-plugin-utils": "^7.24.7",
- "@babel/helper-remap-async-to-generator": "^7.24.7",
- "@babel/plugin-syntax-async-generators": "^7.8.4"
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/helper-remap-async-to-generator": "^7.25.7",
+ "@babel/plugin-syntax-async-generators": "^7.8.4",
+ "@babel/traverse": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -972,14 +953,14 @@
}
},
"node_modules/@babel/plugin-transform-async-to-generator": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz",
- "integrity": "sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.7.tgz",
+ "integrity": "sha512-ZUCjAavsh5CESCmi/xCpX1qcCaAglzs/7tmuvoFnJgA1dM7gQplsguljoTg+Ru8WENpX89cQyAtWoaE0I3X3Pg==",
"dev": true,
"dependencies": {
- "@babel/helper-module-imports": "^7.24.7",
- "@babel/helper-plugin-utils": "^7.24.7",
- "@babel/helper-remap-async-to-generator": "^7.24.7"
+ "@babel/helper-module-imports": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/helper-remap-async-to-generator": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -989,12 +970,12 @@
}
},
"node_modules/@babel/plugin-transform-block-scoped-functions": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz",
- "integrity": "sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.25.7.tgz",
+ "integrity": "sha512-xHttvIM9fvqW+0a3tZlYcZYSBpSWzGBFIt/sYG3tcdSzBB8ZeVgz2gBP7Df+sM0N1850jrviYSSeUuc+135dmQ==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1004,12 +985,12 @@
}
},
"node_modules/@babel/plugin-transform-block-scoping": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.7.tgz",
- "integrity": "sha512-Nd5CvgMbWc+oWzBsuaMcbwjJWAcp5qzrbg69SZdHSP7AMY0AbWFqFO0WTFCA1jxhMCwodRwvRec8k0QUbZk7RQ==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.7.tgz",
+ "integrity": "sha512-ZEPJSkVZaeTFG/m2PARwLZQ+OG0vFIhPlKHK/JdIMy8DbRJ/htz6LRrTFtdzxi9EHmcwbNPAKDnadpNSIW+Aow==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1019,12 +1000,13 @@
}
},
"node_modules/@babel/plugin-transform-class-properties": {
- "version": "7.24.7",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.7.tgz",
+ "integrity": "sha512-mhyfEW4gufjIqYFo9krXHJ3ElbFLIze5IDp+wQTxoPd+mwFb1NxatNAwmv8Q8Iuxv7Zc+q8EkiMQwc9IhyGf4g==",
"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.7",
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1034,13 +1016,13 @@
}
},
"node_modules/@babel/plugin-transform-class-static-block": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.7.tgz",
- "integrity": "sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.25.7.tgz",
+ "integrity": "sha512-rvUUtoVlkDWtDWxGAiiQj0aNktTPn3eFynBcMC2IhsXweehwgdI9ODe+XjWw515kEmv22sSOTp/rxIRuTiB7zg==",
"dev": true,
"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.7",
+ "@babel/helper-plugin-utils": "^7.25.7",
"@babel/plugin-syntax-class-static-block": "^7.14.5"
},
"engines": {
@@ -1051,18 +1033,16 @@
}
},
"node_modules/@babel/plugin-transform-classes": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.7.tgz",
- "integrity": "sha512-CFbbBigp8ln4FU6Bpy6g7sE8B/WmCmzvivzUC6xDAdWVsjYTXijpuuGJmYkAaoWAzcItGKT3IOAbxRItZ5HTjw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-annotate-as-pure": "^7.24.7",
- "@babel/helper-compilation-targets": "^7.24.7",
- "@babel/helper-environment-visitor": "^7.24.7",
- "@babel/helper-function-name": "^7.24.7",
- "@babel/helper-plugin-utils": "^7.24.7",
- "@babel/helper-replace-supers": "^7.24.7",
- "@babel/helper-split-export-declaration": "^7.24.7",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.7.tgz",
+ "integrity": "sha512-9j9rnl+YCQY0IGoeipXvnk3niWicIB6kCsWRGLwX241qSXpbA4MKxtp/EdvFxsc4zI5vqfLxzOd0twIJ7I99zg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.25.7",
+ "@babel/helper-compilation-targets": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/helper-replace-supers": "^7.25.7",
+ "@babel/traverse": "^7.25.7",
"globals": "^11.1.0"
},
"engines": {
@@ -1073,13 +1053,13 @@
}
},
"node_modules/@babel/plugin-transform-computed-properties": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz",
- "integrity": "sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.7.tgz",
+ "integrity": "sha512-QIv+imtM+EtNxg/XBKL3hiWjgdLjMOmZ+XzQwSgmBfKbfxUjBzGgVPklUuE55eq5/uVoh8gg3dqlrwR/jw3ZeA==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7",
- "@babel/template": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/template": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1089,12 +1069,12 @@
}
},
"node_modules/@babel/plugin-transform-destructuring": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.7.tgz",
- "integrity": "sha512-19eJO/8kdCQ9zISOf+SEUJM/bAUIsvY3YDnXZTupUCQ8LgrWnsG/gFB9dvXqdXnRXMAM8fvt7b0CBKQHNGy1mw==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.7.tgz",
+ "integrity": "sha512-xKcfLTlJYUczdaM1+epcdh1UGewJqr9zATgrNHcLBcV2QmfvPPEixo/sK/syql9cEmbr7ulu5HMFG5vbbt/sEA==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1104,13 +1084,13 @@
}
},
"node_modules/@babel/plugin-transform-dotall-regex": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz",
- "integrity": "sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.7.tgz",
+ "integrity": "sha512-kXzXMMRzAtJdDEgQBLF4oaiT6ZCU3oWHgpARnTKDAqPkDJ+bs3NrZb310YYevR5QlRo3Kn7dzzIdHbZm1VzJdQ==",
"dev": true,
"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.7",
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1120,12 +1100,12 @@
}
},
"node_modules/@babel/plugin-transform-duplicate-keys": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz",
- "integrity": "sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.7.tgz",
+ "integrity": "sha512-by+v2CjoL3aMnWDOyCIg+yxU9KXSRa9tN6MbqggH5xvymmr9p4AMjYkNlQy4brMceBnUyHZ9G8RnpvT8wP7Cfg==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1134,13 +1114,29 @@
"@babel/core": "^7.0.0-0"
}
},
+ "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": {
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.7.tgz",
+ "integrity": "sha512-HvS6JF66xSS5rNKXLqkk7L9c/jZ/cdIVIcoPVrnl8IsVpLggTjXs8OWekbLHs/VtYDDh5WXnQyeE3PPUGm22MA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
"node_modules/@babel/plugin-transform-dynamic-import": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz",
- "integrity": "sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.7.tgz",
+ "integrity": "sha512-UvcLuual4h7/GfylKm2IAA3aph9rwvAM2XBA0uPKU3lca+Maai4jBjjEVUS568ld6kJcgbouuumCBhMd/Yz17w==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7",
+ "@babel/helper-plugin-utils": "^7.25.7",
"@babel/plugin-syntax-dynamic-import": "^7.8.3"
},
"engines": {
@@ -1151,13 +1147,13 @@
}
},
"node_modules/@babel/plugin-transform-exponentiation-operator": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz",
- "integrity": "sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.25.7.tgz",
+ "integrity": "sha512-yjqtpstPfZ0h/y40fAXRv2snciYr0OAoMXY/0ClC7tm4C/nG5NJKmIItlaYlLbIVAWNfrYuy9dq1bE0SbX0PEg==",
"dev": true,
"dependencies": {
- "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.7",
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-builder-binary-assignment-operator-visitor": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1167,12 +1163,12 @@
}
},
"node_modules/@babel/plugin-transform-export-namespace-from": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.7.tgz",
- "integrity": "sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.7.tgz",
+ "integrity": "sha512-h3MDAP5l34NQkkNulsTNyjdaR+OiB0Im67VU//sFupouP8Q6m9Spy7l66DcaAQxtmCqGdanPByLsnwFttxKISQ==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7",
+ "@babel/helper-plugin-utils": "^7.25.7",
"@babel/plugin-syntax-export-namespace-from": "^7.8.3"
},
"engines": {
@@ -1183,13 +1179,13 @@
}
},
"node_modules/@babel/plugin-transform-for-of": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz",
- "integrity": "sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.7.tgz",
+ "integrity": "sha512-n/TaiBGJxYFWvpJDfsxSj9lEEE44BFM1EPGz4KEiTipTgkoFVVcCmzAL3qA7fdQU96dpo4gGf5HBx/KnDvqiHw==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1199,14 +1195,14 @@
}
},
"node_modules/@babel/plugin-transform-function-name": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.7.tgz",
- "integrity": "sha512-U9FcnA821YoILngSmYkW6FjyQe2TyZD5pHt4EVIhmcTkrJw/3KqcrRSxuOo5tFZJi7TE19iDyI1u+weTI7bn2w==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.7.tgz",
+ "integrity": "sha512-5MCTNcjCMxQ63Tdu9rxyN6cAWurqfrDZ76qvVPrGYdBxIj+EawuuxTu/+dgJlhK5eRz3v1gLwp6XwS8XaX2NiQ==",
"dev": true,
"dependencies": {
- "@babel/helper-compilation-targets": "^7.24.7",
- "@babel/helper-function-name": "^7.24.7",
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-compilation-targets": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/traverse": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1216,12 +1212,12 @@
}
},
"node_modules/@babel/plugin-transform-json-strings": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.7.tgz",
- "integrity": "sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.7.tgz",
+ "integrity": "sha512-Ot43PrL9TEAiCe8C/2erAjXMeVSnE/BLEx6eyrKLNFCCw5jvhTHKyHxdI1pA0kz5njZRYAnMO2KObGqOCRDYSA==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7",
+ "@babel/helper-plugin-utils": "^7.25.7",
"@babel/plugin-syntax-json-strings": "^7.8.3"
},
"engines": {
@@ -1232,12 +1228,12 @@
}
},
"node_modules/@babel/plugin-transform-literals": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.7.tgz",
- "integrity": "sha512-vcwCbb4HDH+hWi8Pqenwnjy+UiklO4Kt1vfspcQYFhJdpthSnW8XvWGyDZWKNVrVbVViI/S7K9PDJZiUmP2fYQ==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.7.tgz",
+ "integrity": "sha512-fwzkLrSu2fESR/cm4t6vqd7ebNIopz2QHGtjoU+dswQo/P6lwAG04Q98lliE3jkz/XqnbGFLnUcE0q0CVUf92w==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1247,12 +1243,12 @@
}
},
"node_modules/@babel/plugin-transform-logical-assignment-operators": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz",
- "integrity": "sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.7.tgz",
+ "integrity": "sha512-iImzbA55BjiovLyG2bggWS+V+OLkaBorNvc/yJoeeDQGztknRnDdYfp2d/UPmunZYEnZi6Lg8QcTmNMHOB0lGA==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7",
+ "@babel/helper-plugin-utils": "^7.25.7",
"@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
},
"engines": {
@@ -1263,12 +1259,12 @@
}
},
"node_modules/@babel/plugin-transform-member-expression-literals": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz",
- "integrity": "sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.7.tgz",
+ "integrity": "sha512-Std3kXwpXfRV0QtQy5JJcRpkqP8/wG4XL7hSKZmGlxPlDqmpXtEPRmhF7ztnlTCtUN3eXRUJp+sBEZjaIBVYaw==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1278,13 +1274,13 @@
}
},
"node_modules/@babel/plugin-transform-modules-amd": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz",
- "integrity": "sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.7.tgz",
+ "integrity": "sha512-CgselSGCGzjQvKzghCvDTxKHP3iooenLpJDO842ehn5D2G5fJB222ptnDwQho0WjEvg7zyoxb9P+wiYxiJX5yA==",
"dev": true,
"dependencies": {
- "@babel/helper-module-transforms": "^7.24.7",
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-module-transforms": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1294,14 +1290,14 @@
}
},
"node_modules/@babel/plugin-transform-modules-commonjs": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.7.tgz",
- "integrity": "sha512-iFI8GDxtevHJ/Z22J5xQpVqFLlMNstcLXh994xifFwxxGslr2ZXXLWgtBeLctOD63UFDArdvN6Tg8RFw+aEmjQ==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.25.7.tgz",
+ "integrity": "sha512-L9Gcahi0kKFYXvweO6n0wc3ZG1ChpSFdgG+eV1WYZ3/dGbJK7vvk91FgGgak8YwRgrCuihF8tE/Xg07EkL5COg==",
"dev": true,
"dependencies": {
- "@babel/helper-module-transforms": "^7.24.7",
- "@babel/helper-plugin-utils": "^7.24.7",
- "@babel/helper-simple-access": "^7.24.7"
+ "@babel/helper-module-transforms": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/helper-simple-access": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1311,15 +1307,15 @@
}
},
"node_modules/@babel/plugin-transform-modules-systemjs": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.7.tgz",
- "integrity": "sha512-GYQE0tW7YoaN13qFh3O1NCY4MPkUiAH3fiF7UcV/I3ajmDKEdG3l+UOcbAm4zUE3gnvUU+Eni7XrVKo9eO9auw==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.7.tgz",
+ "integrity": "sha512-t9jZIvBmOXJsiuyOwhrIGs8dVcD6jDyg2icw1VL4A/g+FnWyJKwUfSSU2nwJuMV2Zqui856El9u+ElB+j9fV1g==",
"dev": true,
"dependencies": {
- "@babel/helper-hoist-variables": "^7.24.7",
- "@babel/helper-module-transforms": "^7.24.7",
- "@babel/helper-plugin-utils": "^7.24.7",
- "@babel/helper-validator-identifier": "^7.24.7"
+ "@babel/helper-module-transforms": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/helper-validator-identifier": "^7.25.7",
+ "@babel/traverse": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1329,13 +1325,13 @@
}
},
"node_modules/@babel/plugin-transform-modules-umd": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz",
- "integrity": "sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.7.tgz",
+ "integrity": "sha512-p88Jg6QqsaPh+EB7I9GJrIqi1Zt4ZBHUQtjw3z1bzEXcLh6GfPqzZJ6G+G1HBGKUNukT58MnKG7EN7zXQBCODw==",
"dev": true,
"dependencies": {
- "@babel/helper-module-transforms": "^7.24.7",
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-module-transforms": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1345,13 +1341,13 @@
}
},
"node_modules/@babel/plugin-transform-named-capturing-groups-regex": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz",
- "integrity": "sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.7.tgz",
+ "integrity": "sha512-BtAT9LzCISKG3Dsdw5uso4oV1+v2NlVXIIomKJgQybotJY3OwCwJmkongjHgwGKoZXd0qG5UZ12JUlDQ07W6Ow==",
"dev": true,
"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.7",
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1361,12 +1357,12 @@
}
},
"node_modules/@babel/plugin-transform-new-target": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz",
- "integrity": "sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.7.tgz",
+ "integrity": "sha512-CfCS2jDsbcZaVYxRFo2qtavW8SpdzmBXC2LOI4oO0rP+JSRDxxF3inF4GcPsLgfb5FjkhXG5/yR/lxuRs2pySA==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1376,12 +1372,12 @@
}
},
"node_modules/@babel/plugin-transform-nullish-coalescing-operator": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz",
- "integrity": "sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.7.tgz",
+ "integrity": "sha512-FbuJ63/4LEL32mIxrxwYaqjJxpbzxPVQj5a+Ebrc8JICV6YX8nE53jY+K0RZT3um56GoNWgkS2BQ/uLGTjtwfw==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7",
+ "@babel/helper-plugin-utils": "^7.25.7",
"@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
},
"engines": {
@@ -1392,12 +1388,12 @@
}
},
"node_modules/@babel/plugin-transform-numeric-separator": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz",
- "integrity": "sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.7.tgz",
+ "integrity": "sha512-8CbutzSSh4hmD+jJHIA8vdTNk15kAzOnFLVVgBSMGr28rt85ouT01/rezMecks9pkU939wDInImwCKv4ahU4IA==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7",
+ "@babel/helper-plugin-utils": "^7.25.7",
"@babel/plugin-syntax-numeric-separator": "^7.10.4"
},
"engines": {
@@ -1408,15 +1404,15 @@
}
},
"node_modules/@babel/plugin-transform-object-rest-spread": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz",
- "integrity": "sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.7.tgz",
+ "integrity": "sha512-1JdVKPhD7Y5PvgfFy0Mv2brdrolzpzSoUq2pr6xsR+m+3viGGeHEokFKsCgOkbeFOQxfB1Vt2F0cPJLRpFI4Zg==",
"dev": true,
"dependencies": {
- "@babel/helper-compilation-targets": "^7.24.7",
- "@babel/helper-plugin-utils": "^7.24.7",
+ "@babel/helper-compilation-targets": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7",
"@babel/plugin-syntax-object-rest-spread": "^7.8.3",
- "@babel/plugin-transform-parameters": "^7.24.7"
+ "@babel/plugin-transform-parameters": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1426,13 +1422,13 @@
}
},
"node_modules/@babel/plugin-transform-object-super": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz",
- "integrity": "sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.7.tgz",
+ "integrity": "sha512-pWT6UXCEW3u1t2tcAGtE15ornCBvopHj9Bps9D2DsH15APgNVOTwwczGckX+WkAvBmuoYKRCFa4DK+jM8vh5AA==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7",
- "@babel/helper-replace-supers": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/helper-replace-supers": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1442,12 +1438,12 @@
}
},
"node_modules/@babel/plugin-transform-optional-catch-binding": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz",
- "integrity": "sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.7.tgz",
+ "integrity": "sha512-m9obYBA39mDPN7lJzD5WkGGb0GO54PPLXsbcnj1Hyeu8mSRz7Gb4b1A6zxNX32ZuUySDK4G6it8SDFWD1nCnqg==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7",
+ "@babel/helper-plugin-utils": "^7.25.7",
"@babel/plugin-syntax-optional-catch-binding": "^7.8.3"
},
"engines": {
@@ -1458,13 +1454,13 @@
}
},
"node_modules/@babel/plugin-transform-optional-chaining": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.7.tgz",
- "integrity": "sha512-tK+0N9yd4j+x/4hxF3F0e0fu/VdcxU18y5SevtyM/PCFlQvXbR0Zmlo2eBrKtVipGNFzpq56o8WsIIKcJFUCRQ==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.7.tgz",
+ "integrity": "sha512-h39agClImgPWg4H8mYVAbD1qP9vClFbEjqoJmt87Zen8pjqK8FTPUwrOXAvqu5soytwxrLMd2fx2KSCp2CHcNg==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7",
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7",
"@babel/plugin-syntax-optional-chaining": "^7.8.3"
},
"engines": {
@@ -1475,12 +1471,12 @@
}
},
"node_modules/@babel/plugin-transform-parameters": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz",
- "integrity": "sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.7.tgz",
+ "integrity": "sha512-FYiTvku63me9+1Nz7TOx4YMtW3tWXzfANZtrzHhUZrz4d47EEtMQhzFoZWESfXuAMMT5mwzD4+y1N8ONAX6lMQ==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1490,12 +1486,13 @@
}
},
"node_modules/@babel/plugin-transform-private-methods": {
- "version": "7.24.7",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.7.tgz",
+ "integrity": "sha512-KY0hh2FluNxMLwOCHbxVOKfdB5sjWG4M183885FmaqWWiGMhRZq4DQRKH6mHdEucbJnyDyYiZNwNG424RymJjA==",
"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.7",
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1505,14 +1502,14 @@
}
},
"node_modules/@babel/plugin-transform-private-property-in-object": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.7.tgz",
- "integrity": "sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.7.tgz",
+ "integrity": "sha512-LzA5ESzBy7tqj00Yjey9yWfs3FKy4EmJyKOSWld144OxkTji81WWnUT8nkLUn+imN/zHL8ZQlOu/MTUAhHaX3g==",
"dev": true,
"dependencies": {
- "@babel/helper-annotate-as-pure": "^7.24.7",
- "@babel/helper-create-class-features-plugin": "^7.24.7",
- "@babel/helper-plugin-utils": "^7.24.7",
+ "@babel/helper-annotate-as-pure": "^7.25.7",
+ "@babel/helper-create-class-features-plugin": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7",
"@babel/plugin-syntax-private-property-in-object": "^7.14.5"
},
"engines": {
@@ -1523,12 +1520,12 @@
}
},
"node_modules/@babel/plugin-transform-property-literals": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz",
- "integrity": "sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.7.tgz",
+ "integrity": "sha512-lQEeetGKfFi0wHbt8ClQrUSUMfEeI3MMm74Z73T9/kuz990yYVtfofjf3NuA42Jy3auFOpbjDyCSiIkTs1VIYw==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1538,11 +1535,12 @@
}
},
"node_modules/@babel/plugin-transform-react-display-name": {
- "version": "7.24.7",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.25.7.tgz",
+ "integrity": "sha512-r0QY7NVU8OnrwE+w2IWiRom0wwsTbjx4+xH2RTd7AVdof3uurXOF+/mXHQDRk+2jIvWgSaCHKMgggfvM4dyUGA==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1552,15 +1550,16 @@
}
},
"node_modules/@babel/plugin-transform-react-jsx": {
- "version": "7.24.7",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.7.tgz",
+ "integrity": "sha512-vILAg5nwGlR9EXE8JIOX4NHXd49lrYbN8hnjffDtoULwpL9hUx/N55nqh2qd0q6FyNDfjl9V79ecKGvFbcSA0Q==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/helper-annotate-as-pure": "^7.24.7",
- "@babel/helper-module-imports": "^7.24.7",
- "@babel/helper-plugin-utils": "^7.24.7",
- "@babel/plugin-syntax-jsx": "^7.24.7",
- "@babel/types": "^7.24.7"
+ "@babel/helper-annotate-as-pure": "^7.25.7",
+ "@babel/helper-module-imports": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/plugin-syntax-jsx": "^7.25.7",
+ "@babel/types": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1570,11 +1569,12 @@
}
},
"node_modules/@babel/plugin-transform-react-jsx-development": {
- "version": "7.24.7",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.25.7.tgz",
+ "integrity": "sha512-5yd3lH1PWxzW6IZj+p+Y4OLQzz0/LzlOG8vGqonHfVR3euf1vyzyMUJk9Ac+m97BH46mFc/98t9PmYLyvgL3qg==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/plugin-transform-react-jsx": "^7.24.7"
+ "@babel/plugin-transform-react-jsx": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1584,12 +1584,13 @@
}
},
"node_modules/@babel/plugin-transform-react-pure-annotations": {
- "version": "7.24.7",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.25.7.tgz",
+ "integrity": "sha512-6YTHJ7yjjgYqGc8S+CbEXhLICODk0Tn92j+vNJo07HFk9t3bjFgAKxPLFhHwF2NjmQVSI1zBRfBWUeVBa2osfA==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/helper-annotate-as-pure": "^7.24.7",
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-annotate-as-pure": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1599,12 +1600,12 @@
}
},
"node_modules/@babel/plugin-transform-regenerator": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz",
- "integrity": "sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.7.tgz",
+ "integrity": "sha512-mgDoQCRjrY3XK95UuV60tZlFCQGXEtMg8H+IsW72ldw1ih1jZhzYXbJvghmAEpg5UVhhnCeia1CkGttUvCkiMQ==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7",
+ "@babel/helper-plugin-utils": "^7.25.7",
"regenerator-transform": "^0.15.2"
},
"engines": {
@@ -1615,12 +1616,12 @@
}
},
"node_modules/@babel/plugin-transform-reserved-words": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz",
- "integrity": "sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.7.tgz",
+ "integrity": "sha512-3OfyfRRqiGeOvIWSagcwUTVk2hXBsr/ww7bLn6TRTuXnexA+Udov2icFOxFX9abaj4l96ooYkcNN1qi2Zvqwng==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1630,12 +1631,12 @@
}
},
"node_modules/@babel/plugin-transform-shorthand-properties": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz",
- "integrity": "sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.7.tgz",
+ "integrity": "sha512-uBbxNwimHi5Bv3hUccmOFlUy3ATO6WagTApenHz9KzoIdn0XeACdB12ZJ4cjhuB2WSi80Ez2FWzJnarccriJeA==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1645,13 +1646,13 @@
}
},
"node_modules/@babel/plugin-transform-spread": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz",
- "integrity": "sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.7.tgz",
+ "integrity": "sha512-Mm6aeymI0PBh44xNIv/qvo8nmbkpZze1KvR8MkEqbIREDxoiWTi18Zr2jryfRMwDfVZF9foKh060fWgni44luw==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1661,12 +1662,12 @@
}
},
"node_modules/@babel/plugin-transform-sticky-regex": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz",
- "integrity": "sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.7.tgz",
+ "integrity": "sha512-ZFAeNkpGuLnAQ/NCsXJ6xik7Id+tHuS+NT+ue/2+rn/31zcdnupCdmunOizEaP0JsUmTFSTOPoQY7PkK2pttXw==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1676,12 +1677,12 @@
}
},
"node_modules/@babel/plugin-transform-template-literals": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz",
- "integrity": "sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.7.tgz",
+ "integrity": "sha512-SI274k0nUsFFmyQupiO7+wKATAmMFf8iFgq2O+vVFXZ0SV9lNfT1NGzBEhjquFmD8I9sqHLguH+gZVN3vww2AA==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1691,12 +1692,12 @@
}
},
"node_modules/@babel/plugin-transform-typeof-symbol": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.7.tgz",
- "integrity": "sha512-VtR8hDy7YLB7+Pet9IarXjg/zgCMSF+1mNS/EQEiEaUPoFXCVsHG64SIxcaaI2zJgRiv+YmgaQESUfWAdbjzgg==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.7.tgz",
+ "integrity": "sha512-OmWmQtTHnO8RSUbL0NTdtpbZHeNTnm68Gj5pA4Y2blFNh+V4iZR68V1qL9cI37J21ZN7AaCnkfdHtLExQPf2uA==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1706,12 +1707,12 @@
}
},
"node_modules/@babel/plugin-transform-unicode-escapes": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz",
- "integrity": "sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.7.tgz",
+ "integrity": "sha512-BN87D7KpbdiABA+t3HbVqHzKWUDN3dymLaTnPFAMyc8lV+KN3+YzNhVRNdinaCPA4AUqx7ubXbQ9shRjYBl3SQ==",
"dev": true,
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1721,13 +1722,13 @@
}
},
"node_modules/@babel/plugin-transform-unicode-property-regex": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.7.tgz",
- "integrity": "sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.7.tgz",
+ "integrity": "sha512-IWfR89zcEPQGB/iB408uGtSPlQd3Jpq11Im86vUgcmSTcoWAiQMCTOa2K2yNNqFJEBVICKhayctee65Ka8OB0w==",
"dev": true,
"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.7",
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1737,13 +1738,13 @@
}
},
"node_modules/@babel/plugin-transform-unicode-regex": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz",
- "integrity": "sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.7.tgz",
+ "integrity": "sha512-8JKfg/hiuA3qXnlLx8qtv5HWRbgyFx2hMMtpDDuU2rTckpKkGu4ycK5yYHwuEa16/quXfoxHBIApEsNyMWnt0g==",
"dev": true,
"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.7",
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1753,13 +1754,13 @@
}
},
"node_modules/@babel/plugin-transform-unicode-sets-regex": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.7.tgz",
- "integrity": "sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg==",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.7.tgz",
+ "integrity": "sha512-YRW8o9vzImwmh4Q3Rffd09bH5/hvY0pxg+1H1i0f7APoUeg12G7+HhLj9ZFNIrYkgBXhIijPJ+IXypN0hLTIbw==",
"dev": true,
"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.7",
+ "@babel/helper-plugin-utils": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1769,27 +1770,28 @@
}
},
"node_modules/@babel/preset-env": {
- "version": "7.24.7",
- "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.7.tgz",
- "integrity": "sha512-1YZNsc+y6cTvWlDHidMBsQZrZfEFjRIo/BZCT906PMdzOyXtSLTgqGdrpcuTDCXyd11Am5uQULtDIcCfnTc8fQ==",
- "dev": true,
- "dependencies": {
- "@babel/compat-data": "^7.24.7",
- "@babel/helper-compilation-targets": "^7.24.7",
- "@babel/helper-plugin-utils": "^7.24.7",
- "@babel/helper-validator-option": "^7.24.7",
- "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.7",
- "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.7",
- "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.7",
- "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.7",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.25.7.tgz",
+ "integrity": "sha512-Gibz4OUdyNqqLj+7OAvBZxOD7CklCtMA5/j0JgUEwOnaRULsPDXmic2iKxL2DX2vQduPR5wH2hjZas/Vr/Oc0g==",
+ "dev": true,
+ "dependencies": {
+ "@babel/compat-data": "^7.25.7",
+ "@babel/helper-compilation-targets": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/helper-validator-option": "^7.25.7",
+ "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.7",
+ "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.7",
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.7",
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.25.7",
+ "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.7",
"@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2",
"@babel/plugin-syntax-async-generators": "^7.8.4",
"@babel/plugin-syntax-class-properties": "^7.12.13",
"@babel/plugin-syntax-class-static-block": "^7.14.5",
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
"@babel/plugin-syntax-export-namespace-from": "^7.8.3",
- "@babel/plugin-syntax-import-assertions": "^7.24.7",
- "@babel/plugin-syntax-import-attributes": "^7.24.7",
+ "@babel/plugin-syntax-import-assertions": "^7.25.7",
+ "@babel/plugin-syntax-import-attributes": "^7.25.7",
"@babel/plugin-syntax-import-meta": "^7.10.4",
"@babel/plugin-syntax-json-strings": "^7.8.3",
"@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
@@ -1801,59 +1803,60 @@
"@babel/plugin-syntax-private-property-in-object": "^7.14.5",
"@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.24.7",
- "@babel/plugin-transform-async-to-generator": "^7.24.7",
- "@babel/plugin-transform-block-scoped-functions": "^7.24.7",
- "@babel/plugin-transform-block-scoping": "^7.24.7",
- "@babel/plugin-transform-class-properties": "^7.24.7",
- "@babel/plugin-transform-class-static-block": "^7.24.7",
- "@babel/plugin-transform-classes": "^7.24.7",
- "@babel/plugin-transform-computed-properties": "^7.24.7",
- "@babel/plugin-transform-destructuring": "^7.24.7",
- "@babel/plugin-transform-dotall-regex": "^7.24.7",
- "@babel/plugin-transform-duplicate-keys": "^7.24.7",
- "@babel/plugin-transform-dynamic-import": "^7.24.7",
- "@babel/plugin-transform-exponentiation-operator": "^7.24.7",
- "@babel/plugin-transform-export-namespace-from": "^7.24.7",
- "@babel/plugin-transform-for-of": "^7.24.7",
- "@babel/plugin-transform-function-name": "^7.24.7",
- "@babel/plugin-transform-json-strings": "^7.24.7",
- "@babel/plugin-transform-literals": "^7.24.7",
- "@babel/plugin-transform-logical-assignment-operators": "^7.24.7",
- "@babel/plugin-transform-member-expression-literals": "^7.24.7",
- "@babel/plugin-transform-modules-amd": "^7.24.7",
- "@babel/plugin-transform-modules-commonjs": "^7.24.7",
- "@babel/plugin-transform-modules-systemjs": "^7.24.7",
- "@babel/plugin-transform-modules-umd": "^7.24.7",
- "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7",
- "@babel/plugin-transform-new-target": "^7.24.7",
- "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7",
- "@babel/plugin-transform-numeric-separator": "^7.24.7",
- "@babel/plugin-transform-object-rest-spread": "^7.24.7",
- "@babel/plugin-transform-object-super": "^7.24.7",
- "@babel/plugin-transform-optional-catch-binding": "^7.24.7",
- "@babel/plugin-transform-optional-chaining": "^7.24.7",
- "@babel/plugin-transform-parameters": "^7.24.7",
- "@babel/plugin-transform-private-methods": "^7.24.7",
- "@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",
- "@babel/plugin-transform-reserved-words": "^7.24.7",
- "@babel/plugin-transform-shorthand-properties": "^7.24.7",
- "@babel/plugin-transform-spread": "^7.24.7",
- "@babel/plugin-transform-sticky-regex": "^7.24.7",
- "@babel/plugin-transform-template-literals": "^7.24.7",
- "@babel/plugin-transform-typeof-symbol": "^7.24.7",
- "@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-arrow-functions": "^7.25.7",
+ "@babel/plugin-transform-async-generator-functions": "^7.25.7",
+ "@babel/plugin-transform-async-to-generator": "^7.25.7",
+ "@babel/plugin-transform-block-scoped-functions": "^7.25.7",
+ "@babel/plugin-transform-block-scoping": "^7.25.7",
+ "@babel/plugin-transform-class-properties": "^7.25.7",
+ "@babel/plugin-transform-class-static-block": "^7.25.7",
+ "@babel/plugin-transform-classes": "^7.25.7",
+ "@babel/plugin-transform-computed-properties": "^7.25.7",
+ "@babel/plugin-transform-destructuring": "^7.25.7",
+ "@babel/plugin-transform-dotall-regex": "^7.25.7",
+ "@babel/plugin-transform-duplicate-keys": "^7.25.7",
+ "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.7",
+ "@babel/plugin-transform-dynamic-import": "^7.25.7",
+ "@babel/plugin-transform-exponentiation-operator": "^7.25.7",
+ "@babel/plugin-transform-export-namespace-from": "^7.25.7",
+ "@babel/plugin-transform-for-of": "^7.25.7",
+ "@babel/plugin-transform-function-name": "^7.25.7",
+ "@babel/plugin-transform-json-strings": "^7.25.7",
+ "@babel/plugin-transform-literals": "^7.25.7",
+ "@babel/plugin-transform-logical-assignment-operators": "^7.25.7",
+ "@babel/plugin-transform-member-expression-literals": "^7.25.7",
+ "@babel/plugin-transform-modules-amd": "^7.25.7",
+ "@babel/plugin-transform-modules-commonjs": "^7.25.7",
+ "@babel/plugin-transform-modules-systemjs": "^7.25.7",
+ "@babel/plugin-transform-modules-umd": "^7.25.7",
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.7",
+ "@babel/plugin-transform-new-target": "^7.25.7",
+ "@babel/plugin-transform-nullish-coalescing-operator": "^7.25.7",
+ "@babel/plugin-transform-numeric-separator": "^7.25.7",
+ "@babel/plugin-transform-object-rest-spread": "^7.25.7",
+ "@babel/plugin-transform-object-super": "^7.25.7",
+ "@babel/plugin-transform-optional-catch-binding": "^7.25.7",
+ "@babel/plugin-transform-optional-chaining": "^7.25.7",
+ "@babel/plugin-transform-parameters": "^7.25.7",
+ "@babel/plugin-transform-private-methods": "^7.25.7",
+ "@babel/plugin-transform-private-property-in-object": "^7.25.7",
+ "@babel/plugin-transform-property-literals": "^7.25.7",
+ "@babel/plugin-transform-regenerator": "^7.25.7",
+ "@babel/plugin-transform-reserved-words": "^7.25.7",
+ "@babel/plugin-transform-shorthand-properties": "^7.25.7",
+ "@babel/plugin-transform-spread": "^7.25.7",
+ "@babel/plugin-transform-sticky-regex": "^7.25.7",
+ "@babel/plugin-transform-template-literals": "^7.25.7",
+ "@babel/plugin-transform-typeof-symbol": "^7.25.7",
+ "@babel/plugin-transform-unicode-escapes": "^7.25.7",
+ "@babel/plugin-transform-unicode-property-regex": "^7.25.7",
+ "@babel/plugin-transform-unicode-regex": "^7.25.7",
+ "@babel/plugin-transform-unicode-sets-regex": "^7.25.7",
"@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.31.0",
+ "core-js-compat": "^3.38.1",
"semver": "^6.3.1"
},
"engines": {
@@ -1877,16 +1880,17 @@
}
},
"node_modules/@babel/preset-react": {
- "version": "7.24.7",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.25.7.tgz",
+ "integrity": "sha512-GjV0/mUEEXpi1U5ZgDprMRRgajGMRW3G5FjMr5KLKD8nT2fTG8+h/klV3+6Dm5739QE+K5+2e91qFKAYI3pmRg==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.24.7",
- "@babel/helper-validator-option": "^7.24.7",
- "@babel/plugin-transform-react-display-name": "^7.24.7",
- "@babel/plugin-transform-react-jsx": "^7.24.7",
- "@babel/plugin-transform-react-jsx-development": "^7.24.7",
- "@babel/plugin-transform-react-pure-annotations": "^7.24.7"
+ "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/helper-validator-option": "^7.25.7",
+ "@babel/plugin-transform-react-display-name": "^7.25.7",
+ "@babel/plugin-transform-react-jsx": "^7.25.7",
+ "@babel/plugin-transform-react-jsx-development": "^7.25.7",
+ "@babel/plugin-transform-react-pure-annotations": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1895,11 +1899,6 @@
"@babel/core": "^7.0.0-0"
}
},
- "node_modules/@babel/regjsgen": {
- "version": "0.8.0",
- "dev": true,
- "license": "MIT"
- },
"node_modules/@babel/runtime": {
"version": "7.23.2",
"license": "MIT",
@@ -1911,29 +1910,28 @@
}
},
"node_modules/@babel/template": {
- "version": "7.24.7",
- "license": "MIT",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.7.tgz",
+ "integrity": "sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==",
"dependencies": {
- "@babel/code-frame": "^7.24.7",
- "@babel/parser": "^7.24.7",
- "@babel/types": "^7.24.7"
+ "@babel/code-frame": "^7.25.7",
+ "@babel/parser": "^7.25.7",
+ "@babel/types": "^7.25.7"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/traverse": {
- "version": "7.24.7",
- "license": "MIT",
- "dependencies": {
- "@babel/code-frame": "^7.24.7",
- "@babel/generator": "^7.24.7",
- "@babel/helper-environment-visitor": "^7.24.7",
- "@babel/helper-function-name": "^7.24.7",
- "@babel/helper-hoist-variables": "^7.24.7",
- "@babel/helper-split-export-declaration": "^7.24.7",
- "@babel/parser": "^7.24.7",
- "@babel/types": "^7.24.7",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.7.tgz",
+ "integrity": "sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg==",
+ "dependencies": {
+ "@babel/code-frame": "^7.25.7",
+ "@babel/generator": "^7.25.7",
+ "@babel/parser": "^7.25.7",
+ "@babel/template": "^7.25.7",
+ "@babel/types": "^7.25.7",
"debug": "^4.3.1",
"globals": "^11.1.0"
},
@@ -1942,11 +1940,12 @@
}
},
"node_modules/@babel/types": {
- "version": "7.24.7",
- "license": "MIT",
+ "version": "7.25.7",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.7.tgz",
+ "integrity": "sha512-vwIVdXG+j+FOpkwqHRcBgHLYNL7XMkufrlaFvL9o6Ai9sJn9+PdyIL5qa0XzTZw084c+u9LOls53eoZWP/W5WQ==",
"dependencies": {
- "@babel/helper-string-parser": "^7.24.7",
- "@babel/helper-validator-identifier": "^7.24.7",
+ "@babel/helper-string-parser": "^7.25.7",
+ "@babel/helper-validator-identifier": "^7.25.7",
"to-fast-properties": "^2.0.0"
},
"engines": {
@@ -2048,6 +2047,13 @@
"node": ">=10.0.0"
}
},
+ "node_modules/@edsc/earthdata-react-icons": {
+ "version": "0.0.2",
+ "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",
@@ -2299,7 +2305,7 @@
}
},
"node_modules/@eslint/js": {
- "version": "8.57.0",
+ "version": "8.57.1",
"license": "MIT",
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -2325,41 +2331,37 @@
"license": "MIT"
},
"node_modules/@fortawesome/fontawesome-common-types": {
- "version": "6.5.2",
- "hasInstallScript": true,
+ "version": "6.6.0",
"license": "MIT",
"engines": {
"node": ">=6"
}
},
"node_modules/@fortawesome/fontawesome-svg-core": {
- "version": "6.5.2",
- "hasInstallScript": true,
+ "version": "6.6.0",
"license": "MIT",
"dependencies": {
- "@fortawesome/fontawesome-common-types": "6.5.2"
+ "@fortawesome/fontawesome-common-types": "6.6.0"
},
"engines": {
"node": ">=6"
}
},
"node_modules/@fortawesome/free-brands-svg-icons": {
- "version": "6.5.2",
- "hasInstallScript": true,
+ "version": "6.6.0",
"license": "(CC-BY-4.0 AND MIT)",
"dependencies": {
- "@fortawesome/fontawesome-common-types": "6.5.2"
+ "@fortawesome/fontawesome-common-types": "6.6.0"
},
"engines": {
"node": ">=6"
}
},
"node_modules/@fortawesome/free-solid-svg-icons": {
- "version": "6.5.2",
- "hasInstallScript": true,
+ "version": "6.6.0",
"license": "(CC-BY-4.0 AND MIT)",
"dependencies": {
- "@fortawesome/fontawesome-common-types": "6.5.2"
+ "@fortawesome/fontawesome-common-types": "6.6.0"
},
"engines": {
"node": ">=6"
@@ -2381,10 +2383,10 @@
"license": "MIT"
},
"node_modules/@humanwhocodes/config-array": {
- "version": "0.11.14",
+ "version": "0.13.0",
"license": "Apache-2.0",
"dependencies": {
- "@humanwhocodes/object-schema": "^2.0.2",
+ "@humanwhocodes/object-schema": "^2.0.3",
"debug": "^4.3.1",
"minimatch": "^3.0.5"
},
@@ -2404,7 +2406,7 @@
}
},
"node_modules/@humanwhocodes/object-schema": {
- "version": "2.0.2",
+ "version": "2.0.3",
"license": "BSD-3-Clause"
},
"node_modules/@isaacs/cliui": {
@@ -3179,7 +3181,6 @@
},
"node_modules/@jridgewell/gen-mapping": {
"version": "0.1.1",
- "dev": true,
"license": "MIT",
"dependencies": {
"@jridgewell/set-array": "^1.0.0",
@@ -3329,24 +3330,23 @@
}
},
"node_modules/@playwright/test": {
- "version": "1.44.1",
+ "version": "1.47.2",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "playwright": "1.44.1"
+ "playwright": "1.47.2"
},
"bin": {
"playwright": "cli.js"
},
"engines": {
- "node": ">=16"
+ "node": ">=18"
}
},
"node_modules/@pmmmwh/react-refresh-webpack-plugin": {
"version": "0.5.15",
- "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.15.tgz",
- "integrity": "sha512-LFWllMA55pzB9D34w/wXUCf8+c+IYKuJDgxiZ3qMhl64KRMBHYM1I3VdGaD2BV5FNPV2/S2596bppxHbv2ZydQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ansi-html": "^0.0.9",
"core-js-pure": "^3.23.3",
@@ -3392,9 +3392,8 @@
},
"node_modules/@pmmmwh/react-refresh-webpack-plugin/node_modules/schema-utils": {
"version": "4.2.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz",
- "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/json-schema": "^7.0.9",
"ajv": "^8.9.0",
@@ -3431,7 +3430,7 @@
}
},
"node_modules/@reduxjs/toolkit": {
- "version": "2.2.5",
+ "version": "2.2.7",
"license": "MIT",
"dependencies": {
"immer": "^10.0.3",
@@ -3452,6 +3451,11 @@
}
}
},
+ "node_modules/@rtsao/scc": {
+ "version": "1.1.0",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/@sinclair/typebox": {
"version": "0.27.8",
"dev": true,
@@ -3702,17 +3706,6 @@
"parse5": "^7.0.0"
}
},
- "node_modules/@types/jsdom/node_modules/parse5": {
- "version": "7.1.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "entities": "^4.4.0"
- },
- "funding": {
- "url": "https://github.com/inikulin/parse5?sponsor=1"
- }
- },
"node_modules/@types/json-schema": {
"version": "7.0.15",
"license": "MIT"
@@ -3723,14 +3716,12 @@
"license": "MIT"
},
"node_modules/@types/lodash": {
- "version": "4.17.5",
- "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.5.tgz",
- "integrity": "sha512-MBIOHVZqVqgfro1euRDWX7OO0fBVUUMrN6Pwm8LQsz8cWhEpihlvR70ENj3f40j58TNxZaWv2ndSkInykNBBJw=="
+ "version": "4.14.199",
+ "license": "MIT"
},
"node_modules/@types/lodash-es": {
- "version": "4.17.12",
- "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz",
- "integrity": "sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==",
+ "version": "4.17.9",
+ "license": "MIT",
"dependencies": {
"@types/lodash": "*"
}
@@ -3822,11 +3813,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,
@@ -3903,15 +3889,15 @@
"license": "MIT"
},
"node_modules/@typescript-eslint/scope-manager": {
- "version": "6.21.0",
+ "version": "8.2.0",
"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",
@@ -3919,11 +3905,11 @@
}
},
"node_modules/@typescript-eslint/types": {
- "version": "6.21.0",
+ "version": "8.2.0",
"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",
@@ -3931,21 +3917,21 @@
}
},
"node_modules/@typescript-eslint/typescript-estree": {
- "version": "6.21.0",
+ "version": "8.2.0",
"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",
@@ -3966,7 +3952,7 @@
}
},
"node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": {
- "version": "9.0.3",
+ "version": "9.0.5",
"dev": true,
"license": "ISC",
"dependencies": {
@@ -3980,39 +3966,36 @@
}
},
"node_modules/@typescript-eslint/utils": {
- "version": "6.21.0",
+ "version": "8.2.0",
"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",
"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",
@@ -4232,8 +4215,7 @@
},
"node_modules/acorn-import-attributes": {
"version": "1.9.5",
- "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz",
- "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==",
+ "license": "MIT",
"peerDependencies": {
"acorn": "^8"
}
@@ -4265,14 +4247,14 @@
}
},
"node_modules/ajv": {
- "version": "8.16.0",
+ "version": "8.17.1",
"dev": true,
"license": "MIT",
"dependencies": {
"fast-deep-equal": "^3.1.3",
+ "fast-uri": "^3.0.1",
"json-schema-traverse": "^1.0.0",
- "require-from-string": "^2.0.2",
- "uri-js": "^4.4.1"
+ "require-from-string": "^2.0.2"
},
"funding": {
"type": "github",
@@ -4322,12 +4304,11 @@
},
"node_modules/ansi-html": {
"version": "0.0.9",
- "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.9.tgz",
- "integrity": "sha512-ozbS3LuenHVxNRh/wdnN16QapUHzauqSomAl1jwwJRRsGwFwtj644lIhxfWu0Fy0acCij2+AEgHvjscq3dlVXg==",
"dev": true,
"engines": [
"node >= 0.8.0"
],
+ "license": "Apache-2.0",
"bin": {
"ansi-html": "bin/ansi-html"
}
@@ -4382,13 +4363,49 @@
"license": "Python-2.0"
},
"node_modules/aria-query": {
- "version": "5.3.0",
+ "version": "5.1.3",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "dequal": "^2.0.3"
+ "deep-equal": "^2.0.5"
+ }
+ },
+ "node_modules/aria-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/aria-query/node_modules/isarray": {
+ "version": "2.0.5",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/array-buffer-byte-length": {
"version": "1.0.1",
"dev": true,
@@ -4444,20 +4461,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,
@@ -4478,15 +4481,16 @@
}
},
"node_modules/array.prototype.findlastindex": {
- "version": "1.2.3",
+ "version": "1.2.5",
"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"
@@ -4529,27 +4533,19 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/array.prototype.toreversed": {
- "version": "1.1.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"
- }
- },
"node_modules/array.prototype.tosorted": {
- "version": "1.1.3",
+ "version": "1.1.4",
"dev": true,
"license": "MIT",
"dependencies": {
- "call-bind": "^1.0.5",
+ "call-bind": "^1.0.7",
"define-properties": "^1.2.1",
- "es-abstract": "^1.22.3",
- "es-errors": "^1.1.0",
+ "es-abstract": "^1.23.3",
+ "es-errors": "^1.3.0",
"es-shim-unscopables": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
}
},
"node_modules/arraybuffer.prototype.slice": {
@@ -4615,7 +4611,7 @@
}
},
"node_modules/autoprefixer": {
- "version": "10.4.19",
+ "version": "10.4.20",
"dev": true,
"funding": [
{
@@ -4633,11 +4629,11 @@
],
"license": "MIT",
"dependencies": {
- "browserslist": "^4.23.0",
- "caniuse-lite": "^1.0.30001599",
+ "browserslist": "^4.23.3",
+ "caniuse-lite": "^1.0.30001646",
"fraction.js": "^4.3.7",
"normalize-range": "^0.1.2",
- "picocolors": "^1.0.0",
+ "picocolors": "^1.0.1",
"postcss-value-parser": "^4.2.0"
},
"bin": {
@@ -4665,7 +4661,7 @@
}
},
"node_modules/axe-core": {
- "version": "4.7.0",
+ "version": "4.10.0",
"dev": true,
"license": "MPL-2.0",
"engines": {
@@ -4684,11 +4680,11 @@
}
},
"node_modules/axobject-query": {
- "version": "3.2.1",
+ "version": "4.1.0",
"dev": true,
"license": "Apache-2.0",
- "dependencies": {
- "dequal": "^2.0.3"
+ "engines": {
+ "node": ">= 0.4"
}
},
"node_modules/babel-jest": {
@@ -4776,7 +4772,7 @@
}
},
"node_modules/babel-loader": {
- "version": "9.1.3",
+ "version": "9.2.1",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -4917,12 +4913,12 @@
}
},
"node_modules/babel-plugin-polyfill-corejs3": {
- "version": "0.10.4",
+ "version": "0.10.6",
"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"
@@ -5110,9 +5106,8 @@
},
"node_modules/braces": {
"version": "3.0.3",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
- "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"fill-range": "^7.1.1"
},
@@ -5121,7 +5116,9 @@
}
},
"node_modules/browserslist": {
- "version": "4.23.0",
+ "version": "4.24.0",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz",
+ "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==",
"funding": [
{
"type": "opencollective",
@@ -5136,12 +5133,11 @@
"url": "https://github.com/sponsors/ai"
}
],
- "license": "MIT",
"dependencies": {
- "caniuse-lite": "^1.0.30001587",
- "electron-to-chromium": "^1.4.668",
- "node-releases": "^2.0.14",
- "update-browserslist-db": "^1.0.13"
+ "caniuse-lite": "^1.0.30001663",
+ "electron-to-chromium": "^1.5.28",
+ "node-releases": "^2.0.18",
+ "update-browserslist-db": "^1.1.0"
},
"bin": {
"browserslist": "cli.js"
@@ -5170,25 +5166,6 @@
"node": ">=10.0.0"
}
},
- "node_modules/builtin-modules": {
- "version": "3.3.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/builtins": {
- "version": "5.1.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "semver": "^7.0.0"
- }
- },
"node_modules/bundle-name": {
"version": "4.1.0",
"dev": true,
@@ -5303,7 +5280,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001600",
+ "version": "1.0.30001667",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001667.tgz",
+ "integrity": "sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw==",
"funding": [
{
"type": "opencollective",
@@ -5317,8 +5296,7 @@
"type": "github",
"url": "https://github.com/sponsors/ai"
}
- ],
- "license": "CC-BY-4.0"
+ ]
},
"node_modules/chalk": {
"version": "2.4.2",
@@ -5341,20 +5319,24 @@
}
},
"node_modules/cheerio": {
- "version": "1.0.0-rc.12",
+ "version": "1.0.0",
"dev": true,
"license": "MIT",
"dependencies": {
"cheerio-select": "^2.1.0",
"dom-serializer": "^2.0.0",
"domhandler": "^5.0.3",
- "domutils": "^3.0.1",
- "htmlparser2": "^8.0.1",
- "parse5": "^7.0.0",
- "parse5-htmlparser2-tree-adapter": "^7.0.0"
+ "domutils": "^3.1.0",
+ "encoding-sniffer": "^0.2.0",
+ "htmlparser2": "^9.1.0",
+ "parse5": "^7.1.2",
+ "parse5-htmlparser2-tree-adapter": "^7.0.0",
+ "parse5-parser-stream": "^7.1.2",
+ "undici": "^6.19.5",
+ "whatwg-mimetype": "^4.0.0"
},
"engines": {
- "node": ">= 6"
+ "node": ">=18.17"
},
"funding": {
"url": "https://github.com/cheeriojs/cheerio?sponsor=1"
@@ -5376,15 +5358,12 @@
"url": "https://github.com/sponsors/fb55"
}
},
- "node_modules/cheerio/node_modules/parse5": {
- "version": "7.1.2",
+ "node_modules/cheerio/node_modules/whatwg-mimetype": {
+ "version": "4.0.0",
"dev": true,
"license": "MIT",
- "dependencies": {
- "entities": "^4.4.0"
- },
- "funding": {
- "url": "https://github.com/inikulin/parse5?sponsor=1"
+ "engines": {
+ "node": ">=18"
}
},
"node_modules/chokidar": {
@@ -5826,7 +5805,6 @@
},
"node_modules/convert-source-map": {
"version": "2.0.0",
- "dev": true,
"license": "MIT"
},
"node_modules/cookie": {
@@ -5855,7 +5833,6 @@
},
"node_modules/core-js": {
"version": "3.22.3",
- "dev": true,
"hasInstallScript": true,
"license": "MIT",
"funding": {
@@ -5864,11 +5841,11 @@
}
},
"node_modules/core-js-compat": {
- "version": "3.36.1",
+ "version": "3.38.1",
"dev": true,
"license": "MIT",
"dependencies": {
- "browserslist": "^4.23.0"
+ "browserslist": "^4.23.3"
},
"funding": {
"type": "opencollective",
@@ -6281,12 +6258,12 @@
"license": "MIT"
},
"node_modules/cssnano": {
- "version": "7.0.2",
+ "version": "7.0.6",
"dev": true,
"license": "MIT",
"dependencies": {
- "cssnano-preset-default": "^7.0.2",
- "lilconfig": "^3.1.1"
+ "cssnano-preset-default": "^7.0.6",
+ "lilconfig": "^3.1.2"
},
"engines": {
"node": "^18.12.0 || ^20.9.0 || >=22.0"
@@ -6300,40 +6277,40 @@
}
},
"node_modules/cssnano-preset-default": {
- "version": "7.0.2",
+ "version": "7.0.6",
"dev": true,
"license": "MIT",
"dependencies": {
- "browserslist": "^4.23.0",
+ "browserslist": "^4.23.3",
"css-declaration-sorter": "^7.2.0",
"cssnano-utils": "^5.0.0",
- "postcss-calc": "^10.0.0",
- "postcss-colormin": "^7.0.0",
- "postcss-convert-values": "^7.0.0",
- "postcss-discard-comments": "^7.0.0",
- "postcss-discard-duplicates": "^7.0.0",
+ "postcss-calc": "^10.0.2",
+ "postcss-colormin": "^7.0.2",
+ "postcss-convert-values": "^7.0.4",
+ "postcss-discard-comments": "^7.0.3",
+ "postcss-discard-duplicates": "^7.0.1",
"postcss-discard-empty": "^7.0.0",
"postcss-discard-overridden": "^7.0.0",
- "postcss-merge-longhand": "^7.0.1",
- "postcss-merge-rules": "^7.0.1",
+ "postcss-merge-longhand": "^7.0.4",
+ "postcss-merge-rules": "^7.0.4",
"postcss-minify-font-values": "^7.0.0",
"postcss-minify-gradients": "^7.0.0",
- "postcss-minify-params": "^7.0.0",
- "postcss-minify-selectors": "^7.0.1",
+ "postcss-minify-params": "^7.0.2",
+ "postcss-minify-selectors": "^7.0.4",
"postcss-normalize-charset": "^7.0.0",
"postcss-normalize-display-values": "^7.0.0",
"postcss-normalize-positions": "^7.0.0",
"postcss-normalize-repeat-style": "^7.0.0",
"postcss-normalize-string": "^7.0.0",
"postcss-normalize-timing-functions": "^7.0.0",
- "postcss-normalize-unicode": "^7.0.0",
+ "postcss-normalize-unicode": "^7.0.2",
"postcss-normalize-url": "^7.0.0",
"postcss-normalize-whitespace": "^7.0.0",
- "postcss-ordered-values": "^7.0.0",
- "postcss-reduce-initial": "^7.0.0",
+ "postcss-ordered-values": "^7.0.1",
+ "postcss-reduce-initial": "^7.0.2",
"postcss-reduce-transforms": "^7.0.0",
"postcss-svgo": "^7.0.1",
- "postcss-unique-selectors": "^7.0.1"
+ "postcss-unique-selectors": "^7.0.3"
},
"engines": {
"node": "^18.12.0 || ^20.9.0 || >=22.0"
@@ -6743,17 +6720,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",
@@ -6812,14 +6778,6 @@
"node": ">= 0.8"
}
},
- "node_modules/dequal": {
- "version": "2.0.3",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
"node_modules/desandro-matches-selector": {
"version": "2.0.2",
"license": "MIT"
@@ -6950,13 +6908,13 @@
}
},
"node_modules/domutils": {
- "version": "3.0.1",
+ "version": "3.1.0",
"dev": true,
"license": "BSD-2-Clause",
"dependencies": {
"dom-serializer": "^2.0.0",
"domelementtype": "^2.3.0",
- "domhandler": "^5.0.1"
+ "domhandler": "^5.0.3"
},
"funding": {
"url": "https://github.com/fb55/domutils?sponsor=1"
@@ -6995,8 +6953,9 @@
"license": "MIT"
},
"node_modules/electron-to-chromium": {
- "version": "1.4.693",
- "license": "ISC"
+ "version": "1.5.32",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.32.tgz",
+ "integrity": "sha512-M+7ph0VGBQqqpTT2YrabjNKSQ2fEl9PVx6AK3N558gDH9NO8O6XN9SXXFWRo9u9PbEg/bWq+tjXQr+eXmxubCw=="
},
"node_modules/element-resize-detector": {
"version": "1.2.4",
@@ -7043,6 +7002,40 @@
"node": ">= 0.8"
}
},
+ "node_modules/encoding-sniffer": {
+ "version": "0.2.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "iconv-lite": "^0.6.3",
+ "whatwg-encoding": "^3.1.1"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/encoding-sniffer?sponsor=1"
+ }
+ },
+ "node_modules/encoding-sniffer/node_modules/iconv-lite": {
+ "version": "0.6.3",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/encoding-sniffer/node_modules/whatwg-encoding": {
+ "version": "3.1.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "iconv-lite": "0.6.3"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
"node_modules/enhanced-resolve": {
"version": "0.9.1",
"dev": true,
@@ -7056,7 +7049,7 @@
}
},
"node_modules/entities": {
- "version": "4.4.0",
+ "version": "4.5.0",
"dev": true,
"license": "BSD-2-Clause",
"engines": {
@@ -7176,6 +7169,30 @@
"node": ">= 0.4"
}
},
+ "node_modules/es-get-iterator": {
+ "version": "1.1.3",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.3",
+ "has-symbols": "^1.0.3",
+ "is-arguments": "^1.1.1",
+ "is-map": "^2.0.2",
+ "is-set": "^2.0.2",
+ "is-string": "^1.0.7",
+ "isarray": "^2.0.5",
+ "stop-iteration-iterator": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/es-get-iterator/node_modules/isarray": {
+ "version": "2.0.5",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/es-iterator-helpers": {
"version": "1.0.19",
"dev": true,
@@ -7253,7 +7270,7 @@
}
},
"node_modules/escalade": {
- "version": "3.1.1",
+ "version": "3.1.2",
"license": "MIT",
"engines": {
"node": ">=6"
@@ -7339,14 +7356,14 @@
}
},
"node_modules/eslint": {
- "version": "8.57.0",
+ "version": "8.57.1",
"license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.6.1",
"@eslint/eslintrc": "^2.1.4",
- "@eslint/js": "8.57.0",
- "@humanwhocodes/config-array": "^0.11.14",
+ "@eslint/js": "8.57.1",
+ "@humanwhocodes/config-array": "^0.13.0",
"@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8",
"@ungap/structured-clone": "^1.2.0",
@@ -7487,11 +7504,10 @@
}
},
"node_modules/eslint-import-resolver-webpack": {
- "version": "0.13.8",
+ "version": "0.13.9",
"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",
@@ -7536,9 +7552,10 @@
}
},
"node_modules/eslint-module-utils": {
- "version": "2.8.0",
+ "version": "2.12.0",
+ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz",
+ "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"debug": "^3.2.7"
},
@@ -7553,8 +7570,9 @@
},
"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": {
"ms": "^2.1.1"
}
@@ -7597,33 +7615,36 @@
}
},
"node_modules/eslint-plugin-import": {
- "version": "2.29.1",
+ "version": "2.31.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz",
+ "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==",
"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.12.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",
+ "string.prototype.trimend": "^1.0.8",
"tsconfig-paths": "^3.15.0"
},
"engines": {
"node": ">=4"
},
"peerDependencies": {
- "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8"
+ "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9"
}
},
"node_modules/eslint-plugin-import/node_modules/debug": {
@@ -7646,18 +7667,17 @@
}
},
"node_modules/eslint-plugin-jest": {
- "version": "28.6.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-28.6.0.tgz",
- "integrity": "sha512-YG28E1/MIKwnz+e2H7VwYPzHUYU4aMa19w0yGcwXnnmJH6EfgHahTJ2un3IyraUxNfnz/KUhJAFXNNwWPo12tg==",
+ "version": "28.8.3",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "@typescript-eslint/utils": "^6.0.0 || ^7.0.0"
+ "@typescript-eslint/utils": "^6.0.0 || ^7.0.0 || ^8.0.0"
},
"engines": {
"node": "^16.10.0 || ^18.12.0 || >=20.0.0"
},
"peerDependencies": {
- "@typescript-eslint/eslint-plugin": "^6.0.0 || ^7.0.0",
+ "@typescript-eslint/eslint-plugin": "^6.0.0 || ^7.0.0 || ^8.0.0",
"eslint": "^7.0.0 || ^8.0.0 || ^9.0.0",
"jest": "*"
},
@@ -7671,84 +7691,109 @@
}
},
"node_modules/eslint-plugin-jsx-a11y": {
- "version": "6.8.0",
+ "version": "6.10.0",
"dev": true,
"license": "MIT",
"dependencies": {
- "@babel/runtime": "^7.23.2",
- "aria-query": "^5.3.0",
- "array-includes": "^3.1.7",
+ "aria-query": "~5.1.3",
+ "array-includes": "^3.1.8",
"array.prototype.flatmap": "^1.3.2",
"ast-types-flow": "^0.0.8",
- "axe-core": "=4.7.0",
- "axobject-query": "^3.2.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.15",
- "hasown": "^2.0.0",
+ "es-iterator-helpers": "^1.0.19",
+ "hasown": "^2.0.2",
"jsx-ast-utils": "^3.3.5",
"language-tags": "^1.0.9",
"minimatch": "^3.1.2",
- "object.entries": "^1.1.7",
- "object.fromentries": "^2.0.7"
+ "object.fromentries": "^2.0.8",
+ "safe-regex-test": "^1.0.3",
+ "string.prototype.includes": "^2.0.0"
},
"engines": {
"node": ">=4.0"
},
"peerDependencies": {
- "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8"
+ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9"
}
},
"node_modules/eslint-plugin-n": {
- "version": "16.6.2",
+ "version": "17.10.3",
"dev": true,
"license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.4.0",
- "builtins": "^5.0.1",
+ "enhanced-resolve": "^5.17.0",
"eslint-plugin-es-x": "^7.5.0",
"get-tsconfig": "^4.7.0",
- "globals": "^13.24.0",
+ "globals": "^15.8.0",
"ignore": "^5.2.4",
- "is-builtin-module": "^3.2.1",
- "is-core-module": "^2.12.1",
- "minimatch": "^3.1.2",
- "resolve": "^1.22.2",
+ "minimatch": "^9.0.5",
"semver": "^7.5.3"
},
"engines": {
- "node": ">=16.0.0"
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
"funding": {
- "url": "https://github.com/sponsors/mysticatea"
+ "url": "https://opencollective.com/eslint"
},
"peerDependencies": {
- "eslint": ">=7.0.0"
+ "eslint": ">=8.23.0"
}
},
- "node_modules/eslint-plugin-n/node_modules/globals": {
- "version": "13.24.0",
+ "node_modules/eslint-plugin-n/node_modules/brace-expansion": {
+ "version": "2.0.1",
"dev": true,
"license": "MIT",
"dependencies": {
- "type-fest": "^0.20.2"
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/eslint-plugin-n/node_modules/enhanced-resolve": {
+ "version": "5.17.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "graceful-fs": "^4.2.4",
+ "tapable": "^2.2.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/eslint-plugin-n/node_modules/globals": {
+ "version": "15.8.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/eslint-plugin-n/node_modules/type-fest": {
- "version": "0.20.2",
+ "node_modules/eslint-plugin-n/node_modules/minimatch": {
+ "version": "9.0.5",
"dev": true,
- "license": "(MIT OR CC0-1.0)",
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
"engines": {
- "node": ">=10"
+ "node": ">=16 || 14 >=14.17"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/eslint-plugin-n/node_modules/tapable": {
+ "version": "2.2.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
}
},
"node_modules/eslint-plugin-no-storage": {
@@ -7779,7 +7824,7 @@
}
},
"node_modules/eslint-plugin-promise": {
- "version": "6.2.0",
+ "version": "6.6.0",
"dev": true,
"license": "ISC",
"engines": {
@@ -7793,34 +7838,35 @@
}
},
"node_modules/eslint-plugin-react": {
- "version": "7.34.2",
+ "version": "7.37.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.1.tgz",
+ "integrity": "sha512-xwTnwDqzbDRA8uJ7BMxPs/EXRB3i8ZfnOIp8BsxEQkT0nHPp+WWceqGgo6rKb9ctNi8GJLDT4Go5HAWELa/WMg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"array-includes": "^3.1.8",
"array.prototype.findlast": "^1.2.5",
"array.prototype.flatmap": "^1.3.2",
- "array.prototype.toreversed": "^1.1.2",
- "array.prototype.tosorted": "^1.1.3",
+ "array.prototype.tosorted": "^1.1.4",
"doctrine": "^2.1.0",
"es-iterator-helpers": "^1.0.19",
"estraverse": "^5.3.0",
+ "hasown": "^2.0.2",
"jsx-ast-utils": "^2.4.1 || ^3.0.0",
"minimatch": "^3.1.2",
"object.entries": "^1.1.8",
"object.fromentries": "^2.0.8",
- "object.hasown": "^1.1.4",
"object.values": "^1.2.0",
"prop-types": "^15.8.1",
"resolve": "^2.0.0-next.5",
"semver": "^6.3.1",
- "string.prototype.matchall": "^4.0.11"
+ "string.prototype.matchall": "^4.0.11",
+ "string.prototype.repeat": "^1.0.0"
},
"engines": {
"node": ">=4"
},
"peerDependencies": {
- "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8"
+ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7"
}
},
"node_modules/eslint-plugin-react-hooks": {
@@ -8295,7 +8341,7 @@
}
},
"node_modules/fast-glob": {
- "version": "3.3.1",
+ "version": "3.3.2",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -8317,6 +8363,11 @@
"version": "2.0.6",
"license": "MIT"
},
+ "node_modules/fast-uri": {
+ "version": "3.0.1",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/fastest-levenshtein": {
"version": "1.0.16",
"dev": true,
@@ -8353,7 +8404,6 @@
},
"node_modules/fetch-mock": {
"version": "9.11.0",
- "dev": true,
"license": "MIT",
"dependencies": {
"@babel/core": "^7.0.0",
@@ -8383,9 +8433,30 @@
}
}
},
+ "node_modules/fetch-mock-jest": {
+ "version": "1.5.1",
+ "license": "MIT",
+ "dependencies": {
+ "fetch-mock": "^9.11.0"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ },
+ "funding": {
+ "type": "charity",
+ "url": "https://www.justgiving.com/refugee-support-europe"
+ },
+ "peerDependencies": {
+ "node-fetch": "*"
+ },
+ "peerDependenciesMeta": {
+ "node-fetch": {
+ "optional": true
+ }
+ }
+ },
"node_modules/fetch-mock/node_modules/path-to-regexp": {
"version": "2.4.0",
- "dev": true,
"license": "MIT"
},
"node_modules/file-entry-cache": {
@@ -8404,9 +8475,8 @@
},
"node_modules/fill-range": {
"version": "7.1.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
- "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"to-regex-range": "^5.0.1"
},
@@ -8703,11 +8773,9 @@
"license": "ISC"
},
"node_modules/fsevents": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
- "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "version": "2.3.2",
"dev": true,
- "hasInstallScript": true,
+ "license": "MIT",
"optional": true,
"os": [
"darwin"
@@ -8749,14 +8817,13 @@
},
"node_modules/gensync": {
"version": "1.0.0-beta.2",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/geographiclib-geodesic": {
- "version": "2.0.0",
+ "version": "2.1.1",
"license": "MIT"
},
"node_modules/geotiff": {
@@ -8866,21 +8933,22 @@
}
},
"node_modules/glob": {
- "version": "10.4.1",
+ "version": "11.0.0",
"dev": true,
"license": "ISC",
"dependencies": {
"foreground-child": "^3.1.0",
- "jackspeak": "^3.1.2",
- "minimatch": "^9.0.4",
+ "jackspeak": "^4.0.1",
+ "minimatch": "^10.0.0",
"minipass": "^7.1.2",
- "path-scurry": "^1.11.1"
+ "package-json-from-dist": "^1.0.0",
+ "path-scurry": "^2.0.0"
},
"bin": {
"glob": "dist/esm/bin.mjs"
},
"engines": {
- "node": ">=16 || 14 >=14.18"
+ "node": "20 || >=22"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
@@ -8910,14 +8978,14 @@
}
},
"node_modules/glob/node_modules/minimatch": {
- "version": "9.0.4",
+ "version": "10.0.1",
"dev": true,
"license": "ISC",
"dependencies": {
"brace-expansion": "^2.0.1"
},
"engines": {
- "node": ">=16 || 14 >=14.17"
+ "node": "20 || >=22"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
@@ -9195,7 +9263,7 @@
}
},
"node_modules/htmlparser2": {
- "version": "8.0.1",
+ "version": "9.1.0",
"dev": true,
"funding": [
"https://github.com/fb55/htmlparser2?sponsor=1",
@@ -9207,9 +9275,9 @@
"license": "MIT",
"dependencies": {
"domelementtype": "^2.3.0",
- "domhandler": "^5.0.2",
- "domutils": "^3.0.1",
- "entities": "^4.3.0"
+ "domhandler": "^5.0.3",
+ "domutils": "^3.1.0",
+ "entities": "^4.5.0"
}
},
"node_modules/http-deceiver": {
@@ -9320,11 +9388,11 @@
}
},
"node_modules/husky": {
- "version": "9.0.11",
+ "version": "9.1.6",
"dev": true,
"license": "MIT",
"bin": {
- "husky": "bin.mjs"
+ "husky": "bin.js"
},
"engines": {
"node": ">=18"
@@ -9621,20 +9689,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/is-builtin-module": {
- "version": "3.2.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "builtin-modules": "^3.3.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/is-callable": {
"version": "1.2.7",
"dev": true,
@@ -9647,10 +9701,13 @@
}
},
"node_modules/is-core-module": {
- "version": "2.13.1",
+ "version": "2.15.1",
"license": "MIT",
"dependencies": {
- "hasown": "^2.0.0"
+ "hasown": "^2.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -9822,9 +9879,8 @@
},
"node_modules/is-number": {
"version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=0.12.0"
}
@@ -9964,7 +10020,6 @@
},
"node_modules/is-subset": {
"version": "0.1.1",
- "dev": true,
"license": "MIT"
},
"node_modules/is-symbol": {
@@ -10161,14 +10216,14 @@
}
},
"node_modules/jackspeak": {
- "version": "3.1.2",
+ "version": "4.0.1",
"dev": true,
"license": "BlueOak-1.0.0",
"dependencies": {
"@isaacs/cliui": "^8.0.2"
},
"engines": {
- "node": ">=14"
+ "node": "20 || >=22"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
@@ -10805,17 +10860,6 @@
}
}
},
- "node_modules/jest-environment-jsdom/node_modules/parse5": {
- "version": "7.1.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "entities": "^4.4.0"
- },
- "funding": {
- "url": "https://github.com/inikulin/parse5?sponsor=1"
- }
- },
"node_modules/jest-environment-jsdom/node_modules/saxes": {
"version": "6.0.0",
"dev": true,
@@ -10827,6 +10871,20 @@
"node": ">=v12.22.7"
}
},
+ "node_modules/jest-environment-jsdom/node_modules/tough-cookie": {
+ "version": "4.1.4",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "psl": "^1.1.33",
+ "punycode": "^2.1.1",
+ "universalify": "^0.2.0",
+ "url-parse": "^1.5.3"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/jest-environment-jsdom/node_modules/tr46": {
"version": "3.0.0",
"dev": true,
@@ -10861,28 +10919,6 @@
"node": ">=12"
}
},
- "node_modules/jest-environment-jsdom/node_modules/ws": {
- "version": "8.18.0",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz",
- "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=10.0.0"
- },
- "peerDependencies": {
- "bufferutil": "^4.0.1",
- "utf-8-validate": ">=5.0.2"
- },
- "peerDependenciesMeta": {
- "bufferutil": {
- "optional": true
- },
- "utf-8-validate": {
- "optional": true
- }
- }
- },
"node_modules/jest-environment-node": {
"version": "29.7.0",
"dev": true,
@@ -11863,13 +11899,14 @@
}
},
"node_modules/jsesc": {
- "version": "2.5.2",
- "license": "MIT",
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz",
+ "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==",
"bin": {
"jsesc": "bin/jsesc"
},
"engines": {
- "node": ">=4"
+ "node": ">=6"
}
},
"node_modules/json-buffer": {
@@ -11911,7 +11948,6 @@
},
"node_modules/json5": {
"version": "2.2.3",
- "dev": true,
"license": "MIT",
"bin": {
"json5": "lib/cli.js"
@@ -11997,7 +12033,7 @@
}
},
"node_modules/known-css-properties": {
- "version": "0.28.0",
+ "version": "0.29.0",
"dev": true,
"license": "MIT"
},
@@ -12050,7 +12086,7 @@
}
},
"node_modules/lilconfig": {
- "version": "3.1.1",
+ "version": "3.1.2",
"dev": true,
"license": "MIT",
"engines": {
@@ -12125,8 +12161,7 @@
},
"node_modules/lodash-es": {
"version": "4.17.21",
- "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz",
- "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw=="
+ "license": "MIT"
},
"node_modules/lodash.clonedeep": {
"version": "4.5.0",
@@ -12145,7 +12180,6 @@
},
"node_modules/lodash.isequal": {
"version": "4.5.0",
- "dev": true,
"license": "MIT"
},
"node_modules/lodash.isplainobject": {
@@ -12164,7 +12198,6 @@
},
"node_modules/lodash.sortby": {
"version": "4.7.0",
- "dev": true,
"license": "MIT"
},
"node_modules/lodash.truncate": {
@@ -12189,7 +12222,6 @@
},
"node_modules/lru-cache": {
"version": "6.0.0",
- "dev": true,
"license": "ISC",
"dependencies": {
"yallist": "^4.0.0"
@@ -12414,7 +12446,7 @@
}
},
"node_modules/mini-css-extract-plugin": {
- "version": "2.9.0",
+ "version": "2.9.1",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -12510,6 +12542,81 @@
"node": ">= 18"
}
},
+ "node_modules/minizlib/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/minizlib/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/minizlib/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/minizlib/node_modules/lru-cache": {
+ "version": "10.4.3",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/minizlib/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/minizlib/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/minizlib/node_modules/rimraf": {
"version": "5.0.5",
"dev": true,
@@ -12702,7 +12809,7 @@
"license": "MIT"
},
"node_modules/node-releases": {
- "version": "2.0.14",
+ "version": "2.0.18",
"license": "MIT"
},
"node_modules/node-ssh": {
@@ -12938,30 +13045,16 @@
}
},
"node_modules/object.groupby": {
- "version": "1.0.1",
- "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"
- }
- },
- "node_modules/object.hasown": {
- "version": "1.1.4",
+ "version": "1.0.3",
"dev": true,
"license": "MIT",
"dependencies": {
+ "call-bind": "^1.0.7",
"define-properties": "^1.2.1",
- "es-abstract": "^1.23.2",
- "es-object-atoms": "^1.0.0"
+ "es-abstract": "^1.23.2"
},
"engines": {
"node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/object.values": {
@@ -13002,7 +13095,7 @@
}
},
"node_modules/ol-mapbox-style": {
- "version": "12.3.3",
+ "version": "12.3.5",
"license": "BSD-2-Clause",
"dependencies": {
"@mapbox/mapbox-gl-style-spec": "^13.23.1",
@@ -13184,6 +13277,11 @@
"node": ">=6"
}
},
+ "node_modules/package-json-from-dist": {
+ "version": "1.0.0",
+ "dev": true,
+ "license": "BlueOak-1.0.0"
+ },
"node_modules/pako": {
"version": "1.0.11",
"license": "(MIT AND Zlib)"
@@ -13225,6 +13323,17 @@
"node": ">=4"
}
},
+ "node_modules/parse5": {
+ "version": "7.1.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "entities": "^4.4.0"
+ },
+ "funding": {
+ "url": "https://github.com/inikulin/parse5?sponsor=1"
+ }
+ },
"node_modules/parse5-htmlparser2-tree-adapter": {
"version": "7.0.0",
"dev": true,
@@ -13237,12 +13346,12 @@
"url": "https://github.com/inikulin/parse5?sponsor=1"
}
},
- "node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": {
+ "node_modules/parse5-parser-stream": {
"version": "7.1.2",
"dev": true,
"license": "MIT",
"dependencies": {
- "entities": "^4.4.0"
+ "parse5": "^7.0.0"
},
"funding": {
"url": "https://github.com/inikulin/parse5?sponsor=1"
@@ -13440,26 +13549,26 @@
"license": "MIT"
},
"node_modules/path-scurry": {
- "version": "1.11.1",
+ "version": "2.0.0",
"dev": true,
"license": "BlueOak-1.0.0",
"dependencies": {
- "lru-cache": "^10.2.0",
- "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
+ "lru-cache": "^11.0.0",
+ "minipass": "^7.1.2"
},
"engines": {
- "node": ">=16 || 14 >=14.18"
+ "node": "20 || >=22"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/path-scurry/node_modules/lru-cache": {
- "version": "10.2.2",
+ "version": "11.0.0",
"dev": true,
"license": "ISC",
"engines": {
- "node": "14 || >=16.14"
+ "node": "20 || >=22"
}
},
"node_modules/path-to-regexp": {
@@ -13488,7 +13597,7 @@
}
},
"node_modules/picocolors": {
- "version": "1.0.0",
+ "version": "1.1.0",
"license": "ISC"
},
"node_modules/picomatch": {
@@ -13608,45 +13717,31 @@
}
},
"node_modules/playwright": {
- "version": "1.44.1",
+ "version": "1.47.2",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "playwright-core": "1.44.1"
+ "playwright-core": "1.47.2"
},
"bin": {
"playwright": "cli.js"
},
"engines": {
- "node": ">=16"
+ "node": ">=18"
},
"optionalDependencies": {
"fsevents": "2.3.2"
}
},
"node_modules/playwright-core": {
- "version": "1.44.1",
+ "version": "1.47.2",
"dev": true,
"license": "Apache-2.0",
"bin": {
"playwright-core": "cli.js"
},
"engines": {
- "node": ">=16"
- }
- },
- "node_modules/playwright/node_modules/fsevents": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
- "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
- "dev": true,
- "hasInstallScript": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ "node": ">=18"
}
},
"node_modules/popper.js": {
@@ -13666,7 +13761,7 @@
}
},
"node_modules/postcss": {
- "version": "8.4.38",
+ "version": "8.4.47",
"dev": true,
"funding": [
{
@@ -13685,19 +13780,19 @@
"license": "MIT",
"dependencies": {
"nanoid": "^3.3.7",
- "picocolors": "^1.0.0",
- "source-map-js": "^1.2.0"
+ "picocolors": "^1.1.0",
+ "source-map-js": "^1.2.1"
},
"engines": {
"node": "^10 || ^12 || >=14"
}
},
"node_modules/postcss-calc": {
- "version": "10.0.0",
+ "version": "10.0.2",
"dev": true,
"license": "MIT",
"dependencies": {
- "postcss-selector-parser": "^6.0.16",
+ "postcss-selector-parser": "^6.1.2",
"postcss-value-parser": "^4.2.0"
},
"engines": {
@@ -13708,11 +13803,11 @@
}
},
"node_modules/postcss-colormin": {
- "version": "7.0.0",
+ "version": "7.0.2",
"dev": true,
"license": "MIT",
"dependencies": {
- "browserslist": "^4.23.0",
+ "browserslist": "^4.23.3",
"caniuse-api": "^3.0.0",
"colord": "^2.9.3",
"postcss-value-parser": "^4.2.0"
@@ -13725,11 +13820,11 @@
}
},
"node_modules/postcss-convert-values": {
- "version": "7.0.0",
+ "version": "7.0.4",
"dev": true,
"license": "MIT",
"dependencies": {
- "browserslist": "^4.23.0",
+ "browserslist": "^4.23.3",
"postcss-value-parser": "^4.2.0"
},
"engines": {
@@ -13740,9 +13835,12 @@
}
},
"node_modules/postcss-discard-comments": {
- "version": "7.0.0",
+ "version": "7.0.3",
"dev": true,
"license": "MIT",
+ "dependencies": {
+ "postcss-selector-parser": "^6.1.2"
+ },
"engines": {
"node": "^18.12.0 || ^20.9.0 || >=22.0"
},
@@ -13751,7 +13849,7 @@
}
},
"node_modules/postcss-discard-duplicates": {
- "version": "7.0.0",
+ "version": "7.0.1",
"dev": true,
"license": "MIT",
"engines": {
@@ -13861,12 +13959,12 @@
"license": "MIT"
},
"node_modules/postcss-merge-longhand": {
- "version": "7.0.1",
+ "version": "7.0.4",
"dev": true,
"license": "MIT",
"dependencies": {
"postcss-value-parser": "^4.2.0",
- "stylehacks": "^7.0.1"
+ "stylehacks": "^7.0.4"
},
"engines": {
"node": "^18.12.0 || ^20.9.0 || >=22.0"
@@ -13876,14 +13974,14 @@
}
},
"node_modules/postcss-merge-rules": {
- "version": "7.0.1",
+ "version": "7.0.4",
"dev": true,
"license": "MIT",
"dependencies": {
- "browserslist": "^4.23.0",
+ "browserslist": "^4.23.3",
"caniuse-api": "^3.0.0",
"cssnano-utils": "^5.0.0",
- "postcss-selector-parser": "^6.1.0"
+ "postcss-selector-parser": "^6.1.2"
},
"engines": {
"node": "^18.12.0 || ^20.9.0 || >=22.0"
@@ -13923,11 +14021,11 @@
}
},
"node_modules/postcss-minify-params": {
- "version": "7.0.0",
+ "version": "7.0.2",
"dev": true,
"license": "MIT",
"dependencies": {
- "browserslist": "^4.23.0",
+ "browserslist": "^4.23.3",
"cssnano-utils": "^5.0.0",
"postcss-value-parser": "^4.2.0"
},
@@ -13939,11 +14037,12 @@
}
},
"node_modules/postcss-minify-selectors": {
- "version": "7.0.1",
+ "version": "7.0.4",
"dev": true,
"license": "MIT",
"dependencies": {
- "postcss-selector-parser": "^6.1.0"
+ "cssesc": "^3.0.0",
+ "postcss-selector-parser": "^6.1.2"
},
"engines": {
"node": "^18.12.0 || ^20.9.0 || >=22.0"
@@ -14089,11 +14188,11 @@
}
},
"node_modules/postcss-normalize-unicode": {
- "version": "7.0.0",
+ "version": "7.0.2",
"dev": true,
"license": "MIT",
"dependencies": {
- "browserslist": "^4.23.0",
+ "browserslist": "^4.23.3",
"postcss-value-parser": "^4.2.0"
},
"engines": {
@@ -14132,7 +14231,7 @@
}
},
"node_modules/postcss-ordered-values": {
- "version": "7.0.0",
+ "version": "7.0.1",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -14147,11 +14246,11 @@
}
},
"node_modules/postcss-reduce-initial": {
- "version": "7.0.0",
+ "version": "7.0.2",
"dev": true,
"license": "MIT",
"dependencies": {
- "browserslist": "^4.23.0",
+ "browserslist": "^4.23.3",
"caniuse-api": "^3.0.0"
},
"engines": {
@@ -14221,7 +14320,7 @@
}
},
"node_modules/postcss-selector-parser": {
- "version": "6.1.0",
+ "version": "6.1.2",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -14248,11 +14347,11 @@
}
},
"node_modules/postcss-unique-selectors": {
- "version": "7.0.1",
+ "version": "7.0.3",
"dev": true,
"license": "MIT",
"dependencies": {
- "postcss-selector-parser": "^6.1.0"
+ "postcss-selector-parser": "^6.1.2"
},
"engines": {
"node": "^18.12.0 || ^20.9.0 || >=22.0"
@@ -14308,7 +14407,7 @@
"license": "MIT"
},
"node_modules/proj4": {
- "version": "2.11.0",
+ "version": "2.12.1",
"license": "MIT",
"dependencies": {
"mgrs": "1.0.0",
@@ -14358,6 +14457,7 @@
},
"node_modules/psl": {
"version": "1.9.0",
+ "dev": true,
"license": "MIT"
},
"node_modules/punycode": {
@@ -14399,7 +14499,6 @@
},
"node_modules/querystring": {
"version": "0.2.1",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=0.4.x"
@@ -14407,6 +14506,7 @@
},
"node_modules/querystringify": {
"version": "2.2.0",
+ "dev": true,
"license": "MIT"
},
"node_modules/queue-microtask": {
@@ -14656,7 +14756,7 @@
"license": "MIT"
},
"node_modules/react-image-crop": {
- "version": "11.0.5",
+ "version": "11.0.7",
"license": "ISC",
"peerDependencies": {
"react": ">=16.13.1"
@@ -14685,7 +14785,7 @@
"license": "MIT"
},
"node_modules/react-joyride": {
- "version": "2.8.2",
+ "version": "2.9.2",
"license": "MIT",
"dependencies": {
"@gilbarbara/deep-equal": "^0.3.1",
@@ -14698,7 +14798,7 @@
"scroll": "^3.0.1",
"scrollparent": "^2.1.0",
"tree-changes": "^0.11.2",
- "type-fest": "^4.18.2"
+ "type-fest": "^4.26.1"
},
"peerDependencies": {
"react": "15 - 18",
@@ -14718,7 +14818,7 @@
}
},
"node_modules/react-joyride/node_modules/type-fest": {
- "version": "4.18.2",
+ "version": "4.26.1",
"license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=16"
@@ -14933,8 +15033,9 @@
}
},
"node_modules/reactstrap": {
- "version": "9.2.2",
- "license": "MIT",
+ "version": "9.2.3",
+ "resolved": "https://registry.npmjs.org/reactstrap/-/reactstrap-9.2.3.tgz",
+ "integrity": "sha512-1nXy7FIBIoOgXr3AIHOpgzcZXdj6rZE5YvNSPd1hYgwv8X64m6TAJsU0ExlieJdlRXhaRfTYRSZoTWa127b0gw==",
"dependencies": {
"@babel/runtime": "^7.12.5",
"@popperjs/core": "^2.6.0",
@@ -15206,13 +15307,15 @@
},
"node_modules/regenerate": {
"version": "1.4.2",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
+ "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==",
+ "dev": true
},
"node_modules/regenerate-unicode-properties": {
- "version": "10.1.1",
+ "version": "10.2.0",
+ "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz",
+ "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"regenerate": "^1.4.2"
},
@@ -15261,14 +15364,15 @@
}
},
"node_modules/regexpu-core": {
- "version": "5.3.2",
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.1.1.tgz",
+ "integrity": "sha512-k67Nb9jvwJcJmVpw0jPttR1/zVfnKf8Km0IPatrU/zJ5XeG3+Slx0xLXs9HByJSzXzrlz5EDvN6yLNMDc2qdnw==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/regjsgen": "^0.8.0",
"regenerate": "^1.4.2",
- "regenerate-unicode-properties": "^10.1.0",
- "regjsparser": "^0.9.1",
+ "regenerate-unicode-properties": "^10.2.0",
+ "regjsgen": "^0.8.0",
+ "regjsparser": "^0.11.0",
"unicode-match-property-ecmascript": "^2.0.0",
"unicode-match-property-value-ecmascript": "^2.1.0"
},
@@ -15276,24 +15380,24 @@
"node": ">=4"
}
},
+ "node_modules/regjsgen": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz",
+ "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==",
+ "dev": true
+ },
"node_modules/regjsparser": {
- "version": "0.9.1",
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.11.0.tgz",
+ "integrity": "sha512-vTbzVAjQDzwQdKuvj7qEq6OlAprCjE656khuGQ4QaBLg7abQ9I9ISpmLuc6inWe7zP75AECjqUa4g4sdQvOXhg==",
"dev": true,
- "license": "BSD-2-Clause",
"dependencies": {
- "jsesc": "~0.5.0"
+ "jsesc": "~3.0.2"
},
"bin": {
"regjsparser": "bin/parser"
}
},
- "node_modules/regjsparser/node_modules/jsesc": {
- "version": "0.5.0",
- "dev": true,
- "bin": {
- "jsesc": "bin/jsesc"
- }
- },
"node_modules/require-directory": {
"version": "2.1.1",
"dev": true,
@@ -15312,6 +15416,7 @@
},
"node_modules/requires-port": {
"version": "1.0.0",
+ "dev": true,
"license": "MIT"
},
"node_modules/reselect": {
@@ -15548,12 +15653,12 @@
"license": "MIT"
},
"node_modules/sass": {
- "version": "1.77.5",
- "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.5.tgz",
- "integrity": "sha512-oDfX1mukIlxacPdQqNb6mV2tVCrnE+P3nVYioy72V5tlk56CPNcO4TCuFcaCRKKfJ1M3lH95CleRS+dVKL2qMg==",
+ "version": "1.79.4",
+ "resolved": "https://registry.npmjs.org/sass/-/sass-1.79.4.tgz",
+ "integrity": "sha512-K0QDSNPXgyqO4GZq2HO5Q70TLxTH6cIT59RdoCHMivrC8rqzaTw5ab9prjz9KUN1El4FLXrBXJhik61JR4HcGg==",
"dev": true,
"dependencies": {
- "chokidar": ">=3.0.0 <4.0.0",
+ "chokidar": "^4.0.0",
"immutable": "^4.0.0",
"source-map-js": ">=0.6.2 <2.0.0"
},
@@ -15565,9 +15670,10 @@
}
},
"node_modules/sass-loader": {
- "version": "14.2.1",
+ "version": "16.0.2",
+ "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.2.tgz",
+ "integrity": "sha512-Ll6iXZ1EYwYT19SqW4mSBb76vSSi8JgzElmzIerhEGgzB5hRjDQIWsPmuk1UrAXkR16KJHqVY0eH+5/uw9Tmfw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"neo-async": "^2.6.2"
},
@@ -15603,6 +15709,32 @@
}
}
},
+ "node_modules/sass/node_modules/chokidar": {
+ "version": "4.0.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "readdirp": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 14.16.0"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/sass/node_modules/readdirp": {
+ "version": "4.0.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 14.16.0"
+ },
+ "funding": {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
"node_modules/sax": {
"version": "1.2.4",
"dev": true,
@@ -15702,7 +15834,6 @@
},
"node_modules/semver": {
"version": "7.5.4",
- "dev": true,
"license": "ISC",
"dependencies": {
"lru-cache": "^6.0.0"
@@ -16023,8 +16154,7 @@
},
"node_modules/simplebar": {
"version": "6.2.7",
- "resolved": "https://registry.npmjs.org/simplebar/-/simplebar-6.2.7.tgz",
- "integrity": "sha512-IdD6HwZLz4f83lG0yN5r/3Mts4qR+pKAc9IjVdtJ96Ow6IqSA+jG2PlniQ710XUygal/mOA774IgAvcoirUP4g==",
+ "license": "MIT",
"dependencies": {
"can-use-dom": "^0.1.0",
"simplebar-core": "^1.2.6"
@@ -16032,8 +16162,7 @@
},
"node_modules/simplebar-core": {
"version": "1.2.6",
- "resolved": "https://registry.npmjs.org/simplebar-core/-/simplebar-core-1.2.6.tgz",
- "integrity": "sha512-H5NYU+O+uvqOH5VXw3+lgoc1vTI6jL8LOZJsw4xgRpV7uIPjRpmLPdz0TrouxwKHBhpVLzVIlyKhaRLelIThMw==",
+ "license": "MIT",
"dependencies": {
"@types/lodash-es": "^4.17.6",
"lodash": "^4.17.21",
@@ -16042,8 +16171,7 @@
},
"node_modules/simplebar-react": {
"version": "3.2.6",
- "resolved": "https://registry.npmjs.org/simplebar-react/-/simplebar-react-3.2.6.tgz",
- "integrity": "sha512-8jDiBuVCG86JmOrsmkA+4q77iFAEbhU9EX62PohLisg3dnxdLXFFhkxnx2Es3Cxt8IlZFlJsF9GaobFL3ukwiA==",
+ "license": "MIT",
"dependencies": {
"simplebar-core": "^1.2.6"
},
@@ -16176,7 +16304,7 @@
}
},
"node_modules/source-map-js": {
- "version": "1.2.0",
+ "version": "1.2.1",
"dev": true,
"license": "BSD-3-Clause",
"engines": {
@@ -16320,6 +16448,17 @@
"node": ">= 0.8"
}
},
+ "node_modules/stop-iteration-iterator": {
+ "version": "1.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "internal-slot": "^1.0.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/string_decoder": {
"version": "1.3.0",
"dev": true,
@@ -16396,6 +16535,15 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/string.prototype.includes": {
+ "version": "2.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.5"
+ }
+ },
"node_modules/string.prototype.matchall": {
"version": "4.0.11",
"dev": true,
@@ -16437,6 +16585,15 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/string.prototype.repeat": {
+ "version": "1.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.5"
+ }
+ },
"node_modules/string.prototype.trim": {
"version": "1.2.9",
"dev": true,
@@ -16551,12 +16708,12 @@
"license": "ISC"
},
"node_modules/stylehacks": {
- "version": "7.0.1",
+ "version": "7.0.4",
"dev": true,
"license": "MIT",
"dependencies": {
- "browserslist": "^4.23.0",
- "postcss-selector-parser": "^6.1.0"
+ "browserslist": "^4.23.3",
+ "postcss-selector-parser": "^6.1.2"
},
"engines": {
"node": "^18.12.0 || ^20.9.0 || >=22.0"
@@ -16696,11 +16853,11 @@
}
},
"node_modules/stylelint-scss": {
- "version": "5.3.0",
+ "version": "5.3.2",
"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",
@@ -16726,11 +16883,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,
@@ -16881,13 +17033,13 @@
}
},
"node_modules/tar": {
- "version": "7.2.0",
+ "version": "7.4.3",
"dev": true,
"license": "ISC",
"dependencies": {
"@isaacs/fs-minipass": "^4.0.0",
"chownr": "^3.0.0",
- "minipass": "^7.1.0",
+ "minipass": "^7.1.2",
"minizlib": "^3.0.1",
"mkdirp": "^3.0.1",
"yallist": "^5.0.0"
@@ -17045,6 +17197,20 @@
"version": "1.0.3",
"license": "MIT"
},
+ "node_modules/tldts": {
+ "version": "6.1.46",
+ "license": "MIT",
+ "dependencies": {
+ "tldts-core": "^6.1.46"
+ },
+ "bin": {
+ "tldts": "bin/cli.js"
+ }
+ },
+ "node_modules/tldts-core": {
+ "version": "6.1.46",
+ "license": "MIT"
+ },
"node_modules/tmp": {
"version": "0.0.33",
"dev": true,
@@ -17070,9 +17236,8 @@
},
"node_modules/to-regex-range": {
"version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"is-number": "^7.0.0"
},
@@ -17103,21 +17268,17 @@
}
},
"node_modules/tough-cookie": {
- "version": "4.1.4",
+ "version": "5.0.0",
"license": "BSD-3-Clause",
"dependencies": {
- "psl": "^1.1.33",
- "punycode": "^2.1.1",
- "universalify": "^0.2.0",
- "url-parse": "^1.5.3"
+ "tldts": "^6.1.32"
},
"engines": {
- "node": ">=6"
+ "node": ">=16"
}
},
"node_modules/tr46": {
"version": "1.0.1",
- "dev": true,
"license": "MIT",
"dependencies": {
"punycode": "^2.1.0"
@@ -17348,18 +17509,28 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/unicode-canonical-property-names-ecmascript": {
- "version": "2.0.0",
+ "node_modules/undici": {
+ "version": "6.19.7",
"dev": true,
"license": "MIT",
+ "engines": {
+ "node": ">=18.17"
+ }
+ },
+ "node_modules/unicode-canonical-property-names-ecmascript": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz",
+ "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==",
+ "dev": true,
"engines": {
"node": ">=4"
}
},
"node_modules/unicode-match-property-ecmascript": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz",
+ "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==",
"dev": true,
- "license": "MIT",
"dependencies": {
"unicode-canonical-property-names-ecmascript": "^2.0.0",
"unicode-property-aliases-ecmascript": "^2.0.0"
@@ -17369,23 +17540,26 @@
}
},
"node_modules/unicode-match-property-value-ecmascript": {
- "version": "2.1.0",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz",
+ "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/unicode-property-aliases-ecmascript": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz",
+ "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/universalify": {
"version": "0.2.0",
+ "dev": true,
"license": "MIT",
"engines": {
"node": ">= 4.0.0"
@@ -17402,7 +17576,7 @@
}
},
"node_modules/update-browserslist-db": {
- "version": "1.0.13",
+ "version": "1.1.0",
"funding": [
{
"type": "opencollective",
@@ -17419,8 +17593,8 @@
],
"license": "MIT",
"dependencies": {
- "escalade": "^3.1.1",
- "picocolors": "^1.0.0"
+ "escalade": "^3.1.2",
+ "picocolors": "^1.0.1"
},
"bin": {
"update-browserslist-db": "cli.js"
@@ -17445,6 +17619,7 @@
},
"node_modules/url-parse": {
"version": "1.5.10",
+ "dev": true,
"license": "MIT",
"dependencies": {
"querystringify": "^2.1.1",
@@ -17499,13 +17674,12 @@
},
"node_modules/uuid": {
"version": "10.0.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz",
- "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==",
"dev": true,
"funding": [
"https://github.com/sponsors/broofa",
"https://github.com/sponsors/ctavan"
],
+ "license": "MIT",
"bin": {
"uuid": "dist/bin/uuid"
}
@@ -17621,9 +17795,9 @@
}
},
"node_modules/webpack": {
- "version": "5.94.0",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.94.0.tgz",
- "integrity": "sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==",
+ "version": "5.95.0",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.95.0.tgz",
+ "integrity": "sha512-2t3XstrKULz41MNMBF+cJ97TyHdyQ8HCt//pqErqDvNjU9YQBnZxIHa11VXsi7F3mb5/aO2tuDxdeTPdU7xu9Q==",
"license": "MIT",
"dependencies": {
"@types/estree": "^1.0.5",
@@ -17774,7 +17948,7 @@
}
},
"node_modules/webpack-dev-middleware": {
- "version": "7.2.1",
+ "version": "7.4.2",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -17886,7 +18060,7 @@
"peer": true
},
"node_modules/webpack-dev-server": {
- "version": "5.0.4",
+ "version": "5.1.0",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -17903,8 +18077,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",
@@ -17912,14 +18085,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"
@@ -17982,23 +18154,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "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,
@@ -18017,28 +18172,6 @@
"url": "https://opencollective.com/webpack"
}
},
- "node_modules/webpack-dev-server/node_modules/ws": {
- "version": "8.18.0",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz",
- "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=10.0.0"
- },
- "peerDependencies": {
- "bufferutil": "^4.0.1",
- "utf-8-validate": ">=5.0.2"
- },
- "peerDependenciesMeta": {
- "bufferutil": {
- "optional": true
- },
- "utf-8-validate": {
- "optional": true
- }
- }
- },
"node_modules/webpack-merge": {
"version": "5.8.0",
"dev": true,
@@ -18137,7 +18270,6 @@
},
"node_modules/whatwg-url": {
"version": "6.5.0",
- "dev": true,
"license": "MIT",
"dependencies": {
"lodash.sortby": "^4.7.0",
@@ -18147,7 +18279,6 @@
},
"node_modules/whatwg-url/node_modules/webidl-conversions": {
"version": "4.0.2",
- "dev": true,
"license": "BSD-2-Clause"
},
"node_modules/which": {
@@ -18389,17 +18520,17 @@
}
},
"node_modules/ws": {
- "version": "7.5.10",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz",
- "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==",
+ "version": "8.18.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz",
+ "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==",
"dev": true,
"license": "MIT",
"engines": {
- "node": ">=8.3.0"
+ "node": ">=10.0.0"
},
"peerDependencies": {
"bufferutil": "^4.0.1",
- "utf-8-validate": "^5.0.2"
+ "utf-8-validate": ">=5.0.2"
},
"peerDependenciesMeta": {
"bufferutil": {
@@ -18468,7 +18599,6 @@
},
"node_modules/yallist": {
"version": "4.0.0",
- "dev": true,
"license": "ISC"
},
"node_modules/yaml": {
diff --git a/package.json b/package.json
index 508e39d855..34150bd52c 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "worldview",
- "version": "4.41.0",
+ "version": "4.49.0",
"description": "Interactive interface for browsing full-resolution, global satellite imagery",
"keywords": [
"NASA",
@@ -23,7 +23,7 @@
"license": "NASA-1.3",
"repository": "nasa-gibs/worldview",
"engines": {
- "node": ">= 20.12.2"
+ "node": ">= 20.16.0"
},
"scripts": {
"analyze": "cross-env ANALYZE_MODE=true NODE_ENV=production webpack",
@@ -55,7 +55,7 @@
"lint:scss": "npx stylelint ./web/scss/**/*.scss",
"lint:js": "npx eslint . --quiet",
"preinstall": "node tasks/util/checkNodeVersion.js",
- "postinstall": "patch-package && husky install",
+ "postinstall": "patch-package && husky",
"start": "node ./tasks/util/start.js",
"t-debug": "npx playwright test --debug",
"test": "run-script-os",
@@ -77,85 +77,85 @@
"upload": "node tasks/util/upload.js"
},
"devDependencies": {
- "@babel/core": "^7.24.7",
- "@babel/eslint-parser": "^7.24.7",
- "@babel/plugin-transform-class-properties": "^7.24.7",
- "@babel/plugin-transform-private-methods": "^7.24.7",
- "@babel/preset-env": "^7.24.7",
- "@babel/preset-react": "^7.24.7",
- "@playwright/test": "^1.44.1",
+ "@babel/core": "^7.25.7",
+ "@babel/eslint-parser": "^7.25.7",
+ "@babel/plugin-transform-class-properties": "^7.25.7",
+ "@babel/plugin-transform-private-methods": "^7.25.7",
+ "@babel/preset-env": "^7.25.7",
+ "@babel/preset-react": "^7.25.7",
+ "@playwright/test": "^1.47.2",
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.15",
"@webpack-cli/serve": "^2.0.5",
- "ajv": "^8.16.0",
- "autoprefixer": "^10.4.19",
- "babel-loader": "^9.1.3",
- "cheerio": "^1.0.0-rc.12",
+ "ajv": "^8.17.1",
+ "autoprefixer": "^10.4.20",
+ "babel-loader": "^9.2.1",
+ "cheerio": "^1.0.0",
"clean-webpack-plugin": "^4.0.0",
"cross-env": "^7.0.3",
"css-loader": "^7.1.2",
"css-minimizer-webpack-plugin": "^7.0.0",
"css-url-relative-plugin": "^1.1.0",
- "cssnano": "^7.0.2",
- "eslint": "^8.57.0",
+ "cssnano": "^7.0.6",
+ "eslint": "^8.57.1",
"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.6.0",
- "eslint-plugin-jsx-a11y": "^6.8.0",
- "eslint-plugin-n": "^16.6.2",
+ "eslint-import-resolver-webpack": "^0.13.9",
+ "eslint-plugin-import": "^2.31.0",
+ "eslint-plugin-jest": "^28.8.3",
+ "eslint-plugin-jsx-a11y": "^6.10.0",
+ "eslint-plugin-n": "^17.10.3",
"eslint-plugin-no-storage": "^1.0.2",
"eslint-plugin-node": "^11.1.0",
- "eslint-plugin-promise": "^6.2.0",
- "eslint-plugin-react": "^7.34.2",
- "express": "^4.19.2",
- "fetch-mock": "^9.11.0",
- "glob": "^10.4.1",
- "husky": "^9.0.11",
+ "eslint-plugin-promise": "^6.6.0",
+ "eslint-plugin-react": "^7.37.0",
+ "express": "^4.21.0",
+ "glob": "^11.0.0",
+ "husky": "^9.1.6",
"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.38",
+ "postcss": "^8.4.47",
"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.5",
- "sass-loader": "^14.2.1",
+ "sass": "^1.79.4",
+ "sass-loader": "^16.0.2",
"shelljs": "^0.8.5",
"showdown": "^2.1.0",
"stylelint": "^15.11.0",
"stylelint-config-standard-scss": "^11.1.0",
"stylelint-high-performance-animation": "^1.10.0",
- "tar": "^7.2.0",
+ "tar": "^7.4.3",
"terser-webpack-plugin": "^5.3.10",
"uuid": "^10.0.0",
- "webpack": "^5.92.0",
+ "webpack": "^5.95.0",
"webpack-bundle-analyzer": "^4.10.2",
"webpack-cli": "^5.1.4",
- "webpack-dev-middleware": "^7.2.1",
- "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.5.2",
- "@fortawesome/free-brands-svg-icons": "^6.5.2",
- "@fortawesome/free-solid-svg-icons": "^6.5.2",
+ "@fortawesome/fontawesome-svg-core": "^6.6.0",
+ "@fortawesome/free-brands-svg-icons": "^6.6.0",
+ "@fortawesome/free-solid-svg-icons": "^6.6.0",
"@fortawesome/react-fontawesome": "^0.2.2",
"@khanisak/temperature-converter": "^2.0.1",
- "@reduxjs/toolkit": "^2.2.5",
- "axios": "^1.7.2",
+ "@reduxjs/toolkit": "^2.2.7",
+ "axios": "^1.7.7",
"bluebird": "3.7.2",
"bootstrap": "^5.3.3",
"cachai": "^1.0.2",
@@ -166,8 +166,9 @@
"element-resize-detector": "^1.2.4",
"elm-pep": "^1.0.6",
"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",
@@ -178,25 +179,25 @@
"moment-locales-webpack-plugin": "^1.2.0",
"node-dir": "^0.1.17",
"ol": "^8.2.0",
- "ol-mapbox-style": "^12.3.3",
+ "ol-mapbox-style": "^12.3.5",
"p-queue": "^8.0.1",
- "proj4": "^2.11.0",
+ "proj4": "^2.12.1",
"prop-types": "^15.8.1",
- "qs": "^6.12.1",
+ "qs": "^6.13.0",
"react": "^18.3.1",
"react-beautiful-dnd": "^13.1.1",
"react-device-detect": "^2.2.3",
"react-dom": "^18.3.0",
"react-draggable": "^4.4.6",
- "react-image-crop": "^11.0.4",
+ "react-image-crop": "^11.0.7",
"react-infinite-scroller": "^1.2.6",
- "react-joyride": "^2.8.2",
+ "react-joyride": "^2.9.2",
"react-mobile-datepicker": "^4.0.2",
"react-redux": "^9.1.1",
"react-resizable": "^3.0.5",
"react-swipe-to-delete-component": "1.0.5",
"react-visibility-sensor": "^5.1.1",
- "reactstrap": "^9.2.2",
+ "reactstrap": "^9.2.3",
"recharts": "^2.12.7",
"redux": "^5.0.1",
"redux-location-state": "^2.8.2",
@@ -208,7 +209,7 @@
"simplebar-react": "^3.2.6",
"stackblur": "^1.0.0",
"supercluster": "^8.0.1",
- "tough-cookie": "^4.1.4",
+ "tough-cookie": "^5.0.0",
"upng-js": "^2.1.0",
"url-template": "^3.1.1",
"what-input": "^5.2.12"
@@ -221,7 +222,11 @@
},
"redux-location-state": {
"redux": "^5.0.1"
- }
+ },
+ "eslint-config-standard": {
+ "eslint-plugin-n": "^17.1.0"
+ },
+ "ws": "^8.17.1"
},
"browserslist": [
"last 2 versions",
diff --git a/tasks/bamboo/linkReport.sh b/tasks/bamboo/linkReport.sh
index 7db67e8666..7021219844 100755
--- a/tasks/bamboo/linkReport.sh
+++ b/tasks/bamboo/linkReport.sh
@@ -6,7 +6,7 @@
set -e -x
# Install node.js
-NODE_VERSION=v18.15.0
+NODE_VERSION=v20.16.0
curl -O https://nodejs.org/dist/${NODE_VERSION}/node-${NODE_VERSION}-linux-x64.tar.gz
tar xf node-${NODE_VERSION}-linux-x64.tar.gz &&
export PATH=$(pwd)/node-${NODE_VERSION}-linux-x64/bin:${PATH}
diff --git a/tasks/build-options/extractConfigFromWMTS.js b/tasks/build-options/extractConfigFromWMTS.js
index 2d7bdcf99c..d4525a77fd 100644
--- a/tasks/build-options/extractConfigFromWMTS.js
+++ b/tasks/build-options/extractConfigFromWMTS.js
@@ -139,7 +139,7 @@ async function processEntry (entry) {
for (const gcLayer of gcContents.Layer) {
try {
layerCount += 1
- processLayer(gcLayer, wvLayers, entry)
+ await processLayer(gcLayer, wvLayers, entry)
} catch (error) {
if (error instanceof SkipException) {
warningCount += 1
@@ -184,7 +184,7 @@ async function processLayer (gcLayer, wvLayers, entry) {
const dimension = gcLayer.Dimension
if (dimension['ows:Identifier']._text === 'Time') {
try {
- wvLayer = await processTemporalLayer(wvLayer, dimension.Value)
+ wvLayer = await processTemporalLayer(wvLayer, dimension.Value, entry.source)
} catch (e) {
console.error(e)
console.error(`${prog}: ERROR: [${ident}] Error processing time values.`)
diff --git a/tasks/build-options/getVisMetadata.js b/tasks/build-options/getVisMetadata.js
index 5d0dfa52bd..88f0da4b10 100644
--- a/tasks/build-options/getVisMetadata.js
+++ b/tasks/build-options/getVisMetadata.js
@@ -78,10 +78,22 @@ const skipLayers = [
'HLS_NDWI_Landsat',
'HLS_NDSI_Landsat',
'HLS_Moisture_Index_Landsat',
+ 'HLS_EVI_Landsat',
+ 'HLS_SAVI_Landsat',
+ 'HLS_MSAVI_Landsat',
+ 'HLS_NBR2_Landsat',
+ 'HLS_NBR_Landsat',
+ 'HLS_TVI_Landsat',
'HLS_NDVI_Sentinel',
'HLS_NDWI_Sentinel',
'HLS_NDSI_Sentinel',
'HLS_Moisture_Index_Sentinel',
+ 'HLS_EVI_Sentinel',
+ 'HLS_SAVI_Sentinel',
+ 'HLS_MSAVI_Sentinel',
+ 'HLS_NBR2_Sentinel',
+ 'HLS_NBR_Sentinel',
+ 'HLS_TVI_Sentinel',
'HLS_False_Color_Landsat',
'AERONET_AOD_500NM',
'AERONET_ANGSTROM_440-870NM',
@@ -108,7 +120,9 @@ async function main (url) {
console.warn(`${prog}: Fetching ${layerOrder.length} layer-metadata files`)
for (const layerId of layerOrder) {
- await getMetadata(layerId, url)
+ if (!layerId.includes('_STD') && !layerId.includes('_NRT')) {
+ await getMetadata(layerId, url)
+ }
}
const layers = Object.keys(layerMetadata).sort().reduce(
diff --git a/tasks/build-options/processTemporalLayer.js b/tasks/build-options/processTemporalLayer.js
index c7a836c225..de8860a9f4 100644
--- a/tasks/build-options/processTemporalLayer.js
+++ b/tasks/build-options/processTemporalLayer.js
@@ -1,88 +1,117 @@
const moment = require('moment')
+const xml2js = require('xml2js')
+
+const projDict = {
+ 'GIBS:geographic': 'epsg4326',
+ 'GIBS:arctic': 'epsg3413',
+ 'GIBS:antarctic': 'epsg3031'
+}
function toList (val) {
return val instanceof Array ? val : [val]
}
-async function processTemporalLayer (wvLayer, value) {
+async function processTemporalLayer (wvLayer, value, source = 'GIBS:geographic') {
const dateFormat = 'YYYY-MM-DD'
const dateTimeFormat = 'YYYY-MM-DD HH:mm:ss'
try {
- const ranges = toList(value)
- if (ranges && ranges[0] && ranges[0]._text && ranges[0]._text.includes('T')) {
- wvLayer.period = 'subdaily'
- } else {
- if (ranges && ranges[0] && ranges[0]._text && ranges[0]._text.endsWith('Y')) {
- wvLayer.period = 'yearly'
- } else if (ranges && ranges[0] && ranges[0]._text && ranges[0]._text.endsWith('M')) {
- wvLayer.period = 'monthly'
- } else {
- wvLayer.period = 'daily'
- }
- }
- let startDate = moment.min()
- let endDate = moment.max()
- const dateRangeStart = []
- const dateRangeEnd = []
- const rangeInterval = []
- for (const range of ranges) {
- const [start, end, interval] = range._text.split('/')
- if (
- wvLayer.period === 'daily' ||
- wvLayer.period === 'monthly' ||
- wvLayer.period === 'yearly'
- ) {
- startDate = moment.min(startDate, moment(start, dateFormat))
- endDate = moment.max(endDate, moment(end, dateFormat))
- if (start) {
- startDate = moment(start, dateFormat).format('YYYY-MM-DDTHH:mm:ss[Z]')
- dateRangeStart.push(startDate)
- }
- if (end) {
- endDate = moment(end, dateFormat).format('YYYY-MM-DDTHH:mm:ss[Z]')
+ let ranges = toList(value)
+ const describeDomainsUrl = `https://gibs.earthdata.nasa.gov/wmts/${projDict[source]}/best/1.0.0/${wvLayer.id}/default/250m/all/all.xml`
+ try {
+ const describeDomainsResponse = await fetch(describeDomainsUrl)
+ if (describeDomainsResponse?.ok) {
+ const describeDomainsText = await describeDomainsResponse?.text?.() || ''
+ const parser = new xml2js.Parser()
+ const describeDomainsJson = await parser.parseStringPromise(describeDomainsText)
+ const domain = describeDomainsJson?.Domains?.DimensionDomain?.[0]?.Domain?.[0] || ''
+ const domains = domain.split(',')
+ if (domains?.length) {
+ const formattedDomains = domains.map((d) => {
+ return {
+ _text: d
+ }
+ })
+ ranges = toList(formattedDomains)
}
- if (interval !== 'P1D') {
- endDate = moment.utc(endDate).add(moment.duration(interval)).format('YYYY-MM-DDTHH:mm:ss[Z]')
- // For monthly products subtract 1 day
- if (wvLayer.period === 'monthly') {
- endDate = moment.utc(endDate).subtract(1, 'day').format('YYYY-MM-DDTHH:mm:ss[Z]')
- }
- }
- const regex = /\d+/g
- const match = regex.exec(interval)
- rangeInterval.push(match)
- if (endDate.endsWith('T00:00:00Z')) {
- endDate = endDate.replace('T00:00:00Z', 'T23:59:59Z')
- }
- dateRangeEnd.push(endDate)
+ }
+ } catch (error) {
+ console.error(`Error fetching ${describeDomainsUrl}: ${error}`)
+ } finally {
+ if (ranges && ranges[0] && ranges[0]._text && ranges[0]._text.includes('T')) {
+ wvLayer.period = 'subdaily'
} else {
- // Subdaily Layers
- startDate = moment(start, dateTimeFormat).format('YYYY-MM-DDTHH:mm:ss[Z]')
- endDate = moment(end, dateTimeFormat).format('YYYY-MM-DDTHH:mm:ss[Z]')
-
- if (start) {
- dateRangeStart.push(startDate)
+ if (ranges && ranges[0] && ranges[0]._text && ranges[0]._text.endsWith('Y')) {
+ wvLayer.period = 'yearly'
+ } else if (ranges && ranges[0] && ranges[0]._text && ranges[0]._text.endsWith('M')) {
+ wvLayer.period = 'monthly'
+ } else {
+ wvLayer.period = 'daily'
}
- if (end) {
+ }
+ let startDate = moment.min()
+ let endDate = moment.max()
+ const dateRangeStart = []
+ const dateRangeEnd = []
+ const rangeInterval = []
+ for (const range of ranges) {
+ const [start, end, interval] = range._text.split('/')
+ if (
+ wvLayer.period === 'daily' ||
+ wvLayer.period === 'monthly' ||
+ wvLayer.period === 'yearly'
+ ) {
+ startDate = moment.min(startDate, moment(start, dateFormat))
+ endDate = moment.max(endDate, moment(end, dateFormat))
+ if (start) {
+ startDate = moment(start, dateFormat).format('YYYY-MM-DDTHH:mm:ss[Z]')
+ dateRangeStart.push(startDate)
+ }
+ if (end) {
+ endDate = moment(end, dateFormat).format('YYYY-MM-DDTHH:mm:ss[Z]')
+ }
+ if (interval !== 'P1D') {
+ endDate = moment.utc(endDate).add(moment.duration(interval)).format('YYYY-MM-DDTHH:mm:ss[Z]')
+ // For monthly products subtract 1 day
+ if (wvLayer.period === 'monthly') {
+ endDate = moment.utc(endDate).subtract(1, 'day').format('YYYY-MM-DDTHH:mm:ss[Z]')
+ }
+ }
+ const regex = /\d+/g
+ const match = regex.exec(interval)
+ rangeInterval.push(match)
+ if (endDate.endsWith('T00:00:00Z')) {
+ endDate = endDate.replace('T00:00:00Z', 'T23:59:59Z')
+ }
dateRangeEnd.push(endDate)
- }
+ } else {
+ // Subdaily Layers
+ startDate = moment(start, dateTimeFormat).format('YYYY-MM-DDTHH:mm:ss[Z]')
+ endDate = moment(end, dateTimeFormat).format('YYYY-MM-DDTHH:mm:ss[Z]')
- rangeInterval.push(interval.match(/\d+/)[0])
- }
+ if (start) {
+ dateRangeStart.push(startDate)
+ }
+ if (end) {
+ dateRangeEnd.push(endDate)
+ }
- wvLayer.startDate = dateRangeStart[0]
- wvLayer.endDate = dateRangeEnd[dateRangeEnd.length - 1]
+ rangeInterval.push(interval.match(/\d+/)[0])
+ }
- if (dateRangeStart.length && dateRangeEnd.length) {
- wvLayer.dateRanges = dateRangeStart.map((s, i) => ({
- startDate: s,
- endDate: dateRangeEnd[i],
- dateInterval: rangeInterval[i]
- }))
+ wvLayer.startDate = dateRangeStart[0]
+ wvLayer.endDate = dateRangeEnd[dateRangeEnd.length - 1]
+
+ if (dateRangeStart.length && dateRangeEnd.length) {
+ wvLayer.dateRanges = dateRangeStart.map((s, i) => ({
+ startDate: s,
+ endDate: dateRangeEnd[i],
+ dateInterval: rangeInterval[i]
+ }))
+ }
}
}
} catch (e) {
- throw new Error(`Error processing temporal layer: ${e}`)
+ throw new Error(`Error processing temporal layer ${wvLayer.id}: ${e}`)
}
return wvLayer
}
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 0000000000000000000000000000000000000000..acae361282a129f3f44b919dab13fdb139a9316d
GIT binary patch
literal 343704
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