deps: update ada to 2.3.0

PR-URL: https://github.com/nodejs/node/pull/47737
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: Mohammed Keyvanzadeh <mohammadkeyvanzade94@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
pull/47160/head
Node.js GitHub Bot 2023-04-27 03:56:12 +01:00 committed by GitHub
parent ece3565893
commit 8b66dc6ea9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 72 additions and 40 deletions

71
deps/ada/ada.cpp vendored
View File

@ -1,4 +1,4 @@
/* auto-generated on 2023-04-20 18:39:35 -0400. Do not edit! */
/* auto-generated on 2023-04-26 16:43:37 -0400. Do not edit! */
/* begin file src/ada.cpp */
#include "ada.h"
/* begin file src/checkers.cpp */
@ -116,12 +116,13 @@ ada_really_inline constexpr bool verify_dns_length(
ADA_PUSH_DISABLE_ALL_WARNINGS
/* begin file src/ada_idna.cpp */
/* auto-generated on 2023-03-28 11:03:13 -0400. Do not edit! */
/* auto-generated on 2023-04-26 14:14:42 -0400. Do not edit! */
/* begin file src/idna.cpp */
/* begin file src/unicode_transcoding.cpp */
#include <cstdint>
#include <cstring>
namespace ada::idna {
size_t utf8_to_utf32(const char* buf, size_t len, char32_t* utf32_output) {
@ -2750,7 +2751,9 @@ uint32_t find_range_index(uint32_t key) {
}
bool ascii_has_upper_case(char* input, size_t length) {
auto broadcast = [](uint8_t v) -> uint64_t { return 0x101010101010101 * v; };
auto broadcast = [](uint8_t v) -> uint64_t {
return 0x101010101010101ull * v;
};
uint64_t broadcast_80 = broadcast(0x80);
uint64_t broadcast_Ap = broadcast(128 - 'A');
uint64_t broadcast_Zp = broadcast(128 - 'Z' - 1);
@ -2772,7 +2775,9 @@ bool ascii_has_upper_case(char* input, size_t length) {
}
void ascii_map(char* input, size_t length) {
auto broadcast = [](uint8_t v) -> uint64_t { return 0x101010101010101 * v; };
auto broadcast = [](uint8_t v) -> uint64_t {
return 0x101010101010101ull * v;
};
uint64_t broadcast_80 = broadcast(0x80);
uint64_t broadcast_Ap = broadcast(128 - 'A');
uint64_t broadcast_Zp = broadcast(128 - 'Z' - 1);
@ -7999,9 +8004,10 @@ const char32_t uninorms::decomposition_data[] = {
namespace ada::idna {
void normalize(std::u32string& input) {
// [Normalize](https://www.unicode.org/reports/tr46/#ProcessingStepNormalize).
// Normalize
// the domain_name string to Unicode Normalization Form C.
/**
* Normalize the domain_name string to Unicode Normalization Form C.
* @see https://www.unicode.org/reports/tr46/#ProcessingStepNormalize
*/
ufal::unilib::uninorms::nfc(input);
}
@ -8229,7 +8235,6 @@ bool utf32_to_punycode(std::u32string_view input, std::string &out) {
} // namespace ada::idna
/* end file src/punycode.cpp */
/* begin file src/validity.cpp */
#include <algorithm>
#include <string_view>
@ -9617,18 +9622,18 @@ constexpr static uint8_t is_forbidden_domain_code_point_table[] = {
static_assert(sizeof(is_forbidden_domain_code_point_table) == 256);
inline constexpr bool is_forbidden_domain_code_point(const char c) noexcept {
inline bool is_forbidden_domain_code_point(const char c) noexcept {
return is_forbidden_domain_code_point_table[uint8_t(c)];
}
// We return "" on error. For now.
std::string from_ascii_to_ascii(std::string_view ut8_string) {
static const std::string error = "";
if (std::any_of(ut8_string.begin(), ut8_string.end(),
is_forbidden_domain_code_point)) {
return error;
}
bool contains_forbidden_domain_code_point(std::string_view view) {
return (
std::any_of(view.begin(), view.end(), is_forbidden_domain_code_point));
}
// We return "" on error.
static std::string from_ascii_to_ascii(std::string_view ut8_string) {
static const std::string error = "";
// copy and map
// we could be more efficient by avoiding the copy when unnecessary.
std::string mapped_string = std::string(ut8_string);
@ -9682,7 +9687,7 @@ std::string from_ascii_to_ascii(std::string_view ut8_string) {
return out;
}
// We return "" on error. For now.
// We return "" on error.
std::string to_ascii(std::string_view ut8_string) {
if (is_ascii(ut8_string)) {
return from_ascii_to_ascii(ut8_string);
@ -9769,11 +9774,6 @@ std::string to_ascii(std::string_view ut8_string) {
out.push_back('.');
}
}
if (std::any_of(out.begin(), out.end(), is_forbidden_domain_code_point)) {
return error;
}
return out;
}
} // namespace ada::idna
@ -9842,7 +9842,9 @@ ADA_POP_DISABLE_WARNINGS
namespace ada::unicode {
constexpr bool to_lower_ascii(char* input, size_t length) noexcept {
auto broadcast = [](uint8_t v) -> uint64_t { return 0x101010101010101 * v; };
auto broadcast = [](uint8_t v) -> uint64_t {
return 0x101010101010101ull * v;
};
uint64_t broadcast_80 = broadcast(0x80);
uint64_t broadcast_Ap = broadcast(128 - 'A');
uint64_t broadcast_Zp = broadcast(128 - 'Z' - 1);
@ -9873,7 +9875,9 @@ ada_really_inline constexpr bool has_tabs_or_newline(
auto has_zero_byte = [](uint64_t v) {
return ((v - 0x0101010101010101) & ~(v)&0x8080808080808080);
};
auto broadcast = [](uint8_t v) -> uint64_t { return 0x101010101010101 * v; };
auto broadcast = [](uint8_t v) -> uint64_t {
return 0x101010101010101ull * v;
};
size_t i = 0;
uint64_t mask1 = broadcast('\r');
uint64_t mask2 = broadcast('\n');
@ -10252,7 +10256,8 @@ bool to_ascii(std::optional<std::string>& out, const std::string_view plain,
}
// input is a non-empty UTF-8 string, must be percent decoded
std::string idna_ascii = ada::idna::to_ascii(input);
if (idna_ascii.empty()) {
if (idna_ascii.empty() || contains_forbidden_domain_code_point(
idna_ascii.data(), idna_ascii.size())) {
return false;
}
out = std::move(idna_ascii);
@ -10627,7 +10632,9 @@ ada_really_inline size_t find_next_host_delimiter_special(
auto index_of_first_set_byte = [](uint64_t v) {
return ((((v - 1) & 0x101010101010101) * 0x101010101010101) >> 56) - 1;
};
auto broadcast = [](uint8_t v) -> uint64_t { return 0x101010101010101 * v; };
auto broadcast = [](uint8_t v) -> uint64_t {
return 0x101010101010101ull * v;
};
size_t i = location;
uint64_t mask1 = broadcast(':');
uint64_t mask2 = broadcast('/');
@ -10690,7 +10697,9 @@ ada_really_inline size_t find_next_host_delimiter(std::string_view view,
auto index_of_first_set_byte = [](uint64_t v) {
return ((((v - 1) & 0x101010101010101) * 0x101010101010101) >> 56) - 1;
};
auto broadcast = [](uint8_t v) -> uint64_t { return 0x101010101010101 * v; };
auto broadcast = [](uint8_t v) -> uint64_t {
return 0x101010101010101ull * v;
};
size_t i = location;
uint64_t mask1 = broadcast(':');
uint64_t mask2 = broadcast('/');
@ -11016,7 +11025,9 @@ find_authority_delimiter_special(std::string_view view) noexcept {
auto index_of_first_set_byte = [](uint64_t v) {
return ((((v - 1) & 0x101010101010101) * 0x101010101010101) >> 56) - 1;
};
auto broadcast = [](uint8_t v) -> uint64_t { return 0x101010101010101 * v; };
auto broadcast = [](uint8_t v) -> uint64_t {
return 0x101010101010101ull * v;
};
size_t i = 0;
uint64_t mask1 = broadcast('@');
uint64_t mask2 = broadcast('/');
@ -11064,7 +11075,9 @@ find_authority_delimiter(std::string_view view) noexcept {
auto index_of_first_set_byte = [](uint64_t v) {
return ((((v - 1) & 0x101010101010101) * 0x101010101010101) >> 56) - 1;
};
auto broadcast = [](uint8_t v) -> uint64_t { return 0x101010101010101 * v; };
auto broadcast = [](uint8_t v) -> uint64_t {
return 0x101010101010101ull * v;
};
size_t i = 0;
uint64_t mask1 = broadcast('@');
uint64_t mask2 = broadcast('/');

41
deps/ada/ada.h vendored
View File

@ -1,4 +1,4 @@
/* auto-generated on 2023-04-20 18:39:35 -0400. Do not edit! */
/* auto-generated on 2023-04-26 16:43:37 -0400. Do not edit! */
/* begin file include/ada.h */
/**
* @file ada.h
@ -8,7 +8,7 @@
#define ADA_H
/* begin file include/ada/ada_idna.h */
/* auto-generated on 2023-03-28 11:03:13 -0400. Do not edit! */
/* auto-generated on 2023-04-26 14:14:42 -0400. Do not edit! */
/* begin file include/idna.h */
#ifndef ADA_IDNA_H
#define ADA_IDNA_H
@ -40,6 +40,7 @@ size_t utf32_to_utf8(const char32_t* buf, size_t len, char* utf8_output);
#include <string>
#include <string_view>
namespace ada::idna {
// If the input is ascii, then the mapping is just -> lower case.
@ -59,6 +60,7 @@ std::u32string map(std::u32string_view input);
#include <string>
#include <string_view>
namespace ada::idna {
// Normalize the characters according to IDNA (Unicode Normalization Form C).
@ -73,6 +75,7 @@ void normalize(std::u32string& input);
#include <string>
#include <string_view>
namespace ada::idna {
bool punycode_to_utf32(std::string_view input, std::u32string& out);
@ -109,14 +112,24 @@ bool is_label_valid(const std::u32string_view label);
#include <string_view>
namespace ada::idna {
// Converts a domain (e.g., www.google.com) possibly containing international
// characters to an ascii domain (with punycode). It will not do percent
// decoding: percent decoding should be done prior to calling this function. We
// do not remove tabs and spaces, they should have been removed prior to calling
// this function. We also do not trim control characters. We also assume that
// the input is not empty. We return "" on error. For now.
// the input is not empty. We return "" on error.
//
// Example: "www.öbb.at" -> "www.xn--bb-eka.at"
//
// This function may accept or even produce invalid domains.
std::string to_ascii(std::string_view ut8_string);
// Returns true if the string contains a forbidden code point according to the
// WHATGL URL specification:
// https://url.spec.whatwg.org/#forbidden-domain-code-point
bool contains_forbidden_domain_code_point(std::string_view ascii_string);
bool constexpr begins_with(std::u32string_view view,
std::u32string_view prefix);
bool constexpr begins_with(std::string_view view, std::string_view prefix);
@ -124,8 +137,6 @@ bool constexpr begins_with(std::string_view view, std::string_view prefix);
bool constexpr is_ascii(std::u32string_view view);
bool constexpr is_ascii(std::string_view view);
std::string from_ascii_to_ascii(std::string_view ut8_string);
} // namespace ada::idna
#endif // ADA_IDNA_TO_ASCII_H
@ -135,8 +146,12 @@ std::string from_ascii_to_ascii(std::string_view ut8_string);
#ifndef ADA_IDNA_TO_UNICODE_H
#define ADA_IDNA_TO_UNICODE_H
#include <string_view>
namespace ada::idna {
std::string to_unicode(std::string_view input);
} // namespace ada::idna
#endif // ADA_IDNA_TO_UNICODE_H
@ -5138,6 +5153,7 @@ struct url : url_base {
[[nodiscard]] inline bool has_hash() const noexcept override;
/** @return true if the URL has a search component */
[[nodiscard]] inline bool has_search() const noexcept override;
private:
friend ada::url ada::parser::parse_url<ada::url>(std::string_view,
const ada::url *);
@ -5305,8 +5321,7 @@ namespace ada {
[[nodiscard]] ada_really_inline bool url::has_credentials() const noexcept {
return !username.empty() || !password.empty();
}
[[nodiscard]] ada_really_inline bool url::has_port()
const noexcept {
[[nodiscard]] ada_really_inline bool url::has_port() const noexcept {
return port.has_value();
}
[[nodiscard]] inline bool url::cannot_have_credentials_or_port() const {
@ -5439,9 +5454,13 @@ inline void url::clear_pathname() { path.clear(); }
inline void url::clear_search() { query = std::nullopt; }
[[nodiscard]] inline bool url::has_hash() const noexcept { return hash.has_value(); }
[[nodiscard]] inline bool url::has_hash() const noexcept {
return hash.has_value();
}
[[nodiscard]] inline bool url::has_search() const noexcept { return query.has_value(); }
[[nodiscard]] inline bool url::has_search() const noexcept {
return query.has_value();
}
inline void url::set_protocol_as_file() { type = ada::scheme::type::FILE; }
@ -6456,13 +6475,13 @@ inline std::ostream &operator<<(std::ostream &out,
#ifndef ADA_ADA_VERSION_H
#define ADA_ADA_VERSION_H
#define ADA_VERSION "2.2.0"
#define ADA_VERSION "2.3.0"
namespace ada {
enum {
ADA_VERSION_MAJOR = 2,
ADA_VERSION_MINOR = 2,
ADA_VERSION_MINOR = 3,
ADA_VERSION_REVISION = 0,
};