diff --git a/.gitignore b/.gitignore index 31b153a9b..8ad729bbf 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .vscode .DS_Store node_modules -.cache \ No newline at end of file +.cache +.env \ No newline at end of file diff --git a/ada-project-docs/wave-06.md b/ada-project-docs/wave-06.md index 1f90020ff..ab82ba362 100644 --- a/ada-project-docs/wave-06.md +++ b/ada-project-docs/wave-06.md @@ -1,4 +1,4 @@ -# Wave 6: Resetting the City Name +Wave 6: Resetting the City Name Include a button that resets the city name. diff --git a/index.html b/index.html index 68b320b9a..6e41a1ec4 100644 --- a/index.html +++ b/index.html @@ -5,8 +5,48 @@ Weather Report + + + +
+
+

Today's date

+

City

+
+
+ +

Temperature

+ +
+
emojis

+ +
+ +
+ +
+
+ +
+ +
+ +
Look up your city: +
+ + + \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 000000000..2f8394b8c --- /dev/null +++ b/package-lock.json @@ -0,0 +1,173 @@ +{ + "name": "weather-report", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "dependencies": { + "axios": "^1.2.1" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/axios": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.2.1.tgz", + "integrity": "sha512-I88cFiGu9ryt/tfVEi4kX2SITsvDddTajXTOFmt2uK1ZVA8LytjtdeyefdQWEf5PU8w+4SSJDoYnggflB5tW4A==", + "dependencies": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + } + }, + "dependencies": { + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "axios": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.2.1.tgz", + "integrity": "sha512-I88cFiGu9ryt/tfVEi4kX2SITsvDddTajXTOFmt2uK1ZVA8LytjtdeyefdQWEf5PU8w+4SSJDoYnggflB5tW4A==", + "requires": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + } + } +} diff --git a/package.json b/package.json index 9cf5ca65b..1cfcba810 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { "dependencies": { - "axios": "^0.27.2" + "axios": "^1.2.1" } } diff --git a/src/index.js b/src/index.js index e69de29bb..e551a09b3 100644 --- a/src/index.js +++ b/src/index.js @@ -0,0 +1,169 @@ +const weekday = new Date().toLocaleString("default", {weekday: "long"}); +const date = new Intl.DateTimeFormat('en-US', { + year: 'numeric', + month: 'long', + day: 'numeric', +}); +document.getElementById('current-date').textContent = `${weekday}, ${date.format()}`; + +let currentCity = 'San Diego, CA, USA' +document.getElementById('display-city').textContent = currentCity; + +let temperatureNumber = 70; + +const displayTempId = document.getElementById('display-temperature'); +const logTempText = () => { + displayTempId.textContent = `${temperatureNumber}Β°F`; +} +const changeTextColor = () => { + if (temperatureNumber < 50) { + displayTempId.style.color = "aqua"; + } else if (temperatureNumber >= 50 && temperatureNumber <= 59) { + displayTempId.style.color = "limegreen"; + } else if (temperatureNumber >= 60 && temperatureNumber <= 69) { + displayTempId.style.color = "gold"; + } else if (temperatureNumber >= 70 && temperatureNumber <= 79) { + displayTempId.style.color = "orange"; + } else { + displayTempId.style.color = "red"; + } +}; + +const displayLandscape = document.getElementById('landscape'); +const changeLandscape = (temp) => { + if (temp > 79) { + return '🌡__🐍_πŸ¦‚_🌡🌡__🐍_🏜_πŸ¦‚'; + } else if (temp >= 70 && temp <= 79) { + return '🌸🌿🌼__🌷🌻🌿_☘️🌱_🌻🌷'; + } else if (temp >= 60 && temp <= 69) { + return '🌾🌾_πŸƒ_πŸͺ¨__πŸ›€_🌾🌾🌾_πŸƒ'; + } else if (temp <= 59) { + return 'πŸŒ²πŸŒ²β›„οΈπŸŒ²β›„οΈπŸ‚πŸŒ²πŸπŸŒ²πŸŒ²β›„οΈπŸ‚πŸŒ²'; + } +}; + +const logLandscape = (temp) => { + displayLandscape.textContent = `${changeLandscape(temp)}` +}; + +const weatherIcon = (imgURL) => { + let img=document.createElement('img'); + img.src = imgURL; +} + + +const displaySky = document.getElementById('sky'); +const dropdownValue = document.getElementById('weather-dropdown'); +const changeSky = (skyDrop) => { + if (skyDrop === 'sun') { + return '☁️ _ ☁️ _ _ _ β˜€οΈ _ _ _ ☁️ _ ☁️'; + } else if (skyDrop === 'clouds') { + return '☁️☁️ ☁️ ☁️☁️ ☁️ 🌀 ☁️ ☁️☁️'; + } else if (skyDrop === 'rain') { + return 'πŸŒ§πŸŒˆβ›ˆπŸŒ§πŸŒ§πŸ’§β›ˆπŸŒ§πŸŒ¦πŸŒ§πŸ’§πŸŒ§πŸŒ§'; + } else if (skyDrop === 'snow') { + return 'πŸŒ¨β„οΈπŸŒ¨πŸŒ¨β„οΈβ„οΈπŸŒ¨β„οΈπŸŒ¨β„οΈβ„οΈπŸŒ¨πŸŒ¨'; + } else { + return ' '; + } +}; + + + + +dropdownValue.addEventListener('change', function handleChange () { + let newSky = changeSky(dropdownValue.options[dropdownValue.selectedIndex].value); + displaySky.textContent = `${newSky}`; + display +}); + +logTempText(); +changeTextColor(); +logLandscape(temperatureNumber); + +const currentWeather = document.getElementById('current-temp-button'); +currentWeather.addEventListener("click", function () { + if (textBox.value !== '') { + findLocation(textBox.value); + } else { + findLocation('San Diego, CA, USA'); + } +}); + +const upButton = document.getElementById('increase-temp-button'); +upButton.textContent = 'πŸ”₯'; +upButton.addEventListener("click", function() { + temperatureNumber += 1; + logTempText(); + changeTextColor(); + logLandscape(temperatureNumber); +}); + +const downButton = document.getElementById('decrease-temp-button'); +downButton.innerText = '❄️'; +downButton.addEventListener("click", function() { + temperatureNumber -= 1; + logTempText(); + changeTextColor(); + logLandscape(temperatureNumber); +}); + +const resetCity = document.getElementById('reset-city-button'); +resetCity.addEventListener("click", function() { + currentCity = 'San Diego, CA, USA'; + document.getElementById('display-city').textContent = currentCity; + document.getElementById('text-box').value=''; +}) + +const textBox = document.getElementById('text-box'); +textBox.onkeyup = function () { + document.getElementById('display-city').innerHTML = textBox.value; +}; + + +/* ~~CALLING APIs~~ */ +// const axios = require('axios'); + +const findLocation = (location) => { + axios.get('http://127.0.0.1:5000/location', + { + params: { + q: location, + } + }) + .then( (response) => { + lat = response.data[0].lat; + long = response.data[0].lon; + console.log('Succesful location call!') + + let secondCall = findWeather(lat,long); + secondCall; + console.log('Second weather call!'); + }) + .catch( (error) => { + console.log('ERROR') + }); +} + +const findWeather = (lat, long) => { + axios.get('http://127.0.0.1:5000/weather', + { + params: { + lat: lat, + lon: long, + } + }) + .then( (response) => { + temperatureResponse = Math.floor(response.data['main']['temp']); + // weatherResponse = JSON.stringify(response.data['weather'][0]['main']); + // console.log(`Successful weather response: ${weatherResponse}`) + temperatureNumber = temperatureResponse + console.log(`Successful temperature response: ${temperatureResponse}Β°F!`); + logTempText(); + changeTextColor(); + logLandscape(temperatureNumber); + }) + .catch( (error) => { + console.log('ERROR') + }); +} diff --git a/src/photos/SanDiegoCA.jpeg b/src/photos/SanDiegoCA.jpeg new file mode 100644 index 000000000..b98b50ded Binary files /dev/null and b/src/photos/SanDiegoCA.jpeg differ diff --git a/src/photos/partly_cloudy_white.png b/src/photos/partly_cloudy_white.png new file mode 100644 index 000000000..1cb56244b Binary files /dev/null and b/src/photos/partly_cloudy_white.png differ diff --git a/src/photos/rainy_white.png b/src/photos/rainy_white.png new file mode 100644 index 000000000..1216e2691 Binary files /dev/null and b/src/photos/rainy_white.png differ diff --git a/src/photos/snowy_white.png b/src/photos/snowy_white.png new file mode 100644 index 000000000..f7ba4e662 Binary files /dev/null and b/src/photos/snowy_white.png differ diff --git a/src/photos/sunny_white.png b/src/photos/sunny_white.png new file mode 100644 index 000000000..536ea80f9 Binary files /dev/null and b/src/photos/sunny_white.png differ diff --git a/styles/index.css b/styles/index.css index e69de29bb..f509fe66d 100644 --- a/styles/index.css +++ b/styles/index.css @@ -0,0 +1,125 @@ +html { + font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; + min-height: 100%; + display: flex; + justify-content: center; + align-items: center; + background-color: rgb(251, 237, 232); +} + +#outermost-margin { + align-items: center; + padding-top: 20vh; + padding-bottom: 20vh; + width: 75vw; + background-color: rgba(255, 255, 255, 0.642); + display: flex; + justify-content: center; + +} + +.weather-box { + padding: 1.2em;em; +} + +#left-box { + background: linear-gradient(15deg, rgba(136,235,239,1) 4%, rgba(235,216,253,1) 100%); + text-align: center; + align-items: center; + display: flex; + flex-direction: column; + justify-content: space-evenly; + border-radius: 3%; +} + +#temperature-container { + display: flex; + justify-content: space-between; + align-items:center; +} + +#left-box, p { + font-weight: 50; + color: white; + font-size: large; +} + +#current-date{ + text-shadow: 0em 0em 0.5em rgba(0, 0, 0, 0.536); +} + +#display-city { + font-size: 22px; + text-shadow: 0em 0em 1em rgba(45, 45, 45, 0.51); +} + +#sky { + text-shadow: 0em 0em 0.1em rgba(67, 93, 103, 0.641); +} + +#display-temperature { + font-size: 30px; + text-shadow: 0em 0em 0.1em rgb(222, 221, 221); +} + +#increase-temp-button, #decrease-temp-button { + display:inline-block; + width: fit-content; + height: fit-content; + padding: 0.1em; + border:none; + background-color: #ffffff00; + margin:0 0.3em; + box-sizing: border-box; + font-size: 23px; + color:#FFFFFF; + text-align:center; + text-shadow: 0em 0em 0.1em rgba(65, 65, 65, 0.834); + /* background-color: #ffffff3c; */ + } + +#current-temp-button { + display: flex; + flex-direction: column; + align-items: center; + width: 10vw; + padding: 4px 0px; + font-family: -apple-system, BlinkMacSystemFont, 'Roboto', sans-serif; + border-radius: 4px; + color: #7ea0a8; + background: rgba(255, 255, 255, 0.41); + border: none; + box-shadow: 0px 0.5px 1px rgba(0, 0, 0, 0.1); + } + +#reset-city-button { + display: flex; + width: 5vw; + padding: 4px 9px; + font-family: -apple-system, BlinkMacSystemFont, 'Roboto', sans-serif; + border-radius: 4px; + color: #7ea0a8; + background: rgba(255, 255, 255, 0.41); + border: none; + box-shadow: 0px 0.5px 1px rgba(0, 0, 0, 0.1); + } + + +#right-box { + color: rgb(255, 255, 255); + text-shadow: 0em 0em 0.3em rgba(0, 0, 0, 0.44); + font-weight: 500; + display: flex; + flex-direction: column; + justify-content: space-evenly; + height: 30vh; + width: 14vw; + background-color: rgb(173, 229, 246); + background-image: url(../src/photos/SanDiegoCA.jpeg); + background-position: 10px; + background-position-y: 480px; + background-position-x: 400px; + border-top-right-radius: 3%; + border-bottom-right-radius: 3%; +} + diff --git a/weather-report-proxy-server b/weather-report-proxy-server new file mode 160000 index 000000000..ea5dd1a76 --- /dev/null +++ b/weather-report-proxy-server @@ -0,0 +1 @@ +Subproject commit ea5dd1a768fd69f8a879aee21b638aeb1cb52fae diff --git a/yarn.lock b/yarn.lock index 37fbaed29..ac035ed1b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,53 +2,59 @@ # yarn lockfile v1 -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== - -axios@^0.27.2: - version "0.27.2" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.27.2.tgz#207658cc8621606e586c85db4b41a750e756d972" - integrity sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ== +"asynckit@^0.4.0": + "integrity" "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + "resolved" "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" + "version" "0.4.0" + +"axios@^1.2.1": + "integrity" "sha512-I88cFiGu9ryt/tfVEi4kX2SITsvDddTajXTOFmt2uK1ZVA8LytjtdeyefdQWEf5PU8w+4SSJDoYnggflB5tW4A==" + "resolved" "https://registry.npmjs.org/axios/-/axios-1.2.1.tgz" + "version" "1.2.1" dependencies: - follow-redirects "^1.14.9" - form-data "^4.0.0" - -combined-stream@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + "follow-redirects" "^1.15.0" + "form-data" "^4.0.0" + "proxy-from-env" "^1.1.0" + +"combined-stream@^1.0.8": + "integrity" "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==" + "resolved" "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" + "version" "1.0.8" dependencies: - delayed-stream "~1.0.0" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= - -follow-redirects@^1.14.9: - version "1.15.0" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.0.tgz#06441868281c86d0dda4ad8bdaead2d02dca89d4" - integrity sha512-aExlJShTV4qOUOL7yF1U5tvLCB0xQuudbf6toyYA0E/acBNw71mvjFTnLaRp50aQaYocMR0a/RMMBIHeZnGyjQ== - -form-data@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" - integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + "delayed-stream" "~1.0.0" + +"delayed-stream@~1.0.0": + "integrity" "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + "resolved" "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + "version" "1.0.0" + +"follow-redirects@^1.15.0": + "integrity" "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" + "resolved" "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz" + "version" "1.15.2" + +"form-data@^4.0.0": + "integrity" "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==" + "resolved" "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz" + "version" "4.0.0" dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - -mime-db@1.52.0: - version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - -mime-types@^2.1.12: - version "2.1.35" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + "asynckit" "^0.4.0" + "combined-stream" "^1.0.8" + "mime-types" "^2.1.12" + +"mime-db@1.52.0": + "integrity" "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + "resolved" "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" + "version" "1.52.0" + +"mime-types@^2.1.12": + "integrity" "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==" + "resolved" "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" + "version" "2.1.35" dependencies: - mime-db "1.52.0" + "mime-db" "1.52.0" + +"proxy-from-env@^1.1.0": + "integrity" "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + "resolved" "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz" + "version" "1.1.0"