diff --git a/New_APIs/Countries_API/README.md b/New_APIs/Countries_API/README.md new file mode 100644 index 0000000..d37dcf7 --- /dev/null +++ b/New_APIs/Countries_API/README.md @@ -0,0 +1,81 @@ +# Countries & Cities API + +## Description +This API provides detailed information about countries and their cities. You can retrieve data such as capital, language, currency, latitude, longitude, continent, and neighboring countries. Additionally, you can filter countries by language or currency, find neighboring countries of a specific country, and list all countries in a specific continent. + +## Features +1. Retrieve information about countries, including language, currency, latitude, longitude, continent, and neighboring countries. +2. Filter countries by language or currency. +3. Find neighboring countries of a specific country. +4. List all countries in a specific continent. + +## Requirements +- Node.js +- MongoDB +- Postman + +## Installation +1. Clone the Repository: + +```bash +git clone +cd +``` + +2.Install Dependencies: + +```bash +npm install +``` + +3. Setup MongoDB: + - Ensure MongoDB is installed and running on your local machine or a remote server. + - Create a new database and collection for storing country data. + +4. Start the Server: + +```bash +node server.js +``` + +## API Endpoints: + +1. Get All Countries: + +```http +GET /api/countries +``` + +2. Get Country by Name: + +```http +GET /api/countries/:name +``` + +3. Get Countries by Language: + +```http +GET /api/countries/language/:language +``` + +4. Get Countries by Currency: + +```http +GET /api/countries/currency/:currency +``` + +5. Get Neighboring Countries: + +```http +GET /api/countries/:name/neighbors +``` + +6. Get Countries by Continent: + +```http +GET /api/countries/continent/:continent +``` + +## Notes +- Ensure server is running at 5000. +- Use Postman or similar tools to test and interact with the API endpoints. \ No newline at end of file diff --git a/New_APIs/Countries_API/countries.js b/New_APIs/Countries_API/countries.js new file mode 100644 index 0000000..cb4811c --- /dev/null +++ b/New_APIs/Countries_API/countries.js @@ -0,0 +1,3316 @@ +module.exports = [ + { + "country": "Wallis and Futuna", + "capital": "Mata-Utu", + "language": "French", + "latitude": -13.3, + "longitude": -176.2, + "currency": "CFP franc", + "continent": "Oceania", + "neighbors": [] + }, + { + "country": "Iceland", + "capital": "Reykjavik", + "language": "Icelandic", + "latitude": 65, + "longitude": -18, + "currency": "Icelandic króna", + "continent": "Europe", + "neighbors": [] + }, + { + "country": "Luxembourg", + "capital": "Luxembourg", + "language": "German", + "latitude": 49.75, + "longitude": 6.16666666, + "currency": "Euro", + "continent": "Europe", + "neighbors": [ + "BEL", + "FRA", + "DEU" + ] + }, + { + "country": "Mali", + "capital": "Bamako", + "language": "French", + "latitude": 17, + "longitude": -4, + "currency": "West African CFA franc", + "continent": "Africa", + "neighbors": [ + "DZA", + "BFA", + "GIN", + "CIV", + "MRT", + "NER", + "SEN" + ] + }, + { + "country": "Comoros", + "capital": "Moroni", + "language": "Arabic", + "latitude": -12.16666666, + "longitude": 44.25, + "currency": "Comorian franc", + "continent": "Africa", + "neighbors": [] + }, + { + "country": "Australia", + "capital": "Canberra", + "language": "English", + "latitude": -27, + "longitude": 133, + "currency": "Australian dollar", + "continent": "Oceania", + "neighbors": [] + }, + { + "country": "Estonia", + "capital": "Tallinn", + "language": "Estonian", + "latitude": 59, + "longitude": 26, + "currency": "Euro", + "continent": "Europe", + "neighbors": [ + "LVA", + "RUS" + ] + }, + { + "country": "Canada", + "capital": "Ottawa", + "language": "English", + "latitude": 60, + "longitude": -95, + "currency": "Canadian dollar", + "continent": "North America", + "neighbors": [ + "USA" + ] + }, + { + "country": "Belarus", + "capital": "Minsk", + "language": "Belarusian", + "latitude": 53, + "longitude": 28, + "currency": "Belarusian ruble", + "continent": "Europe", + "neighbors": [ + "LVA", + "LTU", + "POL", + "RUS", + "UKR" + ] + }, + { + "country": "Guyana", + "capital": "Georgetown", + "language": "English", + "latitude": 5, + "longitude": -59, + "currency": "Guyanese dollar", + "continent": "South America", + "neighbors": [ + "BRA", + "SUR", + "VEN" + ] + }, + { + "country": "Gambia", + "capital": "Banjul", + "language": "English", + "latitude": 13.46666666, + "longitude": -16.56666666, + "currency": "dalasi", + "continent": "Africa", + "neighbors": [ + "SEN" + ] + }, + { + "country": "Tunisia", + "capital": "Tunis", + "language": "Arabic", + "latitude": 34, + "longitude": 9, + "currency": "Tunisian dinar", + "continent": "Africa", + "neighbors": [ + "DZA", + "LBY" + ] + }, + { + "country": "Cameroon", + "capital": "Yaoundé", + "language": "English", + "latitude": 6, + "longitude": 12, + "currency": "Central African CFA franc", + "continent": "Africa", + "neighbors": [ + "CAF", + "TCD", + "COG", + "GNQ", + "GAB", + "NGA" + ] + }, + { + "country": "Rwanda", + "capital": "Kigali", + "language": "English", + "latitude": -2, + "longitude": 30, + "currency": "Rwandan franc", + "continent": "Africa", + "neighbors": [ + "BDI", + "COD", + "TZA", + "UGA" + ] + }, + { + "country": "Cambodia", + "capital": "Phnom Penh", + "language": "Khmer", + "latitude": 13, + "longitude": 105, + "currency": "Cambodian riel", + "continent": "Asia", + "neighbors": [ + "LAO", + "THA", + "VNM" + ] + }, + { + "country": "Benin", + "capital": "Porto-Novo", + "language": "French", + "latitude": 9.5, + "longitude": 2.25, + "currency": "West African CFA franc", + "continent": "Africa", + "neighbors": [ + "BFA", + "NER", + "NGA", + "TGO" + ] + }, + { + "country": "Greece", + "capital": "Athens", + "language": "Greek", + "latitude": 39, + "longitude": 22, + "currency": "Euro", + "continent": "Europe", + "neighbors": [ + "ALB", + "BGR", + "TUR", + "MKD" + ] + }, + { + "country": "South Korea", + "capital": "Seoul", + "language": "Korean", + "latitude": 37, + "longitude": 127.5, + "currency": "South Korean won", + "continent": "Asia", + "neighbors": [ + "PRK" + ] + }, + { + "country": "Mauritius", + "capital": "Port Louis", + "language": "English", + "latitude": -20.28333333, + "longitude": 57.55, + "currency": "Mauritian rupee", + "continent": "Africa", + "neighbors": [] + }, + { + "country": "United States Virgin Islands", + "capital": "Charlotte Amalie", + "language": "English", + "latitude": 18.35, + "longitude": -64.933333, + "currency": "United States dollar", + "continent": "North America", + "neighbors": [] + }, + { + "country": "Åland Islands", + "capital": "Mariehamn", + "language": "Swedish", + "latitude": 60.116667, + "longitude": 19.9, + "currency": "Euro", + "continent": "Europe", + "neighbors": [] + }, + { + "country": "San Marino", + "capital": "City of San Marino", + "language": "Italian", + "latitude": 43.76666666, + "longitude": 12.41666666, + "currency": "Euro", + "continent": "Europe", + "neighbors": [ + "ITA" + ] + }, + { + "country": "Maldives", + "capital": "Malé", + "language": "Maldivian", + "latitude": 3.25, + "longitude": 73, + "currency": "Maldivian rufiyaa", + "continent": "Asia", + "neighbors": [] + }, + { + "country": "Vanuatu", + "capital": "Port Vila", + "language": "Bislama", + "latitude": -16, + "longitude": 167, + "currency": "Vanuatu vatu", + "continent": "Oceania", + "neighbors": [] + }, + { + "country": "Malawi", + "capital": "Lilongwe", + "language": "English", + "latitude": -13.5, + "longitude": 34, + "currency": "Malawian kwacha", + "continent": "Africa", + "neighbors": [ + "MOZ", + "TZA", + "ZMB" + ] + }, + { + "country": "Egypt", + "capital": "Cairo", + "language": "Arabic", + "latitude": 27, + "longitude": 30, + "currency": "Egyptian pound", + "continent": "Africa", + "neighbors": [ + "ISR", + "LBY", + "PSE", + "SDN" + ] + }, + { + "country": "Senegal", + "capital": "Dakar", + "language": "French", + "latitude": 14, + "longitude": -14, + "currency": "West African CFA franc", + "continent": "Africa", + "neighbors": [ + "GMB", + "GIN", + "GNB", + "MLI", + "MRT" + ] + }, + { + "country": "Georgia", + "capital": "Tbilisi", + "language": "Georgian", + "latitude": 42, + "longitude": 43.5, + "currency": "lari", + "continent": "Asia", + "neighbors": [ + "ARM", + "AZE", + "RUS", + "TUR" + ] + }, + { + "country": "New Zealand", + "capital": "Wellington", + "language": "English", + "latitude": -41, + "longitude": 174, + "currency": "New Zealand dollar", + "continent": "Oceania", + "neighbors": [] + }, + { + "country": "Cape Verde", + "capital": "Praia", + "language": "Portuguese", + "latitude": 16.5388, + "longitude": -23.0418, + "currency": "Cape Verdean escudo", + "continent": "Africa", + "neighbors": [] + }, + { + "country": "Italy", + "capital": "Rome", + "language": "Italian", + "latitude": 42.83333333, + "longitude": 12.83333333, + "currency": "Euro", + "continent": "Europe", + "neighbors": [ + "AUT", + "FRA", + "SMR", + "SVN", + "CHE", + "VAT" + ] + }, + { + "country": "Monaco", + "capital": "Monaco", + "language": "French", + "latitude": 43.73333333, + "longitude": 7.4, + "currency": "Euro", + "continent": "Europe", + "neighbors": [ + "FRA" + ] + }, + { + "country": "Slovakia", + "capital": "Bratislava", + "language": "Slovak", + "latitude": 48.66666666, + "longitude": 19.5, + "currency": "Euro", + "continent": "Europe", + "neighbors": [ + "AUT", + "CZE", + "HUN", + "POL", + "UKR" + ] + }, + { + "country": "Uruguay", + "capital": "Montevideo", + "language": "Spanish", + "latitude": -33, + "longitude": -56, + "currency": "Uruguayan peso", + "continent": "South America", + "neighbors": [ + "ARG", + "BRA" + ] + }, + { + "country": "Laos", + "capital": "Vientiane", + "language": "Lao", + "latitude": 18, + "longitude": 105, + "currency": "Lao kip", + "continent": "Asia", + "neighbors": [ + "MMR", + "KHM", + "CHN", + "THA", + "VNM" + ] + }, + { + "country": "Faroe Islands", + "capital": "Tórshavn", + "language": "Danish", + "latitude": 62, + "longitude": -7, + "currency": "Danish krone", + "continent": "Europe", + "neighbors": [] + }, + { + "country": "Niue", + "capital": "Alofi", + "language": "English", + "latitude": -19.03333333, + "longitude": -169.86666666, + "currency": "New Zealand dollar", + "continent": "Oceania", + "neighbors": [] + }, + { + "country": "North Macedonia", + "capital": "Skopje", + "language": "Macedonian", + "latitude": 41.83333333, + "longitude": 22, + "currency": "denar", + "continent": "Europe", + "neighbors": [ + "ALB", + "BGR", + "GRC", + "UNK", + "SRB" + ] + }, + { + "country": "Chile", + "capital": "Santiago", + "language": "Spanish", + "latitude": -30, + "longitude": -71, + "currency": "Chilean peso", + "continent": "South America", + "neighbors": [ + "ARG", + "BOL", + "PER" + ] + }, + { + "country": "Cyprus", + "capital": "Nicosia", + "language": "Greek", + "latitude": 35, + "longitude": 33, + "currency": "Euro", + "continent": "Europe", + "neighbors": [] + }, + { + "country": "Macau", + "capital": "N/A", + "language": "Portuguese", + "latitude": 22.16666666, + "longitude": 113.55, + "currency": "Macanese pataca", + "continent": "Asia", + "neighbors": [ + "CHN" + ] + }, + { + "country": "El Salvador", + "capital": "San Salvador", + "language": "Spanish", + "latitude": 13.83333333, + "longitude": -88.91666666, + "currency": "United States dollar", + "continent": "North America", + "neighbors": [ + "GTM", + "HND" + ] + }, + { + "country": "Jordan", + "capital": "Amman", + "language": "Arabic", + "latitude": 31, + "longitude": 36, + "currency": "Jordanian dinar", + "continent": "Asia", + "neighbors": [ + "IRQ", + "ISR", + "PSE", + "SAU", + "SYR" + ] + }, + { + "country": "Jamaica", + "capital": "Kingston", + "language": "English", + "latitude": 18.25, + "longitude": -77.5, + "currency": "Jamaican dollar", + "continent": "North America", + "neighbors": [] + }, + { + "country": "Barbados", + "capital": "Bridgetown", + "language": "English", + "latitude": 13.16666666, + "longitude": -59.53333333, + "currency": "Barbadian dollar", + "continent": "North America", + "neighbors": [] + }, + { + "country": "Western Sahara", + "capital": "El Aaiún", + "language": "Berber", + "latitude": 24.5, + "longitude": -13, + "currency": "Algerian dinar", + "continent": "Africa", + "neighbors": [ + "DZA", + "MRT", + "MAR" + ] + }, + { + "country": "Qatar", + "capital": "Doha", + "language": "Arabic", + "latitude": 25.5, + "longitude": 51.25, + "currency": "Qatari riyal", + "continent": "Asia", + "neighbors": [ + "SAU" + ] + }, + { + "country": "Guatemala", + "capital": "Guatemala City", + "language": "Spanish", + "latitude": 15.5, + "longitude": -90.25, + "currency": "Guatemalan quetzal", + "continent": "North America", + "neighbors": [ + "BLZ", + "SLV", + "HND", + "MEX" + ] + }, + { + "country": "Micronesia", + "capital": "Palikir", + "language": "English", + "latitude": 6.91666666, + "longitude": 158.25, + "currency": "United States dollar", + "continent": "Oceania", + "neighbors": [] + }, + { + "country": "Montserrat", + "capital": "Plymouth", + "language": "English", + "latitude": 16.75, + "longitude": -62.2, + "currency": "Eastern Caribbean dollar", + "continent": "North America", + "neighbors": [] + }, + { + "country": "Papua New Guinea", + "capital": "Port Moresby", + "language": "English", + "latitude": -6, + "longitude": 147, + "currency": "Papua New Guinean kina", + "continent": "Oceania", + "neighbors": [ + "IDN" + ] + }, + { + "country": "Brazil", + "capital": "Brasília", + "language": "Portuguese", + "latitude": -10, + "longitude": -55, + "currency": "Brazilian real", + "continent": "South America", + "neighbors": [ + "ARG", + "BOL", + "COL", + "GUF", + "GUY", + "PRY", + "PER", + "SUR", + "URY", + "VEN" + ] + }, + { + "country": "Lithuania", + "capital": "Vilnius", + "language": "Lithuanian", + "latitude": 56, + "longitude": 24, + "currency": "Euro", + "continent": "Europe", + "neighbors": [ + "BLR", + "LVA", + "POL", + "RUS" + ] + }, + { + "country": "French Guiana", + "capital": "Cayenne", + "language": "French", + "latitude": 4, + "longitude": -53, + "currency": "Euro", + "continent": "South America", + "neighbors": [ + "BRA", + "SUR" + ] + }, + { + "country": "Moldova", + "capital": "Chișinău", + "language": "Romanian", + "latitude": 47, + "longitude": 29, + "currency": "Moldovan leu", + "continent": "Europe", + "neighbors": [ + "ROU", + "UKR" + ] + }, + { + "country": "Kyrgyzstan", + "capital": "Bishkek", + "language": "Kyrgyz", + "latitude": 41, + "longitude": 75, + "currency": "Kyrgyzstani som", + "continent": "Asia", + "neighbors": [ + "CHN", + "KAZ", + "TJK", + "UZB" + ] + }, + { + "country": "Curaçao", + "capital": "Willemstad", + "language": "English", + "latitude": 12.116667, + "longitude": -68.933333, + "currency": "Netherlands Antillean guilder", + "continent": "North America", + "neighbors": [] + }, + { + "country": "Vietnam", + "capital": "Hanoi", + "language": "Vietnamese", + "latitude": 16.16666666, + "longitude": 107.83333333, + "currency": "Vietnamese đồng", + "continent": "Asia", + "neighbors": [ + "KHM", + "CHN", + "LAO" + ] + }, + { + "country": "Angola", + "capital": "Luanda", + "language": "Portuguese", + "latitude": -12.5, + "longitude": 18.5, + "currency": "Angolan kwanza", + "continent": "Africa", + "neighbors": [ + "COG", + "COD", + "ZMB", + "NAM" + ] + }, + { + "country": "Malaysia", + "capital": "Kuala Lumpur", + "language": "English", + "latitude": 2.5, + "longitude": 112.5, + "currency": "Malaysian ringgit", + "continent": "Asia", + "neighbors": [ + "BRN", + "IDN", + "THA" + ] + }, + { + "country": "Switzerland", + "capital": "Bern", + "language": "French", + "latitude": 47, + "longitude": 8, + "currency": "Swiss franc", + "continent": "Europe", + "neighbors": [ + "AUT", + "FRA", + "ITA", + "LIE", + "DEU" + ] + }, + { + "country": "Thailand", + "capital": "Bangkok", + "language": "Thai", + "latitude": 15, + "longitude": 100, + "currency": "Thai baht", + "continent": "Asia", + "neighbors": [ + "MMR", + "KHM", + "LAO", + "MYS" + ] + }, + { + "country": "Dominican Republic", + "capital": "Santo Domingo", + "language": "Spanish", + "latitude": 19, + "longitude": -70.66666666, + "currency": "Dominican peso", + "continent": "North America", + "neighbors": [ + "HTI" + ] + }, + { + "country": "Uzbekistan", + "capital": "Tashkent", + "language": "Russian", + "latitude": 41, + "longitude": 64, + "currency": "Uzbekistani soʻm", + "continent": "Asia", + "neighbors": [ + "AFG", + "KAZ", + "KGZ", + "TJK", + "TKM" + ] + }, + { + "country": "Chad", + "capital": "N'Djamena", + "language": "Arabic", + "latitude": 15, + "longitude": 19, + "currency": "Central African CFA franc", + "continent": "Africa", + "neighbors": [ + "CMR", + "CAF", + "LBY", + "NER", + "NGA", + "SDN" + ] + }, + { + "country": "Cocos (Keeling) Islands", + "capital": "West Island", + "language": "English", + "latitude": 12.1642, + "longitude": 96.871, + "currency": "Australian dollar", + "continent": "Asia", + "neighbors": [] + }, + { + "country": "Guinea", + "capital": "Conakry", + "language": "French", + "latitude": 11, + "longitude": -10, + "currency": "Guinean franc", + "continent": "Africa", + "neighbors": [ + "CIV", + "GNB", + "LBR", + "MLI", + "SEN", + "SLE" + ] + }, + { + "country": "Turks and Caicos Islands", + "capital": "Cockburn Town", + "language": "English", + "latitude": 21.75, + "longitude": -71.58333333, + "currency": "United States dollar", + "continent": "North America", + "neighbors": [] + }, + { + "country": "Puerto Rico", + "capital": "San Juan", + "language": "English", + "latitude": 18.25, + "longitude": -66.5, + "currency": "United States dollar", + "continent": "North America", + "neighbors": [] + }, + { + "country": "Bhutan", + "capital": "Thimphu", + "language": "Dzongkha", + "latitude": 27.5, + "longitude": 90.5, + "currency": "Bhutanese ngultrum", + "continent": "Asia", + "neighbors": [ + "CHN", + "IND" + ] + }, + { + "country": "Cayman Islands", + "capital": "George Town", + "language": "English", + "latitude": 19.3133, + "longitude": -81.2546, + "currency": "Cayman Islands dollar", + "continent": "North America", + "neighbors": [] + }, + { + "country": "Marshall Islands", + "capital": "Majuro", + "language": "English", + "latitude": 9, + "longitude": 168, + "currency": "United States dollar", + "continent": "Oceania", + "neighbors": [] + }, + { + "country": "Anguilla", + "capital": "The Valley", + "language": "English", + "latitude": 18.25, + "longitude": -63.16666666, + "currency": "Eastern Caribbean dollar", + "continent": "North America", + "neighbors": [] + }, + { + "country": "Mauritania", + "capital": "Nouakchott", + "language": "Arabic", + "latitude": 20, + "longitude": -12, + "currency": "Mauritanian ouguiya", + "continent": "Africa", + "neighbors": [ + "DZA", + "MLI", + "SEN", + "ESH" + ] + }, + { + "country": "Norway", + "capital": "Oslo", + "language": "Norwegian Nynorsk", + "latitude": 62, + "longitude": 10, + "currency": "Norwegian krone", + "continent": "Europe", + "neighbors": [ + "FIN", + "SWE", + "RUS" + ] + }, + { + "country": "Martinique", + "capital": "Fort-de-France", + "language": "French", + "latitude": 14.666667, + "longitude": -61, + "currency": "Euro", + "continent": "North America", + "neighbors": [] + }, + { + "country": "Israel", + "capital": "Jerusalem", + "language": "Arabic", + "latitude": 31.47, + "longitude": 35.13, + "currency": "Israeli new shekel", + "continent": "Asia", + "neighbors": [ + "EGY", + "JOR", + "LBN", + "PSE", + "SYR" + ] + }, + { + "country": "Saint Barthélemy", + "capital": "Gustavia", + "language": "French", + "latitude": 18.5, + "longitude": -63.41666666, + "currency": "Euro", + "continent": "North America", + "neighbors": [] + }, + { + "country": "Ecuador", + "capital": "Quito", + "language": "Spanish", + "latitude": -2, + "longitude": -77.5, + "currency": "United States dollar", + "continent": "South America", + "neighbors": [ + "COL", + "PER" + ] + }, + { + "country": "Grenada", + "capital": "St. George's", + "language": "English", + "latitude": 12.11666666, + "longitude": -61.66666666, + "currency": "Eastern Caribbean dollar", + "continent": "North America", + "neighbors": [] + }, + { + "country": "Croatia", + "capital": "Zagreb", + "language": "Croatian", + "latitude": 45.16666666, + "longitude": 15.5, + "currency": "Euro", + "continent": "Europe", + "neighbors": [ + "BIH", + "HUN", + "MNE", + "SRB", + "SVN" + ] + }, + { + "country": "Brunei", + "capital": "Bandar Seri Begawan", + "language": "Malay", + "latitude": 4.5, + "longitude": 114.66666666, + "currency": "Brunei dollar", + "continent": "Asia", + "neighbors": [ + "MYS" + ] + }, + { + "country": "Iraq", + "capital": "Baghdad", + "language": "Arabic", + "latitude": 33, + "longitude": 44, + "currency": "Iraqi dinar", + "continent": "Asia", + "neighbors": [ + "IRN", + "JOR", + "KWT", + "SAU", + "SYR", + "TUR" + ] + }, + { + "country": "Japan", + "capital": "Tokyo", + "language": "Japanese", + "latitude": 36, + "longitude": 138, + "currency": "Japanese yen", + "continent": "Asia", + "neighbors": [] + }, + { + "country": "Lesotho", + "capital": "Maseru", + "language": "English", + "latitude": -29.5, + "longitude": 28.5, + "currency": "Lesotho loti", + "continent": "Africa", + "neighbors": [ + "ZAF" + ] + }, + { + "country": "Tuvalu", + "capital": "Funafuti", + "language": "English", + "latitude": -8, + "longitude": 178, + "currency": "Australian dollar", + "continent": "Oceania", + "neighbors": [] + }, + { + "country": "Heard Island and McDonald Islands", + "capital": "N/A", + "language": "English", + "latitude": 53.0818, + "longitude": 73.5042, + "currency": "N/A", + "continent": "Antarctica", + "neighbors": [] + }, + { + "country": "Finland", + "capital": "Helsinki", + "language": "Finnish", + "latitude": 64, + "longitude": 26, + "currency": "Euro", + "continent": "Europe", + "neighbors": [ + "NOR", + "SWE", + "RUS" + ] + }, + { + "country": "South Sudan", + "capital": "Juba", + "language": "English", + "latitude": 7, + "longitude": 30, + "currency": "South Sudanese pound", + "continent": "Africa", + "neighbors": [ + "CAF", + "COD", + "ETH", + "KEN", + "SDN", + "UGA" + ] + }, + { + "country": "United States Minor Outlying Islands", + "capital": "Washington DC", + "language": "English", + "latitude": 19.3, + "longitude": 166.633333, + "currency": "United States dollar", + "continent": "Oceania", + "neighbors": [] + }, + { + "country": "Saint Helena, Ascension and Tristan da Cunha", + "capital": "Jamestown", + "language": "English", + "latitude": -15.95, + "longitude": -5.72, + "currency": "Pound sterling", + "continent": "Africa", + "neighbors": [] + }, + { + "country": "Afghanistan", + "capital": "Kabul", + "language": "Dari", + "latitude": 33, + "longitude": 65, + "currency": "Afghan afghani", + "continent": "Asia", + "neighbors": [ + "IRN", + "PAK", + "TKM", + "UZB", + "TJK", + "CHN" + ] + }, + { + "country": "Solomon Islands", + "capital": "Honiara", + "language": "English", + "latitude": -8, + "longitude": 159, + "currency": "Solomon Islands dollar", + "continent": "Oceania", + "neighbors": [] + }, + { + "country": "China", + "capital": "Beijing", + "language": "Chinese", + "latitude": 35, + "longitude": 105, + "currency": "Chinese yuan", + "continent": "Asia", + "neighbors": [ + "AFG", + "BTN", + "MMR", + "HKG", + "IND", + "KAZ", + "NPL", + "PRK", + "KGZ", + "LAO", + "MAC", + "MNG", + "PAK", + "RUS", + "TJK", + "VNM" + ] + }, + { + "country": "Eritrea", + "capital": "Asmara", + "language": "Arabic", + "latitude": 15, + "longitude": 39, + "currency": "Eritrean nakfa", + "continent": "Africa", + "neighbors": [ + "DJI", + "ETH", + "SDN" + ] + }, + { + "country": "Russia", + "capital": "Moscow", + "language": "Russian", + "latitude": 60, + "longitude": 100, + "currency": "Russian ruble", + "continent": "Europe", + "neighbors": [ + "AZE", + "BLR", + "CHN", + "EST", + "FIN", + "GEO", + "KAZ", + "PRK", + "LVA", + "LTU", + "MNG", + "NOR", + "POL", + "UKR" + ] + }, + { + "country": "Andorra", + "capital": "Andorra la Vella", + "language": "Catalan", + "latitude": 42.5, + "longitude": 1.5, + "currency": "Euro", + "continent": "Europe", + "neighbors": [ + "FRA", + "ESP" + ] + }, + { + "country": "Armenia", + "capital": "Yerevan", + "language": "Armenian", + "latitude": 40, + "longitude": 45, + "currency": "Armenian dram", + "continent": "Asia", + "neighbors": [ + "AZE", + "GEO", + "IRN", + "TUR" + ] + }, + { + "country": "Austria", + "capital": "Vienna", + "language": "German", + "latitude": 47.33333333, + "longitude": 13.33333333, + "currency": "Euro", + "continent": "Europe", + "neighbors": [ + "CZE", + "DEU", + "HUN", + "ITA", + "LIE", + "SVK", + "SVN", + "CHE" + ] + }, + { + "country": "Suriname", + "capital": "Paramaribo", + "language": "Dutch", + "latitude": 4, + "longitude": -56, + "currency": "Surinamese dollar", + "continent": "South America", + "neighbors": [ + "BRA", + "GUF", + "GUY" + ] + }, + { + "country": "Spain", + "capital": "Madrid", + "language": "Spanish", + "latitude": 40, + "longitude": -4, + "currency": "Euro", + "continent": "Europe", + "neighbors": [ + "AND", + "FRA", + "GIB", + "PRT", + "MAR" + ] + }, + { + "country": "Tokelau", + "capital": "Fakaofo", + "language": "English", + "latitude": -9, + "longitude": -172, + "currency": "New Zealand dollar", + "continent": "Oceania", + "neighbors": [] + }, + { + "country": "Bahamas", + "capital": "Nassau", + "language": "English", + "latitude": 25.0343, + "longitude": -77.3963, + "currency": "Bahamian dollar", + "continent": "North America", + "neighbors": [] + }, + { + "country": "Sint Maarten", + "capital": "Philipsburg", + "language": "English", + "latitude": 18.033333, + "longitude": -63.05, + "currency": "Netherlands Antillean guilder", + "continent": "North America", + "neighbors": [ + "MAF" + ] + }, + { + "country": "Belize", + "capital": "Belmopan", + "language": "Belizean Creole", + "latitude": 17.25, + "longitude": -88.75, + "currency": "Belize dollar", + "continent": "North America", + "neighbors": [ + "GTM", + "MEX" + ] + }, + { + "country": "Jersey", + "capital": "Saint Helier", + "language": "English", + "latitude": 49.25, + "longitude": -2.16666666, + "currency": "British pound", + "continent": "Europe", + "neighbors": [] + }, + { + "country": "Sweden", + "capital": "Stockholm", + "language": "Swedish", + "latitude": 62, + "longitude": 15, + "currency": "Swedish krona", + "continent": "Europe", + "neighbors": [ + "FIN", + "NOR" + ] + }, + { + "country": "Botswana", + "capital": "Gaborone", + "language": "English", + "latitude": -22, + "longitude": 24, + "currency": "Botswana pula", + "continent": "Africa", + "neighbors": [ + "NAM", + "ZAF", + "ZMB", + "ZWE" + ] + }, + { + "country": "Isle of Man", + "capital": "Douglas", + "language": "English", + "latitude": 54.25, + "longitude": -4.5, + "currency": "British pound", + "continent": "Europe", + "neighbors": [] + }, + { + "country": "United Arab Emirates", + "capital": "Abu Dhabi", + "language": "Arabic", + "latitude": 24, + "longitude": 54, + "currency": "United Arab Emirates dirham", + "continent": "Asia", + "neighbors": [ + "OMN", + "SAU" + ] + }, + { + "country": "Iran", + "capital": "Tehran", + "language": "Persian (Farsi)", + "latitude": 32, + "longitude": 53, + "currency": "Iranian rial", + "continent": "Asia", + "neighbors": [ + "AFG", + "ARM", + "AZE", + "IRQ", + "PAK", + "TUR", + "TKM" + ] + }, + { + "country": "Gabon", + "capital": "Libreville", + "language": "French", + "latitude": -1, + "longitude": 11.75, + "currency": "Central African CFA franc", + "continent": "Africa", + "neighbors": [ + "CMR", + "COG", + "GNQ" + ] + }, + { + "country": "Saint Kitts and Nevis", + "capital": "Basseterre", + "language": "English", + "latitude": 17.33333333, + "longitude": -62.75, + "currency": "Eastern Caribbean dollar", + "continent": "North America", + "neighbors": [] + }, + { + "country": "Equatorial Guinea", + "capital": "Malabo", + "language": "French", + "latitude": 2, + "longitude": 10, + "currency": "Central African CFA franc", + "continent": "Africa", + "neighbors": [ + "CMR", + "GAB" + ] + }, + { + "country": "São Tomé and Príncipe", + "capital": "São Tomé", + "language": "Portuguese", + "latitude": 1, + "longitude": 7, + "currency": "São Tomé and Príncipe dobra", + "continent": "Africa", + "neighbors": [] + }, + { + "country": "Greenland", + "capital": "Nuuk", + "language": "Greenlandic", + "latitude": 72, + "longitude": -40, + "currency": "krone", + "continent": "North America", + "neighbors": [] + }, + { + "country": "Bangladesh", + "capital": "Dhaka", + "language": "Bengali", + "latitude": 24, + "longitude": 90, + "currency": "Bangladeshi taka", + "continent": "Asia", + "neighbors": [ + "MMR", + "IND" + ] + }, + { + "country": "Romania", + "capital": "Bucharest", + "language": "Romanian", + "latitude": 46, + "longitude": 25, + "currency": "Romanian leu", + "continent": "Europe", + "neighbors": [ + "BGR", + "HUN", + "MDA", + "SRB", + "UKR" + ] + }, + { + "country": "British Indian Ocean Territory", + "capital": "Diego Garcia", + "language": "English", + "latitude": -6, + "longitude": 71.5, + "currency": "United States dollar", + "continent": "Asia", + "neighbors": [] + }, + { + "country": "Sudan", + "capital": "Khartoum", + "language": "Arabic", + "latitude": 15, + "longitude": 30, + "currency": "Sudanese pound", + "continent": "Africa", + "neighbors": [ + "CAF", + "TCD", + "EGY", + "ERI", + "ETH", + "LBY", + "SSD" + ] + }, + { + "country": "Bosnia and Herzegovina", + "capital": "Sarajevo", + "language": "Bosnian", + "latitude": 44, + "longitude": 18, + "currency": "Bosnia and Herzegovina convertible mark", + "continent": "Europe", + "neighbors": [ + "HRV", + "MNE", + "SRB" + ] + }, + { + "country": "Malta", + "capital": "Valletta", + "language": "English", + "latitude": 35.9375, + "longitude": 14.3754, + "currency": "Euro", + "continent": "Europe", + "neighbors": [] + }, + { + "country": "Seychelles", + "capital": "Victoria", + "language": "Seychellois Creole", + "latitude": -4.58333333, + "longitude": 55.66666666, + "currency": "Seychellois rupee", + "continent": "Africa", + "neighbors": [] + }, + { + "country": "Sri Lanka", + "capital": "Sri Jayawardenepura Kotte", + "language": "Sinhala", + "latitude": 7, + "longitude": 81, + "currency": "Sri Lankan rupee", + "continent": "Asia", + "neighbors": [ + "IND" + ] + }, + { + "country": "Mexico", + "capital": "Mexico City", + "language": "Spanish", + "latitude": 23, + "longitude": -102, + "currency": "Mexican peso", + "continent": "North America", + "neighbors": [ + "BLZ", + "GTM", + "USA" + ] + }, + { + "country": "Yemen", + "capital": "Sana'a", + "language": "Arabic", + "latitude": 15, + "longitude": 48, + "currency": "Yemeni rial", + "continent": "Asia", + "neighbors": [ + "OMN", + "SAU" + ] + }, + { + "country": "British Virgin Islands", + "capital": "Road Town", + "language": "English", + "latitude": 18.431383, + "longitude": -64.62305, + "currency": "United States dollar", + "continent": "North America", + "neighbors": [] + }, + { + "country": "Netherlands", + "capital": "Amsterdam", + "language": "Dutch", + "latitude": 52.5, + "longitude": 5.75, + "currency": "Euro", + "continent": "Europe", + "neighbors": [ + "BEL", + "DEU" + ] + }, + { + "country": "Paraguay", + "capital": "Asunción", + "language": "Guaraní", + "latitude": -23, + "longitude": -58, + "currency": "Paraguayan guaraní", + "continent": "South America", + "neighbors": [ + "ARG", + "BOL", + "BRA" + ] + }, + { + "country": "United Kingdom", + "capital": "London", + "language": "English", + "latitude": 54, + "longitude": -2, + "currency": "British pound", + "continent": "Europe", + "neighbors": [ + "IRL" + ] + }, + { + "country": "Venezuela", + "capital": "Caracas", + "language": "Spanish", + "latitude": 8, + "longitude": -66, + "currency": "Venezuelan bolívar soberano", + "continent": "South America", + "neighbors": [ + "BRA", + "COL", + "GUY" + ] + }, + { + "country": "Bouvet Island", + "capital": "N/A", + "language": "Norwegian", + "latitude": 54.4208, + "longitude": 3.3464, + "currency": "N/A", + "continent": "Antarctica", + "neighbors": [] + }, + { + "country": "Ukraine", + "capital": "Kyiv", + "language": "Ukrainian", + "latitude": 49, + "longitude": 32, + "currency": "Ukrainian hryvnia", + "continent": "Europe", + "neighbors": [ + "BLR", + "HUN", + "MDA", + "POL", + "ROU", + "RUS", + "SVK" + ] + }, + { + "country": "Morocco", + "capital": "Rabat", + "language": "Arabic", + "latitude": 32, + "longitude": -5, + "currency": "Moroccan dirham", + "continent": "Africa", + "neighbors": [ + "DZA", + "ESH", + "ESP" + ] + }, + { + "country": "Portugal", + "capital": "Lisbon", + "language": "Portuguese", + "latitude": 39.5, + "longitude": -8, + "currency": "Euro", + "continent": "Europe", + "neighbors": [ + "ESP" + ] + }, + { + "country": "Pakistan", + "capital": "Islamabad", + "language": "English", + "latitude": 30, + "longitude": 70, + "currency": "Pakistani rupee", + "continent": "Asia", + "neighbors": [ + "AFG", + "CHN", + "IND", + "IRN" + ] + }, + { + "country": "Saint Vincent and the Grenadines", + "capital": "Kingstown", + "language": "English", + "latitude": 13.25, + "longitude": -61.2, + "currency": "Eastern Caribbean dollar", + "continent": "North America", + "neighbors": [] + }, + { + "country": "North Korea", + "capital": "Pyongyang", + "language": "Korean", + "latitude": 40, + "longitude": 127, + "currency": "North Korean won", + "continent": "Asia", + "neighbors": [ + "CHN", + "KOR", + "RUS" + ] + }, + { + "country": "Slovenia", + "capital": "Ljubljana", + "language": "Slovene", + "latitude": 46.11666666, + "longitude": 14.81666666, + "currency": "Euro", + "continent": "Europe", + "neighbors": [ + "AUT", + "HRV", + "ITA", + "HUN" + ] + }, + { + "country": "Ivory Coast", + "capital": "Yamoussoukro", + "language": "French", + "latitude": 8, + "longitude": -5, + "currency": "West African CFA franc", + "continent": "Africa", + "neighbors": [ + "BFA", + "GHA", + "GIN", + "LBR", + "MLI" + ] + }, + { + "country": "Palestine", + "capital": "Ramallah", + "language": "Arabic", + "latitude": 31.9, + "longitude": 35.2, + "currency": "Egyptian pound", + "continent": "Asia", + "neighbors": [ + "ISR", + "EGY", + "JOR" + ] + }, + { + "country": "Caribbean Netherlands", + "capital": "Kralendijk", + "language": "English", + "latitude": 12.18, + "longitude": -68.25, + "currency": "United States dollar", + "continent": "North America", + "neighbors": [] + }, + { + "country": "Belgium", + "capital": "Brussels", + "language": "German", + "latitude": 50.83333333, + "longitude": 4, + "currency": "Euro", + "continent": "Europe", + "neighbors": [ + "FRA", + "DEU", + "LUX", + "NLD" + ] + }, + { + "country": "Zimbabwe", + "capital": "Harare", + "language": "Chibarwe", + "latitude": -20, + "longitude": 30, + "currency": "Zimbabwean dollar", + "continent": "Africa", + "neighbors": [ + "BWA", + "MOZ", + "ZAF", + "ZMB" + ] + }, + { + "country": "Tanzania", + "capital": "Dodoma", + "language": "English", + "latitude": -6, + "longitude": 35, + "currency": "Tanzanian shilling", + "continent": "Africa", + "neighbors": [ + "BDI", + "COD", + "KEN", + "MWI", + "MOZ", + "RWA", + "UGA", + "ZMB" + ] + }, + { + "country": "Togo", + "capital": "Lomé", + "language": "French", + "latitude": 8, + "longitude": 1.16666666, + "currency": "West African CFA franc", + "continent": "Africa", + "neighbors": [ + "BEN", + "BFA", + "GHA" + ] + }, + { + "country": "Cook Islands", + "capital": "Avarua", + "language": "English", + "latitude": -21.23333333, + "longitude": -159.76666666, + "currency": "Cook Islands dollar", + "continent": "Oceania", + "neighbors": [] + }, + { + "country": "Guadeloupe", + "capital": "Basse-Terre", + "language": "French", + "latitude": 16.25, + "longitude": -61.583333, + "currency": "Euro", + "continent": "North America", + "neighbors": [] + }, + { + "country": "New Caledonia", + "capital": "Nouméa", + "language": "French", + "latitude": -21.5, + "longitude": 165.5, + "currency": "CFP franc", + "continent": "Oceania", + "neighbors": [] + }, + { + "country": "Saint Lucia", + "capital": "Castries", + "language": "English", + "latitude": 13.88333333, + "longitude": -60.96666666, + "currency": "Eastern Caribbean dollar", + "continent": "North America", + "neighbors": [] + }, + { + "country": "South Georgia", + "capital": "King Edward Point", + "language": "English", + "latitude": -54.5, + "longitude": -37, + "currency": "Saint Helena pound", + "continent": "Antarctica", + "neighbors": [] + }, + { + "country": "Poland", + "capital": "Warsaw", + "language": "Polish", + "latitude": 52, + "longitude": 20, + "currency": "Polish złoty", + "continent": "Europe", + "neighbors": [ + "BLR", + "CZE", + "DEU", + "LTU", + "RUS", + "SVK", + "UKR" + ] + }, + { + "country": "Samoa", + "capital": "Apia", + "language": "English", + "latitude": -13.58333333, + "longitude": -172.33333333, + "currency": "Samoan tālā", + "continent": "Oceania", + "neighbors": [] + }, + { + "country": "Czechia", + "capital": "Prague", + "language": "Czech", + "latitude": 49.75, + "longitude": 15.5, + "currency": "Czech koruna", + "continent": "Europe", + "neighbors": [ + "AUT", + "DEU", + "POL", + "SVK" + ] + }, + { + "country": "Indonesia", + "capital": "Jakarta", + "language": "Indonesian", + "latitude": -5, + "longitude": 120, + "currency": "Indonesian rupiah", + "continent": "Asia", + "neighbors": [ + "TLS", + "MYS", + "PNG" + ] + }, + { + "country": "Bolivia", + "capital": "Sucre", + "language": "Aymara", + "latitude": -17, + "longitude": -65, + "currency": "Bolivian boliviano", + "continent": "South America", + "neighbors": [ + "ARG", + "BRA", + "CHL", + "PRY", + "PER" + ] + }, + { + "country": "Colombia", + "capital": "Bogotá", + "language": "Spanish", + "latitude": 4, + "longitude": -72, + "currency": "Colombian peso", + "continent": "South America", + "neighbors": [ + "BRA", + "ECU", + "PAN", + "PER", + "VEN" + ] + }, + { + "country": "Honduras", + "capital": "Tegucigalpa", + "language": "Spanish", + "latitude": 15, + "longitude": -86.5, + "currency": "Honduran lempira", + "continent": "North America", + "neighbors": [ + "GTM", + "SLV", + "NIC" + ] + }, + { + "country": "Denmark", + "capital": "Copenhagen", + "language": "Danish", + "latitude": 56, + "longitude": 10, + "currency": "Danish krone", + "continent": "Europe", + "neighbors": [ + "DEU" + ] + }, + { + "country": "Central African Republic", + "capital": "Bangui", + "language": "French", + "latitude": 7, + "longitude": 21, + "currency": "Central African CFA franc", + "continent": "Africa", + "neighbors": [ + "CMR", + "TCD", + "COD", + "COG", + "SSD", + "SDN" + ] + }, + { + "country": "Libya", + "capital": "Tripoli", + "language": "Arabic", + "latitude": 25, + "longitude": 17, + "currency": "Libyan dinar", + "continent": "Africa", + "neighbors": [ + "DZA", + "TCD", + "EGY", + "NER", + "SDN", + "TUN" + ] + }, + { + "country": "Guinea-Bissau", + "capital": "Bissau", + "language": "Portuguese", + "latitude": 12, + "longitude": -15, + "currency": "West African CFA franc", + "continent": "Africa", + "neighbors": [ + "GIN", + "SEN" + ] + }, + { + "country": "Mongolia", + "capital": "Ulan Bator", + "language": "Mongolian", + "latitude": 46, + "longitude": 105, + "currency": "Mongolian tögrög", + "continent": "Asia", + "neighbors": [ + "CHN", + "RUS" + ] + }, + { + "country": "DR Congo", + "capital": "Kinshasa", + "language": "French", + "latitude": 0, + "longitude": 25, + "currency": "Congolese franc", + "continent": "Africa", + "neighbors": [ + "AGO", + "BDI", + "CAF", + "COG", + "RWA", + "SSD", + "TZA", + "UGA", + "ZMB" + ] + }, + { + "country": "Falkland Islands", + "capital": "Stanley", + "language": "English", + "latitude": -51.75, + "longitude": -59, + "currency": "Falkland Islands pound", + "continent": "South America", + "neighbors": [] + }, + { + "country": "Nauru", + "capital": "Yaren", + "language": "English", + "latitude": -0.53333333, + "longitude": 166.91666666, + "currency": "Australian dollar", + "continent": "Oceania", + "neighbors": [] + }, + { + "country": "Syria", + "capital": "Damascus", + "language": "Arabic", + "latitude": 35, + "longitude": 38, + "currency": "Syrian pound", + "continent": "Asia", + "neighbors": [ + "IRQ", + "ISR", + "JOR", + "LBN", + "TUR" + ] + }, + { + "country": "Montenegro", + "capital": "Podgorica", + "language": "Montenegrin", + "latitude": 42.5, + "longitude": 19.3, + "currency": "Euro", + "continent": "Europe", + "neighbors": [ + "ALB", + "BIH", + "HRV", + "UNK", + "SRB" + ] + }, + { + "country": "France", + "capital": "Paris", + "language": "French", + "latitude": 46, + "longitude": 2, + "currency": "Euro", + "continent": "Europe", + "neighbors": [ + "AND", + "BEL", + "DEU", + "ITA", + "LUX", + "MCO", + "ESP", + "CHE" + ] + }, + { + "country": "Zambia", + "capital": "Lusaka", + "language": "English", + "latitude": -15, + "longitude": 30, + "currency": "Zambian kwacha", + "continent": "Africa", + "neighbors": [ + "AGO", + "BWA", + "COD", + "MWI", + "MOZ", + "NAM", + "TZA", + "ZWE" + ] + }, + { + "country": "Myanmar", + "capital": "Naypyidaw", + "language": "Burmese", + "latitude": 22, + "longitude": 98, + "currency": "Burmese kyat", + "continent": "Asia", + "neighbors": [ + "BGD", + "CHN", + "IND", + "LAO", + "THA" + ] + }, + { + "country": "Saint Pierre and Miquelon", + "capital": "Saint-Pierre", + "language": "French", + "latitude": 46.83333333, + "longitude": -56.33333333, + "currency": "Euro", + "continent": "North America", + "neighbors": [] + }, + { + "country": "Costa Rica", + "capital": "San José", + "language": "Spanish", + "latitude": 10, + "longitude": -84, + "currency": "Costa Rican colón", + "continent": "North America", + "neighbors": [ + "NIC", + "PAN" + ] + }, + { + "country": "Somalia", + "capital": "Mogadishu", + "language": "Arabic", + "latitude": 10, + "longitude": 49, + "currency": "Somali shilling", + "continent": "Africa", + "neighbors": [ + "DJI", + "ETH", + "KEN" + ] + }, + { + "country": "Ireland", + "capital": "Dublin", + "language": "English", + "latitude": 53, + "longitude": -8, + "currency": "Euro", + "continent": "Europe", + "neighbors": [ + "GBR" + ] + }, + { + "country": "French Polynesia", + "capital": "Papeetē", + "language": "French", + "latitude": 17.6797, + "longitude": 149.4068, + "currency": "CFP franc", + "continent": "Oceania", + "neighbors": [] + }, + { + "country": "Pitcairn Islands", + "capital": "Adamstown", + "language": "English", + "latitude": -25.06666666, + "longitude": -130.1, + "currency": "New Zealand dollar", + "continent": "Oceania", + "neighbors": [] + }, + { + "country": "Hungary", + "capital": "Budapest", + "language": "Hungarian", + "latitude": 47, + "longitude": 20, + "currency": "Hungarian forint", + "continent": "Europe", + "neighbors": [ + "AUT", + "HRV", + "ROU", + "SRB", + "SVK", + "SVN", + "UKR" + ] + }, + { + "country": "Turkey", + "capital": "Ankara", + "language": "Turkish", + "latitude": 39, + "longitude": 35, + "currency": "Turkish lira", + "continent": "Europe", + "neighbors": [ + "ARM", + "AZE", + "BGR", + "GEO", + "GRC", + "IRN", + "IRQ", + "SYR" + ] + }, + { + "country": "Oman", + "capital": "Muscat", + "language": "Arabic", + "latitude": 21, + "longitude": 57, + "currency": "Omani rial", + "continent": "Asia", + "neighbors": [ + "SAU", + "ARE", + "YEM" + ] + }, + { + "country": "Guam", + "capital": "Hagåtña", + "language": "Chamorro", + "latitude": 13.46666666, + "longitude": 144.78333333, + "currency": "United States dollar", + "continent": "Oceania", + "neighbors": [] + }, + { + "country": "Nepal", + "capital": "Kathmandu", + "language": "Nepali", + "latitude": 28, + "longitude": 84, + "currency": "Nepalese rupee", + "continent": "Asia", + "neighbors": [ + "CHN", + "IND" + ] + }, + { + "country": "Liechtenstein", + "capital": "Vaduz", + "language": "German", + "latitude": 47.26666666, + "longitude": 9.53333333, + "currency": "Swiss franc", + "continent": "Europe", + "neighbors": [ + "AUT", + "CHE" + ] + }, + { + "country": "Madagascar", + "capital": "Antananarivo", + "language": "French", + "latitude": -20, + "longitude": 47, + "currency": "Malagasy ariary", + "continent": "Africa", + "neighbors": [] + }, + { + "country": "Kazakhstan", + "capital": "Nur-Sultan", + "language": "Kazakh", + "latitude": 48.0196, + "longitude": 66.9237, + "currency": "Kazakhstani tenge", + "continent": "Asia", + "neighbors": [ + "CHN", + "KGZ", + "RUS", + "TKM", + "UZB" + ] + }, + { + "country": "Djibouti", + "capital": "Djibouti", + "language": "Arabic", + "latitude": 11.5, + "longitude": 43, + "currency": "Djiboutian franc", + "continent": "Africa", + "neighbors": [ + "ERI", + "ETH", + "SOM" + ] + }, + { + "country": "Gibraltar", + "capital": "Gibraltar", + "language": "English", + "latitude": 36.13333333, + "longitude": -5.35, + "currency": "Gibraltar pound", + "continent": "Europe", + "neighbors": [ + "ESP" + ] + }, + { + "country": "Guernsey", + "capital": "St. Peter Port", + "language": "English", + "latitude": 49.46666666, + "longitude": -2.58333333, + "currency": "British pound", + "continent": "Europe", + "neighbors": [] + }, + { + "country": "Namibia", + "capital": "Windhoek", + "language": "Afrikaans", + "latitude": -22, + "longitude": 17, + "currency": "Namibian dollar", + "continent": "Africa", + "neighbors": [ + "AGO", + "BWA", + "ZAF", + "ZMB" + ] + }, + { + "country": "Republic of the Congo", + "capital": "Brazzaville", + "language": "French", + "latitude": -1, + "longitude": 15, + "currency": "Central African CFA franc", + "continent": "Africa", + "neighbors": [ + "AGO", + "CMR", + "CAF", + "COD", + "GAB" + ] + }, + { + "country": "Germany", + "capital": "Berlin", + "language": "German", + "latitude": 51, + "longitude": 9, + "currency": "Euro", + "continent": "Europe", + "neighbors": [ + "AUT", + "BEL", + "CZE", + "DNK", + "FRA", + "LUX", + "NLD", + "POL", + "CHE" + ] + }, + { + "country": "Vatican City", + "capital": "Vatican City", + "language": "Italian", + "latitude": 41.9, + "longitude": 12.45, + "currency": "Euro", + "continent": "Europe", + "neighbors": [ + "ITA" + ] + }, + { + "country": "French Southern and Antarctic Lands", + "capital": "Port-aux-Français", + "language": "French", + "latitude": -49.25, + "longitude": 69.167, + "currency": "Euro", + "continent": "Antarctica", + "neighbors": [] + }, + { + "country": "Albania", + "capital": "Tirana", + "language": "Albanian", + "latitude": 41, + "longitude": 20, + "currency": "Albanian lek", + "continent": "Europe", + "neighbors": [ + "MNE", + "GRC", + "MKD", + "UNK" + ] + }, + { + "country": "Algeria", + "capital": "Algiers", + "language": "Arabic", + "latitude": 28, + "longitude": 3, + "currency": "Algerian dinar", + "continent": "Africa", + "neighbors": [ + "TUN", + "LBY", + "NER", + "ESH", + "MRT", + "MLI", + "MAR" + ] + }, + { + "country": "Mayotte", + "capital": "Mamoudzou", + "language": "French", + "latitude": -12.83333333, + "longitude": 45.16666666, + "currency": "Euro", + "continent": "Africa", + "neighbors": [] + }, + { + "country": "Haiti", + "capital": "Port-au-Prince", + "language": "French", + "latitude": 19, + "longitude": -72.41666666, + "currency": "Haitian gourde", + "continent": "North America", + "neighbors": [ + "DOM" + ] + }, + { + "country": "Svalbard and Jan Mayen", + "capital": "Longyearbyen", + "language": "Norwegian", + "latitude": 78, + "longitude": 20, + "currency": "krone", + "continent": "Europe", + "neighbors": [] + }, + { + "country": "Tonga", + "capital": "Nuku'alofa", + "language": "English", + "latitude": -20, + "longitude": -175, + "currency": "Tongan paʻanga", + "continent": "Oceania", + "neighbors": [] + }, + { + "country": "Hong Kong", + "capital": "City of Victoria", + "language": "English", + "latitude": 22.267, + "longitude": 114.188, + "currency": "Hong Kong dollar", + "continent": "Asia", + "neighbors": [ + "CHN" + ] + }, + { + "country": "Singapore", + "capital": "Singapore", + "language": "English", + "latitude": 1.36666666, + "longitude": 103.8, + "currency": "Singapore dollar", + "continent": "Asia", + "neighbors": [] + }, + { + "country": "Antigua and Barbuda", + "capital": "Saint John's", + "language": "English", + "latitude": 17.05, + "longitude": -61.8, + "currency": "Eastern Caribbean dollar", + "continent": "North America", + "neighbors": [] + }, + { + "country": "Saudi Arabia", + "capital": "Riyadh", + "language": "Arabic", + "latitude": 25, + "longitude": 45, + "currency": "Saudi riyal", + "continent": "Asia", + "neighbors": [ + "IRQ", + "JOR", + "KWT", + "OMN", + "QAT", + "ARE", + "YEM" + ] + }, + { + "country": "Cuba", + "capital": "Havana", + "language": "Spanish", + "latitude": 21.5, + "longitude": -80, + "currency": "Cuban convertible peso", + "continent": "North America", + "neighbors": [] + }, + { + "country": "Panama", + "capital": "Panama City", + "language": "Spanish", + "latitude": 9, + "longitude": -80, + "currency": "Panamanian balboa", + "continent": "North America", + "neighbors": [ + "COL", + "CRI" + ] + }, + { + "country": "Liberia", + "capital": "Monrovia", + "language": "English", + "latitude": 6.5, + "longitude": -9.5, + "currency": "Liberian dollar", + "continent": "Africa", + "neighbors": [ + "GIN", + "CIV", + "SLE" + ] + }, + { + "country": "Azerbaijan", + "capital": "Baku", + "language": "Azerbaijani", + "latitude": 40.5, + "longitude": 47.5, + "currency": "Azerbaijani manat", + "continent": "Europe", + "neighbors": [ + "ARM", + "GEO", + "IRN", + "RUS", + "TUR" + ] + }, + { + "country": "Latvia", + "capital": "Riga", + "language": "Latvian", + "latitude": 57, + "longitude": 25, + "currency": "Euro", + "continent": "Europe", + "neighbors": [ + "BLR", + "EST", + "LTU", + "RUS" + ] + }, + { + "country": "Antarctica", + "capital": "N/A", + "language": "N/A", + "latitude": -90, + "longitude": 0, + "currency": "N/A", + "continent": "Antarctica", + "neighbors": [] + }, + { + "country": "Kiribati", + "capital": "South Tarawa", + "language": "English", + "latitude": 1.41666666, + "longitude": 173, + "currency": "Australian dollar", + "continent": "Oceania", + "neighbors": [] + }, + { + "country": "Ethiopia", + "capital": "Addis Ababa", + "language": "Amharic", + "latitude": 8, + "longitude": 38, + "currency": "Ethiopian birr", + "continent": "Africa", + "neighbors": [ + "DJI", + "ERI", + "KEN", + "SOM", + "SSD", + "SDN" + ] + }, + { + "country": "Niger", + "capital": "Niamey", + "language": "French", + "latitude": 16, + "longitude": 8, + "currency": "West African CFA franc", + "continent": "Africa", + "neighbors": [ + "DZA", + "BEN", + "BFA", + "TCD", + "LBY", + "MLI", + "NGA" + ] + }, + { + "country": "Trinidad and Tobago", + "capital": "Port of Spain", + "language": "English", + "latitude": 10.6918, + "longitude": -61.2225, + "currency": "Trinidad and Tobago dollar", + "continent": "North America", + "neighbors": [] + }, + { + "country": "Sierra Leone", + "capital": "Freetown", + "language": "English", + "latitude": 8.5, + "longitude": -11.5, + "currency": "Sierra Leonean leone", + "continent": "Africa", + "neighbors": [ + "GIN", + "LBR" + ] + }, + { + "country": "Mozambique", + "capital": "Maputo", + "language": "Portuguese", + "latitude": -18.25, + "longitude": 35, + "currency": "Mozambican metical", + "continent": "Africa", + "neighbors": [ + "MWI", + "ZAF", + "SWZ", + "TZA", + "ZMB", + "ZWE" + ] + }, + { + "country": "Palau", + "capital": "Ngerulmud", + "language": "English", + "latitude": 7.5, + "longitude": 134.5, + "currency": "United States dollar", + "continent": "Oceania", + "neighbors": [] + }, + { + "country": "Fiji", + "capital": "Suva", + "language": "English", + "latitude": 17.7134, + "longitude": 178.065, + "currency": "Fijian dollar", + "continent": "Oceania", + "neighbors": [] + }, + { + "country": "Réunion", + "capital": "Saint-Denis", + "language": "French", + "latitude": -21.15, + "longitude": 55.5, + "currency": "Euro", + "continent": "Africa", + "neighbors": [] + }, + { + "country": "Norfolk Island", + "capital": "Kingston", + "language": "English", + "latitude": -29.03333333, + "longitude": 167.95, + "currency": "Australian dollar", + "continent": "Oceania", + "neighbors": [] + }, + { + "country": "Turkmenistan", + "capital": "Ashgabat", + "language": "Russian", + "latitude": 40, + "longitude": 60, + "currency": "Turkmenistan manat", + "continent": "Asia", + "neighbors": [ + "AFG", + "IRN", + "KAZ", + "UZB" + ] + }, + { + "country": "Tajikistan", + "capital": "Dushanbe", + "language": "Russian", + "latitude": 39, + "longitude": 71, + "currency": "Tajikistani somoni", + "continent": "Asia", + "neighbors": [ + "AFG", + "CHN", + "KGZ", + "UZB" + ] + }, + { + "country": "Lebanon", + "capital": "Beirut", + "language": "Arabic", + "latitude": 33.83333333, + "longitude": 35.83333333, + "currency": "Lebanese pound", + "continent": "Asia", + "neighbors": [ + "ISR", + "SYR" + ] + }, + { + "country": "Nigeria", + "capital": "Abuja", + "language": "English", + "latitude": 10, + "longitude": 8, + "currency": "Nigerian naira", + "continent": "Africa", + "neighbors": [ + "BEN", + "CMR", + "TCD", + "NER" + ] + }, + { + "country": "United States of America", + "capital": "Washington, D.C.", + "language": "English", + "latitude": 38, + "longitude": -97, + "currency": "United States dollar", + "continent": "North America", + "neighbors": [ + "CAN", + "MEX" + ] + }, + { + "country": "Argentina", + "capital": "Buenos Aires", + "language": "Guaraní", + "latitude": -34, + "longitude": -64, + "currency": "Argentine peso", + "continent": "South America", + "neighbors": [ + "BOL", + "BRA", + "CHL", + "PRY", + "URY" + ] + }, + { + "country": "Burkina Faso", + "capital": "Ouagadougou", + "language": "French", + "latitude": 13, + "longitude": -2, + "currency": "West African CFA franc", + "continent": "Africa", + "neighbors": [ + "BEN", + "CIV", + "GHA", + "MLI", + "NER", + "TGO" + ] + }, + { + "country": "Christmas Island", + "capital": "Flying Fish Cove", + "language": "English", + "latitude": -10.5, + "longitude": 105.66666666, + "currency": "Australian dollar", + "continent": "Asia", + "neighbors": [] + }, + { + "country": "Bermuda", + "capital": "Hamilton", + "language": "English", + "latitude": 32.33333333, + "longitude": -64.75, + "currency": "Bermudian dollar", + "continent": "North America", + "neighbors": [] + }, + { + "country": "Nicaragua", + "capital": "Managua", + "language": "Spanish", + "latitude": 13, + "longitude": -85, + "currency": "Nicaraguan córdoba", + "continent": "North America", + "neighbors": [ + "CRI", + "HND" + ] + }, + { + "country": "Eswatini", + "capital": "Mbabane", + "language": "English", + "latitude": -26.5, + "longitude": 31.5, + "currency": "Swazi lilangeni", + "continent": "Africa", + "neighbors": [ + "MOZ", + "ZAF" + ] + }, + { + "country": "Bahrain", + "capital": "Manama", + "language": "Arabic", + "latitude": 26, + "longitude": 50.55, + "currency": "Bahraini dinar", + "continent": "Asia", + "neighbors": [] + }, + { + "country": "Kenya", + "capital": "Nairobi", + "language": "English", + "latitude": 1, + "longitude": 38, + "currency": "Kenyan shilling", + "continent": "Africa", + "neighbors": [ + "ETH", + "SOM", + "SSD", + "TZA", + "UGA" + ] + }, + { + "country": "Serbia", + "capital": "Belgrade", + "language": "Serbian", + "latitude": 44, + "longitude": 21, + "currency": "Serbian dinar", + "continent": "Europe", + "neighbors": [ + "BIH", + "BGR", + "HRV", + "HUN", + "UNK", + "MKD", + "MNE", + "ROU" + ] + }, + { + "country": "Timor-Leste", + "capital": "Dili", + "language": "Portuguese", + "latitude": -8.83333333, + "longitude": 125.91666666, + "currency": "United States dollar", + "continent": "Oceania", + "neighbors": [ + "IDN" + ] + }, + { + "country": "Dominica", + "capital": "Roseau", + "language": "English", + "latitude": 15.41666666, + "longitude": -61.33333333, + "currency": "Eastern Caribbean dollar", + "continent": "North America", + "neighbors": [] + }, + { + "country": "Northern Mariana Islands", + "capital": "Saipan", + "language": "Carolinian", + "latitude": 15.2, + "longitude": 145.75, + "currency": "United States dollar", + "continent": "Oceania", + "neighbors": [] + }, + { + "country": "Philippines", + "capital": "Manila", + "language": "English", + "latitude": 13, + "longitude": 122, + "currency": "Philippine peso", + "continent": "Asia", + "neighbors": [] + }, + { + "country": "Kosovo", + "capital": "Pristina", + "language": "Albanian", + "latitude": 42.666667, + "longitude": 21.166667, + "currency": "Euro", + "continent": "Europe", + "neighbors": [ + "ALB", + "MKD", + "MNE", + "SRB" + ] + }, + { + "country": "Kuwait", + "capital": "Kuwait City", + "language": "Arabic", + "latitude": 29.5, + "longitude": 45.75, + "currency": "Kuwaiti dinar", + "continent": "Asia", + "neighbors": [ + "IRQ", + "SAU" + ] + }, + { + "country": "Taiwan", + "capital": "Taipei", + "language": "Chinese", + "latitude": 23.5, + "longitude": 121, + "currency": "New Taiwan dollar", + "continent": "Asia", + "neighbors": [] + }, + { + "country": "Burundi", + "capital": "Gitega", + "language": "French", + "latitude": -3.5, + "longitude": 30, + "currency": "Burundian franc", + "continent": "Africa", + "neighbors": [ + "COD", + "RWA", + "TZA" + ] + }, + { + "country": "American Samoa", + "capital": "Pago Pago", + "language": "English", + "latitude": -14.33333333, + "longitude": -170, + "currency": "United States dollar", + "continent": "Oceania", + "neighbors": [] + }, + { + "country": "Bulgaria", + "capital": "Sofia", + "language": "Bulgarian", + "latitude": 43, + "longitude": 25, + "currency": "Bulgarian lev", + "continent": "Europe", + "neighbors": [ + "GRC", + "MKD", + "ROU", + "SRB", + "TUR" + ] + }, + { + "country": "South Africa", + "capital": "Pretoria", + "language": "Afrikaans", + "latitude": -29, + "longitude": 24, + "currency": "South African rand", + "continent": "Africa", + "neighbors": [ + "BWA", + "LSO", + "MOZ", + "NAM", + "SWZ", + "ZWE" + ] + }, + { + "country": "Peru", + "capital": "Lima", + "language": "Aymara", + "latitude": -10, + "longitude": -76, + "currency": "Peruvian sol", + "continent": "South America", + "neighbors": [ + "BOL", + "BRA", + "CHL", + "COL", + "ECU" + ] + }, + { + "country": "Aruba", + "capital": "Oranjestad", + "language": "Dutch", + "latitude": 12.5, + "longitude": -69.96666666, + "currency": "Aruban florin", + "continent": "North America", + "neighbors": [] + }, + { + "country": "Ghana", + "capital": "Accra", + "language": "English", + "latitude": 8, + "longitude": -2, + "currency": "Ghanaian cedi", + "continent": "Africa", + "neighbors": [ + "BFA", + "CIV", + "TGO" + ] + }, + { + "country": "Saint Martin", + "capital": "Marigot", + "language": "French", + "latitude": 18.0708, + "longitude": 63.0501, + "currency": "Euro", + "continent": "North America", + "neighbors": [ + "SXM" + ] + }, + { + "country": "India", + "capital": "New Delhi", + "language": "English", + "latitude": 20, + "longitude": 77, + "currency": "Indian rupee", + "continent": "Asia", + "neighbors": [ + "BGD", + "BTN", + "MMR", + "CHN", + "NPL", + "PAK" + ] + }, + { + "country": "Uganda", + "capital": "Kampala", + "language": "English", + "latitude": 1, + "longitude": 32, + "currency": "Ugandan shilling", + "continent": "Africa", + "neighbors": [ + "COD", + "KEN", + "RWA", + "SSD", + "TZA" + ] + } +]; \ No newline at end of file diff --git a/New_APIs/Countries_API/package-lock.json b/New_APIs/Countries_API/package-lock.json new file mode 100644 index 0000000..f5ad052 --- /dev/null +++ b/New_APIs/Countries_API/package-lock.json @@ -0,0 +1,1818 @@ +{ + "name": "country-api", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "country-api", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "bcrypt": "^5.1.1", + "express": "^4.19.2", + "jsonwebtoken": "^9.0.2", + "mongoose": "^8.4.3", + "node-fetch": "^3.3.2" + } + }, + "node_modules/@mapbox/node-pre-gyp": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz", + "integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==", + "license": "BSD-3-Clause", + "dependencies": { + "detect-libc": "^2.0.0", + "https-proxy-agent": "^5.0.0", + "make-dir": "^3.1.0", + "node-fetch": "^2.6.7", + "nopt": "^5.0.0", + "npmlog": "^5.0.1", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.11" + }, + "bin": { + "node-pre-gyp": "bin/node-pre-gyp" + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/@mongodb-js/saslprep": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.7.tgz", + "integrity": "sha512-dCHW/oEX0KJ4NjDULBo3JiOaK5+6axtpBbS+ao2ZInoAL9/YRQLhXzSNAFz7hP4nzLkIqsfYAK/PDE3+XHny0Q==", + "license": "MIT", + "dependencies": { + "sparse-bitfield": "^3.0.3" + } + }, + "node_modules/@types/webidl-conversions": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz", + "integrity": "sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==", + "license": "MIT" + }, + "node_modules/@types/whatwg-url": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-11.0.5.tgz", + "integrity": "sha512-coYR071JRaHa+xoEvvYqvnIHaVqaYrLPbsufM9BF63HkwI5Lgmy2QR8Q5K/lYDYo5AK82wOvSOS0UsLTpTG7uQ==", + "license": "MIT", + "dependencies": { + "@types/webidl-conversions": "*" + } + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "license": "ISC" + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/agent-base/node_modules/debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/agent-base/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "license": "MIT" + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", + "license": "ISC" + }, + "node_modules/are-we-there-yet": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", + "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", + "deprecated": "This package is no longer supported.", + "license": "ISC", + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "license": "MIT" + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/bcrypt": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.1.1.tgz", + "integrity": "sha512-AGBHOG5hPYZ5Xl9KXzU5iKq9516yEmvCKDg3ecP5kX2aB6UqTeXZxk2ELnDgDm6BQSMlLt9rDB4LoSMx0rYwww==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@mapbox/node-pre-gyp": "^1.0.11", + "node-addon-api": "^5.0.0" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/bson": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-6.7.0.tgz", + "integrity": "sha512-w2IquM5mYzYZv6rs3uN2DZTOBe2a0zXLj53TGDqwF4l6Sz/XsISrisXOJihArF9+BZ6Cq/GjVht7Sjfmri7ytQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=16.20.1" + } + }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", + "license": "BSD-3-Clause" + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "license": "ISC", + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT" + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", + "license": "ISC" + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "license": "MIT" + }, + "node_modules/data-uri-to-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "license": "MIT" + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-libc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express": { + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.2", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.6.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "license": "MIT", + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "license": "ISC" + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gauge": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", + "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", + "deprecated": "This package is no longer supported.", + "license": "ISC", + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.2", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.1", + "object-assign": "^4.1.1", + "signal-exit": "^3.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", + "license": "ISC" + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/https-proxy-agent/node_modules/debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/https-proxy-agent/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "license": "MIT" + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jsonwebtoken": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", + "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", + "license": "MIT", + "dependencies": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12", + "npm": ">=6" + } + }, + "node_modules/jsonwebtoken/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "license": "MIT", + "dependencies": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "license": "MIT", + "dependencies": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/kareem": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.6.3.tgz", + "integrity": "sha512-C3iHfuGUXK2u8/ipq9LfjFfXFxAZMQJJq7vLS45r3D9Y2xQ/m4S8zaR4zMLFWh9AsNPXmcFfUDhTEO8UIC/V6Q==", + "license": "Apache-2.0", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==", + "license": "MIT" + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", + "license": "MIT" + }, + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==", + "license": "MIT" + }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==", + "license": "MIT" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "license": "MIT" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", + "license": "MIT" + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", + "license": "MIT" + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memory-pager": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", + "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", + "license": "MIT" + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "license": "MIT" + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "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/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "license": "ISC", + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mongodb": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.6.2.tgz", + "integrity": "sha512-ZF9Ugo2JCG/GfR7DEb4ypfyJJyiKbg5qBYKRintebj8+DNS33CyGMkWbrS9lara+u+h+yEOGSRiLhFO/g1s1aw==", + "license": "Apache-2.0", + "dependencies": { + "@mongodb-js/saslprep": "^1.1.5", + "bson": "^6.7.0", + "mongodb-connection-string-url": "^3.0.0" + }, + "engines": { + "node": ">=16.20.1" + }, + "peerDependencies": { + "@aws-sdk/credential-providers": "^3.188.0", + "@mongodb-js/zstd": "^1.1.0", + "gcp-metadata": "^5.2.0", + "kerberos": "^2.0.1", + "mongodb-client-encryption": ">=6.0.0 <7", + "snappy": "^7.2.2", + "socks": "^2.7.1" + }, + "peerDependenciesMeta": { + "@aws-sdk/credential-providers": { + "optional": true + }, + "@mongodb-js/zstd": { + "optional": true + }, + "gcp-metadata": { + "optional": true + }, + "kerberos": { + "optional": true + }, + "mongodb-client-encryption": { + "optional": true + }, + "snappy": { + "optional": true + }, + "socks": { + "optional": true + } + } + }, + "node_modules/mongodb-connection-string-url": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-3.0.1.tgz", + "integrity": "sha512-XqMGwRX0Lgn05TDB4PyG2h2kKO/FfWJyCzYQbIhXUxz7ETt0I/FqHjUeqj37irJ+Dl1ZtU82uYyj14u2XsZKfg==", + "license": "Apache-2.0", + "dependencies": { + "@types/whatwg-url": "^11.0.2", + "whatwg-url": "^13.0.0" + } + }, + "node_modules/mongoose": { + "version": "8.4.3", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-8.4.3.tgz", + "integrity": "sha512-GxPVLD+I/dxVkgcts2r2QmJJvS62/++btVj3RFt8YnHt+DSOp1Qjj62YEvgZaElwIOTcc4KGJM95X5LlrU1qQg==", + "license": "MIT", + "dependencies": { + "bson": "^6.7.0", + "kareem": "2.6.3", + "mongodb": "6.6.2", + "mpath": "0.9.0", + "mquery": "5.0.0", + "ms": "2.1.3", + "sift": "17.1.3" + }, + "engines": { + "node": ">=16.20.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mongoose" + } + }, + "node_modules/mongoose/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/mpath": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.9.0.tgz", + "integrity": "sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew==", + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mquery": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/mquery/-/mquery-5.0.0.tgz", + "integrity": "sha512-iQMncpmEK8R8ncT8HJGsGc9Dsp8xcgYMVSbs5jgnm1lFHTZqMJTUWTDx1LBO8+mK3tPNZWFLBghQEIOULSTHZg==", + "license": "MIT", + "dependencies": { + "debug": "4.x" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/mquery/node_modules/debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/mquery/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "license": "MIT" + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/node-addon-api": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", + "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==", + "license": "MIT" + }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "engines": { + "node": ">=10.5.0" + } + }, + "node_modules/node-fetch": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "license": "MIT", + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, + "node_modules/nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "license": "ISC", + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npmlog": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", + "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", + "deprecated": "This package is no longer supported.", + "license": "ISC", + "dependencies": { + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^3.0.0", + "set-blocking": "^2.0.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "license": "MIT" + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "license": "MIT", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "license": "ISC" + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sift": { + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/sift/-/sift-17.1.3.tgz", + "integrity": "sha512-Rtlj66/b0ICeFzYTuNvX/EF1igRbbnGSvEyT79McoZa/DeGhMyC5pWKOEsZKnpkqtSeovd5FL/bjHWC3CIIvCQ==", + "license": "MIT" + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" + }, + "node_modules/sparse-bitfield": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", + "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==", + "license": "MIT", + "dependencies": { + "memory-pager": "^1.0.2" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tr46": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz", + "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==", + "license": "MIT", + "dependencies": { + "punycode": "^2.3.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/web-streams-polyfill": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-url": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-13.0.0.tgz", + "integrity": "sha512-9WWbymnqj57+XEuqADHrCJ2eSXzn8WXIW/YSGaZtb2WKAInQ6CHfaUUcTyyver0p8BDg5StLQq8h1vtZuwmOig==", + "license": "MIT", + "dependencies": { + "tr46": "^4.1.1", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "license": "ISC", + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" + } + } +} diff --git a/New_APIs/Countries_API/package.json b/New_APIs/Countries_API/package.json new file mode 100644 index 0000000..f62a355 --- /dev/null +++ b/New_APIs/Countries_API/package.json @@ -0,0 +1,19 @@ +{ + "name": "country-api", + "version": "1.0.0", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC", + "description": "", + "dependencies": { + "bcrypt": "^5.1.1", + "express": "^4.19.2", + "jsonwebtoken": "^9.0.2", + "mongoose": "^8.4.3", + "node-fetch": "^3.3.2" + } +} diff --git a/New_APIs/Countries_API/server.js b/New_APIs/Countries_API/server.js new file mode 100644 index 0000000..3d992c7 --- /dev/null +++ b/New_APIs/Countries_API/server.js @@ -0,0 +1,153 @@ +const express = require('express'); +const fs = require('fs'); +const app = express(); +const port = 5000; +const countries = require('./countries'); + +// Middleware +app.use(express.json()); + +// Helper function to convert string to lowercase +const toLowerCase = str => str.toLowerCase(); + +// Get all countries +app.get('/api/countries', (req, res) => { + res.json(countries); +}); + +// Get a country by name +app.get('/api/countries/:name', (req, res) => { + const countryName = toLowerCase(req.params.name); + const country = countries.find(c => toLowerCase(c.country) === countryName); + if (country) { + res.json(country); + } else { + res.status(404).json({ message: 'Country not found' }); + } +}); + +// Get countries by continent +app.get('/api/countries/continent/:continent', (req, res) => { + const continent = toLowerCase(req.params.continent); + const filteredCountries = countries.filter(c => toLowerCase(c.continent) === continent); + res.json(filteredCountries); +}); + +// Get neighbors of a country +app.get('/api/countries/:name/neighbors', (req, res) => { + const countryName = toLowerCase(req.params.name); + const country = countries.find(c => toLowerCase(c.country) === countryName); + if (country) { + res.json(country.neighbors); + } else { + res.status(404).json({ message: 'Country not found' }); + } +}); + +// Get country by capital +app.get('/api/countries/capital/:capital', (req, res) => { + const capital = toLowerCase(req.params.capital); + const country = countries.find(c => toLowerCase(c.capital) === capital); + if (country) { + res.json(country); + } else { + res.status(404).json({ message: 'Country not found' }); + } +}); + +// Get countries by language +app.get('/api/countries/language/:language', (req, res) => { + const language = toLowerCase(req.params.language); + const filteredCountries = countries.filter(c => toLowerCase(c.language) === language); + res.json(filteredCountries); +}); + +// Get countries by currency +app.get('/api/countries/currency/:currency', (req, res) => { + const currency = toLowerCase(req.params.currency); + const filteredCountries = countries.filter(c => toLowerCase(c.currency) === currency); + res.json(filteredCountries); +}); + +// Get countries by latitude +app.get('/api/countries/latitude/:latitude', (req, res) => { + const latitude = parseFloat(req.params.latitude); + const filteredCountries = countries.filter(c => c.latitude === latitude); + res.json(filteredCountries); +}); + +// Get countries by longitude +app.get('/api/countries/longitude/:longitude', (req, res) => { + const longitude = parseFloat(req.params.longitude); + const filteredCountries = countries.filter(c => c.longitude === longitude); + res.json(filteredCountries); +}); + +// Get countries by continent and language +app.get('/api/countries/continent/:continent/language/:language', (req, res) => { + const continent = toLowerCase(req.params.continent); + const language = toLowerCase(req.params.language); + const filteredCountries = countries.filter(c => toLowerCase(c.continent) === continent && toLowerCase(c.language) === language); + res.json(filteredCountries); +}); + +// Add a new country +app.post('/api/countries', (req, res) => { + const newCountry = req.body; + + if (!newCountry.country || !newCountry.capital || !newCountry.continent) { + return res.status(400).json({ message: 'Country, capital, and continent are required fields.' }); + } + countries.push(newCountry); + fs.writeFile('./countries.js', `module.exports = ${JSON.stringify(countries, null, 2)};`, (err) => { + if (err) { + console.error(err); + return res.status(500).json({ message: 'Failed to update countries file.' }); + } + + res.status(201).json(newCountry); + }); +}); + +// Update a country +app.put('/api/countries/:name', (req, res) => { + const countryName = toLowerCase(req.params.name); + const countryIndex = countries.findIndex(c => toLowerCase(c.country) === countryName); + + if (countryIndex === -1) { + return res.status(404).json({ message: 'Country not found' }); + } + countries[countryIndex] = { ...countries[countryIndex], ...req.body }; + fs.writeFile('./countries.js', `module.exports = ${JSON.stringify(countries, null, 2)};`, (err) => { + if (err) { + console.error(err); + return res.status(500).json({ message: 'Failed to update countries file.' }); + } + + res.json(countries[countryIndex]); + }); +}); + +// Delete a country +app.delete('/api/countries/:name', (req, res) => { + const countryName = toLowerCase(req.params.name); + const countryIndex = countries.findIndex(c => toLowerCase(c.country) === countryName); + + if (countryIndex === -1) { + return res.status(404).json({ message: 'Country not found' }); + } + const deletedCountry = countries.splice(countryIndex, 1); + fs.writeFile('./countries.js', `module.exports = ${JSON.stringify(countries, null, 2)};`, (err) => { + if (err) { + console.error(err); + return res.status(500).json({ message: 'Failed to update countries file.' }); + } + + res.json(deletedCountry); + }); +}); + +// Start the server +app.listen(port, () => { + console.log(`Server running at http://localhost:${port}`); +});