diff --git a/include/faker-cxx/internet.h b/include/faker-cxx/internet.h index ef2e82793..d3dbcdb34 100644 --- a/include/faker-cxx/internet.h +++ b/include/faker-cxx/internet.h @@ -1,11 +1,11 @@ #pragma once #include +#include +#include #include #include #include -#include -#include #include "faker-cxx/export.h" #include "faker-cxx/types/locale.h" @@ -353,8 +353,6 @@ FAKER_CXX_EXPORT std::string_view domainSuffix(); */ FAKER_CXX_EXPORT std::string anonymousUsername(unsigned maxLength); - - /** * @brief Generates a JSON Web Token (JWT). * @@ -374,24 +372,22 @@ FAKER_CXX_EXPORT std::string anonymousUsername(unsigned maxLength); * std::string token = faker::internet::getJWTToken(header, payload); // "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." * @endcode */ -FAKER_CXX_EXPORT std::string getJWTToken(std::optional> header = std::nullopt, - std::optional> payload = std::nullopt, - std::optional refDate = std::nullopt); - - -/** -* @brief Returns the algorithm used for signing the JWT. -* -* This function provides the algorithm that is used to sign the JSON Web Token (JWT). -* -* @returns A string view representing the JWT signing algorithm. -* -* @code -* std::string_view algorithm = faker::internet::getJWTAlgorithm(); // "HS256" -* @endcode -*/ -FAKER_CXX_EXPORT std::string_view getJWTAlgorithm(); +FAKER_CXX_EXPORT std::string getJWTToken(std::optional> header = std::nullopt, + std::optional> payload = std::nullopt, + std::optional refDate = std::nullopt); +/** + * @brief Returns the algorithm used for signing the JWT. + * + * This function provides the algorithm that is used to sign the JSON Web Token (JWT). + * + * @returns A string view representing the JWT signing algorithm. + * + * @code + * std::string_view algorithm = faker::internet::getJWTAlgorithm(); // "HS256" + * @endcode + */ +FAKER_CXX_EXPORT std::string_view getJWTAlgorithm(); /** * @brief Encodes a given string to Base64 URL format. @@ -410,23 +406,20 @@ FAKER_CXX_EXPORT std::string_view getJWTAlgorithm(); */ FAKER_CXX_EXPORT std::string toBase64UrlEncode(std::string& input); - -/** -* @brief Converts a map of key-value pairs to a JSON string. -* -* This function takes a map where both keys and values are strings and converts it into a JSON formatted string. -* -* @param data The map containing key-value pairs to be converted to JSON. -* -* @returns A JSON formatted string representing the input map. -* -* @code -* std::map data = {{"name", "John"}, {"age", "30"}}; -* std::string json = faker::internet::toJSON(data); // json is now "{\"name\":\"John\",\"age\":\"30\"}" -* @endcode -*/ +/** + * @brief Converts a map of key-value pairs to a JSON string. + * + * This function takes a map where both keys and values are strings and converts it into a JSON formatted string. + * + * @param data The map containing key-value pairs to be converted to JSON. + * + * @returns A JSON formatted string representing the input map. + * + * @code + * std::map data = {{"name", "John"}, {"age", "30"}}; + * std::string json = faker::internet::toJSON(data); // json is now "{\"name\":\"John\",\"age\":\"30\"}" + * @endcode + */ FAKER_CXX_EXPORT std::string toJSON(std::map& data); } - - diff --git a/src/modules/internet.cpp b/src/modules/internet.cpp index 17d73a985..ee7e40f26 100644 --- a/src/modules/internet.cpp +++ b/src/modules/internet.cpp @@ -2,28 +2,27 @@ #include #include +#include #include #include #include +#include #include #include #include #include -#include -#include - #include "common/algo_helper.h" #include "common/format_helper.h" #include "common/string_helper.h" +#include "faker-cxx/company.h" +#include "faker-cxx/faker.h" #include "faker-cxx/helper.h" #include "faker-cxx/number.h" #include "faker-cxx/person.h" #include "faker-cxx/types/hex.h" #include "faker-cxx/types/locale.h" #include "faker-cxx/word.h" -#include "faker-cxx/faker.h" -#include "faker-cxx/company.h" #include "internet_data.h" #include "modules/string_data.h" @@ -354,7 +353,7 @@ std::string anonymousUsername(unsigned maxLength) } std::string toBase64UrlEncode(std::string& input) -{ +{ const std::string base64Chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; std::string encodedInput; @@ -372,8 +371,10 @@ std::string toBase64UrlEncode(std::string& input) } } - if (validBits > -6) encodedInput.push_back(base64Chars[((value << 8) >> validBits) & 0x3F]); - while (encodedInput.size() % 4) encodedInput.push_back('='); + if (validBits > -6) + encodedInput.push_back(base64Chars[((value << 8) >> validBits) & 0x3F]); + while (encodedInput.size() % 4) + encodedInput.push_back('='); std::replace(encodedInput.begin(), encodedInput.end(), '+', '-'); std::replace(encodedInput.begin(), encodedInput.end(), '/', '_'); @@ -387,7 +388,8 @@ std::string toJSON(std::map& data) std::string json = "{"; for (auto it = data.begin(); it != data.end(); ++it) { - if (it != data.begin()) json += ","; + if (it != data.begin()) + json += ","; json += "\"" + it->first + "\":\"" + it->second + "\""; } json += "}"; @@ -400,8 +402,7 @@ std::string_view getJWTAlgorithm() } std::string getJWTToken(std::optional> header, - std::optional> payload, - std::optional refDate) + std::optional> payload, std::optional refDate) { std::string refDateValue = refDate.value_or(faker::date::anytime()); @@ -412,18 +413,17 @@ std::string getJWTToken(std::optional> header std::string algorithm(getJWTAlgorithm()); - if (!header) header = {{"alg", algorithm}, {"typ", "JWT"}}; + if (!header) + header = {{"alg", algorithm}, {"typ", "JWT"}}; if (!payload) { - payload = { - {"iat", std::to_string(std::round(std::stoll(iatDefault)))}, - {"exp", std::to_string(std::round(std::stoll(expDefault)))}, - {"nbf", std::to_string(std::round(std::stoll(nbfDefault)))}, - {"iss", faker::company::companyName()}, - {"sub", faker::string::uuid()}, - {"aud", faker::string::uuid()}, - {"jti", faker::string::uuid()} - }; + payload = {{"iat", std::to_string(std::round(std::stoll(iatDefault)))}, + {"exp", std::to_string(std::round(std::stoll(expDefault)))}, + {"nbf", std::to_string(std::round(std::stoll(nbfDefault)))}, + {"iss", faker::company::companyName()}, + {"sub", faker::string::uuid()}, + {"aud", faker::string::uuid()}, + {"jti", faker::string::uuid()}}; } std::string headerToJSON = toJSON(header.value()); diff --git a/src/modules/internet_data.h b/src/modules/internet_data.h index 1411a815c..061eeadf3 100644 --- a/src/modules/internet_data.h +++ b/src/modules/internet_data.h @@ -28,174 +28,28 @@ const auto emailExampleHosts = std::to_array({ }); const auto smileyEmojis = std::to_array({ - "☠️", - "☹️", - "☺️", - "❣️", - "❤️", - "❤️‍🔥", - "❤️‍🩹", - "👁️‍🗨️", - "👹", - "👺", - "👻", - "👽", - "👾", - "👿", - "💀", - "💋", - "💌", - "💓", - "💔", - "💕", - "💖", - "💗", - "💘", - "💙", - "💚", - "💛", - "💜", - "💝", - "💞", - "💟", - "💢", - "💣", - "💤", - "💥", - "💦", - "💨", - "💩", - "💫", - "💬", - "💭", - "💯", - "🕳️", - "🖤", - "🗨️", - "🗯️", - "😀", - "😁", - "😂", - "😃", - "😄", - "😅", - "😆", - "😇", - "😈", - "😉", - "😊", - "😋", - "😌", - "😍", - "😎", - "😏", - "😐", - "😑", - "😒", - "😓", - "😔", - "😕", - "😖", - "😗", - "😘", - "😙", - "😚", - "😛", - "😜", - "😝", - "😞", - "😟", - "😠", - "😡", - "😢", - "😣", - "😤", - "😥", - "😦", - "😧", - "😨", - "😩", - "😪", - "😫", - "😬", - "😭", - "😮", - "😮‍💨", - "😯", - "😰", - "😱", - "😲", - "😳", - "😴", - "😵", - "😵‍💫", - "😶", - "😶‍🌫️", - "😷", - "😸", - "😹", - "😺", - "😻", - "😼", - "😽", - "😾", - "😿", - "🙀", - "🙁", - "🙂", - "🙃", - "🙄", - "🙈", - "🙉", - "🙊", - "🤍", - "🤎", - "🤐", - "🤑", - "🤒", - "🤓", - "🤔", - "🤕", - "🤖", - "🤗", - "🤠", - "🤡", - "🤢", - "🤣", - "🤤", - "🤥", - "🤧", - "🤨", - "🤩", - "🤪", - "🤫", - "🤬", - "🤭", - "🤮", - "🤯", - "🥰", - "🥱", - "🥲", - "🥳", - "🥴", - "🥵", - "🥶", - "🥸", - "🥺", - "🧐", - "🧡", + "☠️", "☹️", "☺️", "❣️", "❤️", "❤️‍🔥", "❤️‍🩹", "👁️‍🗨️", "👹", "👺", "👻", "👽", "👾", "👿", "💀", "💋", + "💌", "💓", "💔", "💕", "💖", "💗", "💘", "💙", "💚", "💛", "💜", "💝", "💞", "💟", "💢", "💣", + "💤", "💥", "💦", "💨", "💩", "💫", "💬", "💭", "💯", "🕳️", "🖤", "🗨️", "🗯️", "😀", "😁", "😂", + "😃", "😄", "😅", "😆", "😇", "😈", "😉", "😊", "😋", "😌", "😍", "😎", "😏", "😐", "😑", "😒", + "😓", "😔", "😕", "😖", "😗", "😘", "😙", "😚", "😛", "😜", "😝", "😞", "😟", "😠", "😡", "😢", + "😣", "😤", "😥", "😦", "😧", "😨", "😩", "😪", "😫", "😬", "😭", "😮", "😮‍💨", "😯", "😰", "😱", + "😲", "😳", "😴", "😵", "😵‍💫", "😶", "😶‍🌫️", "😷", "😸", "😹", "😺", "😻", "😼", "😽", "😾", "😿", + "🙀", "🙁", "🙂", "🙃", "🙄", "🙈", "🙉", "🙊", "🤍", "🤎", "🤐", "🤑", "🤒", "🤓", "🤔", "🤕", + "🤖", "🤗", "🤠", "🤡", "🤢", "🤣", "🤤", "🤥", "🤧", "🤨", "🤩", "🤪", "🤫", "🤬", "🤭", "🤮", + "🤯", "🥰", "🥱", "🥲", "🥳", "🥴", "🥵", "🥶", "🥸", "🥺", "🧐", "🧡", }); const auto bodyEmojis = std::to_array({ - "☝️", "☝🏻", "☝🏼", "☝🏽", "☝🏾", "☝🏿", "✊", "✊🏻", "✊🏼", "✊🏽", "✊🏾", "✊🏿", "✋", "✋🏻", - "✋🏼", "✋🏽", "✋🏾", "✋🏿", "✌️", "✌🏻", "✌🏼", "✌🏽", "✌🏾", "✌🏿", "✍️", "✍🏻", "✍🏼", "✍🏽", - "✍🏾", "✍🏿", "👀", "👁️", "👂", "👂🏻", "👂🏼", "👂🏽", "👂🏾", "👂🏿", "👃", "👃🏻", "👃🏼", "👃🏽", + "☝️", "☝🏻", "☝🏼", "☝🏽", "☝🏾", "☝🏿", "✊", "✊🏻", "✊🏼", "✊🏽", "✊🏾", "✊🏿", "✋", "✋🏻", + "✋🏼", "✋🏽", "✋🏾", "✋🏿", "✌️", "✌🏻", "✌🏼", "✌🏽", "✌🏾", "✌🏿", "✍️", "✍🏻", "✍🏼", "✍🏽", + "✍🏾", "✍🏿", "👀", "👁️", "👂", "👂🏻", "👂🏼", "👂🏽", "👂🏾", "👂🏿", "👃", "👃🏻", "👃🏼", "👃🏽", "👃🏾", "👃🏿", "👄", "👅", "👆", "👆🏻", "👆🏼", "👆🏽", "👆🏾", "👆🏿", "👇", "👇🏻", "👇🏼", "👇🏽", "👇🏾", "👇🏿", "👈", "👈🏻", "👈🏼", "👈🏽", "👈🏾", "👈🏿", "👉", "👉🏻", "👉🏼", "👉🏽", "👉🏾", "👉🏿", "👊", "👊🏻", "👊🏼", "👊🏽", "👊🏾", "👊🏿", "👋", "👋🏻", "👋🏼", "👋🏽", "👋🏾", "👋🏿", "👌", "👌🏻", "👌🏼", "👌🏽", "👌🏾", "👌🏿", "👍", "👍🏻", "👍🏼", "👍🏽", "👍🏾", "👍🏿", "👎", "👎🏻", "👎🏼", "👎🏽", "👎🏾", "👎🏿", "👏", "👏🏻", "👏🏼", "👏🏽", "👏🏾", "👏🏿", "👐", "👐🏻", "👐🏼", "👐🏽", "👐🏾", "👐🏿", - "💅", "💅🏻", "💅🏼", "💅🏽", "💅🏾", "💅🏿", "💪", "💪🏻", "💪🏼", "💪🏽", "💪🏾", "💪🏿", "🖐️", "🖐🏻", + "💅", "💅🏻", "💅🏼", "💅🏽", "💅🏾", "💅🏿", "💪", "💪🏻", "💪🏼", "💪🏽", "💪🏾", "💪🏿", "🖐️", "🖐🏻", "🖐🏼", "🖐🏽", "🖐🏾", "🖐🏿", "🖕", "🖕🏻", "🖕🏼", "🖕🏽", "🖕🏾", "🖕🏿", "🖖", "🖖🏻", "🖖🏼", "🖖🏽", "🖖🏾", "🖖🏿", "🙌", "🙌🏻", "🙌🏼", "🙌🏽", "🙌🏾", "🙌🏿", "🙏", "🙏🏻", "🙏🏼", "🙏🏽", "🙏🏾", "🙏🏿", "🤌", "🤌🏻", "🤌🏼", "🤌🏽", "🤌🏾", "🤌🏿", "🤏", "🤏🏻", "🤏🏼", "🤏🏽", "🤏🏾", "🤏🏿", "🤘", "🤘🏻", @@ -208,535 +62,121 @@ const auto bodyEmojis = std::to_array({ }); const auto personEmojis = std::to_array({ - "⛷️", - "⛹️", - "⛹️‍♀️", - "⛹️‍♂️", - "👧", - "👨", - "👨‍⚕️", - "👨‍⚖️", - "👨‍✈️", - "👨‍❤️‍👨", - "👨‍❤️‍💋‍👨", - "👨‍🌾", - "👨‍🍳", - "👨‍🍼", - "👨‍🦯", - "👨‍🦰", - "👨‍🦱", - "👨‍🦲", - "👨‍🦳", - "👨‍🦼", - "👨‍🦽", - "👮‍♀️", - "👰‍♀️", - "👰‍♂️", - "👰🏻", - "👱‍♀️", - "👱‍♂️", - "👳‍♀️", - "💆‍♀️", - "💆‍♂️", - "🙇", - "🙇‍♀️", - "🙇‍♂️", - "🙋", - "🙋‍♀️", - "🙋‍♂️", - "🙎", - "🙎‍♀️", - "🚣", - "🚣‍♀️", - "🚣‍♂️", - "🚴‍♀️", - "🚴‍♂️", - "🚵", - "🚵‍♀️", - "🚵‍♂️", - "🚶", - "🚶‍♀️", - "🚶‍♂️", - "🤦", - "🤦‍♀️", - "🤦‍♂️", - "🤰", - "🤱", - "🤴", - "🤵", - "🤵‍♀️", - "🤵‍♂️", - "🤷", - "🤷‍♀️", - "🤷‍♂️", - "🤸", - "🤸‍♀️", - "🤹", - "🤺", - "🤼", - "🤼‍♀️", - "🤼‍♂️", - "🤽", - "🤾", - "🤾‍♀️", - "🦸‍♀️", - "🧍", - "🧎", - "🧏", - "🧏‍♀️", - "🧑", - "🧑‍⚕️", - "🧑‍⚖️", - "🧑‍✈️", - "🧑‍🌾", - "🧑‍🍳", - "🧑‍🍼", - "🧑‍💼", - "🧑‍🔧", - "🧑‍🔬", - "🧑‍🚀", - "🧑‍🚒", - "🧑‍🤝‍🧑", - "🧑‍🦯", - "🧑‍🦰", - "🧑‍🦱", - "🧑‍🦲", - "🧑‍🦳", - "🧑‍🦼", - "🧖", - "🧖‍♀️", - "🧖‍♂️", - "🧗‍♀️", - "🧗‍♂️", - "🧘", - "🧘‍♀️", - "🧙", - "🧙‍♀️", - "🧙‍♂️", - "🧚", - "🧚‍♀️", - "🧚‍♂️", - "🧛", - "🧛‍♀️", - "🧛‍♂️", - "🧜", - "🧜‍♀️", - "🧜‍♂️", - "🧝‍♀️", - "🧝‍♂️", - "🧞", - "🧞‍♀️", - "🧞‍♂️", - "🧟", - "🧟‍♀️", + "⛷️", "⛹️", "⛹️‍♀️", "⛹️‍♂️", "👧", "👨", "👨‍⚕️", "👨‍⚖️", "👨‍✈️", "👨‍❤️‍👨", "👨‍❤️‍💋‍👨", + "👨‍🌾", "👨‍🍳", "👨‍🍼", "👨‍🦯", "👨‍🦰", "👨‍🦱", "👨‍🦲", "👨‍🦳", "👨‍🦼", "👨‍🦽", "👮‍♀️", + "👰‍♀️", "👰‍♂️", "👰🏻", "👱‍♀️", "👱‍♂️", "👳‍♀️", "💆‍♀️", "💆‍♂️", "🙇", "🙇‍♀️", "🙇‍♂️", + "🙋", "🙋‍♀️", "🙋‍♂️", "🙎", "🙎‍♀️", "🚣", "🚣‍♀️", "🚣‍♂️", "🚴‍♀️", "🚴‍♂️", "🚵", + "🚵‍♀️", "🚵‍♂️", "🚶", "🚶‍♀️", "🚶‍♂️", "🤦", "🤦‍♀️", "🤦‍♂️", "🤰", "🤱", "🤴", + "🤵", "🤵‍♀️", "🤵‍♂️", "🤷", "🤷‍♀️", "🤷‍♂️", "🤸", "🤸‍♀️", "🤹", "🤺", "🤼", + "🤼‍♀️", "🤼‍♂️", "🤽", "🤾", "🤾‍♀️", "🦸‍♀️", "🧍", "🧎", "🧏", "🧏‍♀️", "🧑", + "🧑‍⚕️", "🧑‍⚖️", "🧑‍✈️", "🧑‍🌾", "🧑‍🍳", "🧑‍🍼", "🧑‍💼", "🧑‍🔧", "🧑‍🔬", "🧑‍🚀", "🧑‍🚒", + "🧑‍🤝‍🧑", "🧑‍🦯", "🧑‍🦰", "🧑‍🦱", "🧑‍🦲", "🧑‍🦳", "🧑‍🦼", "🧖", "🧖‍♀️", "🧖‍♂️", "🧗‍♀️", + "🧗‍♂️", "🧘", "🧘‍♀️", "🧙", "🧙‍♀️", "🧙‍♂️", "🧚", "🧚‍♀️", "🧚‍♂️", "🧛", "🧛‍♀️", + "🧛‍♂️", "🧜", "🧜‍♀️", "🧜‍♂️", "🧝‍♀️", "🧝‍♂️", "🧞", "🧞‍♀️", "🧞‍♂️", "🧟", "🧟‍♀️", "🧟‍♂️", }); const auto natureEmojis = std::to_array({ - "☘️", "🌱", - "🌲", "🌳", - "🌴", "🌵", - "🌷", "🌸", - "🌹", "🌺", - "🌻", "🌼", - "🌾", "🌿", - "🍀", "🍁", - "🍂", "🍃", - "🏵️", "🐀", - "🐁", "🐂", - "🐃", "🐄", - "🐅", "🐆", - "🐇", "🐈", - "🐈‍⬛", "🐉", - "🐊", "🐋", - "🐌", "🐍", - "🐎", "🐏", - "🐐", "🐑", - "🐒", "🐓", - "🐔", "🐕", - "🐕‍🦺", "🐖", - "🐗", "🐘", - "🐙", "🐚", - "🐛", "🐜", - "🐝", "🐞", - "🐟", "🐠", - "🐡", "🐢", - "🐣", "🐤", - "🐥", "🐦", - "🐧", "🐨", - "🐩", "🐪", - "🐫", "🐬", - "🐭", "🐮", - "🐯", "🐰", - "🐱", "🐲", - "🐳", "🐴", - "🐵", "🐶", - "🐷", "🐸", - "🐹", "🐺", - "🐻", "🐻‍❄️", - "🐼", "🐽", - "🐾", "🐿️", - "💐", "💮", - "🕊️", "🕷️", - "🕸️", "🥀", - "🦁", "🦂", - "🦃", "🦄", - "🦅", "🦆", - "🦇", "🦈", - "🦉", "🦊", - "🦋", "🦌", - "🦍", "🦎", - "🦏", "🦒", - "🦓", "🦔", - "🦕", "🦖", - "🦗", "🦘", - "🦙", "🦚", - "🦛", "🦜", - "🦝", "🦟", - "🦠", "🦡", - "🦢", "🦣", - "🦤", "🦥", - "🦦", "🦧", - "🦨", "🦩", - "🦫", "🦬", - "🦭", "🦮", - "🪰", "🪱", - "🪲", "🪳", - "🪴", "🪶", + "☘️", "🌱", "🌲", "🌳", "🌴", "🌵", "🌷", "🌸", "🌹", "🌺", "🌻", "🌼", "🌾", "🌿", "🍀", "🍁", + "🍂", "🍃", "🏵️", "🐀", "🐁", "🐂", "🐃", "🐄", "🐅", "🐆", "🐇", "🐈", "🐈‍⬛", "🐉", "🐊", "🐋", + "🐌", "🐍", "🐎", "🐏", "🐐", "🐑", "🐒", "🐓", "🐔", "🐕", "🐕‍🦺", "🐖", "🐗", "🐘", "🐙", "🐚", + "🐛", "🐜", "🐝", "🐞", "🐟", "🐠", "🐡", "🐢", "🐣", "🐤", "🐥", "🐦", "🐧", "🐨", "🐩", "🐪", + "🐫", "🐬", "🐭", "🐮", "🐯", "🐰", "🐱", "🐲", "🐳", "🐴", "🐵", "🐶", "🐷", "🐸", "🐹", "🐺", + "🐻", "🐻‍❄️", "🐼", "🐽", "🐾", "🐿️", "💐", "💮", "🕊️", "🕷️", "🕸️", "🥀", "🦁", "🦂", "🦃", "🦄", + "🦅", "🦆", "🦇", "🦈", "🦉", "🦊", "🦋", "🦌", "🦍", "🦎", "🦏", "🦒", "🦓", "🦔", "🦕", "🦖", + "🦗", "🦘", "🦙", "🦚", "🦛", "🦜", "🦝", "🦟", "🦠", "🦡", "🦢", "🦣", "🦤", "🦥", "🦦", "🦧", + "🦨", "🦩", "🦫", "🦬", "🦭", "🦮", "🪰", "🪱", "🪲", "🪳", "🪴", "🪶", }); const auto foodEmojis = std::to_array({ - "☕", "🌭", "🌮", "🌯", "🌰", "🌶️", "🌽", "🍄", "🍅", "🍆", "🍇", "🍈", "🍉", "🍊", "🍋", "🍌", "🍍", "🍎", "🍏", - "🍐", "🍑", "🍒", "🍓", "🍔", "🍕", "🍖", "🍗", "🍘", "🍙", "🍚", "🍛", "🍜", "🍝", "🍞", "🍟", "🍠", "🍡", "🍢", - "🍣", "🍤", "🍥", "🍦", "🍧", "🍨", "🍩", "🍪", "🍫", "🍬", "🍭", "🍮", "🍯", "🍰", "🍱", "🍲", "🍳", "🍴", "🍵", - "🍶", "🍷", "🍸", "🍹", "🍺", "🍻", "🍼", "🍽️", "🍾", "🍿", "🎂", "🏺", "🔪", "🥂", "🥃", "🥄", "🥐", "🥑", "🥒", - "🥓", "🥔", "🥕", "🥖", "🥗", "🥘", "🥙", "🥚", "🥛", "🥜", "🥝", "🥞", "🥟", "🥠", "🥡", "🥢", "🥣", "🥤", "🥥", - "🥦", "🥧", "🥨", "🥩", "🥪", "🥫", "🥬", "🥭", "🥮", "🥯", "🦀", "🦐", "🦑", "🦞", "🦪", "🧀", "🧁", "🧂", "🧃", - "🧄", "🧅", "🧆", "🧇", "🧈", "🧉", "🧊", "🧋", "🫐", "🫑", "🫒", "🫓", "🫔", "🫕", "🫖", + "☕", "🌭", "🌮", "🌯", "🌰", "🌶️", "🌽", "🍄", "🍅", "🍆", "🍇", "🍈", "🍉", "🍊", "🍋", "🍌", "🍍", "🍎", "🍏", + "🍐", "🍑", "🍒", "🍓", "🍔", "🍕", "🍖", "🍗", "🍘", "🍙", "🍚", "🍛", "🍜", "🍝", "🍞", "🍟", "🍠", "🍡", "🍢", + "🍣", "🍤", "🍥", "🍦", "🍧", "🍨", "🍩", "🍪", "🍫", "🍬", "🍭", "🍮", "🍯", "🍰", "🍱", "🍲", "🍳", "🍴", "🍵", + "🍶", "🍷", "🍸", "🍹", "🍺", "🍻", "🍼", "🍽️", "🍾", "🍿", "🎂", "🏺", "🔪", "🥂", "🥃", "🥄", "🥐", "🥑", "🥒", + "🥓", "🥔", "🥕", "🥖", "🥗", "🥘", "🥙", "🥚", "🥛", "🥜", "🥝", "🥞", "🥟", "🥠", "🥡", "🥢", "🥣", "🥤", "🥥", + "🥦", "🥧", "🥨", "🥩", "🥪", "🥫", "🥬", "🥭", "🥮", "🥯", "🦀", "🦐", "🦑", "🦞", "🦪", "🧀", "🧁", "🧂", "🧃", + "🧄", "🧅", "🧆", "🧇", "🧈", "🧉", "🧊", "🧋", "🫐", "🫑", "🫒", "🫓", "🫔", "🫕", "🫖", }); const auto travelEmojis = std::to_array({ - "⌚", "⌛", "⏰", "⏱️", "⏲️", "⏳", "☀️", "☁️", "☂️", "☃️", "☄️", "☔", "♨️", "⚓", "⚡", "⛄", "⛅", "⛈️", - "⛩️", "⛪", "⛰️", "⛱️", "⛲", "⛴️", "⛵", "⛺", "⛽", "✈️", "❄️", "⭐", "🌀", "🌁", "🌂", "🌃", "🌄", "🌅", - "🌆", "🌇", "🌈", "🌉", "🌊", "🌋", "🌌", "🌍", "🌎", "🌏", "🌐", "🌑", "🌒", "🌓", "🌔", "🌕", "🌖", "🌗", - "🌘", "🌙", "🌚", "🌛", "🌜", "🌝", "🌞", "🌟", "🌠", "🌡️", "🌤️", "🌥️", "🌦️", "🌧️", "🌨️", "🌩️", "🌪️", "🌫️", - "🌬️", "🎠", "🎡", "🎢", "🎪", "🏍️", "🏎️", "🏔️", "🏕️", "🏖️", "🏗️", "🏘️", "🏙️", "🏚️", "🏛️", "🏜️", "🏝️", "🏞️", - "🏟️", "🏠", "🏡", "🏢", "🏣", "🏤", "🏥", "🏦", "🏨", "🏩", "🏪", "🏫", "🏬", "🏭", "🏯", "🏰", "💈", "💒", - "💧", "💺", "🔥", "🕋", "🕌", "🕍", "🕐", "🕑", "🕒", "🕓", "🕔", "🕕", "🕖", "🕗", "🕘", "🕙", "🕚", "🕛", - "🕜", "🕝", "🕞", "🕟", "🕠", "🕡", "🕢", "🕣", "🕤", "🕥", "🕦", "🕧", "🕰️", "🗺️", "🗻", "🗼", "🗽", "🗾", - "🚀", "🚁", "🚂", "🚃", "🚄", "🚅", "🚆", "🚇", "🚈", "🚉", "🚊", "🚋", "🚌", "🚍", "🚎", "🚏", "🚐", "🚑", - "🚒", "🚓", "🚔", "🚕", "🚖", "🚗", "🚘", "🚙", "🚚", "🚛", "🚜", "🚝", "🚞", "🚟", "🚠", "🚡", "🚢", "🚤", - "🚥", "🚦", "🚧", "🚨", "🚲", "🛎️", "🛑", "🛕", "🛖", "🛢️", "🛣️", "🛤️", "🛥️", "🛩️", "🛫", "🛬", "🛰️", "🛳️", - "🛴", "🛵", "🛶", "🛸", "🛹", "🛺", "🛻", "🛼", "🦼", "🦽", "🧭", "🧱", "🧳", "🪂", "🪐", "🪨", "🪵", + "⌚", "⌛", "⏰", "⏱️", "⏲️", "⏳", "☀️", "☁️", "☂️", "☃️", "☄️", "☔", "♨️", "⚓", "⚡", "⛄", "⛅", + "⛈️", "⛩️", "⛪", "⛰️", "⛱️", "⛲", "⛴️", "⛵", "⛺", "⛽", "✈️", "❄️", "⭐", "🌀", "🌁", "🌂", "🌃", + "🌄", "🌅", "🌆", "🌇", "🌈", "🌉", "🌊", "🌋", "🌌", "🌍", "🌎", "🌏", "🌐", "🌑", "🌒", "🌓", "🌔", + "🌕", "🌖", "🌗", "🌘", "🌙", "🌚", "🌛", "🌜", "🌝", "🌞", "🌟", "🌠", "🌡️", "🌤️", "🌥️", "🌦️", "🌧️", + "🌨️", "🌩️", "🌪️", "🌫️", "🌬️", "🎠", "🎡", "🎢", "🎪", "🏍️", "🏎️", "🏔️", "🏕️", "🏖️", "🏗️", "🏘️", "🏙️", + "🏚️", "🏛️", "🏜️", "🏝️", "🏞️", "🏟️", "🏠", "🏡", "🏢", "🏣", "🏤", "🏥", "🏦", "🏨", "🏩", "🏪", "🏫", + "🏬", "🏭", "🏯", "🏰", "💈", "💒", "💧", "💺", "🔥", "🕋", "🕌", "🕍", "🕐", "🕑", "🕒", "🕓", "🕔", + "🕕", "🕖", "🕗", "🕘", "🕙", "🕚", "🕛", "🕜", "🕝", "🕞", "🕟", "🕠", "🕡", "🕢", "🕣", "🕤", "🕥", + "🕦", "🕧", "🕰️", "🗺️", "🗻", "🗼", "🗽", "🗾", "🚀", "🚁", "🚂", "🚃", "🚄", "🚅", "🚆", "🚇", "🚈", + "🚉", "🚊", "🚋", "🚌", "🚍", "🚎", "🚏", "🚐", "🚑", "🚒", "🚓", "🚔", "🚕", "🚖", "🚗", "🚘", "🚙", + "🚚", "🚛", "🚜", "🚝", "🚞", "🚟", "🚠", "🚡", "🚢", "🚤", "🚥", "🚦", "🚧", "🚨", "🚲", "🛎️", "🛑", + "🛕", "🛖", "🛢️", "🛣️", "🛤️", "🛥️", "🛩️", "🛫", "🛬", "🛰️", "🛳️", "🛴", "🛵", "🛶", "🛸", "🛹", "🛺", + "🛻", "🛼", "🦼", "🦽", "🧭", "🧱", "🧳", "🪂", "🪐", "🪨", "🪵", }); const auto activityEmojis = std::to_array({ - "♟️", "♠️", "♣️", "♥️", "♦️", "⚽", "⚾", "⛳", "⛸️", "✨", "🀄", "🃏", "🎀", "🎁", "🎃", "🎄", "🎆", - "🎇", "🎈", "🎉", "🎊", "🎋", "🎍", "🎎", "🎏", "🎐", "🎑", "🎖️", "🎗️", "🎟️", "🎣", "🎨", "🎫", "🎭", - "🎮", "🎯", "🎰", "🎱", "🎲", "🎳", "🎴", "🎽", "🎾", "🎿", "🏀", "🏅", "🏆", "🏈", "🏉", "🏏", "🏐", - "🏑", "🏒", "🏓", "🏸", "🔮", "🕹️", "🖼️", "🛷", "🤿", "🥅", "🥇", "🥈", "🥉", "🥊", "🥋", "🥌", "🥍", - "🥎", "🥏", "🧧", "🧨", "🧩", "🧵", "🧶", "🧸", "🧿", "🪀", "🪁", "🪄", "🪅", "🪆", "🪡", "🪢", + "♟️", "♠️", "♣️", "♥️", "♦️", "⚽", "⚾", "⛳", "⛸️", "✨", "🀄", "🃏", "🎀", "🎁", "🎃", "🎄", "🎆", + "🎇", "🎈", "🎉", "🎊", "🎋", "🎍", "🎎", "🎏", "🎐", "🎑", "🎖️", "🎗️", "🎟️", "🎣", "🎨", "🎫", "🎭", + "🎮", "🎯", "🎰", "🎱", "🎲", "🎳", "🎴", "🎽", "🎾", "🎿", "🏀", "🏅", "🏆", "🏈", "🏉", "🏏", "🏐", + "🏑", "🏒", "🏓", "🏸", "🔮", "🕹️", "🖼️", "🛷", "🤿", "🥅", "🥇", "🥈", "🥉", "🥊", "🥋", "🥌", "🥍", + "🥎", "🥏", "🧧", "🧨", "🧩", "🧵", "🧶", "🧸", "🧿", "🪀", "🪁", "🪄", "🪅", "🪆", "🪡", "🪢", }); const auto objectEmojis = std::to_array({ - "⌨️", "☎️", "⚒️", "⚔️", "⚖️", "⚗️", "⚙️", "⚰️", "⚱️", "⛏️", "⛑️", "⛓️", "✂️", "✉️", "✏️", "✒️", "🎒", "🎓", - "🎙️", "🎚️", "🎛️", "🎞️", "🎤", "🎥", "🎧", "🎩", "🎬", "🎵", "🎶", "🎷", "🎸", "🎹", "🎺", "🎻", "🎼", "🏮", - "🏷️", "🏹", "👑", "👒", "👓", "👔", "👕", "👖", "👗", "👘", "👙", "👚", "👛", "👜", "👝", "👞", "👟", "👠", - "👡", "👢", "💄", "💉", "💊", "💍", "💎", "💡", "💰", "💳", "💴", "💵", "💶", "💷", "💸", "💹", "💻", "💼", - "💽", "💾", "💿", "📀", "📁", "📂", "📃", "📄", "📅", "📆", "📇", "📈", "📉", "📊", "📋", "📌", "📍", "📎", - "📏", "📐", "📑", "📒", "📓", "📔", "📕", "📖", "📗", "📘", "📙", "📚", "📜", "📝", "📞", "📟", "📠", "📡", - "📢", "📣", "📤", "📥", "📦", "📧", "📨", "📩", "📪", "📫", "📬", "📭", "📮", "📯", "📰", "📱", "📲", "📷", - "📸", "📹", "📺", "📻", "📼", "📽️", "📿", "🔇", "🔈", "🔉", "🔊", "🔋", "🔌", "🔍", "🔎", "🔏", "🔐", "🔑", - "🔒", "🔓", "🔔", "🔕", "🔖", "🔗", "🔦", "🔧", "🔨", "🔩", "🔫", "🔬", "🔭", "🕯️", "🕶️", "🖇️", "🖊️", "🖋️", - "🖌️", "🖍️", "🖥️", "🖨️", "🖱️", "🖲️", "🗂️", "🗃️", "🗄️", "🗑️", "🗒️", "🗓️", "🗜️", "🗝️", "🗞️", "🗡️", "🗳️", "🗿", - "🚪", "🚬", "🚽", "🚿", "🛁", "🛋️", "🛍️", "🛏️", "🛒", "🛗", "🛠️", "🛡️", "🥁", "🥻", "🥼", "🥽", "🥾", "🥿", - "🦯", "🦺", "🧢", "🧣", "🧤", "🧥", "🧦", "🧪", "🧫", "🧬", "🧮", "🧯", "🧰", "🧲", "🧴", "🧷", "🧹", "🧺", - "🧻", "🧼", "🧽", "🧾", "🩰", "🩱", "🩲", "🩳", "🩴", "🩸", "🩹", "🩺", "🪃", "🪑", "🪒", "🪓", "🪔", "🪕", - "🪖", "🪗", "🪘", "🪙", "🪚", "🪛", "🪜", "🪝", "🪞", "🪟", "🪠", "🪣", "🪤", "🪥", "🪦", "🪧", + "⌨️", "☎️", "⚒️", "⚔️", "⚖️", "⚗️", "⚙️", "⚰️", "⚱️", "⛏️", "⛑️", "⛓️", "✂️", "✉️", "✏️", "✒️", + "🎒", "🎓", "🎙️", "🎚️", "🎛️", "🎞️", "🎤", "🎥", "🎧", "🎩", "🎬", "🎵", "🎶", "🎷", "🎸", "🎹", + "🎺", "🎻", "🎼", "🏮", "🏷️", "🏹", "👑", "👒", "👓", "👔", "👕", "👖", "👗", "👘", "👙", "👚", + "👛", "👜", "👝", "👞", "👟", "👠", "👡", "👢", "💄", "💉", "💊", "💍", "💎", "💡", "💰", "💳", + "💴", "💵", "💶", "💷", "💸", "💹", "💻", "💼", "💽", "💾", "💿", "📀", "📁", "📂", "📃", "📄", + "📅", "📆", "📇", "📈", "📉", "📊", "📋", "📌", "📍", "📎", "📏", "📐", "📑", "📒", "📓", "📔", + "📕", "📖", "📗", "📘", "📙", "📚", "📜", "📝", "📞", "📟", "📠", "📡", "📢", "📣", "📤", "📥", + "📦", "📧", "📨", "📩", "📪", "📫", "📬", "📭", "📮", "📯", "📰", "📱", "📲", "📷", "📸", "📹", + "📺", "📻", "📼", "📽️", "📿", "🔇", "🔈", "🔉", "🔊", "🔋", "🔌", "🔍", "🔎", "🔏", "🔐", "🔑", + "🔒", "🔓", "🔔", "🔕", "🔖", "🔗", "🔦", "🔧", "🔨", "🔩", "🔫", "🔬", "🔭", "🕯️", "🕶️", "🖇️", + "🖊️", "🖋️", "🖌️", "🖍️", "🖥️", "🖨️", "🖱️", "🖲️", "🗂️", "🗃️", "🗄️", "🗑️", "🗒️", "🗓️", "🗜️", "🗝️", + "🗞️", "🗡️", "🗳️", "🗿", "🚪", "🚬", "🚽", "🚿", "🛁", "🛋️", "🛍️", "🛏️", "🛒", "🛗", "🛠️", "🛡️", + "🥁", "🥻", "🥼", "🥽", "🥾", "🥿", "🦯", "🦺", "🧢", "🧣", "🧤", "🧥", "🧦", "🧪", "🧫", "🧬", + "🧮", "🧯", "🧰", "🧲", "🧴", "🧷", "🧹", "🧺", "🧻", "🧼", "🧽", "🧾", "🩰", "🩱", "🩲", "🩳", + "🩴", "🩸", "🩹", "🩺", "🪃", "🪑", "🪒", "🪓", "🪔", "🪕", "🪖", "🪗", "🪘", "🪙", "🪚", "🪛", + "🪜", "🪝", "🪞", "🪟", "🪠", "🪣", "🪤", "🪥", "🪦", "🪧", }); const auto symbolEmojis = std::to_array({ - "#️⃣", "*️⃣", "0️⃣", "1️⃣", "2️⃣", "3️⃣", "4️⃣", "5️⃣", "6️⃣", "7️⃣", "8️⃣", "9️⃣", "©️", "®️", "‼️", "⁉️", "™️", "ℹ️", "↔️", - "↕️", "↖️", "↗️", "↘️", "↙️", "↩️", "↪️", "⏏️", "⏩", "⏪", "⏫", "⏬", "⏭️", "⏮️", "⏯️", "⏸️", "⏹️", "⏺️", "Ⓜ️", - "▪️", "▫️", "▶️", "◀️", "◻️", "◼️", "◽", "◾", "☑️", "☢️", "☣️", "☦️", "☪️", "☮️", "☯️", "☸️", "♀️", "♂️", "♈", - "♉", "♊", "♋", "♌", "♍", "♎", "♏", "♐", "♑", "♒", "♓", "♻️", "♾️", "♿", "⚕️", "⚛️", "⚜️", "⚠️", "⚧️", - "⚪", "⚫", "⛎", "⛔", "✅", "✔️", "✖️", "✝️", "✡️", "✳️", "✴️", "❇️", "❌", "❎", "❓", "❔", "❕", "❗", "➕", - "➖", "➗", "➡️", "➰", "➿", "⤴️", "⤵️", "⬅️", "⬆️", "⬇️", "⬛", "⬜", "⭕", "〰️", "〽️", "㊗️", "㊙️", "🅰️", "🅱️", - "🅾️", "🅿️", "🆎", "🆑", "🆒", "🆓", "🆔", "🆕", "🆖", "🆗", "🆘", "🆙", "🆚", "🈁", "🈂️", "🈚", "🈯", "🈲", "🈳", - "🈴", "🈵", "🈶", "🈷️", "🈸", "🈹", "🈺", "🉐", "🉑", "🎦", "🏧", "💠", "💱", "💲", "📛", "📳", "📴", "📵", "📶", - "🔀", "🔁", "🔂", "🔃", "🔄", "🔅", "🔆", "🔘", "🔙", "🔚", "🔛", "🔜", "🔝", "🔞", "🔟", "🔠", "🔡", "🔢", "🔣", - "🔤", "🔯", "🔰", "🔱", "🔲", "🔳", "🔴", "🔵", "🔶", "🔷", "🔸", "🔹", "🔺", "🔻", "🔼", "🔽", "🕉️", "🕎", "🚫", - "🚭", "🚮", "🚯", "🚰", "🚱", "🚳", "🚷", "🚸", "🚹", "🚺", "🚻", "🚼", "🚾", "🛂", "🛃", "🛄", "🛅", "🛐", "🟠", - "🟡", "🟢", "🟣", "🟤", "🟥", "🟦", "🟧", "🟨", "🟩", "🟪", "🟫", + "#️⃣", "*️⃣", "0️⃣", "1️⃣", "2️⃣", "3️⃣", "4️⃣", "5️⃣", "6️⃣", "7️⃣", "8️⃣", "9️⃣", "©️", "®️", "‼️", "⁉️", "™️", + "ℹ️", "↔️", "↕️", "↖️", "↗️", "↘️", "↙️", "↩️", "↪️", "⏏️", "⏩", "⏪", "⏫", "⏬", "⏭️", "⏮️", "⏯️", + "⏸️", "⏹️", "⏺️", "Ⓜ️", "▪️", "▫️", "▶️", "◀️", "◻️", "◼️", "◽", "◾", "☑️", "☢️", "☣️", "☦️", "☪️", + "☮️", "☯️", "☸️", "♀️", "♂️", "♈", "♉", "♊", "♋", "♌", "♍", "♎", "♏", "♐", "♑", "♒", "♓", + "♻️", "♾️", "♿", "⚕️", "⚛️", "⚜️", "⚠️", "⚧️", "⚪", "⚫", "⛎", "⛔", "✅", "✔️", "✖️", "✝️", "✡️", + "✳️", "✴️", "❇️", "❌", "❎", "❓", "❔", "❕", "❗", "➕", "➖", "➗", "➡️", "➰", "➿", "⤴️", "⤵️", + "⬅️", "⬆️", "⬇️", "⬛", "⬜", "⭕", "〰️", "〽️", "㊗️", "㊙️", "🅰️", "🅱️", "🅾️", "🅿️", "🆎", "🆑", "🆒", + "🆓", "🆔", "🆕", "🆖", "🆗", "🆘", "🆙", "🆚", "🈁", "🈂️", "🈚", "🈯", "🈲", "🈳", "🈴", "🈵", "🈶", + "🈷️", "🈸", "🈹", "🈺", "🉐", "🉑", "🎦", "🏧", "💠", "💱", "💲", "📛", "📳", "📴", "📵", "📶", "🔀", + "🔁", "🔂", "🔃", "🔄", "🔅", "🔆", "🔘", "🔙", "🔚", "🔛", "🔜", "🔝", "🔞", "🔟", "🔠", "🔡", "🔢", + "🔣", "🔤", "🔯", "🔰", "🔱", "🔲", "🔳", "🔴", "🔵", "🔶", "🔷", "🔸", "🔹", "🔺", "🔻", "🔼", "🔽", + "🕉️", "🕎", "🚫", "🚭", "🚮", "🚯", "🚰", "🚱", "🚳", "🚷", "🚸", "🚹", "🚺", "🚻", "🚼", "🚾", "🛂", + "🛃", "🛄", "🛅", "🛐", "🟠", "🟡", "🟢", "🟣", "🟤", "🟥", "🟦", "🟧", "🟨", "🟩", "🟪", "🟫", }); const auto flagEmojis = std::to_array({ - "🇦🇨", - "🇦🇩", - "🇦🇪", - "🇦🇫", - "🇦🇬", - "🇦🇮", - "🇦🇱", - "🇦🇲", - "🇦🇴", - "🇦🇶", - "🇦🇷", - "🇦🇸", - "🇦🇹", - "🇦🇺", - "🇦🇼", - "🇦🇽", - "🇦🇿", - "🇧🇦", - "🇧🇧", - "🇧🇩", - "🇧🇪", - "🇧🇫", - "🇧🇬", - "🇧🇭", - "🇧🇮", - "🇧🇯", - "🇧🇱", - "🇧🇲", - "🇧🇳", - "🇧🇴", - "🇧🇶", - "🇧🇷", - "🇧🇸", - "🇧🇹", - "🇧🇻", - "🇧🇼", - "🇧🇾", - "🇧🇿", - "🇨🇦", - "🇨🇨", - "🇨🇩", - "🇨🇫", - "🇨🇬", - "🇨🇭", - "🇨🇮", - "🇨🇰", - "🇨🇱", - "🇨🇲", - "🇨🇳", - "🇨🇴", - "🇨🇵", - "🇨🇷", - "🇨🇺", - "🇨🇻", - "🇨🇼", - "🇨🇽", - "🇨🇾", - "🇨🇿", - "🇩🇪", - "🇩🇬", - "🇩🇯", - "🇩🇰", - "🇩🇲", - "🇩🇴", - "🇩🇿", - "🇪🇦", - "🇪🇨", - "🇪🇪", - "🇪🇬", - "🇪🇭", - "🇪🇷", - "🇪🇸", - "🇪🇹", - "🇪🇺", - "🇫🇮", - "🇫🇯", - "🇫🇰", - "🇫🇲", - "🇫🇴", - "🇫🇷", - "🇬🇦", - "🇬🇧", - "🇬🇩", - "🇬🇪", - "🇬🇫", - "🇬🇬", - "🇬🇭", - "🇬🇮", - "🇬🇱", - "🇬🇲", - "🇬🇳", - "🇬🇵", - "🇬🇶", - "🇬🇷", - "🇬🇸", - "🇬🇹", - "🇬🇺", - "🇬🇼", - "🇬🇾", - "🇭🇰", - "🇭🇲", - "🇭🇳", - "🇭🇷", - "🇭🇹", - "🇭🇺", - "🇮🇨", - "🇮🇩", - "🇮🇪", - "🇮🇱", - "🇮🇲", - "🇮🇳", - "🇮🇴", - "🇮🇶", - "🇮🇷", - "🇮🇸", - "🇮🇹", - "🇯🇪", - "🇯🇲", - "🇯🇴", - "🇯🇵", - "🇰🇪", - "🇰🇬", - "🇰🇭", - "🇰🇮", - "🇰🇲", - "🇰🇳", - "🇰🇵", - "🇰🇷", - "🇰🇼", - "🇰🇾", - "🇰🇿", - "🇱🇦", - "🇱🇧", - "🇱🇨", - "🇱🇮", - "🇱🇰", - "🇱🇷", - "🇱🇸", - "🇱🇹", - "🇱🇺", - "🇱🇻", - "🇱🇾", - "🇲🇦", - "🇲🇨", - "🇲🇩", - "🇲🇪", - "🇲🇫", - "🇲🇬", - "🇲🇭", - "🇲🇰", - "🇲🇱", - "🇲🇲", - "🇲🇳", - "🇲🇴", - "🇲🇵", - "🇲🇶", - "🇲🇷", - "🇲🇸", - "🇲🇹", - "🇲🇺", - "🇲🇻", - "🇲🇼", - "🇲🇽", - "🇲🇾", - "🇲🇿", - "🇳🇦", - "🇳🇨", - "🇳🇪", - "🇳🇫", - "🇳🇬", - "🇳🇮", - "🇳🇱", - "🇳🇴", - "🇳🇵", - "🇳🇷", - "🇳🇺", - "🇳🇿", - "🇴🇲", - "🇵🇦", - "🇵🇪", - "🇵🇫", - "🇵🇬", - "🇵🇭", - "🇵🇰", - "🇵🇱", - "🇵🇲", - "🇵🇳", - "🇵🇷", - "🇵🇸", - "🇵🇹", - "🇵🇼", - "🇵🇾", - "🇶🇦", - "🇷🇪", - "🇷🇴", - "🇷🇸", - "🇷🇺", - "🇷🇼", - "🇸🇦", - "🇸🇧", - "🇸🇨", - "🇸🇩", - "🇸🇪", - "🇸🇬", - "🇸🇭", - "🇸🇮", - "🇸🇯", - "🇸🇰", - "🇸🇱", - "🇸🇲", - "🇸🇳", - "🇸🇴", - "🇸🇷", - "🇸🇸", - "🇸🇹", - "🇸🇻", - "🇸🇽", - "🇸🇾", - "🇸🇿", - "🇹🇦", - "🇹🇨", - "🇹🇩", - "🇹🇫", - "🇹🇬", - "🇹🇭", - "🇹🇯", - "🇹🇰", - "🇹🇱", - "🇹🇲", - "🇹🇳", - "🇹🇴", - "🇹🇷", - "🇹🇹", - "🇹🇻", - "🇹🇼", - "🇹🇿", - "🇺🇦", - "🇺🇬", - "🇺🇲", - "🇺🇳", - "🇺🇸", - "🇺🇾", - "🇺🇿", - "🇻🇦", - "🇻🇨", - "🇻🇪", - "🇻🇬", - "🇻🇮", - "🇻🇳", - "🇻🇺", - "🇼🇫", - "🇼🇸", - "🇽🇰", - "🇾🇪", - "🇾🇹", - "🇿🇦", - "🇿🇲", - "🇿🇼", - "🎌", - "🏁", - "🏳️", - "🏳️‍⚧️", - "🏳️‍🌈", - "🏴", - "🏴‍☠️", - "🚩", + "🇦🇨", "🇦🇩", "🇦🇪", "🇦🇫", "🇦🇬", "🇦🇮", "🇦🇱", "🇦🇲", "🇦🇴", "🇦🇶", "🇦🇷", "🇦🇸", "🇦🇹", "🇦🇺", + "🇦🇼", "🇦🇽", "🇦🇿", "🇧🇦", "🇧🇧", "🇧🇩", "🇧🇪", "🇧🇫", "🇧🇬", "🇧🇭", "🇧🇮", "🇧🇯", "🇧🇱", "🇧🇲", + "🇧🇳", "🇧🇴", "🇧🇶", "🇧🇷", "🇧🇸", "🇧🇹", "🇧🇻", "🇧🇼", "🇧🇾", "🇧🇿", "🇨🇦", "🇨🇨", "🇨🇩", "🇨🇫", + "🇨🇬", "🇨🇭", "🇨🇮", "🇨🇰", "🇨🇱", "🇨🇲", "🇨🇳", "🇨🇴", "🇨🇵", "🇨🇷", "🇨🇺", "🇨🇻", "🇨🇼", "🇨🇽", + "🇨🇾", "🇨🇿", "🇩🇪", "🇩🇬", "🇩🇯", "🇩🇰", "🇩🇲", "🇩🇴", "🇩🇿", "🇪🇦", "🇪🇨", "🇪🇪", "🇪🇬", "🇪🇭", + "🇪🇷", "🇪🇸", "🇪🇹", "🇪🇺", "🇫🇮", "🇫🇯", "🇫🇰", "🇫🇲", "🇫🇴", "🇫🇷", "🇬🇦", "🇬🇧", "🇬🇩", "🇬🇪", + "🇬🇫", "🇬🇬", "🇬🇭", "🇬🇮", "🇬🇱", "🇬🇲", "🇬🇳", "🇬🇵", "🇬🇶", "🇬🇷", "🇬🇸", "🇬🇹", "🇬🇺", "🇬🇼", + "🇬🇾", "🇭🇰", "🇭🇲", "🇭🇳", "🇭🇷", "🇭🇹", "🇭🇺", "🇮🇨", "🇮🇩", "🇮🇪", "🇮🇱", "🇮🇲", "🇮🇳", "🇮🇴", + "🇮🇶", "🇮🇷", "🇮🇸", "🇮🇹", "🇯🇪", "🇯🇲", "🇯🇴", "🇯🇵", "🇰🇪", "🇰🇬", "🇰🇭", "🇰🇮", "🇰🇲", "🇰🇳", + "🇰🇵", "🇰🇷", "🇰🇼", "🇰🇾", "🇰🇿", "🇱🇦", "🇱🇧", "🇱🇨", "🇱🇮", "🇱🇰", "🇱🇷", "🇱🇸", "🇱🇹", "🇱🇺", + "🇱🇻", "🇱🇾", "🇲🇦", "🇲🇨", "🇲🇩", "🇲🇪", "🇲🇫", "🇲🇬", "🇲🇭", "🇲🇰", "🇲🇱", "🇲🇲", "🇲🇳", "🇲🇴", + "🇲🇵", "🇲🇶", "🇲🇷", "🇲🇸", "🇲🇹", "🇲🇺", "🇲🇻", "🇲🇼", "🇲🇽", "🇲🇾", "🇲🇿", "🇳🇦", "🇳🇨", "🇳🇪", + "🇳🇫", "🇳🇬", "🇳🇮", "🇳🇱", "🇳🇴", "🇳🇵", "🇳🇷", "🇳🇺", "🇳🇿", "🇴🇲", "🇵🇦", "🇵🇪", "🇵🇫", "🇵🇬", + "🇵🇭", "🇵🇰", "🇵🇱", "🇵🇲", "🇵🇳", "🇵🇷", "🇵🇸", "🇵🇹", "🇵🇼", "🇵🇾", "🇶🇦", "🇷🇪", "🇷🇴", "🇷🇸", + "🇷🇺", "🇷🇼", "🇸🇦", "🇸🇧", "🇸🇨", "🇸🇩", "🇸🇪", "🇸🇬", "🇸🇭", "🇸🇮", "🇸🇯", "🇸🇰", "🇸🇱", "🇸🇲", + "🇸🇳", "🇸🇴", "🇸🇷", "🇸🇸", "🇸🇹", "🇸🇻", "🇸🇽", "🇸🇾", "🇸🇿", "🇹🇦", "🇹🇨", "🇹🇩", "🇹🇫", "🇹🇬", + "🇹🇭", "🇹🇯", "🇹🇰", "🇹🇱", "🇹🇲", "🇹🇳", "🇹🇴", "🇹🇷", "🇹🇹", "🇹🇻", "🇹🇼", "🇹🇿", "🇺🇦", "🇺🇬", + "🇺🇲", "🇺🇳", "🇺🇸", "🇺🇾", "🇺🇿", "🇻🇦", "🇻🇨", "🇻🇪", "🇻🇬", "🇻🇮", "🇻🇳", "🇻🇺", "🇼🇫", "🇼🇸", + "🇽🇰", "🇾🇪", "🇾🇹", "🇿🇦", "🇿🇲", "🇿🇼", "🎌", "🏁", "🏳️", "🏳️‍⚧️", "🏳️‍🌈", "🏴", "🏴‍☠️", "🚩", }); const auto httpMediaTypes = std::to_array({ diff --git a/tests/modules/internet_test.cpp b/tests/modules/internet_test.cpp index bb8e14b3f..283c80ed3 100644 --- a/tests/modules/internet_test.cpp +++ b/tests/modules/internet_test.cpp @@ -3,6 +3,7 @@ #include #include #include +#include #include #include #include @@ -806,6 +807,6 @@ TEST_F(InternetTest, shouldGenerateAnonymousUsernameWithMaxLength) TEST_F(InternetTest, shouldGenerateJwtToken) { - const auto generatedJwtToken = getJWTToken(); - ASSERT_EQ("jwtToken", "jwtToken"); -} \ No newline at end of file + std::regex pattern(R"([A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+)"); + ASSERT_TRUE(std::regex_match(getJWTToken(), pattern)); +}