From 86b9265306c6442e399311f10e5241b0391af384 Mon Sep 17 00:00:00 2001 From: christof-wittreich Date: Mon, 22 Jul 2024 16:41:32 -0400 Subject: [PATCH 01/14] Main to Develop v4.44.0 (#5362) * UAT-v4.42.0 * Release to Main v4.42.0 (#5324) * WV-3177: Rename EOSDIS Worldview to NASA Worldview (#5316) * Remove EOSDIS * Update EOSDIS to ESDIS and LANCE acronyms * Updated eslint-plugin-n (#5317) * dependency updates * WV-3210 Distraction Free Timezone Fix (#5320) * Added kioskMode check for timezone label * Separated ternary statements * Update IMERG to version 7 (#5321) * UAT-v4.42.0 --------- Co-authored-by: Patrick Moulden <4834892+PatchesMaps@users.noreply.github.com> Co-authored-by: minniewong Co-authored-by: PatchesMaps * v4.43.0 * Release to Main v4.44.0 (#5361) * Main to Develop v4.43.0 (#5338) * UAT-v4.42.0 * Release to Main v4.42.0 (#5324) * WV-3177: Rename EOSDIS Worldview to NASA Worldview (#5316) * Remove EOSDIS * Update EOSDIS to ESDIS and LANCE acronyms * Updated eslint-plugin-n (#5317) * dependency updates * WV-3210 Distraction Free Timezone Fix (#5320) * Added kioskMode check for timezone label * Separated ternary statements * Update IMERG to version 7 (#5321) * UAT-v4.42.0 --------- Co-authored-by: Patrick Moulden <4834892+PatchesMaps@users.noreply.github.com> Co-authored-by: minniewong Co-authored-by: PatchesMaps * v4.43.0 --------- Co-authored-by: Patrick Moulden <4834892+PatchesMaps@users.noreply.github.com> Co-authored-by: minniewong Co-authored-by: PatchesMaps * Dependency Updates 07-12-234 (#5345) * Added check for non BEST layers in build (#5333) * WV-3104 GIBS API Link in Embed Tab (#5340) * Added api docs link * Simplified to a single class * WV-3154 Replace Social Tab with Citation Tab (#5346) * Changed the social tab to the citation tab * Changed citation to cite us & modified intro text * Fixed test * WV-3242 index out of bounds error (#5332) * only insert layers at valid index * only reload when new palette is AERONET * reload layers on change to rendered palettes * Dependency Updates 07-19-2024 (#5358) * Dependency Updates 07-19-2024 * revert sass bump * WV-3220 Smaller Extent BBox For Finding High-Resolution Imagery (#5347) * Added smallerExtent * Added getSmallerExtent reusable function * WV-3218: Update welcome.md to point users to the Worldview Image of the Week (#5359) * Update welcome.md * open link in new tab * v4.44.0 --------- Co-authored-by: Patrick Moulden <4834892+PatchesMaps@users.noreply.github.com> Co-authored-by: minniewong Co-authored-by: PatchesMaps * Merge branch 'develop' --------- Co-authored-by: Patrick Moulden <4834892+PatchesMaps@users.noreply.github.com> Co-authored-by: minniewong Co-authored-by: PatchesMaps --- package-lock.json | 64 ++++++++++++++++++++++++++--------------------- package.json | 2 +- 2 files changed, 36 insertions(+), 30 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2dae7064ad..1fb996ea7b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "worldview", - "version": "4.43.0", + "version": "4.44.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "worldview", - "version": "4.43.0", + "version": "4.44.0", "hasInstallScript": true, "license": "NASA-1.3", "dependencies": { @@ -192,6 +192,7 @@ "version": "7.24.9", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.9.tgz", "integrity": "sha512-5e3FI4Q3M3Pbr21+5xJwCv6ZT6KmGkI0vw3Tozy5ODAQFTIWe37iT8Cr7Ice2Ntb+M3iSKCEWMB1MBgKrW3whg==", + "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.24.7", @@ -240,6 +241,7 @@ "version": "7.24.10", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.10.tgz", "integrity": "sha512-o9HBZL1G2129luEUlG1hB4N/nlYNWHnpwlND9eOMclRqqu1YDy2sSYVCFUZwl8I1Gxh+QSRrP2vD7EpUmFVXxg==", + "license": "MIT", "dependencies": { "@babel/types": "^7.24.9", "@jridgewell/gen-mapping": "^0.3.5", @@ -423,6 +425,7 @@ "version": "7.24.9", "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.9.tgz", "integrity": "sha512-oYbh+rtFKj/HwBQkFlUzvcybzklmVdVV3UU+mN7n2t/q3yGHbuVdNxyFvSBO1tfvjyArpHNcWMAzsSPdyI46hw==", + "license": "MIT", "dependencies": { "@babel/helper-environment-visitor": "^7.24.7", "@babel/helper-module-imports": "^7.24.7", @@ -527,6 +530,7 @@ "version": "7.24.8", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", + "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -565,6 +569,7 @@ "version": "7.24.8", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.8.tgz", "integrity": "sha512-gV2265Nkcz7weJJfvDoAEVzC1e2OTDpkGbEsebse8koXUJUXPsCMi7sRo/+SPMuMZ9MtUPnGwITTnQnU5YjyaQ==", + "license": "MIT", "dependencies": { "@babel/template": "^7.24.7", "@babel/types": "^7.24.8" @@ -590,6 +595,7 @@ "version": "7.24.8", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.8.tgz", "integrity": "sha512-WzfbgXOkGzZiXXCqk43kKwZjzwx4oulxZi3nq2TYL9mOjQv6kYwul9mz6ID36njuL7Xkp6nJEfok848Zj10j/w==", + "license": "MIT", "bin": { "parser": "bin/babel-parser.js" }, @@ -1877,6 +1883,7 @@ "version": "7.24.8", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.8.tgz", "integrity": "sha512-t0P1xxAPzEDcEPmjprAQq19NWum4K0EQPjMwZQZbHt+GiZqvjCHjj755Weq1YRPVzBI+3zSfvScfpnuIecVFJQ==", + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.24.7", "@babel/generator": "^7.24.8", @@ -1897,6 +1904,7 @@ "version": "7.24.9", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.9.tgz", "integrity": "sha512-xm8XrMKz0IlUdocVbYJe0Z9xEgidU7msskG8BbhnTPK/HZ2z/7FP7ykqPgrUH+C+r414mNfNWam1f2vqOjqjYQ==", + "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.24.8", "@babel/helper-validator-identifier": "^7.24.7", @@ -2281,6 +2289,7 @@ "version": "6.6.0", "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.6.0.tgz", "integrity": "sha512-xyX0X9mc0kyz9plIyryrRbl7ngsA9jz77mCZJsUkLl+ZKs0KWObgaEBoSgQiYWAsSmjz/yjl0F++Got0Mdp4Rw==", + "license": "MIT", "engines": { "node": ">=6" } @@ -2289,6 +2298,7 @@ "version": "6.6.0", "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.6.0.tgz", "integrity": "sha512-KHwPkCk6oRT4HADE7smhfsKudt9N/9lm6EJ5BVg0tD1yPA5hht837fB87F8pn15D8JfTqQOjhKTktwmLMiD7Kg==", + "license": "MIT", "dependencies": { "@fortawesome/fontawesome-common-types": "6.6.0" }, @@ -2300,6 +2310,7 @@ "version": "6.6.0", "resolved": "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-6.6.0.tgz", "integrity": "sha512-1MPD8lMNW/earme4OQi1IFHtmHUwAKgghXlNwWi9GO7QkTfD+IIaYpIai4m2YJEzqfEji3jFHX1DZI5pbY/biQ==", + "license": "(CC-BY-4.0 AND MIT)", "dependencies": { "@fortawesome/fontawesome-common-types": "6.6.0" }, @@ -2311,6 +2322,7 @@ "version": "6.6.0", "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.6.0.tgz", "integrity": "sha512-IYv/2skhEDFc2WGUcqvFJkeK39Q+HyPf5GHUrT/l2pKbtgEIv1al1TKd6qStR5OIwQdN1GZP54ci3y4mroJWjA==", + "license": "(CC-BY-4.0 AND MIT)", "dependencies": { "@fortawesome/fontawesome-common-types": "6.6.0" }, @@ -3291,12 +3303,13 @@ } }, "node_modules/@playwright/test": { - "version": "1.45.2", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.45.2.tgz", - "integrity": "sha512-JxG9eq92ET75EbVi3s+4sYbcG7q72ECeZNbdBlaMkGcNbiDQ4cAi8U2QP5oKkOx+1gpaiL1LDStmzCaEM1Z6fQ==", + "version": "1.45.3", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.45.3.tgz", + "integrity": "sha512-UKF4XsBfy+u3MFWEH44hva1Q8Da28G6RFtR2+5saw+jgAFQV5yYnB1fu68Mz7fO+5GJF3wgwAIs0UelU8TxFrA==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "playwright": "1.45.2" + "playwright": "1.45.3" }, "bin": { "playwright": "cli.js" @@ -4540,17 +4553,6 @@ "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.4", "dev": true, @@ -7879,15 +7881,14 @@ } }, "node_modules/eslint-plugin-react": { - "version": "7.34.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.4.tgz", - "integrity": "sha512-Np+jo9bUwJNxCsT12pXtrGhJgT3T44T1sHhn1Ssr42XFn8TES0267wPGo5nNrMHi8qkyimDAX2BUmkf9pSaVzA==", + "version": "7.35.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.35.0.tgz", + "integrity": "sha512-v501SSMOWv8gerHkk+IIQBkcGRGrO2nfybfj5pLxuJNFTPxxA3PSryhXTK+9pNbtkggheDdsC0E9Q8CuPk6JKA==", "dev": true, "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.4", "doctrine": "^2.1.0", "es-iterator-helpers": "^1.0.19", @@ -7908,7 +7909,7 @@ "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": { @@ -13749,12 +13750,13 @@ } }, "node_modules/playwright": { - "version": "1.45.2", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.45.2.tgz", - "integrity": "sha512-ReywF2t/0teRvNBpfIgh5e4wnrI/8Su8ssdo5XsQKpjxJj+jspm00jSoz9BTg91TT0c9HRjXO7LBNVrgYj9X0g==", + "version": "1.45.3", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.45.3.tgz", + "integrity": "sha512-QhVaS+lpluxCaioejDZ95l4Y4jSFCsBvl2UZkpeXlzxmqS+aABr5c82YmfMHrL6x27nvrvykJAFpkzT2eWdJww==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "playwright-core": "1.45.2" + "playwright-core": "1.45.3" }, "bin": { "playwright": "cli.js" @@ -13767,10 +13769,11 @@ } }, "node_modules/playwright-core": { - "version": "1.45.2", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.45.2.tgz", - "integrity": "sha512-ha175tAWb0dTK0X4orvBIqi3jGEt701SMxMhyujxNrgd8K0Uy5wMSwwcQHtyB4om7INUkfndx02XnQ2p6dvLDw==", + "version": "1.45.3", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.45.3.tgz", + "integrity": "sha512-+ym0jNbcjikaOwwSZycFbwkWgfruWvYlJfThKYAlImbxUgdWFO2oW70ojPm4OpE4t6TAo2FY/smM+hpVTtkhDA==", "dev": true, + "license": "Apache-2.0", "bin": { "playwright-core": "cli.js" }, @@ -14843,6 +14846,7 @@ "version": "11.0.6", "resolved": "https://registry.npmjs.org/react-image-crop/-/react-image-crop-11.0.6.tgz", "integrity": "sha512-T+/RPBhwFxdf8PjD/uoWk+tBkS0Xf2XW0lY5mnsmClvnAujO81EEjDwj0M2pcHX3seXVgKOr/yIiL+Sx4evMNw==", + "license": "ISC", "peerDependencies": { "react": ">=16.13.1" } @@ -16622,6 +16626,7 @@ "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", "dev": true, + "license": "MIT", "dependencies": { "define-properties": "^1.1.3", "es-abstract": "^1.17.5" @@ -17811,6 +17816,7 @@ "version": "5.93.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.93.0.tgz", "integrity": "sha512-Y0m5oEY1LRuwly578VqluorkXbvXKh7U3rLoQCEO04M97ScRr44afGVkI0FQFsXzysk5OgFAxjZAb9rsGQVihA==", + "license": "MIT", "dependencies": { "@types/eslint-scope": "^3.7.3", "@types/estree": "^1.0.5", diff --git a/package.json b/package.json index 9481da0dd2..70b082485f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "worldview", - "version": "4.43.0", + "version": "4.44.0", "description": "Interactive interface for browsing full-resolution, global satellite imagery", "keywords": [ "NASA", From 6c99f2e96246da802be115a8c39678287ac2a58f Mon Sep 17 00:00:00 2001 From: minniewong Date: Wed, 24 Jul 2024 13:17:23 -0400 Subject: [PATCH 02/14] WV-3160: Add text on stray swaths (#5364) --- .../config/metadata/layers/multi-mission/hls/Reflectance.md | 2 ++ 1 file changed, 2 insertions(+) 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) From 4d9a99ffaf8f8ef9baa59b55f3ffc05841deecef Mon Sep 17 00:00:00 2001 From: christof-wittreich Date: Fri, 26 Jul 2024 11:48:39 -0400 Subject: [PATCH 03/14] Dependency Updates 07-26-24 (#5373) --- .eslintrc | 1 + package-lock.json | 76 +++++++++++++++++++++------------ package.json | 18 ++++---- web/scss/components/facets.scss | 3 +- web/scss/components/modal.scss | 6 +-- web/scss/features/events.scss | 11 +++-- 6 files changed, 67 insertions(+), 48 deletions(-) diff --git a/.eslintrc b/.eslintrc index 66ef1e1869..e09d73222a 100644 --- a/.eslintrc +++ b/.eslintrc @@ -15,6 +15,7 @@ "files": ["*.js"], "rules": { "n/no-unpublished-require": "off", // 96 failures across 79 files - many "@playwright/test" related + "n/no-unsupported-features/node-builtins": "off" } } ] diff --git a/package-lock.json b/package-lock.json index 1fb996ea7b..eea3dfb861 100644 --- a/package-lock.json +++ b/package-lock.json @@ -87,7 +87,7 @@ "@playwright/test": "^1.45.2", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.15", "@webpack-cli/serve": "^2.0.5", - "ajv": "^8.16.0", + "ajv": "^8.17.1", "autoprefixer": "^10.4.19", "babel-loader": "^9.1.3", "cheerio": "^1.0.0-rc.12", @@ -104,14 +104,14 @@ "eslint-plugin-import": "^2.29.1", "eslint-plugin-jest": "^28.6.0", "eslint-plugin-jsx-a11y": "^6.9.0", - "eslint-plugin-n": "^17.9.0", + "eslint-plugin-n": "^17.10.0", "eslint-plugin-no-storage": "^1.0.2", "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^6.4.0", + "eslint-plugin-promise": "^6.6.0", "eslint-plugin-react": "^7.34.4", "express": "^4.19.2", "glob": "^11.0.0", - "husky": "^9.0.11", + "husky": "^9.1.2", "jest": "^29.7.0", "jest-canvas-mock": "^2.5.2", "jest-environment-jsdom": "^29.7.0", @@ -121,20 +121,20 @@ "node-ssh": "^13.2.0", "npm-run-all": "^4.1.5", "patch-package": "^8.0.0", - "postcss": "^8.4.39", + "postcss": "^8.4.40", "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.6", - "sass-loader": "^14.2.1", + "sass": "^1.77.8", + "sass-loader": "^15.0.0", "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.4.0", + "tar": "^7.4.3", "terser-webpack-plugin": "^5.3.10", "uuid": "^10.0.0", "webpack": "^5.93.0", @@ -4254,14 +4254,16 @@ } }, "node_modules/ajv": { - "version": "8.16.0", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "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", @@ -7761,7 +7763,9 @@ } }, "node_modules/eslint-plugin-n": { - "version": "17.9.0", + "version": "17.10.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.10.0.tgz", + "integrity": "sha512-NmrSdEid+ch9SBVuqbsK5CUiEZGtMK32KSI+arWahZbFF0nvX1oEJrWiFOWmhkWFKW9Hqor0g3qPh4AvkvWwlA==", "dev": true, "license": "MIT", "dependencies": { @@ -7769,9 +7773,9 @@ "enhanced-resolve": "^5.17.0", "eslint-plugin-es-x": "^7.5.0", "get-tsconfig": "^4.7.0", - "globals": "^15.0.0", + "globals": "^15.8.0", "ignore": "^5.2.4", - "minimatch": "^9.0.0", + "minimatch": "^9.0.5", "semver": "^7.5.3" }, "engines": { @@ -7805,7 +7809,9 @@ } }, "node_modules/eslint-plugin-n/node_modules/globals": { - "version": "15.6.0", + "version": "15.8.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.8.0.tgz", + "integrity": "sha512-VZAJ4cewHTExBWDHR6yptdIBlx9YSSZuwojj9Nt5mBRXQzrKakDsVKQ1J63sklLvzAJm0X5+RpO4i3Y2hcOnFw==", "dev": true, "license": "MIT", "engines": { @@ -7865,9 +7871,9 @@ } }, "node_modules/eslint-plugin-promise": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.4.0.tgz", - "integrity": "sha512-/KWWRaD3fGkVCZsdR0RU53PSthFmoHVhZl+y9+6DqeDLSikLdlUVpVEAmI6iCRR5QyOjBYBqHZV/bdv4DJ4Gtw==", + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.6.0.tgz", + "integrity": "sha512-57Zzfw8G6+Gq7axm2Pdo3gW/Rx3h9Yywgn61uE/3elTCOePEHVrn2i5CdfBwA1BLK0Q0WqctICIUSqXZW/VprQ==", "dev": true, "license": "ISC", "engines": { @@ -8416,6 +8422,13 @@ "version": "2.0.6", "license": "MIT" }, + "node_modules/fast-uri": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", + "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==", + "dev": true, + "license": "MIT" + }, "node_modules/fastest-levenshtein": { "version": "1.0.16", "dev": true, @@ -9432,11 +9445,13 @@ } }, "node_modules/husky": { - "version": "9.0.11", + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.2.tgz", + "integrity": "sha512-1/aDMXZdhr1VdJJTLt6e7BipM0Jd9qkpubPiIplon1WmCeOy3nnzsCMeBqS9AsL5ioonl8F8y/F2CLOmk19/Pw==", "dev": true, "license": "MIT", "bin": { - "husky": "bin.mjs" + "husky": "bin.js" }, "engines": { "node": ">=18" @@ -13798,9 +13813,9 @@ } }, "node_modules/postcss": { - "version": "8.4.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.39.tgz", - "integrity": "sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==", + "version": "8.4.40", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.40.tgz", + "integrity": "sha512-YF2kKIUzAofPMpfH6hOi2cGnv/HrUlfucspc7pDyvv7kGdqXrfj8SCl/t8owkEgKEuu8ZcRjSOxFxVLqwChZ2Q==", "dev": true, "funding": [ { @@ -15736,10 +15751,11 @@ "license": "MIT" }, "node_modules/sass": { - "version": "1.77.6", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.6.tgz", - "integrity": "sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==", + "version": "1.77.8", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.8.tgz", + "integrity": "sha512-4UHg6prsrycW20fqLGPShtEvo/WyHRVRHwOP4DzkUrObWoWI05QBSfzU71TVB7PFaL104TwNaHpjlWXAZbQiNQ==", "dev": true, + "license": "MIT", "dependencies": { "chokidar": ">=3.0.0 <4.0.0", "immutable": "^4.0.0", @@ -15753,7 +15769,9 @@ } }, "node_modules/sass-loader": { - "version": "14.2.1", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-15.0.0.tgz", + "integrity": "sha512-mbXAL7sI/fgt3skXR6xHxtKkaGyxRrGf7zrU4hLLWxBDJEcAe0QsoNy92qKttCb3zfMniTkU2kD9yakUKtW7vQ==", "dev": true, "license": "MIT", "dependencies": { @@ -17082,7 +17100,9 @@ } }, "node_modules/tar": { - "version": "7.4.0", + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz", + "integrity": "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==", "dev": true, "license": "ISC", "dependencies": { diff --git a/package.json b/package.json index 70b082485f..93d6f3cc83 100644 --- a/package.json +++ b/package.json @@ -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", @@ -86,7 +86,7 @@ "@playwright/test": "^1.45.2", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.15", "@webpack-cli/serve": "^2.0.5", - "ajv": "^8.16.0", + "ajv": "^8.17.1", "autoprefixer": "^10.4.19", "babel-loader": "^9.1.3", "cheerio": "^1.0.0-rc.12", @@ -103,14 +103,14 @@ "eslint-plugin-import": "^2.29.1", "eslint-plugin-jest": "^28.6.0", "eslint-plugin-jsx-a11y": "^6.9.0", - "eslint-plugin-n": "^17.9.0", + "eslint-plugin-n": "^17.10.0", "eslint-plugin-no-storage": "^1.0.2", "eslint-plugin-node": "^11.1.0", - "eslint-plugin-promise": "^6.4.0", + "eslint-plugin-promise": "^6.6.0", "eslint-plugin-react": "^7.34.4", "express": "^4.19.2", "glob": "^11.0.0", - "husky": "^9.0.11", + "husky": "^9.1.2", "jest": "^29.7.0", "jest-canvas-mock": "^2.5.2", "jest-environment-jsdom": "^29.7.0", @@ -120,20 +120,20 @@ "node-ssh": "^13.2.0", "npm-run-all": "^4.1.5", "patch-package": "^8.0.0", - "postcss": "^8.4.39", + "postcss": "^8.4.40", "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.6", - "sass-loader": "^14.2.1", + "sass": "^1.77.8", + "sass-loader": "^15.0.0", "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.4.0", + "tar": "^7.4.3", "terser-webpack-plugin": "^5.3.10", "uuid": "^10.0.0", "webpack": "^5.93.0", diff --git a/web/scss/components/facets.scss b/web/scss/components/facets.scss index 073a6eb2ba..3ec486ef4c 100644 --- a/web/scss/components/facets.scss +++ b/web/scss/components/facets.scss @@ -19,13 +19,12 @@ border-radius: 20px; position: relative; display: inline-block; + cursor: pointer; span { font-weight: 500; } - cursor: pointer; - &:hover { background: #eee; color: #111; diff --git a/web/scss/components/modal.scss b/web/scss/components/modal.scss index 11daa8a84c..854e1136d9 100644 --- a/web/scss/components/modal.scss +++ b/web/scss/components/modal.scss @@ -95,12 +95,12 @@ } .modal-content { + border: none; + border-radius: 6px; + .modal-header { justify-content: space-between; } - - border: none; - border-radius: 6px; } .modal-title { diff --git a/web/scss/features/events.scss b/web/scss/features/events.scss index e61e4438ac..82bd68d72b 100644 --- a/web/scss/features/events.scss +++ b/web/scss/features/events.scss @@ -9,6 +9,7 @@ .event-container { background: #333; + min-height: 166px; .no-events { text-align: center; @@ -18,8 +19,6 @@ margin: 15px auto; } - min-height: 166px; - @media (max-width: $mobile-max-width) { height: calc(var(--vh, 1vh) * 100 - 85px); } @@ -60,13 +59,13 @@ } .map-item-list li.item h4.title { - @media (max-width: $mobile-max-width) { - font-size: 1em; - } - color: #ccc; padding: 0 3px; margin-left: 40px; + + @media (max-width: $mobile-max-width) { + font-size: 1em; + } } .map-item-list li.item p, From 7e719ff69c4c7cebbfe2d015fe15646c2fe2bd0b Mon Sep 17 00:00:00 2001 From: christof-wittreich Date: Fri, 26 Jul 2024 18:26:33 -0400 Subject: [PATCH 04/14] Dependency Updates 07-26-24 (second) (#5375) * Dependency Updates 07-26-24 * Dependency Updates 07-26-24 (second) --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index eea3dfb861..928eb261c7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -104,7 +104,7 @@ "eslint-plugin-import": "^2.29.1", "eslint-plugin-jest": "^28.6.0", "eslint-plugin-jsx-a11y": "^6.9.0", - "eslint-plugin-n": "^17.10.0", + "eslint-plugin-n": "^17.10.1", "eslint-plugin-no-storage": "^1.0.2", "eslint-plugin-node": "^11.1.0", "eslint-plugin-promise": "^6.6.0", @@ -7763,9 +7763,9 @@ } }, "node_modules/eslint-plugin-n": { - "version": "17.10.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.10.0.tgz", - "integrity": "sha512-NmrSdEid+ch9SBVuqbsK5CUiEZGtMK32KSI+arWahZbFF0nvX1oEJrWiFOWmhkWFKW9Hqor0g3qPh4AvkvWwlA==", + "version": "17.10.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.10.1.tgz", + "integrity": "sha512-hm/q37W6efDptJXdwirsm6A257iY6ZNtpoSG0wEzFzjJ3AhL7OhEIhdSR2e4OdYfHO5EDeqlCfFrjf9q208IPw==", "dev": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index 93d6f3cc83..f5629e50e9 100644 --- a/package.json +++ b/package.json @@ -103,7 +103,7 @@ "eslint-plugin-import": "^2.29.1", "eslint-plugin-jest": "^28.6.0", "eslint-plugin-jsx-a11y": "^6.9.0", - "eslint-plugin-n": "^17.10.0", + "eslint-plugin-n": "^17.10.1", "eslint-plugin-no-storage": "^1.0.2", "eslint-plugin-node": "^11.1.0", "eslint-plugin-promise": "^6.6.0", From 903b2e83718a425b0c01fa574ee5eb5360fbc06c Mon Sep 17 00:00:00 2001 From: Patrick Moulden <4834892+PatchesMaps@users.noreply.github.com> Date: Mon, 29 Jul 2024 15:52:48 -0400 Subject: [PATCH 05/14] WV-3235-Support Time-Limited Display of TEMPO Imagery (#5363) * show granule only if selected date is within granule date range * Update action name for adding granule date ranges * Add functionality to retrieve and store granule date ranges * remove "cache: 'force-cache'" --- .../timeline-coverage/timeline-coverage.js | 109 ++---------------- web/js/map/granule/granule-layer-builder.js | 32 ++++- web/js/map/layerbuilder.js | 14 +++ web/js/map/util.js | 106 +++++++++++++++++ web/js/modules/layers/actions.js | 16 +++ web/js/modules/layers/constants.js | 1 + web/js/modules/layers/reducers.js | 18 +++ 7 files changed, 189 insertions(+), 107 deletions(-) diff --git a/web/js/components/timeline/timeline-coverage/timeline-coverage.js b/web/js/components/timeline/timeline-coverage/timeline-coverage.js index cb31c37a42..be3450029f 100644 --- a/web/js/components/timeline/timeline-coverage/timeline-coverage.js +++ b/web/js/components/timeline/timeline-coverage/timeline-coverage.js @@ -19,97 +19,6 @@ import Switch from '../../util/switch'; import LayerCoverageInfoModal from './info-modal'; import CoverageItemList from './coverage-item-list'; -function makeTime(date) { - return new Date(date).getTime(); -} - -function mergeSortedGranuleDateRanges(granules) { - return granules.reduce((acc, [start, end]) => { - if (!acc.length) return [[start, end]]; - const startTime = makeTime(start); - const endTime = makeTime(end); - const lastRangeEndTime = makeTime(acc.at(-1)[1]); - const lastRangeStartTime = makeTime(acc.at(-1)[0]); - if ((startTime >= lastRangeStartTime && startTime <= lastRangeEndTime) && (endTime >= lastRangeStartTime && endTime <= lastRangeEndTime)) { // within current range, ignore - return acc; - } - if (startTime > lastRangeEndTime) { // discontinuous, add new range - return [...acc, [start, end]]; - } - if (startTime <= lastRangeEndTime && endTime > lastRangeEndTime) { // intersects current range, merge - return acc.with(-1, [acc.at(-1)[0], end]); - } - return acc; - }, []); -} - -async function requestGranules(params) { - const { - shortName, - extent, - startDate, - endDate, - } = params; - const granules = []; - let hits = Infinity; - let searchAfter = false; - const url = `https://cmr.earthdata.nasa.gov/search/granules.json?shortName=${shortName}&bounding_box=${extent.join(',')}&temporal=${startDate}/${endDate}&sort_key=start_date&pageSize=2000`; - /* eslint-disable no-await-in-loop */ - do { // run the query at least once - const headers = searchAfter ? { 'Cmr-Search-After': searchAfter, 'Client-Id': 'Worldview' } : { 'Client-Id': 'Worldview' }; - const res = await fetch(url, { headers }); - searchAfter = res.headers.get('Cmr-Search-After'); - hits = parseInt(res.headers.get('Cmr-Hits'), 10); - const data = await res.json(); - granules.push(...data.feed.entry); - } while (searchAfter || hits > granules.length); // searchAfter will not be present if there are no more results https://cmr.earthdata.nasa.gov/search/site/docs/search/api.html#search-after - - return granules; -} - -async function getLayerGranuleRanges(layer) { - const extent = [-180, -90, 180, 90]; - const startDate = new Date(layer.startDate).toISOString(); - const endDate = layer.endDate ? new Date(layer.endDate).toISOString() : new Date().toISOString(); - const shortName = layer.conceptIds?.[0]?.shortName; - const nrtParams = { - shortName, - extent, - startDate, - endDate, - }; - const nrtGranules = await requestGranules(nrtParams); - let nonNRTGranules = []; - if (shortName.includes('_NRT')) { // if NRT, also get non-NRT granules - const nonNRTShortName = shortName.replace('_NRT', ''); - const nonNRTParams = { - shortName: nonNRTShortName, - extent, - startDate, - endDate, - }; - nonNRTGranules = await requestGranules(nonNRTParams); - } - const granules = [...nonNRTGranules, ...nrtGranules]; - const granuleDateRanges = granules.map(({ time_start: timeStart, time_end: timeEnd }) => [timeStart, timeEnd]); - const mergedGranuleDateRanges = mergeSortedGranuleDateRanges(granuleDateRanges); // merge overlapping granule ranges to simplify rendering - - return mergedGranuleDateRanges; -} - -async function mapGranulesToLayers(layers) { - const promises = layers.map(async (layer) => { - if (!layer.cmrAvailability) return layer; - - const ranges = await getLayerGranuleRanges(layer); - - return { ...layer, granules: ranges }; - }); - const cmrLayers = await Promise.all(promises); - - return cmrLayers; -} - /* * Timeline Layer Coverage Panel for temporal coverage. * @@ -120,7 +29,6 @@ class TimelineLayerCoveragePanel extends Component { constructor(props) { super(props); this.state = { - cmrLayers: [], activeLayers: [], shouldIncludeHiddenLayers: false, }; @@ -226,8 +134,8 @@ class TimelineLayerCoveragePanel extends Component { futureTime, ongoing, } = layer; - if (layer.granules?.length) { - return layer.granules.map(([startDate, endDate]) => { + if (layer.granuleDateRanges?.length) { + return layer.granuleDateRanges.map(([startDate, endDate]) => { const { gridWidth } = timeScaleOptions[timeScale].timeAxis; const axisFrontDate = new Date(frontDate).getTime(); const axisBackDate = new Date(backDate).getTime(); @@ -357,11 +265,9 @@ class TimelineLayerCoveragePanel extends Component { // eslint-disable-next-line react/destructuring-assignment addMatchingCoverageToTimeline = async (isChecked, layers) => { const { setMatchingTimelineCoverage } = this.props; - const cmrLayers = await mapGranulesToLayers(layers); - const dateRange = this.getNewMatchingDatesRange(cmrLayers); + const dateRange = this.getNewMatchingDatesRange(layers); setMatchingTimelineCoverage(dateRange, isChecked); this.setState({ - cmrLayers, activeLayers: layers, shouldIncludeHiddenLayers: isChecked, }); @@ -379,12 +285,12 @@ class TimelineLayerCoveragePanel extends Component { appNow, } = this.props; if (layers.length > 0) { - return layers.flatMap(({ granules, startDate, endDate }) => { - if (!granules?.length) { + return layers.flatMap(({ granuleDateRanges, startDate, endDate }) => { + if (!granuleDateRanges?.length) { return [{ startDate, endDate: endDate || appNow }]; } - return granules.map(([start, end]) => ({ startDate: start, endDate: end })); + return granuleDateRanges.map(([start, end]) => ({ startDate: start, endDate: end })); }); } }; @@ -481,7 +387,6 @@ class TimelineLayerCoveragePanel extends Component { timeScale, } = this.props; const { - cmrLayers, activeLayers, shouldIncludeHiddenLayers, } = this.state; @@ -536,7 +441,7 @@ class TimelineLayerCoveragePanel extends Component { ranges.some(([start, end]) => date >= new Date(start) && date <= new Date(end)); + /** * Get granuleCount number of granules that have visible imagery based on * predetermined longitude bounds. @@ -147,19 +156,21 @@ export default function granuleLayerBuilder(cache, store, createLayerWMTS) { * @param {Date} leadingEdgeDate - timeline date * @returns {array} */ - const getVisibleGranules = (availableGranules, granuleCount, leadingEdgeDate) => { + const getVisibleGranules = (availableGranules, granuleCount, leadingEdgeDate, granuleDateRanges) => { const { proj: { selected: { crs } } } = store.getState(); const granules = []; const availableCount = availableGranules?.length; if (!availableCount) return granules; const count = granuleCount > availableCount ? availableCount : granuleCount; const sortedAvailableGranules = availableGranules.sort((a, b) => new Date(b.date) - new Date(a.date)); - for (let i = 0; granules.length < count; i += 1) { const item = sortedAvailableGranules[i]; if (!item) break; const { date } = item; - if (new Date(date) <= leadingEdgeDate && isWithinBounds(crs, item)) { + const dateDate = new Date(date); + const leadingEdgeDateUTC = new Date(leadingEdgeDate.toUTCString()); + const isWithinRange = isWithinRanges(leadingEdgeDateUTC, granuleDateRanges); + if (dateDate <= leadingEdgeDateUTC && isWithinRange && isWithinBounds(crs, item)) { granules.unshift(item); } } @@ -182,16 +193,27 @@ export default function granuleLayerBuilder(cache, store, createLayerWMTS) { const { granuleCount, date, group } = options; const { count: currentCount } = getGranuleLayer(state, def.id) || {}; const count = currentCount || granuleCount || def.count || DEFAULT_NUM_GRANULES; + let granuleDateRanges = null; // get granule dates waiting for CMR query and filtering (if necessary) const availableGranules = await getQueriedGranuleDates(def, date, group); - const visibleGranules = getVisibleGranules(availableGranules, count, date); + // if opted in to CMR availability, get granule date ranges if needed + if (def.cmrAvailability) { + if (!def.granuleDateRanges) { + granuleDateRanges = await getLayerGranuleRanges(def); + store.dispatch(addGranuleDateRanges(def, granuleDateRanges)); + } else { + granuleDateRanges = def.granuleDateRanges; + } + } + const visibleGranules = getVisibleGranules(availableGranules, count, date, granuleDateRanges); const transformedGranules = transformGranulesForProj(visibleGranules, crs); return { count, granuleDates: transformedGranules.map((g) => g.date), visibleGranules: transformedGranules, + granuleDateRanges, }; }; diff --git a/web/js/map/layerbuilder.js b/web/js/map/layerbuilder.js index 68b0d9224b..01b6dedcac 100644 --- a/web/js/map/layerbuilder.js +++ b/web/js/map/layerbuilder.js @@ -33,7 +33,9 @@ import { createVectorUrl, getGeographicResolutionWMS, mergeBreakpointLayerAttributes, + getLayerGranuleRanges, } from './util'; +import { addGranuleDateRanges } from '../modules/layers/actions'; import { datesInDateRanges, prevDateInDateRange } from '../modules/layers/util'; import { getSelectedDate } from '../modules/date/selectors'; import { @@ -1033,6 +1035,7 @@ export default function mapLayerBuilder(config, cache, store) { const proj = state.proj.selected; const { breakPointLayer, + cmrAvailability, id, opacity, period, @@ -1045,6 +1048,17 @@ export default function mapLayerBuilder(config, cache, store) { let { date } = dateOptions; let layer = cache.getItem(key); const isGranule = type === 'granule'; + let granuleDateRanges = null; + + // if opted in to CMR availability, get granule date ranges if needed + if (cmrAvailability) { + if (!def.granuleDateRanges) { + granuleDateRanges = await getLayerGranuleRanges(def); + store.dispatch(addGranuleDateRanges(def, granuleDateRanges)); + } else { + granuleDateRanges = def.granuleDateRanges; + } + } if (!layer || isGranule || def.type === 'titiler') { if (!date) date = options.date || getSelectedDate(state); diff --git a/web/js/map/util.js b/web/js/map/util.js index 6048e07801..8b7eea6161 100644 --- a/web/js/map/util.js +++ b/web/js/map/util.js @@ -274,3 +274,109 @@ export function extractDateFromTileErrorURL(url) { console.error('Date not found in the URL.'); return null; } + +/** + * @method makeTime + * @param {string} date + * @returns {number} time + * @description + * Convert date to time +*/ +function makeTime(date) { + return new Date(date).getTime(); +} + +/** + * @method mergeSortedGranuleDateRanges + * @param {array} granules + * @returns {array} mergedGranuleDateRanges + * @description + * Merge overlapping granule date ranges +*/ +function mergeSortedGranuleDateRanges(granules) { + return granules.reduce((acc, [start, end]) => { + if (!acc.length) return [[start, end]]; + // round start time down and end time up by 1 minute to account for small range gaps + const startTime = makeTime(start) - 60000; + const endTime = makeTime(end) + 60000; + const lastRangeEndTime = makeTime(acc.at(-1)[1]); + const lastRangeStartTime = makeTime(acc.at(-1)[0]); + if ((startTime >= lastRangeStartTime && startTime <= lastRangeEndTime) && (endTime >= lastRangeStartTime && endTime <= lastRangeEndTime)) { // within current range, ignore + return acc; + } + if (startTime > lastRangeEndTime) { // discontinuous, add new range + return [...acc, [start, end]]; + } + if (startTime <= lastRangeEndTime && endTime > lastRangeEndTime) { // intersects current range, merge + return acc.with(-1, [acc.at(-1)[0], end]); + } + return acc; + }, []); +} + +/** + * @method requestGranules + * @param {object} params + * @returns {array} granules + * @description + * Request granules from CMR +*/ +async function requestGranules(params) { + const { + shortName, + extent, + startDate, + endDate, + } = params; + const granules = []; + let hits = Infinity; + let searchAfter = false; + const url = `https://cmr.earthdata.nasa.gov/search/granules.json?shortName=${shortName}&bounding_box=${extent.join(',')}&temporal=${startDate}/${endDate}&sort_key=start_date&pageSize=2000`; + /* eslint-disable no-await-in-loop */ + do { // run the query at least once + const headers = searchAfter ? { 'Cmr-Search-After': searchAfter, 'Client-Id': 'Worldview' } : { 'Client-Id': 'Worldview' }; + const res = await fetch(url, { headers }); + searchAfter = res.headers.get('Cmr-Search-After'); + hits = parseInt(res.headers.get('Cmr-Hits'), 10); + const data = await res.json(); + granules.push(...data.feed.entry); + } while (searchAfter || hits > granules.length); // searchAfter will not be present if there are no more results https://cmr.earthdata.nasa.gov/search/site/docs/search/api.html#search-after + + return granules; +} +/** + * @method getLayerGranuleRanges + * @param {object} layer + * @returns {array} granuleDateRanges + * @description + * Get granule date ranges for a given layer +*/ +export async function getLayerGranuleRanges(layer) { + const extent = [-180, -90, 180, 90]; + const startDate = new Date(layer.startDate).toISOString(); + const endDate = layer.endDate ? new Date(layer.endDate).toISOString() : new Date().toISOString(); + const shortName = layer.conceptIds?.[0]?.shortName; + const nrtParams = { + shortName, + extent, + startDate, + endDate, + }; + const nrtGranules = await requestGranules(nrtParams); + let nonNRTGranules = []; + if (shortName.includes('_NRT')) { // if NRT, also get non-NRT granules + const nonNRTShortName = shortName.replace('_NRT', ''); + const nonNRTParams = { + shortName: nonNRTShortName, + extent, + startDate, + endDate, + }; + nonNRTGranules = await requestGranules(nonNRTParams); + } + const granules = [...nonNRTGranules, ...nrtGranules]; + const granuleDateRanges = granules.map(({ time_start: timeStart, time_end: timeEnd }) => [timeStart, timeEnd]); + const mergedGranuleDateRanges = mergeSortedGranuleDateRanges(granuleDateRanges); // merge overlapping granule ranges to simplify rendering + + return mergedGranuleDateRanges; +} diff --git a/web/js/modules/layers/actions.js b/web/js/modules/layers/actions.js index 4b9ad285e6..9b76ded15b 100644 --- a/web/js/modules/layers/actions.js +++ b/web/js/modules/layers/actions.js @@ -33,6 +33,7 @@ import { CHANGE_GRANULE_SATELLITE_INSTRUMENT_GROUP, UPDATE_COLLECTION, UPDATE_DDV_LAYER, + ADD_GRANULE_DATE_RANGES, } from './constants'; import { updateRecentLayers } from '../product-picker/util'; import { getOverlayGroups, getLayersFromGroups } from './util'; @@ -346,6 +347,21 @@ export function updateGranuleLayerState(layer) { }; } +export function addGranuleDateRanges(layer, granuleDateRanges) { + return (dispatch, getState) => { + const state = getState(); + const { activeString } = state.compare; + const { id } = layer; + + dispatch({ + type: ADD_GRANULE_DATE_RANGES, + activeString, + id, + granuleDateRanges, + }); + }; +} + export function updateGranuleLayerOptions(dates, def, count) { return (dispatch, getState) => { const state = getState(); diff --git a/web/js/modules/layers/constants.js b/web/js/modules/layers/constants.js index 6614064871..86f6e504e5 100644 --- a/web/js/modules/layers/constants.js +++ b/web/js/modules/layers/constants.js @@ -21,3 +21,4 @@ export const DEFAULT_NUM_GRANULES = 10; export const MIN_GRANULES = 1; export const MAX_GRANULES = 30; export const UPDATE_DDV_LAYER = 'LAYERS/UPDATE_DDV_LAYER'; +export const ADD_GRANULE_DATE_RANGES = 'LAYERS/ADD_GRANULE_DATE_RANGES'; diff --git a/web/js/modules/layers/reducers.js b/web/js/modules/layers/reducers.js index 847e9497c0..f25ec7a361 100644 --- a/web/js/modules/layers/reducers.js +++ b/web/js/modules/layers/reducers.js @@ -22,6 +22,7 @@ import { REMOVE_GROUP, UPDATE_DDV_LAYER, UPDATE_COLLECTION, + ADD_GRANULE_DATE_RANGES, } from './constants'; import { SET_CUSTOM as SET_CUSTOM_PALETTE, @@ -296,6 +297,23 @@ export function layerReducer(state = initialState, action) { }); } + case ADD_GRANULE_DATE_RANGES: { + const { + granuleDateRanges, + } = action; + const layerIndex = getLayerIndex(); + + return update(state, { + [compareState]: { + layers: { + [layerIndex]: { + granuleDateRanges: { $set: granuleDateRanges }, + }, + }, + }, + }); + } + case UPDATE_GRANULE_LAYER_OPTIONS: { const { id, activeKey, count, dates, From 364d3e92d94080be8a14f81bb32c65ff008f85a9 Mon Sep 17 00:00:00 2001 From: christof-wittreich Date: Tue, 30 Jul 2024 10:50:07 -0400 Subject: [PATCH 06/14] Fixed tall class addition (#5376) --- web/js/containers/share.js | 2 +- web/scss/features/share.scss | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/web/js/containers/share.js b/web/js/containers/share.js index e2ea7d7768..8f88a57f7b 100644 --- a/web/js/containers/share.js +++ b/web/js/containers/share.js @@ -335,7 +335,7 @@ class ShareLinkContainer extends Component { } = this.state; return ( -
+
Date: Wed, 31 Jul 2024 11:06:59 -0400 Subject: [PATCH 07/14] WV-3283 AERONET Daily Layer Date Limitting (#5377) * Prevented data from previous days showing * Changed to wrapX: false --------- Co-authored-by: minniewong --- .../wv.json/layers/aeronet/AERONET_ANGSTROM_440-870NM.json | 2 +- .../common/config/wv.json/layers/aeronet/AERONET_AOD_500NM.json | 2 +- .../layers/aeronet/DAILY_AERONET_ANGSTROM_440-870NM.json | 2 +- .../config/wv.json/layers/aeronet/DAILY_AERONET_AOD_500NM.json | 2 +- web/js/map/layerbuilder.js | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) 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/web/js/map/layerbuilder.js b/web/js/map/layerbuilder.js index 01b6dedcac..02612ce5fe 100644 --- a/web/js/map/layerbuilder.js +++ b/web/js/map/layerbuilder.js @@ -576,7 +576,7 @@ export default function mapLayerBuilder(config, cache, store) { for (let j = 0; j < split2.length; j += 1) { rowObj[key[j]] = split2[j]; } - if (!!rowObj.AERONET_Site_Name && rowObj.AERONET_Site_Name !== '' && !takenNamesActive[rowObj.AERONET_Site_Name]) { + if (!!rowObj.AERONET_Site_Name && rowObj.AERONET_Site_Name !== '' && !takenNamesActive[rowObj.AERONET_Site_Name] && parseInt(rowObj['Date(dd:mm:yyyy)'].split(':')[0], 10) === date.getUTCDate()) { featuresObj[rowObj.AERONET_Site_Name] = {}; featuresObj[rowObj.AERONET_Site_Name].type = 'Feature'; featuresObj[rowObj.AERONET_Site_Name].geometry = { type: 'Point' }; From 7ddc284d340ed31aac1b21c090f225da8af47b9b Mon Sep 17 00:00:00 2001 From: minniewong Date: Thu, 1 Aug 2024 10:15:19 -0400 Subject: [PATCH 08/14] WV-3186: Add SeaWiFS Corrected Reflectance layer (#5378) * Add SeaWiFS Corrected Reflectance layer * Update SEAWIFS_ORBVIEW-2_GAC_True_Color.md --- .../SEAWIFS_ORBVIEW-2_GAC_True_Color.md | 5 +++++ .../common/config/wv.json/layerOrder.json | 1 + .../SEAWIFS_ORBVIEW-2_GAC_True_Color.json | 12 ++++++++++++ .../measurements/Corrected Reflectance.json | 11 ++++++++++- .../common/config/wv.json/naturalEvents.json | 2 +- .../SEAWIFS_ORBVIEW-2_GAC_True_Color.jpg | Bin 0 -> 180802 bytes 6 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 config/default/common/config/metadata/layers/seawifs/SEAWIFS_ORBVIEW-2_GAC_True_Color.md create mode 100644 config/default/common/config/wv.json/layers/seawifs/SEAWIFS_ORBVIEW-2_GAC_True_Color.json create mode 100644 web/images/layers/previews/geographic/SEAWIFS_ORBVIEW-2_GAC_True_Color.jpg 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/wv.json/layerOrder.json b/config/default/common/config/wv.json/layerOrder.json index c0a7d2821b..7feeeb235a 100644 --- a/config/default/common/config/wv.json/layerOrder.json +++ b/config/default/common/config/wv.json/layerOrder.json @@ -145,6 +145,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", 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/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/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/web/images/layers/previews/geographic/SEAWIFS_ORBVIEW-2_GAC_True_Color.jpg b/web/images/layers/previews/geographic/SEAWIFS_ORBVIEW-2_GAC_True_Color.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ad544d3a100748725c99aae8d733c755bd961a40 GIT binary patch literal 180802 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 xqT?{%2_6D7 Date: Thu, 1 Aug 2024 13:32:39 -0400 Subject: [PATCH 09/14] Adjusted layers number in test (#5379) --- e2e/features/layers/layer-picker-test.spec.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 () => { From 92ba0f572606abd21123d55527ac40b249e387fb Mon Sep 17 00:00:00 2001 From: Patrick Moulden <4834892+PatchesMaps@users.noreply.github.com> Date: Mon, 5 Aug 2024 09:48:22 -0400 Subject: [PATCH 10/14] Dependency Updates 08-05-2024 --- package-lock.json | 381 ++++++++++++++++++++++++---------------------- package.json | 16 +- 2 files changed, 209 insertions(+), 188 deletions(-) diff --git a/package-lock.json b/package-lock.json index 928eb261c7..3dcae90db4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,8 +17,8 @@ "@fortawesome/free-solid-svg-icons": "^6.6.0", "@fortawesome/react-fontawesome": "^0.2.2", "@khanisak/temperature-converter": "^2.0.1", - "@reduxjs/toolkit": "^2.2.6", - "axios": "^1.7.2", + "@reduxjs/toolkit": "^2.2.7", + "axios": "^1.7.3", "bluebird": "3.7.2", "bootstrap": "^5.3.3", "cachai": "^1.0.2", @@ -46,7 +46,7 @@ "p-queue": "^8.0.1", "proj4": "^2.11.0", "prop-types": "^15.8.1", - "qs": "^6.12.3", + "qs": "^6.13.0", "react": "^18.3.1", "react-beautiful-dnd": "^13.1.1", "react-device-detect": "^2.2.3", @@ -78,11 +78,11 @@ "what-input": "^5.2.12" }, "devDependencies": { - "@babel/core": "^7.24.9", - "@babel/eslint-parser": "^7.24.8", + "@babel/core": "^7.25.2", + "@babel/eslint-parser": "^7.25.1", "@babel/plugin-transform-class-properties": "^7.24.7", "@babel/plugin-transform-private-methods": "^7.24.7", - "@babel/preset-env": "^7.24.8", + "@babel/preset-env": "^7.25.3", "@babel/preset-react": "^7.24.7", "@playwright/test": "^1.45.2", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.15", @@ -111,7 +111,7 @@ "eslint-plugin-react": "^7.34.4", "express": "^4.19.2", "glob": "^11.0.0", - "husky": "^9.1.2", + "husky": "^9.1.4", "jest": "^29.7.0", "jest-canvas-mock": "^2.5.2", "jest-environment-jsdom": "^29.7.0", @@ -128,7 +128,7 @@ "redux-mock-store": "^1.5.4", "run-script-os": "^1.1.6", "sass": "^1.77.8", - "sass-loader": "^15.0.0", + "sass-loader": "^16.0.0", "shelljs": "^0.8.5", "showdown": "^2.1.0", "stylelint": "^15.11.0", @@ -180,30 +180,28 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.8.tgz", - "integrity": "sha512-c4IM7OTg6k1Q+AJ153e2mc2QVTezTwnb4VzquwcyiEzGnW0Kedv4do/TrkU98qPeC5LNiMt/QXwIjzYXLBpyZg==", - "license": "MIT", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.2.tgz", + "integrity": "sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.24.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.9.tgz", - "integrity": "sha512-5e3FI4Q3M3Pbr21+5xJwCv6ZT6KmGkI0vw3Tozy5ODAQFTIWe37iT8Cr7Ice2Ntb+M3iSKCEWMB1MBgKrW3whg==", - "license": "MIT", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz", + "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.9", - "@babel/helper-compilation-targets": "^7.24.8", - "@babel/helper-module-transforms": "^7.24.9", - "@babel/helpers": "^7.24.8", - "@babel/parser": "^7.24.8", - "@babel/template": "^7.24.7", - "@babel/traverse": "^7.24.8", - "@babel/types": "^7.24.9", + "@babel/generator": "^7.25.0", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-module-transforms": "^7.25.2", + "@babel/helpers": "^7.25.0", + "@babel/parser": "^7.25.0", + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.2", + "@babel/types": "^7.25.2", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -219,11 +217,10 @@ } }, "node_modules/@babel/eslint-parser": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.24.8.tgz", - "integrity": "sha512-nYAikI4XTGokU2QX7Jx+v4rxZKhKivaQaREZjuW3mrJrbdWJ5yUfohnoUULge+zEEaKjPYNxhoRgUKktjXtbwA==", + "version": "7.25.1", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.25.1.tgz", + "integrity": "sha512-Y956ghgTT4j7rKesabkh5WeqgSFZVFwaPR0IWFm7KFHFmmJ4afbG49SmfW4S+GyRPx0Dy5jxEWA5t0rpxfElWg==", "dev": true, - "license": "MIT", "dependencies": { "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", "eslint-visitor-keys": "^2.1.0", @@ -238,12 +235,11 @@ } }, "node_modules/@babel/generator": { - "version": "7.24.10", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.10.tgz", - "integrity": "sha512-o9HBZL1G2129luEUlG1hB4N/nlYNWHnpwlND9eOMclRqqu1YDy2sSYVCFUZwl8I1Gxh+QSRrP2vD7EpUmFVXxg==", - "license": "MIT", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.0.tgz", + "integrity": "sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==", "dependencies": { - "@babel/types": "^7.24.9", + "@babel/types": "^7.25.0", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" @@ -288,12 +284,11 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.8.tgz", - "integrity": "sha512-oU+UoqCHdp+nWVDkpldqIQL/i/bvAv53tRqLG/s+cOXxe66zOYLU7ar/Xs3LdmBihrUMEUhwu6dMZwbNOYDwvw==", - "license": "MIT", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz", + "integrity": "sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==", "dependencies": { - "@babel/compat-data": "^7.24.8", + "@babel/compat-data": "^7.25.2", "@babel/helper-validator-option": "^7.24.8", "browserslist": "^4.23.1", "lru-cache": "^5.1.1", @@ -337,9 +332,10 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.24.7", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.2.tgz", + "integrity": "sha512-+wqVGP+DFmqwFD3EH6TMTfUNeqDehV3E/dl+Sd54eaXqm17tEUNbEIn4sVivVowbvUpOtIGxdo3GoXyDH9N/9g==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.24.7", "regexpu-core": "^5.3.1", @@ -369,6 +365,7 @@ }, "node_modules/@babel/helper-environment-visitor": { "version": "7.24.7", + "dev": true, "license": "MIT", "dependencies": { "@babel/types": "^7.24.7" @@ -379,6 +376,7 @@ }, "node_modules/@babel/helper-function-name": { "version": "7.24.7", + "dev": true, "license": "MIT", "dependencies": { "@babel/template": "^7.24.7", @@ -388,23 +386,14 @@ "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.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz", + "integrity": "sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.24.8", + "@babel/types": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -422,16 +411,14 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.24.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.9.tgz", - "integrity": "sha512-oYbh+rtFKj/HwBQkFlUzvcybzklmVdVV3UU+mN7n2t/q3yGHbuVdNxyFvSBO1tfvjyArpHNcWMAzsSPdyI46hw==", - "license": "MIT", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz", + "integrity": "sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==", "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-validator-identifier": "^7.24.7", + "@babel/traverse": "^7.25.2" }, "engines": { "node": ">=6.9.0" @@ -462,13 +449,14 @@ } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.24.7", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.0.tgz", + "integrity": "sha512-NhavI2eWEIz/H9dbrG0TuOicDhNexze43i5z7lEqwYm0WEZVTwnPpA0EafUTP7+6/W79HWIP2cTe3Z5NiSTVpw==", "dev": true, - "license": "MIT", "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-wrap-function": "^7.25.0", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -478,13 +466,14 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.24.7", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.0.tgz", + "integrity": "sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==", "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.24.8", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -518,6 +507,7 @@ }, "node_modules/@babel/helper-split-export-declaration": { "version": "7.24.7", + "dev": true, "license": "MIT", "dependencies": { "@babel/types": "^7.24.7" @@ -552,27 +542,26 @@ } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.24.7", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.0.tgz", + "integrity": "sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ==", "dev": true, - "license": "MIT", "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.0", + "@babel/traverse": "^7.25.0", + "@babel/types": "^7.25.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.8.tgz", - "integrity": "sha512-gV2265Nkcz7weJJfvDoAEVzC1e2OTDpkGbEsebse8koXUJUXPsCMi7sRo/+SPMuMZ9MtUPnGwITTnQnU5YjyaQ==", - "license": "MIT", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.0.tgz", + "integrity": "sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==", "dependencies": { - "@babel/template": "^7.24.7", - "@babel/types": "^7.24.8" + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -592,10 +581,12 @@ } }, "node_modules/@babel/parser": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.8.tgz", - "integrity": "sha512-WzfbgXOkGzZiXXCqk43kKwZjzwx4oulxZi3nq2TYL9mOjQv6kYwul9mz6ID36njuL7Xkp6nJEfok848Zj10j/w==", - "license": "MIT", + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.3.tgz", + "integrity": "sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==", + "dependencies": { + "@babel/types": "^7.25.2" + }, "bin": { "parser": "bin/babel-parser.js" }, @@ -604,12 +595,28 @@ } }, "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { - "version": "7.24.7", + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.3.tgz", + "integrity": "sha512-wUrcsxZg6rqBXG05HG1FPYgsP6EvwF4WpBbxIpWIIYnH8wG0gzx3yZY3dtEHas4sTAOGkbTsc9EGPxwff8lRoA==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/traverse": "^7.25.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.0.tgz", + "integrity": "sha512-Bm4bH2qsX880b/3ziJ8KD711LT7z4u8CFudmjqle65AZj/HNUFhEf90dqYv6O86buWvSBmeQDjv0Tn2aF/bIBA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -619,11 +626,12 @@ } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.24.7", + "version": "7.25.0", + "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.0.tgz", + "integrity": "sha512-lXwdNZtTmeVOOFtwM/WDe7yg1PL8sYhRk/XH0FzbR2HDQ0xC+EnQ/JHeoMYSavtU115tnUk0q9CDyq8si+LMAA==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -649,12 +657,13 @@ } }, "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.24.7", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.0.tgz", + "integrity": "sha512-tggFrk1AIShG/RUQbEwt2Tr/E+ObkfwrPjR6BjbRvsx24+PSjK8zrq0GWPNCjo8qpRx4DuJzlcvWJqlm+0h3kw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -945,14 +954,15 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.24.7", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.0.tgz", + "integrity": "sha512-uaIi2FdqzjpAMvVqvB51S42oC2JEVgh0LDsGfZVDysWE8LrJtQC2jvKmOqEYThKyB7bDEb7BP1GYWDm7tABA0Q==", "dev": true, - "license": "MIT", "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.24.8", + "@babel/helper-remap-async-to-generator": "^7.25.0", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -992,11 +1002,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.24.7", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.0.tgz", + "integrity": "sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -1037,19 +1048,16 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.8.tgz", - "integrity": "sha512-VXy91c47uujj758ud9wx+OMgheXm4qJfyhj1P18YvlrQkNOSrwsteHk+EFS3OMGfhMhpZa0A+81eE7G4QC+3CA==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.0.tgz", + "integrity": "sha512-xyi6qjr/fYU304fiRwFbekzkqVJZ6A7hOjWZd+89FVcBqPV3S9Wuozz82xdpLspckeaafntbzglaW4pqpzvtSw==", "dev": true, - "license": "MIT", "dependencies": { "@babel/helper-annotate-as-pure": "^7.24.7", "@babel/helper-compilation-targets": "^7.24.8", - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-function-name": "^7.24.7", "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-replace-supers": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/helper-replace-supers": "^7.25.0", + "@babel/traverse": "^7.25.0", "globals": "^11.1.0" }, "engines": { @@ -1119,6 +1127,22 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.0.tgz", + "integrity": "sha512-YLpb4LlYSc3sCUa35un84poXoraOiQucUTTu8X1j18JV+gNa8E0nyUf/CjZ171IRGr4jEguF+vzJU66QZhn29g==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.0", + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, "node_modules/@babel/plugin-transform-dynamic-import": { "version": "7.24.7", "dev": true, @@ -1180,13 +1204,14 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.24.7", + "version": "7.25.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.1.tgz", + "integrity": "sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA==", "dev": true, - "license": "MIT", "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.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/traverse": "^7.25.1" }, "engines": { "node": ">=6.9.0" @@ -1211,11 +1236,12 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.24.7", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.2.tgz", + "integrity": "sha512-HQI+HcTbm9ur3Z2DkO+jgESMAMcYLuN/A7NRw9juzxAezN9AvqvUTnpKP/9kkYANz6u7dFlAyOu44ejuGySlfw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -1287,14 +1313,15 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.24.7", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.0.tgz", + "integrity": "sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw==", "dev": true, - "license": "MIT", "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.0", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -1725,20 +1752,20 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.8.tgz", - "integrity": "sha512-vObvMZB6hNWuDxhSaEPTKCwcqkAIuDtE+bQGn4XMXne1DSLzFVY8Vmj1bm+mUQXYNN8NmaQEO+r8MMbzPr1jBQ==", + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.25.3.tgz", + "integrity": "sha512-QsYW7UeAaXvLPX9tdVliMJE7MD7M6MLYVTovRTIwhoYQVFHR1rM4wO8wqAezYi3/BpSD+NzVCZ69R6smWiIi8g==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.24.8", - "@babel/helper-compilation-targets": "^7.24.8", + "@babel/compat-data": "^7.25.2", + "@babel/helper-compilation-targets": "^7.25.2", "@babel/helper-plugin-utils": "^7.24.8", "@babel/helper-validator-option": "^7.24.8", - "@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-firefox-class-in-computed-class-key": "^7.25.3", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.0", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.0", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.7", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.7", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.0", "@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", @@ -1759,29 +1786,30 @@ "@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-generator-functions": "^7.25.0", "@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-block-scoping": "^7.25.0", "@babel/plugin-transform-class-properties": "^7.24.7", "@babel/plugin-transform-class-static-block": "^7.24.7", - "@babel/plugin-transform-classes": "^7.24.8", + "@babel/plugin-transform-classes": "^7.25.0", "@babel/plugin-transform-computed-properties": "^7.24.7", "@babel/plugin-transform-destructuring": "^7.24.8", "@babel/plugin-transform-dotall-regex": "^7.24.7", "@babel/plugin-transform-duplicate-keys": "^7.24.7", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.0", "@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-function-name": "^7.25.1", "@babel/plugin-transform-json-strings": "^7.24.7", - "@babel/plugin-transform-literals": "^7.24.7", + "@babel/plugin-transform-literals": "^7.25.2", "@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.8", - "@babel/plugin-transform-modules-systemjs": "^7.24.7", + "@babel/plugin-transform-modules-systemjs": "^7.25.0", "@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", @@ -1868,31 +1896,28 @@ } }, "node_modules/@babel/template": { - "version": "7.24.7", - "license": "MIT", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz", + "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==", "dependencies": { "@babel/code-frame": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/parser": "^7.25.0", + "@babel/types": "^7.25.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.8.tgz", - "integrity": "sha512-t0P1xxAPzEDcEPmjprAQq19NWum4K0EQPjMwZQZbHt+GiZqvjCHjj755Weq1YRPVzBI+3zSfvScfpnuIecVFJQ==", - "license": "MIT", + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.3.tgz", + "integrity": "sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ==", "dependencies": { "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.8", - "@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.8", - "@babel/types": "^7.24.8", + "@babel/generator": "^7.25.0", + "@babel/parser": "^7.25.3", + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.2", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -1901,10 +1926,9 @@ } }, "node_modules/@babel/types": { - "version": "7.24.9", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.9.tgz", - "integrity": "sha512-xm8XrMKz0IlUdocVbYJe0Z9xEgidU7msskG8BbhnTPK/HZ2z/7FP7ykqPgrUH+C+r414mNfNWam1f2vqOjqjYQ==", - "license": "MIT", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.2.tgz", + "integrity": "sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==", "dependencies": { "@babel/helper-string-parser": "^7.24.8", "@babel/helper-validator-identifier": "^7.24.7", @@ -3405,10 +3429,9 @@ } }, "node_modules/@reduxjs/toolkit": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.2.6.tgz", - "integrity": "sha512-kH0r495c5z1t0g796eDQAkYbEQ3a1OLYN9o8jQQVZyKyw367pfRGS+qZLkHYvFHiUUdafpoSlQ2QYObIApjPWA==", - "license": "MIT", + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.2.7.tgz", + "integrity": "sha512-faI3cZbSdFb8yv9dhDTmGwclW0vk0z5o1cia+kf7gCbaCwHI5e+7tP57mJUv22pNcNbeA62GSrPpfrUfdXcQ6g==", "dependencies": { "immer": "^10.0.3", "redux": "^5.0.1", @@ -4691,8 +4714,9 @@ } }, "node_modules/axios": { - "version": "1.7.2", - "license": "MIT", + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.3.tgz", + "integrity": "sha512-Ar7ND9pU99eJ9GpoGQKhKf58GpUOgnzuaB7ueNQ5BMi0p+LZ5oaEnfF999fAArcTIBwXTCHAmGcHOZJaWPq9Nw==", "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.0", @@ -9445,11 +9469,10 @@ } }, "node_modules/husky": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.2.tgz", - "integrity": "sha512-1/aDMXZdhr1VdJJTLt6e7BipM0Jd9qkpubPiIplon1WmCeOy3nnzsCMeBqS9AsL5ioonl8F8y/F2CLOmk19/Pw==", + "version": "9.1.4", + "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.4.tgz", + "integrity": "sha512-bho94YyReb4JV7LYWRWxZ/xr6TtOTt8cMfmQ39MQYJ7f/YE268s3GdghGwi+y4zAeqewE5zYLvuhV0M0ijsDEA==", "dev": true, - "license": "MIT", "bin": { "husky": "bin.js" }, @@ -14590,10 +14613,9 @@ "license": "MIT" }, "node_modules/qs": { - "version": "6.12.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.12.3.tgz", - "integrity": "sha512-AWJm14H1vVaO/iNZ4/hO+HyaTehuy9nRqVdkTqlJt0HWvBiBIEXFmb4C0DGeYo3Xes9rrEW+TxHsaigCbN5ICQ==", - "license": "BSD-3-Clause", + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", "dependencies": { "side-channel": "^1.0.6" }, @@ -15769,11 +15791,10 @@ } }, "node_modules/sass-loader": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-15.0.0.tgz", - "integrity": "sha512-mbXAL7sI/fgt3skXR6xHxtKkaGyxRrGf7zrU4hLLWxBDJEcAe0QsoNy92qKttCb3zfMniTkU2kD9yakUKtW7vQ==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.0.tgz", + "integrity": "sha512-n13Z+3rU9A177dk4888czcVFiC8CL9dii4qpXWUg3YIIgZEvi9TCFKjOQcbK0kJM7DJu9VucrZFddvNfYCPwtw==", "dev": true, - "license": "MIT", "dependencies": { "neo-async": "^2.6.2" }, diff --git a/package.json b/package.json index f5629e50e9..21e5da052b 100644 --- a/package.json +++ b/package.json @@ -77,11 +77,11 @@ "upload": "node tasks/util/upload.js" }, "devDependencies": { - "@babel/core": "^7.24.9", - "@babel/eslint-parser": "^7.24.8", + "@babel/core": "^7.25.2", + "@babel/eslint-parser": "^7.25.1", "@babel/plugin-transform-class-properties": "^7.24.7", "@babel/plugin-transform-private-methods": "^7.24.7", - "@babel/preset-env": "^7.24.8", + "@babel/preset-env": "^7.25.3", "@babel/preset-react": "^7.24.7", "@playwright/test": "^1.45.2", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.15", @@ -110,7 +110,7 @@ "eslint-plugin-react": "^7.34.4", "express": "^4.19.2", "glob": "^11.0.0", - "husky": "^9.1.2", + "husky": "^9.1.4", "jest": "^29.7.0", "jest-canvas-mock": "^2.5.2", "jest-environment-jsdom": "^29.7.0", @@ -127,7 +127,7 @@ "redux-mock-store": "^1.5.4", "run-script-os": "^1.1.6", "sass": "^1.77.8", - "sass-loader": "^15.0.0", + "sass-loader": "^16.0.0", "shelljs": "^0.8.5", "showdown": "^2.1.0", "stylelint": "^15.11.0", @@ -153,8 +153,8 @@ "@fortawesome/free-solid-svg-icons": "^6.6.0", "@fortawesome/react-fontawesome": "^0.2.2", "@khanisak/temperature-converter": "^2.0.1", - "@reduxjs/toolkit": "^2.2.6", - "axios": "^1.7.2", + "@reduxjs/toolkit": "^2.2.7", + "axios": "^1.7.3", "bluebird": "3.7.2", "bootstrap": "^5.3.3", "cachai": "^1.0.2", @@ -182,7 +182,7 @@ "p-queue": "^8.0.1", "proj4": "^2.11.0", "prop-types": "^15.8.1", - "qs": "^6.12.3", + "qs": "^6.13.0", "react": "^18.3.1", "react-beautiful-dnd": "^13.1.1", "react-device-detect": "^2.2.3", From 1fb228e9e654c2103db3eab483457ff65cb54ec6 Mon Sep 17 00:00:00 2001 From: christof-wittreich Date: Tue, 6 Aug 2024 14:11:47 -0400 Subject: [PATCH 11/14] Node 20.16.0 (#5391) --- Dockerfile | 2 +- package-lock.json | 2 +- package.json | 2 +- tasks/bamboo/linkReport.sh | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 255844bbdd..340c47f0f5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -19,7 +19,7 @@ RUN dnf install -y epel-release && \ xz RUN mkdir -p /usr/local/nvm ENV NVM_DIR=/usr/local/nvm -ENV NODE_VERSION=20.12.2 +ENV NODE_VERSION=20.16.0 RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash && \ . "$NVM_DIR/nvm.sh" && \ nvm install v${NODE_VERSION} && \ diff --git a/package-lock.json b/package-lock.json index 3dcae90db4..84dc0a3150 100644 --- a/package-lock.json +++ b/package-lock.json @@ -147,7 +147,7 @@ "yargs": "^17.7.2" }, "engines": { - "node": ">= 20.12.2" + "node": ">= 20.16.0" } }, "node_modules/@aashutoshrathi/word-wrap": { diff --git a/package.json b/package.json index 21e5da052b..4ba0dd43cc 100644 --- a/package.json +++ b/package.json @@ -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", 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} From f5e6f32b10cfb3b5d59ab8660a7f37218f4a5593 Mon Sep 17 00:00:00 2001 From: christof-wittreich Date: Thu, 8 Aug 2024 09:50:30 -0400 Subject: [PATCH 12/14] WV-3285 Pre-Caching Nearby Non-Subdaily Layers Fix (#5380) * Cleared time on request * Prevented subdaily layers from being time-stripped --- web/js/map/layerbuilder.js | 8 +++++--- web/js/util/util.js | 4 +++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/web/js/map/layerbuilder.js b/web/js/map/layerbuilder.js index 02612ce5fe..17921c6c4f 100644 --- a/web/js/map/layerbuilder.js +++ b/web/js/map/layerbuilder.js @@ -120,7 +120,8 @@ export default function mapLayerBuilder(config, cache, store) { // Don't key by time if this is a static layer if (def.period) { - date = util.toISOStringSeconds(util.roundTimeOneMinute(options.date)); + const isSubdaily = def.period === 'subdaily'; + date = util.toISOStringSeconds(util.roundTimeOneMinute(options.date), !isSubdaily); } if (isPaletteActive(def.id, activeGroupStr, state)) { style = getPaletteKeys(def.id, undefined, state); @@ -373,7 +374,7 @@ export default function mapLayerBuilder(config, cache, store) { tileSize: tileSize[0], }; - const urlParameters = `?TIME=${util.toISOStringSeconds(layerDate)}`; + const urlParameters = `?TIME=${util.toISOStringSeconds(layerDate, !isSubdaily)}`; const sourceURL = def.sourceOverride || configSource.url; const sourceOptions = { url: sourceURL + urlParameters, @@ -421,6 +422,7 @@ export default function mapLayerBuilder(config, cache, store) { let extent; let start; let res; + const isSubdaily = def.period === 'subdaily'; const source = config.sources[def.source]; extent = selectedProj.maxExtent; @@ -459,7 +461,7 @@ export default function mapLayerBuilder(config, cache, store) { if (day && def.wrapadjacentdays) { date = util.dateAdd(date, 'day', day); } - urlParameters = `?TIME=${util.toISOStringSeconds(util.roundTimeOneMinute(date))}`; + urlParameters = `?TIME=${util.toISOStringSeconds(util.roundTimeOneMinute(date), !isSubdaily)}`; const sourceOptions = { url: source.url + urlParameters, diff --git a/web/js/util/util.js b/web/js/util/util.js index 29c70067dd..ce82d4f4dc 100644 --- a/web/js/util/util.js +++ b/web/js/util/util.js @@ -232,10 +232,12 @@ export default (function(self) { * @method toISOStringSeconds * @static * @param {Date} date the date to convert + * @param {Boolean} shouldRemoveTime if the time should be removed from the date * @return {string} ISO string in the form of `YYYY-MM-DDThh:mm:ssZ`. */ - self.toISOStringSeconds = function(date) { + self.toISOStringSeconds = function(date, shouldRemoveTime = false) { const isString = typeof date === 'string' || date instanceof String; + if (shouldRemoveTime) date = self.clearTimeUTC(date); const dateString = isString ? date : date.toISOString(); return `${dateString.split('.')[0]}Z`; }; From fcb5886aedd88a5efd7f764907c10d80ccebd47d Mon Sep 17 00:00:00 2001 From: Patrick Moulden <4834892+PatchesMaps@users.noreply.github.com> Date: Thu, 8 Aug 2024 10:39:16 -0400 Subject: [PATCH 13/14] refactor: Deduplicate granule data in getQueriedGranuleDates function (#5393) --- web/js/map/granule/granule-layer-builder.js | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/web/js/map/granule/granule-layer-builder.js b/web/js/map/granule/granule-layer-builder.js index 3c5038ebe5..6ce11dc246 100644 --- a/web/js/map/granule/granule-layer-builder.js +++ b/web/js/map/granule/granule-layer-builder.js @@ -63,17 +63,17 @@ export default function granuleLayerBuilder(cache, store, createLayerWMTS) { /** * Query CMR to get dates * @param {object} def - Layer specs - * @param {object} date - current selected date (Note: may not return this date, but this date will be the max returned) + * @param {object} selectedDate - current selected date (Note: may not return this date, but this date will be the max returned) */ - const getQueriedGranuleDates = async (def, date) => { + const getQueriedGranuleDates = async (def, selectedDate) => { const { title, } = def; const state = store.getState(); const { proj: { selected: { crs } } } = state; const getGranulesUrl = getGranulesUrlSelector(state); - const params = getParamsForGranuleRequest(def, date, crs); - const nrtParams = getParamsForGranuleRequest(def, date, crs, true); + const params = getParamsForGranuleRequest(def, selectedDate, crs); + const nrtParams = getParamsForGranuleRequest(def, selectedDate, crs, true); let data = []; let nrtData = []; try { @@ -101,7 +101,14 @@ export default function granuleLayerBuilder(cache, store, createLayerWMTS) { return transformGranuleData(entry, date, crs); }); - return transformedData; + const dedupedData = transformedData.reduce((acc, granule) => { + const { date } = granule; + const dateIndex = acc.findIndex((g) => g.date === date); + if (dateIndex >= 0) return acc; + return [...acc, granule]; + }, []); + + return dedupedData; }; /** From e0e707a41647cdc7474dcafdad0e3d17804504e5 Mon Sep 17 00:00:00 2001 From: PatchesMaps Date: Thu, 8 Aug 2024 11:29:09 -0400 Subject: [PATCH 14/14] v4.45.0 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 84dc0a3150..f28a6b0fb1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "worldview", - "version": "4.44.0", + "version": "4.45.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "worldview", - "version": "4.44.0", + "version": "4.45.0", "hasInstallScript": true, "license": "NASA-1.3", "dependencies": { diff --git a/package.json b/package.json index 4ba0dd43cc..0a89f62474 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "worldview", - "version": "4.44.0", + "version": "4.45.0", "description": "Interactive interface for browsing full-resolution, global satellite imagery", "keywords": [ "NASA",