diff --git a/.copier-answers.yml b/.copier-answers.yml index 1f47ebd..c5510e7 100644 --- a/.copier-answers.yml +++ b/.copier-answers.yml @@ -1,5 +1,5 @@ # Changes here will be overwritten by Copier -_commit: v0.4.1 +_commit: v0.4.2a6 _src_path: gh:deeplex/copier-cpp email: henrik.gassmann@adesso.de full_name: Henrik Gaßmann diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index e328bd5..5b79494 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -33,5 +33,5 @@ "toolsToInstall": "copier,pipenv" } }, - "postCreateCommand": "cd ${containerWorkspaceFolder}/docs && pipenv sync --dev", + "postCreateCommand": "cd '${containerWorkspaceFolder}' && mkdir -p build && ln -s -f x64-linux-clang/compile_commands.json ./build/compile_commands.json && cd ./docs && pipenv sync --dev", } \ No newline at end of file diff --git a/.github/workflows/cpp-ci.yml b/.github/workflows/cpp-ci.yml index e832fdb..61524a3 100644 --- a/.github/workflows/cpp-ci.yml +++ b/.github/workflows/cpp-ci.yml @@ -14,15 +14,15 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-24.04, windows-2022] + os: [ubuntu-24.04, windows-2025] compiler: [gcc, clang, msvc] exclude: - os: ubuntu-24.04 compiler: msvc - - os: windows-2022 + - os: windows-2025 compiler: gcc include: - - os: macos-13 + - os: macos-15-intel compiler: gcc triplet: x64-macos install: | @@ -45,8 +45,8 @@ jobs: sudo cp tools/llvm-snapshot.gpg.key.asc /etc/apt/trusted.gpg.d/llvm-snapshot.asc sudo add-apt-repository "deb http://apt.llvm.org/noble/ llvm-toolchain-noble-19 main" sudo apt-get -qq update - sudo apt-get -qq install clang-19 nasm - - os: windows-2022 + sudo apt-get -qq -y install clang-19 nasm + - os: windows-2025 triplet: x64-windows permissions: @@ -56,7 +56,7 @@ jobs: CTEST_OUTPUT_ON_FAILURE: "1" steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v6 - name: Install go (boringSSL build dependency) uses: actions/setup-go@v4 @@ -114,7 +114,7 @@ jobs: actions: read steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v6 - name: Install go (boringSSL build dependency) uses: actions/setup-go@v4 diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index 32f2ed9..88a142d 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -14,17 +14,17 @@ on: jobs: build: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 name: Build docs concurrency: group: ${{ github.workflow }}-${{ github.ref }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v6 - name: Setup Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v6 with: - python-version: "3.11" + python-version: "3.12" cache: 'pipenv' cache-dependency-path: docs/Pipfile.lock diff --git a/CMakeLists.txt b/CMakeLists.txt index f5e80ae..c352b6e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,7 +10,7 @@ # http://creativecommons.org/publicdomain/zero/1.0/ # ######################################################################## -cmake_minimum_required(VERSION 3.23...4.0) +cmake_minimum_required(VERSION 3.25) list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/tools/cmake/") ######################################################################## @@ -62,7 +62,7 @@ find_package(base64 CONFIG REQUIRED) find_package(fmt CONFIG REQUIRED) -find_package(unofficial-concurrentqueue CONFIG REQUIRED) +find_package(concurrentqueue CONFIG REQUIRED) find_package(libb2-reforged REQUIRED CONFIG) @@ -157,7 +157,7 @@ target_link_libraries(vefs fmt::fmt llfio::${VEFS_LLFIO_TARGET} outcome::hl - unofficial::concurrentqueue::concurrentqueue + concurrentqueue::concurrentqueue libcuckoo::libcuckoo stduuid ) diff --git a/CMakePresets.json b/CMakePresets.json index 51c9da4..afd02b6 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -190,18 +190,18 @@ } }, { - "name": "x64-linux-gcc-12", + "name": "x64-linux-gcc-14", "inherits": [ "x64-linux-gcc" ], "cacheVariables": { - "VCPKG_CHAINLOAD_TOOLCHAIN_FILE": "${sourceDir}/tools/toolchains/x64-linux-gcc-12.cmake" + "VCPKG_CHAINLOAD_TOOLCHAIN_FILE": "${sourceDir}/tools/toolchains/x64-linux-gcc-14.cmake" } }, { "name": "x64-linux-gcc-ci", "inherits": [ - "x64-linux-gcc-12" + "x64-linux-gcc-14" ] }, { @@ -233,8 +233,8 @@ "base" ], "cacheVariables": { - "VCPKG_TARGET_TRIPLET": "x64-macos-gcc-14", - "VCPKG_CHAINLOAD_TOOLCHAIN_FILE": "${sourceDir}/tools/toolchains/x64-macos-gcc-14.cmake" + "VCPKG_TARGET_TRIPLET": "x64-macos-gcc-15", + "VCPKG_CHAINLOAD_TOOLCHAIN_FILE": "${sourceDir}/tools/toolchains/x64-macos-gcc-15.cmake" }, "vendor": { "microsoft.com/VisualStudioSettings/CMake/1.0": { diff --git a/apps/vefs/cli/error.hpp b/apps/vefs/cli/error.hpp index b41a11c..f4d9245 100644 --- a/apps/vefs/cli/error.hpp +++ b/apps/vefs/cli/error.hpp @@ -1,8 +1,12 @@ #pragma once +#include #include +#include + #include +#include #if defined(DPLX_COMP_GNUC_AVAILABLE) #pragma GCC diagnostic push @@ -44,159 +48,33 @@ enum class cli_errc : error_code wrong_password, }; -class cli_domain_type; -using cli_code = system_error::status_code; -using cli_error = system_error::status_error; +} // namespace vefs::cli -class cli_domain_type : public system_error::status_code_domain +template <> +struct dplx::cncr::status_enum_definition + : status_enum_definition_defaults { - using base = system_error::status_code_domain; - template - friend class system_error::status_code; - -public: - static constexpr std::string_view uuid - = "F62C53F1-F5AC-4732-B3E3-16FC715A89FD"; - - constexpr ~cli_domain_type() noexcept = default; - constexpr cli_domain_type() noexcept - : base(uuid.data(), base::_uuid_size{}) - { - } - constexpr cli_domain_type(cli_domain_type const &) noexcept = default; - constexpr auto operator=(cli_domain_type const &) noexcept - -> cli_domain_type & = default; - - using value_type = cli_errc; - using base::string_ref; - - constexpr virtual auto name() const noexcept -> string_ref override - { - return string_ref("cli-domain"); - } - constexpr virtual auto payload_info() const noexcept - -> payload_info_t override - { - return {sizeof(value_type), - sizeof(value_type) + sizeof(cli_domain_type *), - std::max(alignof(value_type), alignof(cli_domain_type *))}; - } - - static constexpr auto get() noexcept -> cli_domain_type const &; - -protected: - constexpr virtual auto - _do_failure(system_error::status_code const &code) const noexcept - -> bool override - { - (void)code; - return true; - } - - constexpr auto map_to_generic(value_type const value) const noexcept - -> system_error::errc - { - using enum cli_errc; - using sys_errc = system_error::errc; - switch (value) - { - case exit_error: - return sys_errc::unknown; - case bad_key_size: - case bad_base64_payload: - case malformed_mdc_key_box: - return sys_errc::invalid_argument; - case unsupported_mdc_key_type: - return sys_errc::function_not_supported; - case wrong_password: - return sys_errc::unknown; - - default: - return sys_errc::unknown; - } - } - - constexpr auto map_to_message(value_type const value) const noexcept - -> std::string_view - { - using enum cli_errc; - using namespace std::string_view_literals; - - switch (value) - { - case exit_error: - return "Terminate the program with return value 1 now."sv; - case bad_key_size: - return "The storage key used to encrypt the archive must be exactly 32 bytes."sv; - case bad_base64_payload: - return "Failed to decode a base64 payload"sv; - case malformed_mdc_key_box: - return "The mdc key box couldn't be parsed."sv; - case unsupported_mdc_key_type: - return "The mdc key type is not supported."; - case wrong_password: - return "The supplied password cannot be used to open the box."; - - default: - return "unknown vefs cli error code"sv; - } - } - - constexpr virtual auto - _do_equivalent(system_error::status_code const &lhs, - system_error::status_code const &rhs) const noexcept - -> bool override - { - auto const &alhs = static_cast(lhs); - if (rhs.domain() == *this) - { - return alhs.value() == static_cast(rhs).value(); - } - else if (rhs.domain() == system_error::generic_code_domain) - { - system_error::errc sysErrc - = static_cast(rhs) - .value(); - - return system_error::errc::unknown != sysErrc - && map_to_generic(alhs.value()) == sysErrc; - } - return false; - } - constexpr virtual auto - _generic_code(system_error::status_code const &code) const noexcept - -> system_error::generic_code override - { - return map_to_generic(static_cast(code).value()); - } - - constexpr virtual auto - _do_message(system_error::status_code const &code) const noexcept - -> string_ref override - { - auto const archiveCode = static_cast(code); - auto const message = map_to_message(archiveCode.value()); - return string_ref(message.data(), message.size()); - } - - SYSTEM_ERROR2_NORETURN virtual void _do_throw_exception( - system_error::status_code const &code) const override - { - throw system_error::status_error( - static_cast(code).clone()); - } + static constexpr char domain_id[] + = "{F62C53F1-F5AC-4732-B3E3-16FC715A89FD}"; + static constexpr char domain_name[] = "vefs-cli-domain"; + + static constexpr value_descriptor values[] = { + // clang-format off + { code::exit_error, generic_errc::unknown, "Terminate the program with return value 1 now." }, + { code::bad_key_size, generic_errc::invalid_argument, "The storage key used to encrypt the archive must be exactly 32 bytes." }, + { code::bad_base64_payload, generic_errc::invalid_argument, "Failed to decode a base64 payload." }, + { code::malformed_mdc_key_box, generic_errc::invalid_argument, "The mdc key box couldn't be parsed." }, + { code::unsupported_mdc_key_type, generic_errc::function_not_supported, "The mdc key type is not supported." }, + { code::wrong_password, generic_errc::unknown, "The supplied password cannot be used to open the box." }, + // clang-format on + }; }; -inline constexpr cli_domain_type cli_domain{}; -constexpr auto cli_domain_type::get() noexcept -> cli_domain_type const & +namespace vefs::cli { - return cli_domain; -} -constexpr auto make_status_code(cli_errc c) noexcept -> cli_code -{ - return cli_code{system_error::in_place, c}; -} +using cli_code = dplx::cncr::data_defined_status_code; +using cli_error = system_error::status_error; namespace { diff --git a/docs/Pipfile b/docs/Pipfile index 5eb5749..d35a309 100644 --- a/docs/Pipfile +++ b/docs/Pipfile @@ -4,10 +4,10 @@ verify_ssl = true name = "pypi" [packages] -sphinx = "~=7.0" +sphinx = "~=8.2.3" sphinx-copybutton = "~=0.5.2" sphinx-multiversion = "~=0.2.4" -furo = "==2023.5.20" +furo = "==2025.9.25" [dev-packages] esbonio = "*" diff --git a/docs/Pipfile.lock b/docs/Pipfile.lock index b7ca08e..23f3d1e 100644 --- a/docs/Pipfile.lock +++ b/docs/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "6b4b462987d15cbb032885bb7226fce8beb474f1ba04db4b52387e58bf6e64ec" + "sha256": "2243982f4e19913e4f6dd1242bf4754fe230247b61f1932777a9dacccb46cf95" }, "pipfile-spec": 6, "requires": {}, @@ -14,142 +14,189 @@ ] }, "default": { + "accessible-pygments": { + "hashes": [ + "sha256:40918d3e6a2b619ad424cb91e556bd3bd8865443d9f22f1dcdf79e33c8046872", + "sha256:88ae3211e68a1d0b011504b2ffc1691feafce124b845bd072ab6f9f66f34d4b7" + ], + "markers": "python_version >= '3.9'", + "version": "==0.0.5" + }, "alabaster": { "hashes": [ - "sha256:1ee19aca801bbabb5ba3f5f258e4422dfa86f82f3e9cefb0859b283cdd7f62a3", - "sha256:a27a4a084d5e690e16e01e03ad2b2e552c61a65469419b907243193de1a84ae2" + "sha256:c00dca57bca26fa62a6d7d0a9fcce65f3e026e9bfe33e9c538fd3fbb2144fd9e", + "sha256:fc6786402dc3fcb2de3cabd5fe455a2db534b371124f1f21de8731783dec828b" ], - "markers": "python_version >= '3.6'", - "version": "==0.7.13" + "markers": "python_version >= '3.10'", + "version": "==1.0.0" }, "babel": { "hashes": [ - "sha256:b4246fb7677d3b98f501a39d43396d3cafdc8eadb045f4a31be01863f655c610", - "sha256:cc2d99999cd01d44420ae725a21c9e3711b3aadc7976d6147f622d8581963455" + "sha256:0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d", + "sha256:4d0b53093fdfb4b21c92b5213dba5a1b23885afa8383709427046b21c366e5f2" ], - "markers": "python_version >= '3.7'", - "version": "==2.12.1" + "markers": "python_version >= '3.8'", + "version": "==2.17.0" }, "beautifulsoup4": { "hashes": [ - "sha256:492bbc69dca35d12daac71c4db1bfff0c876c00ef4a2ffacce226d4638eb72da", - "sha256:bd2520ca0d9d7d12694a53d44ac482d181b4ec1888909b035a3dbf40d0f57d4a" + "sha256:0918bfe44902e6ad8d57732ba310582e98da931428d231a5ecb9e7c703a735bb", + "sha256:6292b1c5186d356bba669ef9f7f051757099565ad9ada5dd630bd9de5fa7fb86" ], - "markers": "python_full_version >= '3.6.0'", - "version": "==4.12.2" + "markers": "python_full_version >= '3.7.0'", + "version": "==4.14.3" }, "certifi": { "hashes": [ - "sha256:539cc1d13202e33ca466e88b2807e29f4c13049d6d87031a3c110744495cb082", - "sha256:92d6037539857d8206b8f6ae472e8b77db8058fec5937a1ef3f54304089edbb9" + "sha256:97de8790030bbd5c2d96b7ec782fc2f7820ef8dba6db909ccf95449f2d062d4b", + "sha256:d8ab5478f2ecd78af242878415affce761ca6bc54a22a27e026d7c25357c3316" ], - "markers": "python_version >= '3.6'", - "version": "==2023.7.22" + "markers": "python_version >= '3.7'", + "version": "==2025.11.12" }, "charset-normalizer": { "hashes": [ - "sha256:04e57ab9fbf9607b77f7d057974694b4f6b142da9ed4a199859d9d4d5c63fe96", - "sha256:09393e1b2a9461950b1c9a45d5fd251dc7c6f228acab64da1c9c0165d9c7765c", - "sha256:0b87549028f680ca955556e3bd57013ab47474c3124dc069faa0b6545b6c9710", - "sha256:1000fba1057b92a65daec275aec30586c3de2401ccdcd41f8a5c1e2c87078706", - "sha256:1249cbbf3d3b04902ff081ffbb33ce3377fa6e4c7356f759f3cd076cc138d020", - "sha256:1920d4ff15ce893210c1f0c0e9d19bfbecb7983c76b33f046c13a8ffbd570252", - "sha256:193cbc708ea3aca45e7221ae58f0fd63f933753a9bfb498a3b474878f12caaad", - "sha256:1a100c6d595a7f316f1b6f01d20815d916e75ff98c27a01ae817439ea7726329", - "sha256:1f30b48dd7fa1474554b0b0f3fdfdd4c13b5c737a3c6284d3cdc424ec0ffff3a", - "sha256:203f0c8871d5a7987be20c72442488a0b8cfd0f43b7973771640fc593f56321f", - "sha256:246de67b99b6851627d945db38147d1b209a899311b1305dd84916f2b88526c6", - "sha256:2dee8e57f052ef5353cf608e0b4c871aee320dd1b87d351c28764fc0ca55f9f4", - "sha256:2efb1bd13885392adfda4614c33d3b68dee4921fd0ac1d3988f8cbb7d589e72a", - "sha256:2f4ac36d8e2b4cc1aa71df3dd84ff8efbe3bfb97ac41242fbcfc053c67434f46", - "sha256:3170c9399da12c9dc66366e9d14da8bf7147e1e9d9ea566067bbce7bb74bd9c2", - "sha256:3b1613dd5aee995ec6d4c69f00378bbd07614702a315a2cf6c1d21461fe17c23", - "sha256:3bb3d25a8e6c0aedd251753a79ae98a093c7e7b471faa3aa9a93a81431987ace", - "sha256:3bb7fda7260735efe66d5107fb7e6af6a7c04c7fce9b2514e04b7a74b06bf5dd", - "sha256:41b25eaa7d15909cf3ac4c96088c1f266a9a93ec44f87f1d13d4a0e86c81b982", - "sha256:45de3f87179c1823e6d9e32156fb14c1927fcc9aba21433f088fdfb555b77c10", - "sha256:46fb8c61d794b78ec7134a715a3e564aafc8f6b5e338417cb19fe9f57a5a9bf2", - "sha256:48021783bdf96e3d6de03a6e39a1171ed5bd7e8bb93fc84cc649d11490f87cea", - "sha256:4957669ef390f0e6719db3613ab3a7631e68424604a7b448f079bee145da6e09", - "sha256:5e86d77b090dbddbe78867a0275cb4df08ea195e660f1f7f13435a4649e954e5", - "sha256:6339d047dab2780cc6220f46306628e04d9750f02f983ddb37439ca47ced7149", - "sha256:681eb3d7e02e3c3655d1b16059fbfb605ac464c834a0c629048a30fad2b27489", - "sha256:6c409c0deba34f147f77efaa67b8e4bb83d2f11c8806405f76397ae5b8c0d1c9", - "sha256:7095f6fbfaa55defb6b733cfeb14efaae7a29f0b59d8cf213be4e7ca0b857b80", - "sha256:70c610f6cbe4b9fce272c407dd9d07e33e6bf7b4aa1b7ffb6f6ded8e634e3592", - "sha256:72814c01533f51d68702802d74f77ea026b5ec52793c791e2da806a3844a46c3", - "sha256:7a4826ad2bd6b07ca615c74ab91f32f6c96d08f6fcc3902ceeedaec8cdc3bcd6", - "sha256:7c70087bfee18a42b4040bb9ec1ca15a08242cf5867c58726530bdf3945672ed", - "sha256:855eafa5d5a2034b4621c74925d89c5efef61418570e5ef9b37717d9c796419c", - "sha256:8700f06d0ce6f128de3ccdbc1acaea1ee264d2caa9ca05daaf492fde7c2a7200", - "sha256:89f1b185a01fe560bc8ae5f619e924407efca2191b56ce749ec84982fc59a32a", - "sha256:8b2c760cfc7042b27ebdb4a43a4453bd829a5742503599144d54a032c5dc7e9e", - "sha256:8c2f5e83493748286002f9369f3e6607c565a6a90425a3a1fef5ae32a36d749d", - "sha256:8e098148dd37b4ce3baca71fb394c81dc5d9c7728c95df695d2dca218edf40e6", - "sha256:94aea8eff76ee6d1cdacb07dd2123a68283cb5569e0250feab1240058f53b623", - "sha256:95eb302ff792e12aba9a8b8f8474ab229a83c103d74a750ec0bd1c1eea32e669", - "sha256:9bd9b3b31adcb054116447ea22caa61a285d92e94d710aa5ec97992ff5eb7cf3", - "sha256:9e608aafdb55eb9f255034709e20d5a83b6d60c054df0802fa9c9883d0a937aa", - "sha256:a103b3a7069b62f5d4890ae1b8f0597618f628b286b03d4bc9195230b154bfa9", - "sha256:a386ebe437176aab38c041de1260cd3ea459c6ce5263594399880bbc398225b2", - "sha256:a38856a971c602f98472050165cea2cdc97709240373041b69030be15047691f", - "sha256:a401b4598e5d3f4a9a811f3daf42ee2291790c7f9d74b18d75d6e21dda98a1a1", - "sha256:a7647ebdfb9682b7bb97e2a5e7cb6ae735b1c25008a70b906aecca294ee96cf4", - "sha256:aaf63899c94de41fe3cf934601b0f7ccb6b428c6e4eeb80da72c58eab077b19a", - "sha256:b0dac0ff919ba34d4df1b6131f59ce95b08b9065233446be7e459f95554c0dc8", - "sha256:baacc6aee0b2ef6f3d308e197b5d7a81c0e70b06beae1f1fcacffdbd124fe0e3", - "sha256:bf420121d4c8dce6b889f0e8e4ec0ca34b7f40186203f06a946fa0276ba54029", - "sha256:c04a46716adde8d927adb9457bbe39cf473e1e2c2f5d0a16ceb837e5d841ad4f", - "sha256:c0b21078a4b56965e2b12f247467b234734491897e99c1d51cee628da9786959", - "sha256:c1c76a1743432b4b60ab3358c937a3fe1341c828ae6194108a94c69028247f22", - "sha256:c4983bf937209c57240cff65906b18bb35e64ae872da6a0db937d7b4af845dd7", - "sha256:c4fb39a81950ec280984b3a44f5bd12819953dc5fa3a7e6fa7a80db5ee853952", - "sha256:c57921cda3a80d0f2b8aec7e25c8aa14479ea92b5b51b6876d975d925a2ea346", - "sha256:c8063cf17b19661471ecbdb3df1c84f24ad2e389e326ccaf89e3fb2484d8dd7e", - "sha256:ccd16eb18a849fd8dcb23e23380e2f0a354e8daa0c984b8a732d9cfaba3a776d", - "sha256:cd6dbe0238f7743d0efe563ab46294f54f9bc8f4b9bcf57c3c666cc5bc9d1299", - "sha256:d62e51710986674142526ab9f78663ca2b0726066ae26b78b22e0f5e571238dd", - "sha256:db901e2ac34c931d73054d9797383d0f8009991e723dab15109740a63e7f902a", - "sha256:e03b8895a6990c9ab2cdcd0f2fe44088ca1c65ae592b8f795c3294af00a461c3", - "sha256:e1c8a2f4c69e08e89632defbfabec2feb8a8d99edc9f89ce33c4b9e36ab63037", - "sha256:e4b749b9cc6ee664a3300bb3a273c1ca8068c46be705b6c31cf5d276f8628a94", - "sha256:e6a5bf2cba5ae1bb80b154ed68a3cfa2fa00fde979a7f50d6598d3e17d9ac20c", - "sha256:e857a2232ba53ae940d3456f7533ce6ca98b81917d47adc3c7fd55dad8fab858", - "sha256:ee4006268ed33370957f55bf2e6f4d263eaf4dc3cfc473d1d90baff6ed36ce4a", - "sha256:eef9df1eefada2c09a5e7a40991b9fc6ac6ef20b1372abd48d2794a316dc0449", - "sha256:f058f6963fd82eb143c692cecdc89e075fa0828db2e5b291070485390b2f1c9c", - "sha256:f25c229a6ba38a35ae6e25ca1264621cc25d4d38dca2942a7fce0b67a4efe918", - "sha256:f2a1d0fd4242bd8643ce6f98927cf9c04540af6efa92323e9d3124f57727bfc1", - "sha256:f7560358a6811e52e9c4d142d497f1a6e10103d3a6881f18d04dbce3729c0e2c", - "sha256:f779d3ad205f108d14e99bb3859aa7dd8e9c68874617c72354d7ecaec2a054ac", - "sha256:f87f746ee241d30d6ed93969de31e5ffd09a2961a051e60ae6bddde9ec3583aa" + "sha256:027f6de494925c0ab2a55eab46ae5129951638a49a34d87f4c3eda90f696b4ad", + "sha256:077fbb858e903c73f6c9db43374fd213b0b6a778106bc7032446a8e8b5b38b93", + "sha256:0a98e6759f854bd25a58a73fa88833fba3b7c491169f86ce1180c948ab3fd394", + "sha256:0d3d8f15c07f86e9ff82319b3d9ef6f4bf907608f53fe9d92b28ea9ae3d1fd89", + "sha256:0f04b14ffe5fdc8c4933862d8306109a2c51e0704acfa35d51598eb45a1e89fc", + "sha256:11d694519d7f29d6cd09f6ac70028dba10f92f6cdd059096db198c283794ac86", + "sha256:194f08cbb32dc406d6e1aea671a68be0823673db2832b38405deba2fb0d88f63", + "sha256:1bee1e43c28aa63cb16e5c14e582580546b08e535299b8b6158a7c9c768a1f3d", + "sha256:21d142cc6c0ec30d2efee5068ca36c128a30b0f2c53c1c07bd78cb6bc1d3be5f", + "sha256:2437418e20515acec67d86e12bf70056a33abdacb5cb1655042f6538d6b085a8", + "sha256:244bfb999c71b35de57821b8ea746b24e863398194a4014e4c76adc2bbdfeff0", + "sha256:2677acec1a2f8ef614c6888b5b4ae4060cc184174a938ed4e8ef690e15d3e505", + "sha256:277e970e750505ed74c832b4bf75dac7476262ee2a013f5574dd49075879e161", + "sha256:2aaba3b0819274cc41757a1da876f810a3e4d7b6eb25699253a4effef9e8e4af", + "sha256:2b7d8f6c26245217bd2ad053761201e9f9680f8ce52f0fcd8d0755aeae5b2152", + "sha256:2c9d3c380143a1fedbff95a312aa798578371eb29da42106a29019368a475318", + "sha256:3162d5d8ce1bb98dd51af660f2121c55d0fa541b46dff7bb9b9f86ea1d87de72", + "sha256:31fd66405eaf47bb62e8cd575dc621c56c668f27d46a61d975a249930dd5e2a4", + "sha256:362d61fd13843997c1c446760ef36f240cf81d3ebf74ac62652aebaf7838561e", + "sha256:376bec83a63b8021bb5c8ea75e21c4ccb86e7e45ca4eb81146091b56599b80c3", + "sha256:44c2a8734b333e0578090c4cd6b16f275e07aa6614ca8715e6c038e865e70576", + "sha256:47cc91b2f4dd2833fddaedd2893006b0106129d4b94fdb6af1f4ce5a9965577c", + "sha256:4902828217069c3c5c71094537a8e623f5d097858ac6ca8252f7b4d10b7560f1", + "sha256:4bd5d4137d500351a30687c2d3971758aac9a19208fc110ccb9d7188fbe709e8", + "sha256:4fe7859a4e3e8457458e2ff592f15ccb02f3da787fcd31e0183879c3ad4692a1", + "sha256:542d2cee80be6f80247095cc36c418f7bddd14f4a6de45af91dfad36d817bba2", + "sha256:554af85e960429cf30784dd47447d5125aaa3b99a6f0683589dbd27e2f45da44", + "sha256:5833d2c39d8896e4e19b689ffc198f08ea58116bee26dea51e362ecc7cd3ed26", + "sha256:5947809c8a2417be3267efc979c47d76a079758166f7d43ef5ae8e9f92751f88", + "sha256:5ae497466c7901d54b639cf42d5b8c1b6a4fead55215500d2f486d34db48d016", + "sha256:5bd2293095d766545ec1a8f612559f6b40abc0eb18bb2f5d1171872d34036ede", + "sha256:5bfbb1b9acf3334612667b61bd3002196fe2a1eb4dd74d247e0f2a4d50ec9bbf", + "sha256:5cb4d72eea50c8868f5288b7f7f33ed276118325c1dfd3957089f6b519e1382a", + "sha256:5dbe56a36425d26d6cfb40ce79c314a2e4dd6211d51d6d2191c00bed34f354cc", + "sha256:5f819d5fe9234f9f82d75bdfa9aef3a3d72c4d24a6e57aeaebba32a704553aa0", + "sha256:64b55f9dce520635f018f907ff1b0df1fdc31f2795a922fb49dd14fbcdf48c84", + "sha256:6515f3182dbe4ea06ced2d9e8666d97b46ef4c75e326b79bb624110f122551db", + "sha256:65e2befcd84bc6f37095f5961e68a6f077bf44946771354a28ad434c2cce0ae1", + "sha256:6aee717dcfead04c6eb1ce3bd29ac1e22663cdea57f943c87d1eab9a025438d7", + "sha256:6b39f987ae8ccdf0d2642338faf2abb1862340facc796048b604ef14919e55ed", + "sha256:6e1fcf0720908f200cd21aa4e6750a48ff6ce4afe7ff5a79a90d5ed8a08296f8", + "sha256:74018750915ee7ad843a774364e13a3db91682f26142baddf775342c3f5b1133", + "sha256:74664978bb272435107de04e36db5a9735e78232b85b77d45cfb38f758efd33e", + "sha256:74bb723680f9f7a6234dcf67aea57e708ec1fbdf5699fb91dfd6f511b0a320ef", + "sha256:752944c7ffbfdd10c074dc58ec2d5a8a4cd9493b314d367c14d24c17684ddd14", + "sha256:778d2e08eda00f4256d7f672ca9fef386071c9202f5e4607920b86d7803387f2", + "sha256:780236ac706e66881f3b7f2f32dfe90507a09e67d1d454c762cf642e6e1586e0", + "sha256:798d75d81754988d2565bff1b97ba5a44411867c0cf32b77a7e8f8d84796b10d", + "sha256:799a7a5e4fb2d5898c60b640fd4981d6a25f1c11790935a44ce38c54e985f828", + "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", + "sha256:7c308f7e26e4363d79df40ca5b2be1c6ba9f02bdbccfed5abddb7859a6ce72cf", + "sha256:7fa17817dc5625de8a027cb8b26d9fefa3ea28c8253929b8d6649e705d2835b6", + "sha256:81d5eb2a312700f4ecaa977a8235b634ce853200e828fbadf3a9c50bab278328", + "sha256:82004af6c302b5d3ab2cfc4cc5f29db16123b1a8417f2e25f9066f91d4411090", + "sha256:837c2ce8c5a65a2035be9b3569c684358dfbf109fd3b6969630a87535495ceaa", + "sha256:840c25fb618a231545cbab0564a799f101b63b9901f2569faecd6b222ac72381", + "sha256:8a6562c3700cce886c5be75ade4a5db4214fda19fede41d9792d100288d8f94c", + "sha256:8af65f14dc14a79b924524b1e7fffe304517b2bff5a58bf64f30b98bbc5079eb", + "sha256:8ef3c867360f88ac904fd3f5e1f902f13307af9052646963ee08ff4f131adafc", + "sha256:94537985111c35f28720e43603b8e7b43a6ecfb2ce1d3058bbe955b73404e21a", + "sha256:99ae2cffebb06e6c22bdc25801d7b30f503cc87dbd283479e7b606f70aff57ec", + "sha256:9a26f18905b8dd5d685d6d07b0cdf98a79f3c7a918906af7cc143ea2e164c8bc", + "sha256:9b35f4c90079ff2e2edc5b26c0c77925e5d2d255c42c74fdb70fb49b172726ac", + "sha256:9cd98cdc06614a2f768d2b7286d66805f94c48cde050acdbbb7db2600ab3197e", + "sha256:9d1bb833febdff5c8927f922386db610b49db6e0d4f4ee29601d71e7c2694313", + "sha256:9f7fcd74d410a36883701fafa2482a6af2ff5ba96b9a620e9e0721e28ead5569", + "sha256:a59cb51917aa591b1c4e6a43c132f0cdc3c76dbad6155df4e28ee626cc77a0a3", + "sha256:a61900df84c667873b292c3de315a786dd8dac506704dea57bc957bd31e22c7d", + "sha256:a79cfe37875f822425b89a82333404539ae63dbdddf97f84dcbc3d339aae9525", + "sha256:a8a8b89589086a25749f471e6a900d3f662d1d3b6e2e59dcecf787b1cc3a1894", + "sha256:a8bf8d0f749c5757af2142fe7903a9df1d2e8aa3841559b2bad34b08d0e2bcf3", + "sha256:a9768c477b9d7bd54bc0c86dbaebdec6f03306675526c9927c0e8a04e8f94af9", + "sha256:ac1c4a689edcc530fc9d9aa11f5774b9e2f33f9a0c6a57864e90908f5208d30a", + "sha256:af2d8c67d8e573d6de5bc30cdb27e9b95e49115cd9baad5ddbd1a6207aaa82a9", + "sha256:b435cba5f4f750aa6c0a0d92c541fb79f69a387c91e61f1795227e4ed9cece14", + "sha256:b5b290ccc2a263e8d185130284f8501e3e36c5e02750fc6b6bdeb2e9e96f1e25", + "sha256:b5d84d37db046c5ca74ee7bb47dd6cbc13f80665fdde3e8040bdd3fb015ecb50", + "sha256:b7cf1017d601aa35e6bb650b6ad28652c9cd78ee6caff19f3c28d03e1c80acbf", + "sha256:bc7637e2f80d8530ee4a78e878bce464f70087ce73cf7c1caf142416923b98f1", + "sha256:c0463276121fdee9c49b98908b3a89c39be45d86d1dbaa22957e38f6321d4ce3", + "sha256:c4ef880e27901b6cc782f1b95f82da9313c0eb95c3af699103088fa0ac3ce9ac", + "sha256:c8ae8a0f02f57a6e61203a31428fa1d677cbe50c93622b4149d5c0f319c1d19e", + "sha256:ca5862d5b3928c4940729dacc329aa9102900382fea192fc5e52eb69d6093815", + "sha256:cb01158d8b88ee68f15949894ccc6712278243d95f344770fa7593fa2d94410c", + "sha256:cb6254dc36b47a990e59e1068afacdcd02958bdcce30bb50cc1700a8b9d624a6", + "sha256:cc00f04ed596e9dc0da42ed17ac5e596c6ccba999ba6bd92b0e0aef2f170f2d6", + "sha256:cd09d08005f958f370f539f186d10aec3377d55b9eeb0d796025d4886119d76e", + "sha256:cd4b7ca9984e5e7985c12bc60a6f173f3c958eae74f3ef6624bb6b26e2abbae4", + "sha256:ce8a0633f41a967713a59c4139d29110c07e826d131a316b50ce11b1d79b4f84", + "sha256:cead0978fc57397645f12578bfd2d5ea9138ea0fac82b2f63f7f7c6877986a69", + "sha256:d055ec1e26e441f6187acf818b73564e6e6282709e9bcb5b63f5b23068356a15", + "sha256:d1f13550535ad8cff21b8d757a3257963e951d96e20ec82ab44bc64aeb62a191", + "sha256:d9c7f57c3d666a53421049053eaacdd14bbd0a528e2186fcb2e672effd053bb0", + "sha256:d9e45d7faa48ee908174d8fe84854479ef838fc6a705c9315372eacbc2f02897", + "sha256:da3326d9e65ef63a817ecbcc0df6e94463713b754fe293eaa03da99befb9a5bd", + "sha256:de00632ca48df9daf77a2c65a484531649261ec9f25489917f09e455cb09ddb2", + "sha256:e1f185f86a6f3403aa2420e815904c67b2f9ebc443f045edd0de921108345794", + "sha256:e824f1492727fa856dd6eda4f7cee25f8518a12f3c4a56a74e8095695089cf6d", + "sha256:e912091979546adf63357d7e2ccff9b44f026c075aeaf25a52d0e95ad2281074", + "sha256:eaabd426fe94daf8fd157c32e571c85cb12e66692f15516a83a03264b08d06c3", + "sha256:ebf3e58c7ec8a8bed6d66a75d7fb37b55e5015b03ceae72a8e7c74495551e224", + "sha256:ecaae4149d99b1c9e7b88bb03e3221956f68fd6d50be2ef061b2381b61d20838", + "sha256:eecbc200c7fd5ddb9a7f16c7decb07b566c29fa2161a16cf67b8d068bd21690a", + "sha256:f155a433c2ec037d4e8df17d18922c3a0d9b3232a396690f17175d2946f0218d", + "sha256:f1e34719c6ed0b92f418c7c780480b26b5d9c50349e9a9af7d76bf757530350d", + "sha256:f34be2938726fc13801220747472850852fe6b1ea75869a048d6f896838c896f", + "sha256:f820802628d2694cb7e56db99213f930856014862f3fd943d290ea8438d07ca8", + "sha256:f8bf04158c6b607d747e93949aa60618b61312fe647a6369f88ce2ff16043490", + "sha256:f8e160feb2aed042cd657a72acc0b481212ed28b1b9a95c0cee1621b524e1966", + "sha256:f9d332f8c2a2fcbffe1378594431458ddbef721c1769d78e2cbc06280d8155f9", + "sha256:fa09f53c465e532f4d3db095e0c55b615f010ad81803d383195b6b5ca6cbf5f3", + "sha256:faa3a41b2b66b6e50f84ae4a68c64fcd0c44355741c6374813a800cd6695db9e", + "sha256:fd44c878ea55ba351104cb93cc85e74916eb8fa440ca7903e57575e97394f608" ], - "markers": "python_full_version >= '3.7.0'", - "version": "==3.2.0" + "markers": "python_version >= '3.7'", + "version": "==3.4.4" }, "docutils": { "hashes": [ - "sha256:96f387a2c5562db4476f09f13bbab2192e764cac08ebbf3a34a95d9b1e4a59d6", - "sha256:f08a4e276c3a1583a86dce3e34aba3fe04d02bba2dd51ed16106244e8a923e3b" + "sha256:3a6b18732edf182daa3cd12775bbb338cf5691468f91eeeb109deff6ebfa986f", + "sha256:dafca5b9e384f0e419294eb4d2ff9fa826435bf15f15b7bd45723e8ad76811b2" ], - "markers": "python_version >= '3.7'", - "version": "==0.20.1" + "markers": "python_version >= '3.9'", + "version": "==0.21.2" }, "furo": { "hashes": [ - "sha256:40e09fa17c6f4b22419d122e933089226dcdb59747b5b6c79363089827dea16f", - "sha256:594a8436ddfe0c071f3a9e9a209c314a219d8341f3f1af33fdf7c69544fab9e6" + "sha256:2937f68e823b8e37b410c972c371bc2b1d88026709534927158e0cb3fac95afe", + "sha256:3eac05582768fdbbc2bdfa1cdbcdd5d33cfc8b4bd2051729ff4e026a1d7e0a98" ], "index": "pypi", - "version": "==2023.5.20" + "markers": "python_version >= '3.8'", + "version": "==2025.9.25" }, "idna": { "hashes": [ - "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4", - "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2" + "sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea", + "sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902" ], - "markers": "python_version >= '3.5'", - "version": "==3.4" + "markers": "python_version >= '3.8'", + "version": "==3.11" }, "imagesize": { "hashes": [ @@ -161,114 +208,163 @@ }, "jinja2": { "hashes": [ - "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852", - "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61" + "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d", + "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67" ], "markers": "python_version >= '3.7'", - "version": "==3.1.2" + "version": "==3.1.6" }, "markupsafe": { "hashes": [ - "sha256:05fb21170423db021895e1ea1e1f3ab3adb85d1c2333cbc2310f2a26bc77272e", - "sha256:0a4e4a1aff6c7ac4cd55792abf96c915634c2b97e3cc1c7129578aa68ebd754e", - "sha256:10bbfe99883db80bdbaff2dcf681dfc6533a614f700da1287707e8a5d78a8431", - "sha256:134da1eca9ec0ae528110ccc9e48041e0828d79f24121a1a146161103c76e686", - "sha256:1577735524cdad32f9f694208aa75e422adba74f1baee7551620e43a3141f559", - "sha256:1b40069d487e7edb2676d3fbdb2b0829ffa2cd63a2ec26c4938b2d34391b4ecc", - "sha256:282c2cb35b5b673bbcadb33a585408104df04f14b2d9b01d4c345a3b92861c2c", - "sha256:2c1b19b3aaacc6e57b7e25710ff571c24d6c3613a45e905b1fde04d691b98ee0", - "sha256:2ef12179d3a291be237280175b542c07a36e7f60718296278d8593d21ca937d4", - "sha256:338ae27d6b8745585f87218a3f23f1512dbf52c26c28e322dbe54bcede54ccb9", - "sha256:3c0fae6c3be832a0a0473ac912810b2877c8cb9d76ca48de1ed31e1c68386575", - "sha256:3fd4abcb888d15a94f32b75d8fd18ee162ca0c064f35b11134be77050296d6ba", - "sha256:42de32b22b6b804f42c5d98be4f7e5e977ecdd9ee9b660fda1a3edf03b11792d", - "sha256:504b320cd4b7eff6f968eddf81127112db685e81f7e36e75f9f84f0df46041c3", - "sha256:525808b8019e36eb524b8c68acdd63a37e75714eac50e988180b169d64480a00", - "sha256:56d9f2ecac662ca1611d183feb03a3fa4406469dafe241673d521dd5ae92a155", - "sha256:5bbe06f8eeafd38e5d0a4894ffec89378b6c6a625ff57e3028921f8ff59318ac", - "sha256:65c1a9bcdadc6c28eecee2c119465aebff8f7a584dd719facdd9e825ec61ab52", - "sha256:68e78619a61ecf91e76aa3e6e8e33fc4894a2bebe93410754bd28fce0a8a4f9f", - "sha256:69c0f17e9f5a7afdf2cc9fb2d1ce6aabdb3bafb7f38017c0b77862bcec2bbad8", - "sha256:6b2b56950d93e41f33b4223ead100ea0fe11f8e6ee5f641eb753ce4b77a7042b", - "sha256:787003c0ddb00500e49a10f2844fac87aa6ce977b90b0feaaf9de23c22508b24", - "sha256:7ef3cb2ebbf91e330e3bb937efada0edd9003683db6b57bb108c4001f37a02ea", - "sha256:8023faf4e01efadfa183e863fefde0046de576c6f14659e8782065bcece22198", - "sha256:8758846a7e80910096950b67071243da3e5a20ed2546e6392603c096778d48e0", - "sha256:8afafd99945ead6e075b973fefa56379c5b5c53fd8937dad92c662da5d8fd5ee", - "sha256:8c41976a29d078bb235fea9b2ecd3da465df42a562910f9022f1a03107bd02be", - "sha256:8e254ae696c88d98da6555f5ace2279cf7cd5b3f52be2b5cf97feafe883b58d2", - "sha256:9402b03f1a1b4dc4c19845e5c749e3ab82d5078d16a2a4c2cd2df62d57bb0707", - "sha256:962f82a3086483f5e5f64dbad880d31038b698494799b097bc59c2edf392fce6", - "sha256:9dcdfd0eaf283af041973bff14a2e143b8bd64e069f4c383416ecd79a81aab58", - "sha256:aa7bd130efab1c280bed0f45501b7c8795f9fdbeb02e965371bbef3523627779", - "sha256:ab4a0df41e7c16a1392727727e7998a467472d0ad65f3ad5e6e765015df08636", - "sha256:ad9e82fb8f09ade1c3e1b996a6337afac2b8b9e365f926f5a61aacc71adc5b3c", - "sha256:af598ed32d6ae86f1b747b82783958b1a4ab8f617b06fe68795c7f026abbdcad", - "sha256:b076b6226fb84157e3f7c971a47ff3a679d837cf338547532ab866c57930dbee", - "sha256:b7ff0f54cb4ff66dd38bebd335a38e2c22c41a8ee45aa608efc890ac3e3931bc", - "sha256:bfce63a9e7834b12b87c64d6b155fdd9b3b96191b6bd334bf37db7ff1fe457f2", - "sha256:c011a4149cfbcf9f03994ec2edffcb8b1dc2d2aede7ca243746df97a5d41ce48", - "sha256:c9c804664ebe8f83a211cace637506669e7890fec1b4195b505c214e50dd4eb7", - "sha256:ca379055a47383d02a5400cb0d110cef0a776fc644cda797db0c5696cfd7e18e", - "sha256:cb0932dc158471523c9637e807d9bfb93e06a95cbf010f1a38b98623b929ef2b", - "sha256:cd0f502fe016460680cd20aaa5a76d241d6f35a1c3350c474bac1273803893fa", - "sha256:ceb01949af7121f9fc39f7d27f91be8546f3fb112c608bc4029aef0bab86a2a5", - "sha256:d080e0a5eb2529460b30190fcfcc4199bd7f827663f858a226a81bc27beaa97e", - "sha256:dd15ff04ffd7e05ffcb7fe79f1b98041b8ea30ae9234aed2a9168b5797c3effb", - "sha256:df0be2b576a7abbf737b1575f048c23fb1d769f267ec4358296f31c2479db8f9", - "sha256:e09031c87a1e51556fdcb46e5bd4f59dfb743061cf93c4d6831bf894f125eb57", - "sha256:e4dd52d80b8c83fdce44e12478ad2e85c64ea965e75d66dbeafb0a3e77308fcc", - "sha256:fec21693218efe39aa7f8599346e90c705afa52c5b31ae019b2e57e8f6542bb2" - ], - "markers": "python_version >= '3.7'", - "version": "==2.1.3" + "sha256:0303439a41979d9e74d18ff5e2dd8c43ed6c6001fd40e5bf2e43f7bd9bbc523f", + "sha256:068f375c472b3e7acbe2d5318dea141359e6900156b5b2ba06a30b169086b91a", + "sha256:0bf2a864d67e76e5c9a34dc26ec616a66b9888e25e7b9460e1c76d3293bd9dbf", + "sha256:0db14f5dafddbb6d9208827849fad01f1a2609380add406671a26386cdf15a19", + "sha256:0eb9ff8191e8498cca014656ae6b8d61f39da5f95b488805da4bb029cccbfbaf", + "sha256:0f4b68347f8c5eab4a13419215bdfd7f8c9b19f2b25520968adfad23eb0ce60c", + "sha256:1085e7fbddd3be5f89cc898938f42c0b3c711fdcb37d75221de2666af647c175", + "sha256:116bb52f642a37c115f517494ea5feb03889e04df47eeff5b130b1808ce7c219", + "sha256:12c63dfb4a98206f045aa9563db46507995f7ef6d83b2f68eda65c307c6829eb", + "sha256:133a43e73a802c5562be9bbcd03d090aa5a1fe899db609c29e8c8d815c5f6de6", + "sha256:1353ef0c1b138e1907ae78e2f6c63ff67501122006b0f9abad68fda5f4ffc6ab", + "sha256:15d939a21d546304880945ca1ecb8a039db6b4dc49b2c5a400387cdae6a62e26", + "sha256:177b5253b2834fe3678cb4a5f0059808258584c559193998be2601324fdeafb1", + "sha256:1872df69a4de6aead3491198eaf13810b565bdbeec3ae2dc8780f14458ec73ce", + "sha256:1b4b79e8ebf6b55351f0d91fe80f893b4743f104bff22e90697db1590e47a218", + "sha256:1b52b4fb9df4eb9ae465f8d0c228a00624de2334f216f178a995ccdcf82c4634", + "sha256:1ba88449deb3de88bd40044603fafffb7bc2b055d626a330323a9ed736661695", + "sha256:1cc7ea17a6824959616c525620e387f6dd30fec8cb44f649e31712db02123dad", + "sha256:218551f6df4868a8d527e3062d0fb968682fe92054e89978594c28e642c43a73", + "sha256:26a5784ded40c9e318cfc2bdb30fe164bdb8665ded9cd64d500a34fb42067b1c", + "sha256:2713baf880df847f2bece4230d4d094280f4e67b1e813eec43b4c0e144a34ffe", + "sha256:2a15a08b17dd94c53a1da0438822d70ebcd13f8c3a95abe3a9ef9f11a94830aa", + "sha256:2f981d352f04553a7171b8e44369f2af4055f888dfb147d55e42d29e29e74559", + "sha256:32001d6a8fc98c8cb5c947787c5d08b0a50663d139f1305bac5885d98d9b40fa", + "sha256:3524b778fe5cfb3452a09d31e7b5adefeea8c5be1d43c4f810ba09f2ceb29d37", + "sha256:3537e01efc9d4dccdf77221fb1cb3b8e1a38d5428920e0657ce299b20324d758", + "sha256:35add3b638a5d900e807944a078b51922212fb3dedb01633a8defc4b01a3c85f", + "sha256:38664109c14ffc9e7437e86b4dceb442b0096dfe3541d7864d9cbe1da4cf36c8", + "sha256:3a7e8ae81ae39e62a41ec302f972ba6ae23a5c5396c8e60113e9066ef893da0d", + "sha256:3b562dd9e9ea93f13d53989d23a7e775fdfd1066c33494ff43f5418bc8c58a5c", + "sha256:457a69a9577064c05a97c41f4e65148652db078a3a509039e64d3467b9e7ef97", + "sha256:4bd4cd07944443f5a265608cc6aab442e4f74dff8088b0dfc8238647b8f6ae9a", + "sha256:4e885a3d1efa2eadc93c894a21770e4bc67899e3543680313b09f139e149ab19", + "sha256:4faffd047e07c38848ce017e8725090413cd80cbc23d86e55c587bf979e579c9", + "sha256:509fa21c6deb7a7a273d629cf5ec029bc209d1a51178615ddf718f5918992ab9", + "sha256:5678211cb9333a6468fb8d8be0305520aa073f50d17f089b5b4b477ea6e67fdc", + "sha256:591ae9f2a647529ca990bc681daebdd52c8791ff06c2bfa05b65163e28102ef2", + "sha256:5a7d5dc5140555cf21a6fefbdbf8723f06fcd2f63ef108f2854de715e4422cb4", + "sha256:69c0b73548bc525c8cb9a251cddf1931d1db4d2258e9599c28c07ef3580ef354", + "sha256:6b5420a1d9450023228968e7e6a9ce57f65d148ab56d2313fcd589eee96a7a50", + "sha256:722695808f4b6457b320fdc131280796bdceb04ab50fe1795cd540799ebe1698", + "sha256:729586769a26dbceff69f7a7dbbf59ab6572b99d94576a5592625d5b411576b9", + "sha256:77f0643abe7495da77fb436f50f8dab76dbc6e5fd25d39589a0f1fe6548bfa2b", + "sha256:795e7751525cae078558e679d646ae45574b47ed6e7771863fcc079a6171a0fc", + "sha256:7be7b61bb172e1ed687f1754f8e7484f1c8019780f6f6b0786e76bb01c2ae115", + "sha256:7c3fb7d25180895632e5d3148dbdc29ea38ccb7fd210aa27acbd1201a1902c6e", + "sha256:7e68f88e5b8799aa49c85cd116c932a1ac15caaa3f5db09087854d218359e485", + "sha256:83891d0e9fb81a825d9a6d61e3f07550ca70a076484292a70fde82c4b807286f", + "sha256:8485f406a96febb5140bfeca44a73e3ce5116b2501ac54fe953e488fb1d03b12", + "sha256:8709b08f4a89aa7586de0aadc8da56180242ee0ada3999749b183aa23df95025", + "sha256:8f71bc33915be5186016f675cd83a1e08523649b0e33efdb898db577ef5bb009", + "sha256:915c04ba3851909ce68ccc2b8e2cd691618c4dc4c4232fb7982bca3f41fd8c3d", + "sha256:949b8d66bc381ee8b007cd945914c721d9aba8e27f71959d750a46f7c282b20b", + "sha256:94c6f0bb423f739146aec64595853541634bde58b2135f27f61c1ffd1cd4d16a", + "sha256:9a1abfdc021a164803f4d485104931fb8f8c1efd55bc6b748d2f5774e78b62c5", + "sha256:9b79b7a16f7fedff2495d684f2b59b0457c3b493778c9eed31111be64d58279f", + "sha256:a320721ab5a1aba0a233739394eb907f8c8da5c98c9181d1161e77a0c8e36f2d", + "sha256:a4afe79fb3de0b7097d81da19090f4df4f8d3a2b3adaa8764138aac2e44f3af1", + "sha256:ad2cf8aa28b8c020ab2fc8287b0f823d0a7d8630784c31e9ee5edea20f406287", + "sha256:b8512a91625c9b3da6f127803b166b629725e68af71f8184ae7e7d54686a56d6", + "sha256:bc51efed119bc9cfdf792cdeaa4d67e8f6fcccab66ed4bfdd6bde3e59bfcbb2f", + "sha256:bdc919ead48f234740ad807933cdf545180bfbe9342c2bb451556db2ed958581", + "sha256:bdd37121970bfd8be76c5fb069c7751683bdf373db1ed6c010162b2a130248ed", + "sha256:be8813b57049a7dc738189df53d69395eba14fb99345e0a5994914a3864c8a4b", + "sha256:c0c0b3ade1c0b13b936d7970b1d37a57acde9199dc2aecc4c336773e1d86049c", + "sha256:c47a551199eb8eb2121d4f0f15ae0f923d31350ab9280078d1e5f12b249e0026", + "sha256:c4ffb7ebf07cfe8931028e3e4c85f0357459a3f9f9490886198848f4fa002ec8", + "sha256:ccfcd093f13f0f0b7fdd0f198b90053bf7b2f02a3927a30e63f3ccc9df56b676", + "sha256:d2ee202e79d8ed691ceebae8e0486bd9a2cd4794cec4824e1c99b6f5009502f6", + "sha256:d53197da72cc091b024dd97249dfc7794d6a56530370992a5e1a08983ad9230e", + "sha256:d6dd0be5b5b189d31db7cda48b91d7e0a9795f31430b7f271219ab30f1d3ac9d", + "sha256:d88b440e37a16e651bda4c7c2b930eb586fd15ca7406cb39e211fcff3bf3017d", + "sha256:de8a88e63464af587c950061a5e6a67d3632e36df62b986892331d4620a35c01", + "sha256:df2449253ef108a379b8b5d6b43f4b1a8e81a061d6537becd5582fba5f9196d7", + "sha256:e1c1493fb6e50ab01d20a22826e57520f1284df32f2d8601fdd90b6304601419", + "sha256:e1cf1972137e83c5d4c136c43ced9ac51d0e124706ee1c8aa8532c1287fa8795", + "sha256:e2103a929dfa2fcaf9bb4e7c091983a49c9ac3b19c9061b6d5427dd7d14d81a1", + "sha256:e56b7d45a839a697b5eb268c82a71bd8c7f6c94d6fd50c3d577fa39a9f1409f5", + "sha256:e8afc3f2ccfa24215f8cb28dcf43f0113ac3c37c2f0f0806d8c70e4228c5cf4d", + "sha256:e8fc20152abba6b83724d7ff268c249fa196d8259ff481f3b1476383f8f24e42", + "sha256:eaa9599de571d72e2daf60164784109f19978b327a3910d3e9de8c97b5b70cfe", + "sha256:ec15a59cf5af7be74194f7ab02d0f59a62bdcf1a537677ce67a2537c9b87fcda", + "sha256:f190daf01f13c72eac4efd5c430a8de82489d9cff23c364c3ea822545032993e", + "sha256:f34c41761022dd093b4b6896d4810782ffbabe30f2d443ff5f083e0cbbb8c737", + "sha256:f3e98bb3798ead92273dc0e5fd0f31ade220f59a266ffd8a4f6065e0a3ce0523", + "sha256:f42d0984e947b8adf7dd6dde396e720934d12c506ce84eea8476409563607591", + "sha256:f71a396b3bf33ecaa1626c255855702aca4d3d9fea5e051b41ac59a9c1c41edc", + "sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a", + "sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50" + ], + "markers": "python_version >= '3.9'", + "version": "==3.0.3" }, "packaging": { "hashes": [ - "sha256:994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61", - "sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f" + "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", + "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f" ], - "markers": "python_version >= '3.7'", - "version": "==23.1" + "markers": "python_version >= '3.8'", + "version": "==25.0" }, "pygments": { "hashes": [ - "sha256:8ace4d3c1dd481894b2005f560ead0f9f19ee64fe983366be1a21e171d12775c", - "sha256:db2db3deb4b4179f399a09054b023b6a586b76499d36965813c71aa8ed7b5fd1" + "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887", + "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b" ], - "markers": "python_version >= '3.7'", - "version": "==2.15.1" + "markers": "python_version >= '3.8'", + "version": "==2.19.2" }, "requests": { "hashes": [ - "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f", - "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1" + "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6", + "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf" ], - "markers": "python_version >= '3.7'", - "version": "==2.31.0" + "markers": "python_version >= '3.9'", + "version": "==2.32.5" + }, + "roman-numerals-py": { + "hashes": [ + "sha256:9da2ad2fb670bcf24e81070ceb3be72f6c11c440d73bd579fbeca1e9f330954c", + "sha256:be4bf804f083a4ce001b5eb7e3c0862479d10f94c936f6c4e5f250aa5ff5bd2d" + ], + "markers": "python_version >= '3.9'", + "version": "==3.1.0" }, "snowballstemmer": { "hashes": [ - "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1", - "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a" + "sha256:6cd7b3897da8d6c9ffb968a6781fa6532dce9c3618a4b127d920dab764a19064", + "sha256:6d5eeeec8e9f84d4d56b847692bacf79bc2c8e90c7f80ca4444ff8b6f2e52895" ], - "version": "==2.2.0" + "markers": "python_version not in '3.0, 3.1, 3.2'", + "version": "==3.0.1" }, "soupsieve": { "hashes": [ - "sha256:1c1bfee6819544a3447586c889157365a27e10d88cde3ad3da0cf0ddf646feb8", - "sha256:89d12b2d5dfcd2c9e8c22326da9d9aa9cb3dfab0a83a024f05704076ee8d35ea" + "sha256:0cc76456a30e20f5d7f2e14a98a4ae2ee4e5abdc7c5ea0aafe795f344bc7984c", + "sha256:e2dd4a40a628cb5f28f6d4b0db8800b8f581b65bb380b97de22ba5ca8d72572f" ], - "markers": "python_version >= '3.7'", - "version": "==2.4.1" + "markers": "python_version >= '3.9'", + "version": "==2.8" }, "sphinx": { "hashes": [ - "sha256:8f336d0221c3beb23006b3164ed1d46db9cebcce9cb41cdb9c5ecd4bcc509be0", - "sha256:9bdfb5a2b28351d4fdf40a63cd006dbad727f793b243e669fc950d7116c634af" + "sha256:398ad29dee7f63a75888314e9424d40f52ce5a6a87ae88e7071e80af296ec348", + "sha256:4405915165f13521d875a8c29c8970800a0141c14cc5416a38feca4ea5d9b9c3" ], "index": "pypi", - "version": "==7.1.0" + "markers": "python_version >= '3.11'", + "version": "==8.2.3" }, "sphinx-basic-ng": { "hashes": [ @@ -284,10 +380,12 @@ "sha256:fb543fd386d917746c9a2c50360c7905b605726b9355cd26e9974857afeae06e" ], "index": "pypi", + "markers": "python_version >= '3.7'", "version": "==0.5.2" }, "sphinx-multiversion": { "hashes": [ + "sha256:5c38d5ce785a335d8c8d768b46509bd66bfb9c6252b93b700ca8c05317f207d6", "sha256:5cd1ca9ecb5eed63cb8d6ce5e9c438ca13af4fa98e7eb6f376be541dd4990bcb", "sha256:dec29f2a5890ad68157a790112edc0eb63140e70f9df0a363743c6258fbeb478" ], @@ -296,27 +394,27 @@ }, "sphinxcontrib-applehelp": { "hashes": [ - "sha256:29d341f67fb0f6f586b23ad80e072c8e6ad0b48417db2bde114a4c9746feb228", - "sha256:828f867945bbe39817c210a1abfd1bc4895c8b73fcaade56d45357a348a07d7e" + "sha256:2f29ef331735ce958efa4734873f084941970894c6090408b079c61b2e1c06d1", + "sha256:4cd3f0ec4ac5dd9c17ec65e9ab272c9b867ea77425228e68ecf08d6b28ddbdb5" ], - "markers": "python_version >= '3.8'", - "version": "==1.0.4" + "markers": "python_version >= '3.9'", + "version": "==2.0.0" }, "sphinxcontrib-devhelp": { "hashes": [ - "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e", - "sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4" + "sha256:411f5d96d445d1d73bb5d52133377b4248ec79db5c793ce7dbe59e074b4dd1ad", + "sha256:aefb8b83854e4b0998877524d1029fd3e6879210422ee3780459e28a1f03a8a2" ], - "markers": "python_version >= '3.5'", - "version": "==1.0.2" + "markers": "python_version >= '3.9'", + "version": "==2.0.0" }, "sphinxcontrib-htmlhelp": { "hashes": [ - "sha256:0cbdd302815330058422b98a113195c9249825d681e18f11e8b1f78a2f11efff", - "sha256:c38cb46dccf316c79de6e5515e1770414b797162b23cd3d06e67020e1d2a6903" + "sha256:166759820b47002d22914d64a075ce08f4c46818e17cfc9470a9786b759b19f8", + "sha256:c9e2916ace8aad64cc13a0d233ee22317f2b9025b9cf3295249fa985cc7082e9" ], - "markers": "python_version >= '3.8'", - "version": "==2.0.1" + "markers": "python_version >= '3.9'", + "version": "==2.1.0" }, "sphinxcontrib-jsmath": { "hashes": [ @@ -328,434 +426,217 @@ }, "sphinxcontrib-qthelp": { "hashes": [ - "sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72", - "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6" + "sha256:4fe7d0ac8fc171045be623aba3e2a8f613f8682731f9153bb2e40ece16b9bbab", + "sha256:b18a828cdba941ccd6ee8445dbe72ffa3ef8cbe7505d8cd1fa0d42d3f2d5f3eb" ], - "markers": "python_version >= '3.5'", - "version": "==1.0.3" + "markers": "python_version >= '3.9'", + "version": "==2.0.0" }, "sphinxcontrib-serializinghtml": { "hashes": [ - "sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd", - "sha256:aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952" + "sha256:6e2cb0eef194e10c27ec0023bfeb25badbbb5868244cf5bc5bdc04e4464bf331", + "sha256:e9d912827f872c029017a53f0ef2180b327c3f7fd23c87229f7a8e8b70031d4d" ], - "markers": "python_version >= '3.5'", - "version": "==1.1.5" + "markers": "python_version >= '3.9'", + "version": "==2.0.0" + }, + "typing-extensions": { + "hashes": [ + "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", + "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548" + ], + "markers": "python_version >= '3.9'", + "version": "==4.15.0" }, "urllib3": { "hashes": [ - "sha256:8d22f86aae8ef5e410d4f539fde9ce6b2113a001bb4d189e0aed70642d602b11", - "sha256:de7df1803967d2c2a98e4b11bb7d6bd9210474c46e8a0401514e3a42a75ebde4" + "sha256:c90f7a39f716c572c4e3e58509581ebd83f9b59cced005b7db7ad2d22b0db99f", + "sha256:cb9bcef5a4b345d5da5d145dc3e30834f58e8018828cbc724d30b4cb7d4d49f1" ], - "markers": "python_version >= '3.7'", - "version": "==2.0.4" + "markers": "python_version >= '3.9'", + "version": "==2.6.0" } }, "develop": { - "alabaster": { - "hashes": [ - "sha256:1ee19aca801bbabb5ba3f5f258e4422dfa86f82f3e9cefb0859b283cdd7f62a3", - "sha256:a27a4a084d5e690e16e01e03ad2b2e552c61a65469419b907243193de1a84ae2" - ], - "markers": "python_version >= '3.6'", - "version": "==0.7.13" - }, - "appdirs": { + "aiosqlite": { "hashes": [ - "sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41", - "sha256:a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128" + "sha256:131bb8056daa3bc875608c631c678cda73922a2d4ba8aec373b19f18c17e7aa3", + "sha256:2549cf4057f95f53dcba16f2b64e8e2791d7e1adedb13197dd8ed77bb226d7d0" ], - "version": "==1.4.4" + "markers": "python_version >= '3.9'", + "version": "==0.21.0" }, "attrs": { "hashes": [ - "sha256:1f28b4522cdc2fb4256ac1a020c78acf9cba2c6b461ccd2c126f3aa8e8335d04", - "sha256:6279836d581513a26f1bf235f9acd333bc9115683f14f7e8fae46c98fc50e015" + "sha256:16d5969b87f0859ef33a48b35d55ac1be6e42ae49d5e853b597db70c35c57e11", + "sha256:adcf7e2a1fb3b36ac48d97835bb6d8ade15b8dcce26aba8bf1d14847b57a3373" ], - "markers": "python_version >= '3.7'", - "version": "==23.1.0" - }, - "babel": { - "hashes": [ - "sha256:b4246fb7677d3b98f501a39d43396d3cafdc8eadb045f4a31be01863f655c610", - "sha256:cc2d99999cd01d44420ae725a21c9e3711b3aadc7976d6147f622d8581963455" - ], - "markers": "python_version >= '3.7'", - "version": "==2.12.1" + "markers": "python_version >= '3.9'", + "version": "==25.4.0" }, "cattrs": { "hashes": [ - "sha256:b2bb14311ac17bed0d58785e5a60f022e5431aca3932e3fc5cc8ed8639de50a4", - "sha256:db1c821b8c537382b2c7c66678c3790091ca0275ac486c76f3c8f3920e83c657" + "sha256:1ac88d9e5eda10436c4517e390a4142d88638fe682c436c93db7ce4a277b884a", + "sha256:9896e84e0a5bf723bc7b4b68f4481785367ce07a8a02e7e9ee6eb2819bc306ff" ], - "markers": "python_version >= '3.7'", - "version": "==23.1.2" - }, - "certifi": { - "hashes": [ - "sha256:539cc1d13202e33ca466e88b2807e29f4c13049d6d87031a3c110744495cb082", - "sha256:92d6037539857d8206b8f6ae472e8b77db8058fec5937a1ef3f54304089edbb9" - ], - "markers": "python_version >= '3.6'", - "version": "==2023.7.22" - }, - "charset-normalizer": { - "hashes": [ - "sha256:04e57ab9fbf9607b77f7d057974694b4f6b142da9ed4a199859d9d4d5c63fe96", - "sha256:09393e1b2a9461950b1c9a45d5fd251dc7c6f228acab64da1c9c0165d9c7765c", - "sha256:0b87549028f680ca955556e3bd57013ab47474c3124dc069faa0b6545b6c9710", - "sha256:1000fba1057b92a65daec275aec30586c3de2401ccdcd41f8a5c1e2c87078706", - "sha256:1249cbbf3d3b04902ff081ffbb33ce3377fa6e4c7356f759f3cd076cc138d020", - "sha256:1920d4ff15ce893210c1f0c0e9d19bfbecb7983c76b33f046c13a8ffbd570252", - "sha256:193cbc708ea3aca45e7221ae58f0fd63f933753a9bfb498a3b474878f12caaad", - "sha256:1a100c6d595a7f316f1b6f01d20815d916e75ff98c27a01ae817439ea7726329", - "sha256:1f30b48dd7fa1474554b0b0f3fdfdd4c13b5c737a3c6284d3cdc424ec0ffff3a", - "sha256:203f0c8871d5a7987be20c72442488a0b8cfd0f43b7973771640fc593f56321f", - "sha256:246de67b99b6851627d945db38147d1b209a899311b1305dd84916f2b88526c6", - "sha256:2dee8e57f052ef5353cf608e0b4c871aee320dd1b87d351c28764fc0ca55f9f4", - "sha256:2efb1bd13885392adfda4614c33d3b68dee4921fd0ac1d3988f8cbb7d589e72a", - "sha256:2f4ac36d8e2b4cc1aa71df3dd84ff8efbe3bfb97ac41242fbcfc053c67434f46", - "sha256:3170c9399da12c9dc66366e9d14da8bf7147e1e9d9ea566067bbce7bb74bd9c2", - "sha256:3b1613dd5aee995ec6d4c69f00378bbd07614702a315a2cf6c1d21461fe17c23", - "sha256:3bb3d25a8e6c0aedd251753a79ae98a093c7e7b471faa3aa9a93a81431987ace", - "sha256:3bb7fda7260735efe66d5107fb7e6af6a7c04c7fce9b2514e04b7a74b06bf5dd", - "sha256:41b25eaa7d15909cf3ac4c96088c1f266a9a93ec44f87f1d13d4a0e86c81b982", - "sha256:45de3f87179c1823e6d9e32156fb14c1927fcc9aba21433f088fdfb555b77c10", - "sha256:46fb8c61d794b78ec7134a715a3e564aafc8f6b5e338417cb19fe9f57a5a9bf2", - "sha256:48021783bdf96e3d6de03a6e39a1171ed5bd7e8bb93fc84cc649d11490f87cea", - "sha256:4957669ef390f0e6719db3613ab3a7631e68424604a7b448f079bee145da6e09", - "sha256:5e86d77b090dbddbe78867a0275cb4df08ea195e660f1f7f13435a4649e954e5", - "sha256:6339d047dab2780cc6220f46306628e04d9750f02f983ddb37439ca47ced7149", - "sha256:681eb3d7e02e3c3655d1b16059fbfb605ac464c834a0c629048a30fad2b27489", - "sha256:6c409c0deba34f147f77efaa67b8e4bb83d2f11c8806405f76397ae5b8c0d1c9", - "sha256:7095f6fbfaa55defb6b733cfeb14efaae7a29f0b59d8cf213be4e7ca0b857b80", - "sha256:70c610f6cbe4b9fce272c407dd9d07e33e6bf7b4aa1b7ffb6f6ded8e634e3592", - "sha256:72814c01533f51d68702802d74f77ea026b5ec52793c791e2da806a3844a46c3", - "sha256:7a4826ad2bd6b07ca615c74ab91f32f6c96d08f6fcc3902ceeedaec8cdc3bcd6", - "sha256:7c70087bfee18a42b4040bb9ec1ca15a08242cf5867c58726530bdf3945672ed", - "sha256:855eafa5d5a2034b4621c74925d89c5efef61418570e5ef9b37717d9c796419c", - "sha256:8700f06d0ce6f128de3ccdbc1acaea1ee264d2caa9ca05daaf492fde7c2a7200", - "sha256:89f1b185a01fe560bc8ae5f619e924407efca2191b56ce749ec84982fc59a32a", - "sha256:8b2c760cfc7042b27ebdb4a43a4453bd829a5742503599144d54a032c5dc7e9e", - "sha256:8c2f5e83493748286002f9369f3e6607c565a6a90425a3a1fef5ae32a36d749d", - "sha256:8e098148dd37b4ce3baca71fb394c81dc5d9c7728c95df695d2dca218edf40e6", - "sha256:94aea8eff76ee6d1cdacb07dd2123a68283cb5569e0250feab1240058f53b623", - "sha256:95eb302ff792e12aba9a8b8f8474ab229a83c103d74a750ec0bd1c1eea32e669", - "sha256:9bd9b3b31adcb054116447ea22caa61a285d92e94d710aa5ec97992ff5eb7cf3", - "sha256:9e608aafdb55eb9f255034709e20d5a83b6d60c054df0802fa9c9883d0a937aa", - "sha256:a103b3a7069b62f5d4890ae1b8f0597618f628b286b03d4bc9195230b154bfa9", - "sha256:a386ebe437176aab38c041de1260cd3ea459c6ce5263594399880bbc398225b2", - "sha256:a38856a971c602f98472050165cea2cdc97709240373041b69030be15047691f", - "sha256:a401b4598e5d3f4a9a811f3daf42ee2291790c7f9d74b18d75d6e21dda98a1a1", - "sha256:a7647ebdfb9682b7bb97e2a5e7cb6ae735b1c25008a70b906aecca294ee96cf4", - "sha256:aaf63899c94de41fe3cf934601b0f7ccb6b428c6e4eeb80da72c58eab077b19a", - "sha256:b0dac0ff919ba34d4df1b6131f59ce95b08b9065233446be7e459f95554c0dc8", - "sha256:baacc6aee0b2ef6f3d308e197b5d7a81c0e70b06beae1f1fcacffdbd124fe0e3", - "sha256:bf420121d4c8dce6b889f0e8e4ec0ca34b7f40186203f06a946fa0276ba54029", - "sha256:c04a46716adde8d927adb9457bbe39cf473e1e2c2f5d0a16ceb837e5d841ad4f", - "sha256:c0b21078a4b56965e2b12f247467b234734491897e99c1d51cee628da9786959", - "sha256:c1c76a1743432b4b60ab3358c937a3fe1341c828ae6194108a94c69028247f22", - "sha256:c4983bf937209c57240cff65906b18bb35e64ae872da6a0db937d7b4af845dd7", - "sha256:c4fb39a81950ec280984b3a44f5bd12819953dc5fa3a7e6fa7a80db5ee853952", - "sha256:c57921cda3a80d0f2b8aec7e25c8aa14479ea92b5b51b6876d975d925a2ea346", - "sha256:c8063cf17b19661471ecbdb3df1c84f24ad2e389e326ccaf89e3fb2484d8dd7e", - "sha256:ccd16eb18a849fd8dcb23e23380e2f0a354e8daa0c984b8a732d9cfaba3a776d", - "sha256:cd6dbe0238f7743d0efe563ab46294f54f9bc8f4b9bcf57c3c666cc5bc9d1299", - "sha256:d62e51710986674142526ab9f78663ca2b0726066ae26b78b22e0f5e571238dd", - "sha256:db901e2ac34c931d73054d9797383d0f8009991e723dab15109740a63e7f902a", - "sha256:e03b8895a6990c9ab2cdcd0f2fe44088ca1c65ae592b8f795c3294af00a461c3", - "sha256:e1c8a2f4c69e08e89632defbfabec2feb8a8d99edc9f89ce33c4b9e36ab63037", - "sha256:e4b749b9cc6ee664a3300bb3a273c1ca8068c46be705b6c31cf5d276f8628a94", - "sha256:e6a5bf2cba5ae1bb80b154ed68a3cfa2fa00fde979a7f50d6598d3e17d9ac20c", - "sha256:e857a2232ba53ae940d3456f7533ce6ca98b81917d47adc3c7fd55dad8fab858", - "sha256:ee4006268ed33370957f55bf2e6f4d263eaf4dc3cfc473d1d90baff6ed36ce4a", - "sha256:eef9df1eefada2c09a5e7a40991b9fc6ac6ef20b1372abd48d2794a316dc0449", - "sha256:f058f6963fd82eb143c692cecdc89e075fa0828db2e5b291070485390b2f1c9c", - "sha256:f25c229a6ba38a35ae6e25ca1264621cc25d4d38dca2942a7fce0b67a4efe918", - "sha256:f2a1d0fd4242bd8643ce6f98927cf9c04540af6efa92323e9d3124f57727bfc1", - "sha256:f7560358a6811e52e9c4d142d497f1a6e10103d3a6881f18d04dbce3729c0e2c", - "sha256:f779d3ad205f108d14e99bb3859aa7dd8e9c68874617c72354d7ecaec2a054ac", - "sha256:f87f746ee241d30d6ed93969de31e5ffd09a2961a051e60ae6bddde9ec3583aa" - ], - "markers": "python_full_version >= '3.7.0'", - "version": "==3.2.0" + "markers": "python_version >= '3.9'", + "version": "==25.3.0" }, "doc8": { "hashes": [ - "sha256:d97a93e8f5a2efc4713a0804657dedad83745cca4cd1d88de9186f77f9776004", - "sha256:e493aa3f36820197c49f407583521bb76a0fde4fffbcd0e092be946ff95931ac" + "sha256:1267ad32758971fbcf991442417a3935c7bc9e52550e73622e0e56ba55ea1d40", + "sha256:9862710027f793c25f9b1899150660e4bf1d4c9a6738742e71f32011e2e3f590" ], "index": "pypi", - "version": "==1.1.1" + "markers": "python_version >= '3.10'", + "version": "==2.0.0" }, "docutils": { "hashes": [ - "sha256:96f387a2c5562db4476f09f13bbab2192e764cac08ebbf3a34a95d9b1e4a59d6", - "sha256:f08a4e276c3a1583a86dce3e34aba3fe04d02bba2dd51ed16106244e8a923e3b" + "sha256:3a6b18732edf182daa3cd12775bbb338cf5691468f91eeeb109deff6ebfa986f", + "sha256:dafca5b9e384f0e419294eb4d2ff9fa826435bf15f15b7bd45723e8ad76811b2" ], - "markers": "python_version >= '3.7'", - "version": "==0.20.1" + "markers": "python_version >= '3.9'", + "version": "==0.21.2" }, "esbonio": { "hashes": [ - "sha256:cd5ed65666d7566a38b04cac01dd55b7d74147a016d1b2ac0a0f971a8cd510cc", - "sha256:d5d57c29a793de9b9b1894f9bffdd3bd25a79d430459e3e597424f52e8d02320" + "sha256:049aa76d5d637f0f79c86d690de4b74bc2be302c68425c4fe6c83b241ac0634c", + "sha256:9d1c3d3e074b3f7fe285147cd713fbda0290472864756772020aebf19f5935c0" ], "index": "pypi", - "version": "==0.16.1" - }, - "exceptiongroup": { - "hashes": [ - "sha256:12c3e887d6485d16943a309616de20ae5582633e0a2eda17f4e10fd61c1e8af5", - "sha256:e346e69d186172ca7cf029c8c1d16235aa0e04035e5750b4b95039e65204328f" - ], - "markers": "python_version < '3.11'", - "version": "==1.1.2" - }, - "idna": { - "hashes": [ - "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4", - "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2" - ], - "markers": "python_version >= '3.5'", - "version": "==3.4" - }, - "imagesize": { - "hashes": [ - "sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b", - "sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a" - ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", - "version": "==1.4.1" - }, - "jinja2": { - "hashes": [ - "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852", - "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61" - ], - "markers": "python_version >= '3.7'", - "version": "==3.1.2" + "markers": "python_version >= '3.10'", + "version": "==1.0.0" }, "lsprotocol": { "hashes": [ - "sha256:80aae7e39171b49025876a524937c10be2eb986f4be700ca22ee7d186b8488aa", - "sha256:c4f2f77712b50d065b17f9b50d2b88c480dc2ce4bbaa56eea8269dbf54bc9701" + "sha256:e879da2b9301e82cfc3e60d805630487ac2f7ab17492f4f5ba5aaba94fe56c29", + "sha256:f9d78f25221f2a60eaa4a96d3b4ffae011b107537facee61d3da3313880995c7" ], - "markers": "python_version >= '3.7'", - "version": "==2023.0.0a2" - }, - "markupsafe": { - "hashes": [ - "sha256:05fb21170423db021895e1ea1e1f3ab3adb85d1c2333cbc2310f2a26bc77272e", - "sha256:0a4e4a1aff6c7ac4cd55792abf96c915634c2b97e3cc1c7129578aa68ebd754e", - "sha256:10bbfe99883db80bdbaff2dcf681dfc6533a614f700da1287707e8a5d78a8431", - "sha256:134da1eca9ec0ae528110ccc9e48041e0828d79f24121a1a146161103c76e686", - "sha256:1577735524cdad32f9f694208aa75e422adba74f1baee7551620e43a3141f559", - "sha256:1b40069d487e7edb2676d3fbdb2b0829ffa2cd63a2ec26c4938b2d34391b4ecc", - "sha256:282c2cb35b5b673bbcadb33a585408104df04f14b2d9b01d4c345a3b92861c2c", - "sha256:2c1b19b3aaacc6e57b7e25710ff571c24d6c3613a45e905b1fde04d691b98ee0", - "sha256:2ef12179d3a291be237280175b542c07a36e7f60718296278d8593d21ca937d4", - "sha256:338ae27d6b8745585f87218a3f23f1512dbf52c26c28e322dbe54bcede54ccb9", - "sha256:3c0fae6c3be832a0a0473ac912810b2877c8cb9d76ca48de1ed31e1c68386575", - "sha256:3fd4abcb888d15a94f32b75d8fd18ee162ca0c064f35b11134be77050296d6ba", - "sha256:42de32b22b6b804f42c5d98be4f7e5e977ecdd9ee9b660fda1a3edf03b11792d", - "sha256:504b320cd4b7eff6f968eddf81127112db685e81f7e36e75f9f84f0df46041c3", - "sha256:525808b8019e36eb524b8c68acdd63a37e75714eac50e988180b169d64480a00", - "sha256:56d9f2ecac662ca1611d183feb03a3fa4406469dafe241673d521dd5ae92a155", - "sha256:5bbe06f8eeafd38e5d0a4894ffec89378b6c6a625ff57e3028921f8ff59318ac", - "sha256:65c1a9bcdadc6c28eecee2c119465aebff8f7a584dd719facdd9e825ec61ab52", - "sha256:68e78619a61ecf91e76aa3e6e8e33fc4894a2bebe93410754bd28fce0a8a4f9f", - "sha256:69c0f17e9f5a7afdf2cc9fb2d1ce6aabdb3bafb7f38017c0b77862bcec2bbad8", - "sha256:6b2b56950d93e41f33b4223ead100ea0fe11f8e6ee5f641eb753ce4b77a7042b", - "sha256:787003c0ddb00500e49a10f2844fac87aa6ce977b90b0feaaf9de23c22508b24", - "sha256:7ef3cb2ebbf91e330e3bb937efada0edd9003683db6b57bb108c4001f37a02ea", - "sha256:8023faf4e01efadfa183e863fefde0046de576c6f14659e8782065bcece22198", - "sha256:8758846a7e80910096950b67071243da3e5a20ed2546e6392603c096778d48e0", - "sha256:8afafd99945ead6e075b973fefa56379c5b5c53fd8937dad92c662da5d8fd5ee", - "sha256:8c41976a29d078bb235fea9b2ecd3da465df42a562910f9022f1a03107bd02be", - "sha256:8e254ae696c88d98da6555f5ace2279cf7cd5b3f52be2b5cf97feafe883b58d2", - "sha256:9402b03f1a1b4dc4c19845e5c749e3ab82d5078d16a2a4c2cd2df62d57bb0707", - "sha256:962f82a3086483f5e5f64dbad880d31038b698494799b097bc59c2edf392fce6", - "sha256:9dcdfd0eaf283af041973bff14a2e143b8bd64e069f4c383416ecd79a81aab58", - "sha256:aa7bd130efab1c280bed0f45501b7c8795f9fdbeb02e965371bbef3523627779", - "sha256:ab4a0df41e7c16a1392727727e7998a467472d0ad65f3ad5e6e765015df08636", - "sha256:ad9e82fb8f09ade1c3e1b996a6337afac2b8b9e365f926f5a61aacc71adc5b3c", - "sha256:af598ed32d6ae86f1b747b82783958b1a4ab8f617b06fe68795c7f026abbdcad", - "sha256:b076b6226fb84157e3f7c971a47ff3a679d837cf338547532ab866c57930dbee", - "sha256:b7ff0f54cb4ff66dd38bebd335a38e2c22c41a8ee45aa608efc890ac3e3931bc", - "sha256:bfce63a9e7834b12b87c64d6b155fdd9b3b96191b6bd334bf37db7ff1fe457f2", - "sha256:c011a4149cfbcf9f03994ec2edffcb8b1dc2d2aede7ca243746df97a5d41ce48", - "sha256:c9c804664ebe8f83a211cace637506669e7890fec1b4195b505c214e50dd4eb7", - "sha256:ca379055a47383d02a5400cb0d110cef0a776fc644cda797db0c5696cfd7e18e", - "sha256:cb0932dc158471523c9637e807d9bfb93e06a95cbf010f1a38b98623b929ef2b", - "sha256:cd0f502fe016460680cd20aaa5a76d241d6f35a1c3350c474bac1273803893fa", - "sha256:ceb01949af7121f9fc39f7d27f91be8546f3fb112c608bc4029aef0bab86a2a5", - "sha256:d080e0a5eb2529460b30190fcfcc4199bd7f827663f858a226a81bc27beaa97e", - "sha256:dd15ff04ffd7e05ffcb7fe79f1b98041b8ea30ae9234aed2a9168b5797c3effb", - "sha256:df0be2b576a7abbf737b1575f048c23fb1d769f267ec4358296f31c2479db8f9", - "sha256:e09031c87a1e51556fdcb46e5bd4f59dfb743061cf93c4d6831bf894f125eb57", - "sha256:e4dd52d80b8c83fdce44e12478ad2e85c64ea965e75d66dbeafb0a3e77308fcc", - "sha256:fec21693218efe39aa7f8599346e90c705afa52c5b31ae019b2e57e8f6542bb2" - ], - "markers": "python_version >= '3.7'", - "version": "==2.1.3" - }, - "packaging": { - "hashes": [ - "sha256:994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61", - "sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f" - ], - "markers": "python_version >= '3.7'", - "version": "==23.1" + "markers": "python_version >= '3.8'", + "version": "==2025.0.0" }, - "pbr": { + "platformdirs": { "hashes": [ - "sha256:567f09558bae2b3ab53cb3c1e2e33e726ff3338e7bae3db5dc954b3a44eef12b", - "sha256:aefc51675b0b533d56bb5fd1c8c6c0522fe31896679882e1c4c63d5e4a0fccb3" + "sha256:61d5cdcc6065745cdd94f0f878977f8de9437be93de97c1c12f853c9c0cdcbda", + "sha256:d03afa3963c806a9bed9d5125c8f4cb2fdaf74a55ab60e5d59b3fde758104d31" ], - "markers": "python_version >= '2.6'", - "version": "==5.11.1" + "markers": "python_version >= '3.10'", + "version": "==4.5.1" }, "pygls": { "hashes": [ - "sha256:6d278d29fa6559b0f7a448263c85cb64ec6e9369548b02f1a7944060848b21f9", - "sha256:888ed63d1f650b4fc64d603d73d37545386ec533c0caac921aed80f80ea946a4" + "sha256:99accd03de1ca76fe1e7e317f0968ebccf7b9955afed6e2e3e188606a20b4f07", + "sha256:b4e54bba806f76781017ded8fd07463b98670f959042c44170cd362088b200cc" ], - "markers": "python_version >= '3.7' and python_version < '4'", - "version": "==1.0.2" + "markers": "python_version >= '3.9'", + "version": "==2.0.0" }, "pygments": { "hashes": [ - "sha256:8ace4d3c1dd481894b2005f560ead0f9f19ee64fe983366be1a21e171d12775c", - "sha256:db2db3deb4b4179f399a09054b023b6a586b76499d36965813c71aa8ed7b5fd1" - ], - "markers": "python_version >= '3.7'", - "version": "==2.15.1" - }, - "pyspellchecker": { - "hashes": [ - "sha256:b5ef23437702b8d03626f814b9646779b572d378b325ad252d8a8e616b3d76db", - "sha256:bc51ffb2c18ba26eaa1340756ebf96d0d886ed6a31d6f8e7a0094ad49d24550a" - ], - "markers": "python_version >= '3.6'", - "version": "==0.7.2" - }, - "requests": { - "hashes": [ - "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f", - "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1" - ], - "markers": "python_version >= '3.7'", - "version": "==2.31.0" - }, - "restructuredtext-lint": { - "hashes": [ - "sha256:1b235c0c922341ab6c530390892eb9e92f90b9b75046063e047cacfb0f050c45" - ], - "version": "==1.4.0" - }, - "snowballstemmer": { - "hashes": [ - "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1", - "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a" - ], - "version": "==2.2.0" - }, - "sphinx": { - "hashes": [ - "sha256:8f336d0221c3beb23006b3164ed1d46db9cebcce9cb41cdb9c5ecd4bcc509be0", - "sha256:9bdfb5a2b28351d4fdf40a63cd006dbad727f793b243e669fc950d7116c634af" - ], - "index": "pypi", - "version": "==7.1.0" - }, - "sphinxcontrib-applehelp": { - "hashes": [ - "sha256:29d341f67fb0f6f586b23ad80e072c8e6ad0b48417db2bde114a4c9746feb228", - "sha256:828f867945bbe39817c210a1abfd1bc4895c8b73fcaade56d45357a348a07d7e" + "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887", + "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b" ], "markers": "python_version >= '3.8'", - "version": "==1.0.4" + "version": "==2.19.2" }, - "sphinxcontrib-devhelp": { - "hashes": [ - "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e", - "sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4" - ], - "markers": "python_version >= '3.5'", - "version": "==1.0.2" - }, - "sphinxcontrib-htmlhelp": { - "hashes": [ - "sha256:0cbdd302815330058422b98a113195c9249825d681e18f11e8b1f78a2f11efff", - "sha256:c38cb46dccf316c79de6e5515e1770414b797162b23cd3d06e67020e1d2a6903" - ], - "markers": "python_version >= '3.8'", - "version": "==2.0.1" - }, - "sphinxcontrib-jsmath": { - "hashes": [ - "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178", - "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8" - ], - "markers": "python_version >= '3.5'", - "version": "==1.0.1" - }, - "sphinxcontrib-qthelp": { - "hashes": [ - "sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72", - "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6" - ], - "markers": "python_version >= '3.5'", - "version": "==1.0.3" - }, - "sphinxcontrib-serializinghtml": { + "restructuredtext-lint": { "hashes": [ - "sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd", - "sha256:aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952" + "sha256:374c0d3e7e0867b2335146a145343ac619400623716b211b9a010c94426bbed7", + "sha256:dd25209b9e0b726929d8306339faf723734a3137db382bcf27294fa18a6bc52b" ], - "markers": "python_version >= '3.5'", - "version": "==1.1.5" + "version": "==2.0.2" }, "stevedore": { "hashes": [ - "sha256:8cc040628f3cea5d7128f2e76cf486b2251a4e543c7b938f58d9a377f6694a2d", - "sha256:a54534acf9b89bc7ed264807013b505bf07f74dbe4bcfa37d32bd063870b087c" - ], - "markers": "python_version >= '3.8'", - "version": "==5.1.0" - }, - "tomli": { - "hashes": [ - "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc", - "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f" + "sha256:4a36dccefd7aeea0c70135526cecb7766c4c84c473b1af68db23d541b6dc1820", + "sha256:f22d15c6ead40c5bbfa9ca54aa7e7b4a07d59b36ae03ed12ced1a54cf0b51945" ], - "markers": "python_version < '3.11'", - "version": "==2.0.1" - }, - "typeguard": { - "hashes": [ - "sha256:bbe993854385284ab42fd5bd3bee6f6556577ce8b50696d6cb956d704f286c8e", - "sha256:fee5297fdb28f8e9efcb8142b5ee219e02375509cd77ea9d270b5af826358d5a" - ], - "markers": "python_full_version >= '3.7.4'", - "version": "==3.0.2" + "markers": "python_version >= '3.10'", + "version": "==5.6.0" }, "typing-extensions": { "hashes": [ - "sha256:440d5dd3af93b060174bf433bccd69b0babc3b15b1a8dca43789fd7f61514b36", - "sha256:b75ddc264f0ba5615db7ba217daeb99701ad295353c45f9e95963337ceeeffb2" - ], - "markers": "python_version < '3.11'", - "version": "==4.7.1" - }, - "urllib3": { - "hashes": [ - "sha256:8d22f86aae8ef5e410d4f539fde9ce6b2113a001bb4d189e0aed70642d602b11", - "sha256:de7df1803967d2c2a98e4b11bb7d6bd9210474c46e8a0401514e3a42a75ebde4" - ], - "markers": "python_version >= '3.7'", - "version": "==2.0.4" + "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", + "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548" + ], + "markers": "python_version >= '3.9'", + "version": "==4.15.0" + }, + "websockets": { + "hashes": [ + "sha256:0701bc3cfcb9164d04a14b149fd74be7347a530ad3bbf15ab2c678a2cd3dd9a2", + "sha256:0a34631031a8f05657e8e90903e656959234f3a04552259458aac0b0f9ae6fd9", + "sha256:0af68c55afbd5f07986df82831c7bff04846928ea8d1fd7f30052638788bc9b5", + "sha256:0c9e74d766f2818bb95f84c25be4dea09841ac0f734d1966f415e4edfc4ef1c3", + "sha256:0f3c1e2ab208db911594ae5b4f79addeb3501604a165019dd221c0bdcabe4db8", + "sha256:0fdfe3e2a29e4db3659dbd5bbf04560cea53dd9610273917799f1cde46aa725e", + "sha256:1009ee0c7739c08a0cd59de430d6de452a55e42d6b522de7aa15e6f67db0b8e1", + "sha256:1234d4ef35db82f5446dca8e35a7da7964d02c127b095e172e54397fb6a6c256", + "sha256:16b6c1b3e57799b9d38427dda63edcbe4926352c47cf88588c0be4ace18dac85", + "sha256:2034693ad3097d5355bfdacfffcbd3ef5694f9718ab7f29c29689a9eae841880", + "sha256:21c1fa28a6a7e3cbdc171c694398b6df4744613ce9b36b1a498e816787e28123", + "sha256:229cf1d3ca6c1804400b0a9790dc66528e08a6a1feec0d5040e8b9eb14422375", + "sha256:27ccee0071a0e75d22cb35849b1db43f2ecd3e161041ac1ee9d2352ddf72f065", + "sha256:363c6f671b761efcb30608d24925a382497c12c506b51661883c3e22337265ed", + "sha256:39c1fec2c11dc8d89bba6b2bf1556af381611a173ac2b511cf7231622058af41", + "sha256:3b1ac0d3e594bf121308112697cf4b32be538fb1444468fb0a6ae4feebc83411", + "sha256:3be571a8b5afed347da347bfcf27ba12b069d9d7f42cb8c7028b5e98bbb12597", + "sha256:3c714d2fc58b5ca3e285461a4cc0c9a66bd0e24c5da9911e30158286c9b5be7f", + "sha256:3d00075aa65772e7ce9e990cab3ff1de702aa09be3940d1dc88d5abf1ab8a09c", + "sha256:3e90baa811a5d73f3ca0bcbf32064d663ed81318ab225ee4f427ad4e26e5aff3", + "sha256:47819cea040f31d670cc8d324bb6435c6f133b8c7a19ec3d61634e62f8d8f9eb", + "sha256:47b099e1f4fbc95b701b6e85768e1fcdaf1630f3cbe4765fa216596f12310e2e", + "sha256:4a9fac8e469d04ce6c25bb2610dc535235bd4aa14996b4e6dbebf5e007eba5ee", + "sha256:4b826973a4a2ae47ba357e4e82fa44a463b8f168e1ca775ac64521442b19e87f", + "sha256:4c2529b320eb9e35af0fa3016c187dffb84a3ecc572bcee7c3ce302bfeba52bf", + "sha256:54479983bd5fb469c38f2f5c7e3a24f9a4e70594cd68cd1fa6b9340dadaff7cf", + "sha256:558d023b3df0bffe50a04e710bc87742de35060580a293c2a984299ed83bc4e4", + "sha256:5756779642579d902eed757b21b0164cd6fe338506a8083eb58af5c372e39d9a", + "sha256:592f1a9fe869c778694f0aa806ba0374e97648ab57936f092fd9d87f8bc03665", + "sha256:595b6c3969023ecf9041b2936ac3827e4623bfa3ccf007575f04c5a6aa318c22", + "sha256:5a939de6b7b4e18ca683218320fc67ea886038265fd1ed30173f5ce3f8e85675", + "sha256:5d54b09eba2bada6011aea5375542a157637b91029687eb4fdb2dab11059c1b4", + "sha256:5df592cd503496351d6dc14f7cdad49f268d8e618f80dce0cd5a36b93c3fc08d", + "sha256:5f4c04ead5aed67c8a1a20491d54cdfba5884507a48dd798ecaf13c74c4489f5", + "sha256:64dee438fed052b52e4f98f76c5790513235efaa1ef7f3f2192c392cd7c91b65", + "sha256:66dd88c918e3287efc22409d426c8f729688d89a0c587c88971a0faa2c2f3792", + "sha256:678999709e68425ae2593acf2e3ebcbcf2e69885a5ee78f9eb80e6e371f1bf57", + "sha256:67f2b6de947f8c757db2db9c71527933ad0019737ec374a8a6be9a956786aaf9", + "sha256:693f0192126df6c2327cce3baa7c06f2a117575e32ab2308f7f8216c29d9e2e3", + "sha256:746ee8dba912cd6fc889a8147168991d50ed70447bf18bcda7039f7d2e3d9151", + "sha256:756c56e867a90fb00177d530dca4b097dd753cde348448a1012ed6c5131f8b7d", + "sha256:76d1f20b1c7a2fa82367e04982e708723ba0e7b8d43aa643d3dcd404d74f1475", + "sha256:7f493881579c90fc262d9cdbaa05a6b54b3811c2f300766748db79f098db9940", + "sha256:823c248b690b2fd9303ba00c4f66cd5e2d8c3ba4aa968b2779be9532a4dad431", + "sha256:82544de02076bafba038ce055ee6412d68da13ab47f0c60cab827346de828dee", + "sha256:8dd8327c795b3e3f219760fa603dcae1dcc148172290a8ab15158cf85a953413", + "sha256:8fdc51055e6ff4adeb88d58a11042ec9a5eae317a0a53d12c062c8a8865909e8", + "sha256:a625e06551975f4b7ea7102bc43895b90742746797e2e14b70ed61c43a90f09b", + "sha256:abdc0c6c8c648b4805c5eacd131910d2a7f6455dfd3becab248ef108e89ab16a", + "sha256:ac017dd64572e5c3bd01939121e4d16cf30e5d7e110a119399cf3133b63ad054", + "sha256:ac1e5c9054fe23226fb11e05a6e630837f074174c4c2f0fe442996112a6de4fb", + "sha256:ac60e3b188ec7574cb761b08d50fcedf9d77f1530352db4eef1707fe9dee7205", + "sha256:b359ed09954d7c18bbc1680f380c7301f92c60bf924171629c5db97febb12f04", + "sha256:b7643a03db5c95c799b89b31c036d5f27eeb4d259c798e878d6937d71832b1e4", + "sha256:ba9e56e8ceeeedb2e080147ba85ffcd5cd0711b89576b83784d8605a7df455fa", + "sha256:c338ffa0520bdb12fbc527265235639fb76e7bc7faafbb93f6ba80d9c06578a9", + "sha256:cad21560da69f4ce7658ca2cb83138fb4cf695a2ba3e475e0559e05991aa8122", + "sha256:d08eb4c2b7d6c41da6ca0600c077e93f5adcfd979cd777d747e9ee624556da4b", + "sha256:d50fd1ee42388dcfb2b3676132c78116490976f1300da28eb629272d5d93e905", + "sha256:d591f8de75824cbb7acad4e05d2d710484f15f29d4a915092675ad3456f11770", + "sha256:d5f6b181bb38171a8ad1d6aa58a67a6aa9d4b38d0f8c5f496b9e42561dfc62fe", + "sha256:d63efaa0cd96cf0c5fe4d581521d9fa87744540d4bc999ae6e08595a1014b45b", + "sha256:d99e5546bf73dbad5bf3547174cd6cb8ba7273062a23808ffea025ecb1cf8562", + "sha256:e09473f095a819042ecb2ab9465aee615bd9c2028e4ef7d933600a8401c79561", + "sha256:e8b56bdcdb4505c8078cb6c7157d9811a85790f2f2b3632c7d1462ab5783d215", + "sha256:ee443ef070bb3b6ed74514f5efaa37a252af57c90eb33b956d35c8e9c10a1931", + "sha256:f29d80eb9a9263b8d109135351caf568cc3f80b9928bccde535c235de55c22d9", + "sha256:f7a866fbc1e97b5c617ee4116daaa09b722101d4a3c170c787450ba409f9736f", + "sha256:fcd5cf9e305d7b8338754470cf69cf81f420459dbae8a3b40cee57417f4614a7" + ], + "markers": "python_version >= '3.9'", + "version": "==15.0.1" } } } diff --git a/include/vefs/disappointment/errc.hpp b/include/vefs/disappointment/errc.hpp index b5d6c6c..695a2b9 100644 --- a/include/vefs/disappointment/errc.hpp +++ b/include/vefs/disappointment/errc.hpp @@ -1,9 +1,11 @@ #pragma once +#include #include -#include -#include +#include + +#include #if defined(DPLX_COMP_GNUC_AVAILABLE) #pragma GCC diagnostic push @@ -15,10 +17,10 @@ namespace vefs namespace system_error = SYSTEM_ERROR2_NAMESPACE; -enum class archive_errc : int +enum class archive_errc : error_code { success = 0, - invalid_prefix = 1, + invalid_prefix, oversized_static_header, no_archive_header, identical_header_version, @@ -37,213 +39,44 @@ enum class archive_errc : int no_more_data, }; -class archive_domain_type; -using archive_code = system_error::status_code; +} // namespace vefs -class archive_domain_type : public system_error::status_code_domain +template <> +struct dplx::cncr::status_enum_definition + : status_enum_definition_defaults { - using base = system_error::status_code_domain; - template - friend class system_error::status_code; - -public: - static constexpr std::string_view uuid - = "9F10BF2E-4F20-459E-9976-4D975CBB3349"; - - constexpr ~archive_domain_type() noexcept = default; - constexpr archive_domain_type() noexcept - : base(uuid.data(), base::_uuid_size{}) - { - } - constexpr archive_domain_type(archive_domain_type const &) noexcept - = default; - constexpr auto operator=(archive_domain_type const &) noexcept - -> archive_domain_type & = default; - - using value_type = archive_errc; - using base::string_ref; - - constexpr virtual auto name() const noexcept -> string_ref override - { - return string_ref("vefs-domain"); - } - constexpr virtual auto payload_info() const noexcept - -> payload_info_t override - { - return {sizeof(value_type), - sizeof(value_type) + sizeof(archive_domain_type *), - std::max(alignof(value_type), alignof(archive_domain_type *))}; - } - - static constexpr auto get() noexcept -> archive_domain_type const &; - -protected: - constexpr virtual auto - _do_failure(system_error::status_code const &code) const noexcept - -> bool override - { - return static_cast(code).value() - != archive_errc::success; - } - - constexpr auto map_to_generic(value_type const value) const noexcept - -> system_error::errc - { - using enum archive_errc; - using sys_errc = system_error::errc; - switch (value) - { - case success: - return sys_errc::success; - - case invalid_prefix: - case oversized_static_header: - case no_archive_header: - case identical_header_version: - case tag_mismatch: - case sector_reference_out_of_range: - case corrupt_index_entry: - case vfilesystem_invalid_size: - return sys_errc::bad_message; - - case no_such_vfile: - return sys_errc::no_such_file_or_directory; - - case wrong_user_prk: - return sys_errc::invalid_argument; - - case archive_file_already_existed: - return sys_errc::file_exists; - - case archive_file_did_not_exist: - return sys_errc::no_such_file_or_directory; - - default: - return sys_errc::unknown; - } - } - - constexpr auto map_to_message(value_type const value) const noexcept - -> std::string_view - { - using enum archive_errc; - using namespace std::string_view_literals; - - switch (value) - { - case invalid_prefix: - return "the magic number at the beginning of the archive didn't match"sv; - - case oversized_static_header: - return "the static archive header would be greater than the master sector"sv; - - case no_archive_header: - return "no valid archive header could be read"sv; - - case identical_header_version: - return "both archive headers were valid and contained the same version switch"sv; - - case tag_mismatch: - return "decryption failed because the message tag didn't match"sv; - - case sector_reference_out_of_range: - return "a sector reference pointed to a sector which currently isn't allocated"sv; - - case corrupt_index_entry: - return "an entry from the archive index is corrupted and could not be read"sv; - - case no_such_vfile: - return "no file has been found under the given name"sv; - - case wrong_user_prk: - return "the given archive key is not valid for this archive or the archive head has been corrupted"sv; - - case vfilesystem_invalid_size: - return "the vfilesystem storage extent is not a multiple of the sector_payload_size"sv; - - case archive_file_already_existed: - return "the given file already contained data which would be overwritten, but creation::only_if_not_exist was specified"sv; - - case archive_file_did_not_exist: - return "the given file contained no data, but creation::open_existing"sv; - - case bad: - return "an API precondition has been violated"sv; - - case resource_exhausted: - return "the archive has run out of free sectors"sv; - - case still_in_use: - return "the archive is still in use by other handles"sv; - - case not_loaded: - return "the sector has not been loaded"sv; - - case no_more_data: - return "there is no more data to read"sv; - - default: - return "unknown vefs archive error code"sv; - } - } - - constexpr virtual auto - _do_equivalent(system_error::status_code const &lhs, - system_error::status_code const &rhs) const noexcept - -> bool override - { - auto const &alhs = static_cast(lhs); - if (rhs.domain() == *this) - { - return alhs.value() - == static_cast(rhs).value(); - } - else if (rhs.domain() == system_error::generic_code_domain) - { - system_error::errc sysErrc - = static_cast(rhs) - .value(); - - return system_error::errc::unknown != sysErrc - && map_to_generic(alhs.value()) == sysErrc; - } - return false; - } - constexpr virtual auto - _generic_code(system_error::status_code const &code) const noexcept - -> system_error::generic_code override - { - return map_to_generic(static_cast(code).value()); - } - - constexpr virtual auto - _do_message(system_error::status_code const &code) const noexcept - -> string_ref override - { - auto const archiveCode = static_cast(code); - auto const message = map_to_message(archiveCode.value()); - return string_ref(message.data(), message.size()); - } - - SYSTEM_ERROR2_NORETURN virtual void _do_throw_exception( - system_error::status_code const &code) const override - { - throw system_error::status_error( - static_cast(code).clone()); - } + static constexpr char domain_id[] + = "{9F10BF2E-4F20-459E-9976-4D975CBB3349}"; + static constexpr char domain_name[] = "vefs-domain"; + + static constexpr value_descriptor values[] = { + // clang-format off + { code::success, generic_errc::success, "the operation completed successfully" }, + { code::invalid_prefix, generic_errc::bad_message, "the magic number at the beginning of the archive didn't match" }, + { code::oversized_static_header, generic_errc::bad_message, "the static archive header would be greater than the master sector" }, + { code::no_archive_header, generic_errc::bad_message, "no valid archive header could be read" }, + { code::identical_header_version, generic_errc::bad_message, "both archive headers were valid and contained the same version switch" }, + { code::tag_mismatch, generic_errc::bad_message, "decryption failed because the message tag didn't match" }, + {code::sector_reference_out_of_range, generic_errc::bad_message, "a sector reference pointed to a sector which currently isn't allocated" }, + { code::corrupt_index_entry, generic_errc::bad_message, "an entry from the archive index is corrupted and could not be read" }, + { code::no_such_vfile, generic_errc::no_such_file_or_directory, "no file has been found under the given name" }, + { code::wrong_user_prk, generic_errc::invalid_argument, "the given archive key is not valid for this archive or the archive head has been corrupted" }, + { code::vfilesystem_invalid_size, generic_errc::bad_message, "the vfilesystem storage extent is not a multiple of the sector_payload_size" }, + { code::archive_file_already_existed, generic_errc::file_exists, "the given file already contained data which would be overwritten, but creation::only_if_not_exist was specified" }, + { code::archive_file_did_not_exist, generic_errc::no_such_file_or_directory, "the given file contained no data, but creation::open_existing" }, + { code::bad, generic_errc::invalid_argument, "an API precondition has been violated" }, + { code::resource_exhausted, generic_errc::unknown, "the archive has run out of free sectors" }, + { code::still_in_use, generic_errc::unknown, "the archive is still in use by other handles" }, + { code::not_loaded, generic_errc::unknown, "the sector has not been loaded" }, + { code::no_more_data, generic_errc::unknown, "there is no more data to read" }, + // clang-format on + }; }; -inline constexpr archive_domain_type archive_domain{}; -constexpr auto archive_domain_type::get() noexcept - -> archive_domain_type const & +namespace vefs { - return archive_domain; -} -constexpr auto make_status_code(archive_errc c) noexcept -> archive_code -{ - return archive_code(system_error::in_place, c); -} +using archive_code = dplx::cncr::data_defined_status_code; } // namespace vefs diff --git a/src/vefs/cache/cache_mt.hpp b/src/vefs/cache/cache_mt.hpp index 3b44e88..49ade66 100644 --- a/src/vefs/cache/cache_mt.hpp +++ b/src/vefs/cache/cache_mt.hpp @@ -14,7 +14,7 @@ #pragma warning(push, 3) #pragma warning(disable : 4702) // unreachable code #endif -#include +#include #if defined(DPLX_COMP_MSVC_AVAILABLE) #pragma warning(pop) #endif diff --git a/src/vefs/platform/thread_pool_gen.hpp b/src/vefs/platform/thread_pool_gen.hpp index 947f54e..712cd1c 100644 --- a/src/vefs/platform/thread_pool_gen.hpp +++ b/src/vefs/platform/thread_pool_gen.hpp @@ -12,7 +12,7 @@ #pragma warning(push, 3) #pragma warning(disable : 4702) // unreachable code #endif -#include +#include #if defined(DPLX_COMP_MSVC_AVAILABLE) #pragma warning(pop) #endif diff --git a/tests/test_utils/test-utils.hpp b/tests/test_utils/test-utils.hpp index 3cddbe2..58267d6 100644 --- a/tests/test_utils/test-utils.hpp +++ b/tests/test_utils/test-utils.hpp @@ -52,7 +52,7 @@ inline std::ostream &operator<<(std::ostream &s, error_domain const &domain) inline auto boost_test_print_type(std::ostream &s, archive_errc c) -> std::ostream & { - return operator<<(s, make_status_code(c)); + return operator<<(s, vefs::archive_code(c)); } template diff --git a/tools/ports/.gitkeep b/tools/ports/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/tools/ports/concrete/portfile.cmake b/tools/ports/concrete/portfile.cmake new file mode 100644 index 0000000..63d2d86 --- /dev/null +++ b/tools/ports/concrete/portfile.cmake @@ -0,0 +1,27 @@ + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO "deeplex/concrete" + REF "757c01e19f07940d0ab3b7a27a3c041136cebfd9" + SHA512 3790537ff5fc6751a0af1d35ee76f04420e963dafaad706567e919eabd52e553be7a959414aa4f53409a770114f20d1307b3267d36b79512161150760dc04ea2 +) + +# Because concrete is a header-only library, the debug build is not necessary +set(VCPKG_BUILD_TYPE release) + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + -DBUILD_TESTING=OFF + -DWARNINGS_AS_ERRORS=OFF +) + +vcpkg_cmake_install() + +vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT}) +file(REMOVE_RECURSE + "${CURRENT_PACKAGES_DIR}/lib" +) + +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") +file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") diff --git a/tools/ports/concrete/usage b/tools/ports/concrete/usage new file mode 100644 index 0000000..df1bd42 --- /dev/null +++ b/tools/ports/concrete/usage @@ -0,0 +1,4 @@ +concrete provides CMake targets: + + find_package(concrete CONFIG REQUIRED) + target_link_libraries(main PRIVATE Deeplex::concrete) diff --git a/tools/ports/concrete/vcpkg.json b/tools/ports/concrete/vcpkg.json new file mode 100644 index 0000000..2ab0a5c --- /dev/null +++ b/tools/ports/concrete/vcpkg.json @@ -0,0 +1,18 @@ +{ + "name": "concrete", + "version-semver": "0.0.0-beta.2", + "homepage": "https://docs.deeplex.net/concrete", + "license": "BSL-1.0", + "dependencies": [ + "outcome", + "status-code", + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ] +} diff --git a/tools/ports/fmt/portfile.cmake b/tools/ports/fmt/portfile.cmake deleted file mode 100644 index 81fd4ff..0000000 --- a/tools/ports/fmt/portfile.cmake +++ /dev/null @@ -1,28 +0,0 @@ -vcpkg_from_github( - OUT_SOURCE_PATH SOURCE_PATH - REPO fmtlib/fmt - REF "${VERSION}" - SHA512 46974efd36e613477351aa357c451cee434da797c2a505f9f86d73e394dcb35dc2dc0cda66abb98c023e8f24deac9d8e3ee6f9f6c0971cc4c00e37c34aa7f15f - HEAD_REF master -) - -vcpkg_cmake_configure( - SOURCE_PATH "${SOURCE_PATH}" - OPTIONS - -DFMT_CMAKE_DIR=share/fmt - -DFMT_TEST=OFF - -DFMT_DOC=OFF -) - -vcpkg_cmake_install() -vcpkg_cmake_config_fixup() -vcpkg_fixup_pkgconfig() -vcpkg_copy_pdbs() - -file(REMOVE_RECURSE - "${CURRENT_PACKAGES_DIR}/debug/include" - "${CURRENT_PACKAGES_DIR}/debug/share" -) - -file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") -vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") diff --git a/tools/ports/fmt/usage b/tools/ports/fmt/usage deleted file mode 100644 index e5a9d70..0000000 --- a/tools/ports/fmt/usage +++ /dev/null @@ -1,8 +0,0 @@ -The package fmt provides CMake targets: - - find_package(fmt CONFIG REQUIRED) - target_link_libraries(main PRIVATE fmt::fmt) - - # Or use the header-only version - find_package(fmt CONFIG REQUIRED) - target_link_libraries(main PRIVATE fmt::fmt-header-only) diff --git a/tools/ports/fmt/vcpkg.json b/tools/ports/fmt/vcpkg.json deleted file mode 100644 index 0ed7a4f..0000000 --- a/tools/ports/fmt/vcpkg.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "fmt", - "version": "11.2.0", - "description": "{fmt} is an open-source formatting library providing a fast and safe alternative to C stdio and C++ iostreams.", - "homepage": "https://github.com/fmtlib/fmt", - "license": "MIT", - "dependencies": [ - { - "name": "vcpkg-cmake", - "host": true - }, - { - "name": "vcpkg-cmake-config", - "host": true - } - ] -} \ No newline at end of file diff --git a/tools/ports/llfio/portfile.cmake b/tools/ports/llfio/portfile.cmake new file mode 100644 index 0000000..4638b1e --- /dev/null +++ b/tools/ports/llfio/portfile.cmake @@ -0,0 +1,91 @@ +if ("polyfill-cxx20" IN_LIST FEATURES) + message(WARNING [=[ + LLFIO depends on Outcome which depends on QuickCppLib which uses the vcpkg versions of gsl-lite and byte-lite, rather than the versions tested by QuickCppLib's, Outcome's and LLFIO's CI. It is not guaranteed to work with other versions, with failures experienced in the past up-to-and-including runtime crashes. See the warning message from QuickCppLib for how you can pin the versions of those dependencies in your manifest file to those with which QuickCppLib was tested. Do not report issues to upstream without first pinning the versions as QuickCppLib was tested against. + ]=]) +endif() + + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO ned14/llfio + REF b3c9308f143e27161c40f6d52a8fd18e8f05761b + SHA512 eb1b629b00fc28da939b0766ce567896da098401d71bd65b895f34ccd805d5ac99c0e45cc1733e63ce985c22b6d2118e576fb49a8e3a6f02170b9fe378e801bd + HEAD_REF develop +) + +vcpkg_from_github( + OUT_SOURCE_PATH NTKEC_SOURCE_PATH + REPO ned14/ntkernel-error-category + REF 5e50ff9af36a029c8ead9e0a833aa78304e95f28 + SHA512 a3b8bfba8b22c79913ced23358c4a5ec56d2f2f8ca8da3ebd2e7cfaa783363d92d9de1b49766756c7b008114eee31c1509195232adcc364446eae724489be930 + HEAD_REF master +) + +vcpkg_check_features( + OUT_FEATURE_OPTIONS LLFIO_FEATURE_OPTIONS + FEATURES + status-code LLFIO_USE_EXPERIMENTAL_SG14_STATUS_CODE +) + +# LLFIO expects ntkernel-error-category to live inside its include directory +file(REMOVE_RECURSE "${SOURCE_PATH}/include/llfio/ntkernel-error-category") +file(RENAME "${NTKEC_SOURCE_PATH}" "${SOURCE_PATH}/include/llfio/ntkernel-error-category") + +set(extra_config) +# cmake does not correctly set CMAKE_SYSTEM_PROCESSOR when targeting ARM on Windows +if(VCPKG_TARGET_IS_WINDOWS AND (VCPKG_TARGET_ARCHITECTURE STREQUAL "arm" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")) + list(APPEND extra_config -DLLFIO_ASSUME_CROSS_COMPILING=ON) +endif() +# setting CMAKE_CXX_STANDARD here to prevent llfio from messing with compiler flags +# the cmake package config requires said C++ standard target transitively via quickcpplib +if ("cxx20" IN_LIST FEATURES) + list(APPEND extra_config -DCMAKE_CXX_STANDARD=20) +elseif("cxx17" IN_LIST FEATURES) + list(APPEND extra_config -DCMAKE_CXX_STANDARD=17) +endif() + +# quickcpplib parses CMAKE_MSVC_RUNTIME_LIBRARY and cannot support the default crt linkage generator expression from vcpkg +if(VCPKG_TARGET_IS_WINDOWS) + if(VCPKG_CRT_LINKAGE STREQUAL "dynamic") + list(APPEND extra_config -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded$$<$$:Debug>DLL) + else() + list(APPEND extra_config -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded$$<$$:Debug>) + endif() +endif() + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + -Dllfio_IS_DEPENDENCY=On + "-DCMAKE_PREFIX_PATH=${CURRENT_INSTALLED_DIR}" + ${LLFIO_FEATURE_OPTIONS} + -DLLFIO_FORCE_OPENSSL_OFF=ON + -DLLFIO_ENABLE_DEPENDENCY_SMOKE_TEST=ON # Leave this always on to test everything compiles + -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON + -DCXX_CONCEPTS_FLAGS= + -DCXX_COROUTINES_FLAGS= + -DCMAKE_POLICY_DEFAULT_CMP0091=NEW # MSVC detection fails without this + ${extra_config} +) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic") + vcpkg_cmake_build(TARGET install.dl) +elseif(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + vcpkg_cmake_build(TARGET install.sl) +endif() + +if("run-tests" IN_LIST FEATURES) + vcpkg_cmake_build(TARGET test) +endif() + +vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/llfio) + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share") + +if("status-code" IN_LIST FEATURES) + set(_USAGE_FEATURE "status-code") +else() + set(_USAGE_FEATURE "error-code") +endif() +file(INSTALL "${CURRENT_PORT_DIR}/usage-${_USAGE_FEATURE}-${VCPKG_LIBRARY_LINKAGE}" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME usage) +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/Licence.txt") diff --git a/tools/ports/llfio/usage-error-code-dynamic b/tools/ports/llfio/usage-error-code-dynamic new file mode 100644 index 0000000..84a911c --- /dev/null +++ b/tools/ports/llfio/usage-error-code-dynamic @@ -0,0 +1,10 @@ +The package llfio provides two CMake targets: + + find_package(llfio CONFIG REQUIRED) + +- If you want the header-only form of LLFIO: + find_package(Threads REQUIRED) + target_link_libraries(main PUBLIC llfio::hl) + +- If you want the shared library form of LLFIO with shared NT kernel error code category: + target_link_libraries(main PUBLIC llfio::dl llfio::ntkernel-error-category::dl) diff --git a/tools/ports/llfio/usage-error-code-static b/tools/ports/llfio/usage-error-code-static new file mode 100644 index 0000000..c215309 --- /dev/null +++ b/tools/ports/llfio/usage-error-code-static @@ -0,0 +1,10 @@ +The package llfio provides two CMake targets: + + find_package(llfio CONFIG REQUIRED) + +- If you want the header-only form of LLFIO: + find_package(Threads REQUIRED) + target_link_libraries(main PUBLIC llfio::hl) + +- If you want the static library form of LLFIO with static NT kernel error code category: + target_link_libraries(main PUBLIC llfio::sl llfio::ntkernel-error-category::sl) diff --git a/tools/ports/llfio/usage-status-code-dynamic b/tools/ports/llfio/usage-status-code-dynamic new file mode 100644 index 0000000..b9dc9f0 --- /dev/null +++ b/tools/ports/llfio/usage-status-code-dynamic @@ -0,0 +1,10 @@ +The package llfio provides two CMake targets: + + find_package(llfio CONFIG REQUIRED) + +- If you want the header-only form of LLFIO: + find_package(Threads REQUIRED) + target_link_libraries(main PUBLIC llfio::hl) + +- If you want the shared library form of LLFIO: + target_link_libraries(main PUBLIC llfio::dl) diff --git a/tools/ports/llfio/usage-status-code-static b/tools/ports/llfio/usage-status-code-static new file mode 100644 index 0000000..ac60666 --- /dev/null +++ b/tools/ports/llfio/usage-status-code-static @@ -0,0 +1,10 @@ +The package llfio provides two CMake targets: + + find_package(llfio CONFIG REQUIRED) + +- If you want the header-only form of LLFIO: + find_package(Threads REQUIRED) + target_link_libraries(main PUBLIC llfio::hl) + +- If you want the static library form of LLFIO: + target_link_libraries(main PUBLIC llfio::sl) diff --git a/tools/ports/llfio/vcpkg.json b/tools/ports/llfio/vcpkg.json new file mode 100644 index 0000000..d9320f7 --- /dev/null +++ b/tools/ports/llfio/vcpkg.json @@ -0,0 +1,76 @@ +{ + "name": "llfio", + "version-date": "2025-01-13", + "maintainers": [ + "Niall Douglas ", + "Henrik Gaßmann " + ], + "description": "P1031 low level file i/o and filesystem library for the C++ standard", + "homepage": "https://github.com/ned14/llfio", + "license": "Apache-2.0 OR BSL-1.0", + "supports": "!uwp", + "dependencies": [ + "outcome", + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ], + "features": { + "polyfill-cxx17": { + "description": "Polyfill C++17 entities", + "dependencies": [ + { + "name": "llfio", + "default-features": false, + "features": [ + "polyfill-cxx20" + ] + }, + { + "name": "ned14-internal-quickcpplib", + "default-features": false, + "features": [ + "polyfill-cxx17" + ] + }, + { + "name": "outcome", + "default-features": false, + "features": [ + "polyfill-cxx17" + ] + } + ] + }, + "polyfill-cxx20": { + "description": "Polyfill C++20 entities", + "dependencies": [ + { + "name": "ned14-internal-quickcpplib", + "default-features": false, + "features": [ + "polyfill-cxx20" + ] + }, + { + "name": "outcome", + "default-features": false, + "features": [ + "polyfill-cxx20" + ] + } + ] + }, + "run-tests": { + "description": "Build and run the dependency validation tests" + }, + "status-code": { + "description": "Have LLFIO use SG14 `status_code` (proposed `std::error`) instead of `std::error_code`." + } + } +} diff --git a/tools/ports/ned14-internal-quickcpplib/portfile.cmake b/tools/ports/ned14-internal-quickcpplib/portfile.cmake new file mode 100644 index 0000000..d71d3b8 --- /dev/null +++ b/tools/ports/ned14-internal-quickcpplib/portfile.cmake @@ -0,0 +1,80 @@ +# QuickCppLib is composed of other third party libraries: +# <= quickcpplib +# <= byte-lite +# <= gsl-lite +# <= Optional +# +# byte-lite and gsl-lite are in vcpkg, but may not be versions +# known to be compatible with QuickCppLib. It has occurred in the +# past that newer versions were severely broken with QuickCppLib. + +include("${CURRENT_PORT_DIR}/sha_manifest.cmake") + +vcpkg_check_features( + OUT_FEATURE_OPTIONS FEATURE_OPTIONS + FEATURES + INVERTED_FEATURES + polyfill-cxx17 QUICKCPPLIB_REQUIRE_CXX17 + polyfill-cxx20 QUICKCPPLIB_REQUIRE_CXX20 +) + +if (NOT QUICKCPPLIB_REQUIRE_CXX20) + message(WARNING [=[ + QuickCppLib and its downstream dependencies Outcome and LLFIO were tested against span-lite version 0.10.3 and byte-lite version 0.3.0. They are not guaranteed to work with newer versions, with failures experienced in the past up-to-and-including runtime crashes. You can pin the versions as verified to work in QuickCppLib's CI in your manifest file by adding: + "overrides": [ + { "name": "span-lite", "version": "0.10.3" }, + { "name": "byte-lite", "version": "0.3.0" } + ] + Do not report issues to upstream without first pinning these previous versions. + ]=]) +endif() + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO ned14/quickcpplib + REF ${QUICKCPPLIB_REF} + SHA512 ${QUICKCPPLIB_SHA512} + HEAD_REF master + PATCHES + quicklib-depheaders.patch +) + +vcpkg_from_github( + OUT_SOURCE_PATH OPT_SOURCE_PATH + REPO akrzemi1/Optional + REF ${OPTIONAL_REF} + SHA512 ${OPTIONAL_SHA512} + HEAD_REF master +) + +file(COPY "${OPT_SOURCE_PATH}/." DESTINATION "${SOURCE_PATH}/include/quickcpplib/optional") + +# Because quickcpplib's deployed files are header-only, the debug build it not necessary +set(VCPKG_BUILD_TYPE release) + +# Use QuickCppLib's own build process, skipping examples and tests. +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + -Dquickcpplib_IS_DEPENDENCY=ON + -DQUICKCPPLIB_USE_SYSTEM_BYTE_LITE=ON + -DQUICKCPPLIB_USE_SYSTEM_SPAN_LITE=ON + -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON + -DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=ON + "-DCMAKE_INSTALL_DATADIR=${CURRENT_PACKAGES_DIR}/share/ned14-internal-quickcpplib" + ${FEATURE_OPTIONS} + MAYBE_UNUSED_VARIABLES + CMAKE_DISABLE_FIND_PACKAGE_Doxygen +) + +vcpkg_cmake_install() + +vcpkg_cmake_config_fixup( + PACKAGE_NAME quickcpplib + CONFIG_PATH lib/cmake/quickcpplib +) + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") + +file(INSTALL "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/Licence.txt") diff --git a/tools/ports/ned14-internal-quickcpplib/quicklib-depheaders.patch b/tools/ports/ned14-internal-quickcpplib/quicklib-depheaders.patch new file mode 100644 index 0000000..430cd27 --- /dev/null +++ b/tools/ports/ned14-internal-quickcpplib/quicklib-depheaders.patch @@ -0,0 +1,25 @@ +diff --git a/cmake/headers.cmake b/cmake/headers.cmake +index 3924a2a..f1e32d9 100644 +--- a/cmake/headers.cmake ++++ b/cmake/headers.cmake +@@ -15,8 +15,6 @@ set(quickcpplib_HEADERS + "include/quickcpplib/boost/test/unit_test.hpp" + "include/quickcpplib/byte.hpp" + "include/quickcpplib/byte/include/nonstd/byte.hpp" +- "include/quickcpplib/byte/test/byte-main.t.hpp" +- "include/quickcpplib/byte/test/lest/lest_cpp03.hpp" + "include/quickcpplib/config.hpp" + "include/quickcpplib/console_colours.hpp" + "include/quickcpplib/cpp_feature.h" +@@ -40,11 +38,7 @@ set(quickcpplib_HEADERS + "include/quickcpplib/ringbuffer_log.hpp" + "include/quickcpplib/scope.hpp" + "include/quickcpplib/signal_guard.hpp" +- "include/quickcpplib/span-lite/example/nonstd/span.tweak.hpp" + "include/quickcpplib/span-lite/include/nonstd/span.hpp" +- "include/quickcpplib/span-lite/test/lest/lest_cpp03.hpp" +- "include/quickcpplib/span-lite/test/nonstd/span.tweak.hpp" +- "include/quickcpplib/span-lite/test/span-main.t.hpp" + "include/quickcpplib/span.hpp" + "include/quickcpplib/spinlock.hpp" + "include/quickcpplib/spinlock.natvis" diff --git a/tools/ports/ned14-internal-quickcpplib/sha_manifest.cmake b/tools/ports/ned14-internal-quickcpplib/sha_manifest.cmake new file mode 100644 index 0000000..00d99df --- /dev/null +++ b/tools/ports/ned14-internal-quickcpplib/sha_manifest.cmake @@ -0,0 +1,5 @@ +set(QUICKCPPLIB_REF 40b0964df509e90a4b527243a8fd4dbf6b704ff2) +set(QUICKCPPLIB_SHA512 ccec956a7d9a911678fe6ef3be05a41bbdc70ce88fd04724417af86fc7b5785eeeb5301a3276914e0f49a364c1747b5cbcb3bf58871f224660155c0debc20481) + +set(OPTIONAL_REF 2b43315458a99fc5de1da6e7bc0ddd364b26d643) +set(OPTIONAL_SHA512 1952386cd3c7b963861f9634055e1baa4181d398d6f1b068a8a3f411368432bdcd42e47aadfa856584ed9a7c724a1c83369243ccb653e650af5c9155b42a84f4) diff --git a/tools/ports/ned14-internal-quickcpplib/usage b/tools/ports/ned14-internal-quickcpplib/usage new file mode 100644 index 0000000..a278e48 --- /dev/null +++ b/tools/ports/ned14-internal-quickcpplib/usage @@ -0,0 +1,2 @@ +You should NOT DIRECTLY USE quickcpplib in your own libraries! +It is intended for internal use by ned14's vcpkg libraries only. diff --git a/tools/ports/ned14-internal-quickcpplib/vcpkg.json b/tools/ports/ned14-internal-quickcpplib/vcpkg.json new file mode 100644 index 0000000..07f22cd --- /dev/null +++ b/tools/ports/ned14-internal-quickcpplib/vcpkg.json @@ -0,0 +1,42 @@ +{ + "name": "ned14-internal-quickcpplib", + "version-date": "2025-12-16", + "maintainers": [ + "Niall Douglas ", + "Henrik Gaßmann " + ], + "description": "NOT FOR EXTERNAL CONSUMPTION, a set of internal scripts used by ned14's libraries.", + "homepage": "https://github.com/ned14/quickcpplib", + "license": "Apache-2.0 OR BSL-1.0", + "dependencies": [ + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ], + "features": { + "polyfill-cxx17": { + "description": "Polyfill std::byte with byte-lite", + "dependencies": [ + "byte-lite", + { + "name": "ned14-internal-quickcpplib", + "default-features": false, + "features": [ + "polyfill-cxx20" + ] + } + ] + }, + "polyfill-cxx20": { + "description": "Polyfill std::span with span-lite", + "dependencies": [ + "span-lite" + ] + } + } +} diff --git a/tools/ports/outcome/files-do-not-exist.patch b/tools/ports/outcome/files-do-not-exist.patch new file mode 100644 index 0000000..fa2564f --- /dev/null +++ b/tools/ports/outcome/files-do-not-exist.patch @@ -0,0 +1,52 @@ +diff --git a/cmake/headers.cmake b/cmake/headers.cmake +index 734e7d0..5d0f646 100644 +--- a/cmake/headers.cmake ++++ b/cmake/headers.cmake +@@ -25,47 +25,8 @@ set(outcome_HEADERS + "include/outcome/detail/version.hpp" + "include/outcome/experimental/coroutine_support.hpp" + "include/outcome/experimental/result.h" +- "include/outcome/experimental/status-code/include/status-code/boost_error_code.hpp" +- "include/outcome/experimental/status-code/include/status-code/com_code.hpp" +- "include/outcome/experimental/status-code/include/status-code/config.hpp" +- "include/outcome/experimental/status-code/include/status-code/detail/nt_code_to_generic_code.ipp" +- "include/outcome/experimental/status-code/include/status-code/detail/nt_code_to_win32_code.ipp" +- "include/outcome/experimental/status-code/include/status-code/detail/win32_code_to_generic_code.ipp" +- "include/outcome/experimental/status-code/include/status-code/error.hpp" +- "include/outcome/experimental/status-code/include/status-code/errored_status_code.hpp" +- "include/outcome/experimental/status-code/include/status-code/generic_code.hpp" +- "include/outcome/experimental/status-code/include/status-code/getaddrinfo_code.hpp" +- "include/outcome/experimental/status-code/include/status-code/http_status_code.hpp" +- "include/outcome/experimental/status-code/include/status-code/iostream_support.hpp" +- "include/outcome/experimental/status-code/include/status-code/nested_status_code.hpp" +- "include/outcome/experimental/status-code/include/status-code/nt_code.hpp" +- "include/outcome/experimental/status-code/include/status-code/posix_code.hpp" +- "include/outcome/experimental/status-code/include/status-code/quick_status_code_from_enum.hpp" +- "include/outcome/experimental/status-code/include/status-code/result.hpp" +- "include/outcome/experimental/status-code/include/status-code/status_code.hpp" +- "include/outcome/experimental/status-code/include/status-code/status_code_domain.hpp" +- "include/outcome/experimental/status-code/include/status-code/status_error.hpp" +- "include/outcome/experimental/status-code/include/status-code/std_error_code.hpp" +- "include/outcome/experimental/status-code/include/status-code/system_code.hpp" +- "include/outcome/experimental/status-code/include/status-code/system_code_from_exception.hpp" +- "include/outcome/experimental/status-code/include/status-code/system_error2.hpp" +- "include/outcome/experimental/status-code/include/status-code/win32_code.hpp" +- "include/outcome/experimental/status-code/single-header/system_error2-nowindows.hpp" +- "include/outcome/experimental/status-code/single-header/system_error2.hpp" + "include/outcome/experimental/status_outcome.hpp" + "include/outcome/experimental/status_result.hpp" +- "include/outcome/experimental/wg14_result/include/wg14_result/all.h" +- "include/outcome/experimental/wg14_result/include/wg14_result/all.hpp" +- "include/outcome/experimental/wg14_result/include/wg14_result/config.h" +- "include/outcome/experimental/wg14_result/include/wg14_result/result.h" +- "include/outcome/experimental/wg14_result/include/wg14_result/status_code.h" +- "include/outcome/experimental/wg14_result/include/wg14_result/status_code_domain.h" +- "include/outcome/experimental/wg14_result/include/wg14_result/status_code_generic.h" +- "include/outcome/experimental/wg14_result/include/wg14_result/status_code_posix.h" +- "include/outcome/experimental/wg14_result/include/wg14_result/status_code_system.h" +- "include/outcome/experimental/wg14_result/include/wg14_result/try.h" +- "include/outcome/experimental/wg14_result/test/test_common.h" +- "include/outcome/experimental/wg14_result/test/ticks_clock.h" + "include/outcome/iostream_support.hpp" + "include/outcome/iostream_support_result.hpp" + "include/outcome/outcome.hpp" diff --git a/tools/ports/outcome/fix-status-code-path.patch b/tools/ports/outcome/fix-status-code-path.patch new file mode 100644 index 0000000..755966d --- /dev/null +++ b/tools/ports/outcome/fix-status-code-path.patch @@ -0,0 +1,23 @@ +diff --git a/include/outcome/experimental/result.h b/include/outcome/experimental/result.h +index b912a55..1370e9e 100644 +--- a/include/outcome/experimental/result.h ++++ b/include/outcome/experimental/result.h +@@ -278,14 +278,14 @@ extern "C" + } + + #include "../config.hpp" +-#include "status-code/include/status-code/config.hpp" +-#include "status-code/include/status-code/system_code.hpp" ++#include ++#include + #include "status_result.hpp" + + +-#include "status-code/include/status-code/posix_code.hpp" ++#include + #ifdef _WIN32 +-#include "status-code/include/status-code/win32_code.hpp" ++#include + #endif + + #include diff --git a/tools/ports/outcome/portfile.cmake b/tools/ports/outcome/portfile.cmake new file mode 100644 index 0000000..552fbfc --- /dev/null +++ b/tools/ports/outcome/portfile.cmake @@ -0,0 +1,61 @@ +# Outcome is composed of other third party libraries: +# Outcome +# <= status-code +# <= quickcpplib +# <= byte-lite +# <= gsl-lite +# <= Optional +# +# byte-lite and gsl-lite are in vcpkg, but may not be versions +# known to be compatible with Outcome. It has occurred in the +# past that newer versions were severely broken with Outcome. +# +# One can fetch an 'all sources' tarball from +# https://github.com/ned14/outcome/releases which contains +# the exact copy of those third party libraries known to +# have passed Outcome's CI process. + +if ("polyfill-cxx20" IN_LIST FEATURES) + message(WARNING [=[ + Outcome depends on QuickCppLib which uses the vcpkg versions of gsl-lite and byte-lite, rather than the versions tested by QuickCppLib's and Outcome's CI. It is not guaranteed to work with other versions, with failures experienced in the past up-to-and-including runtime crashes. See the warning message from QuickCppLib for how you can pin the versions of those dependencies in your manifest file to those with which QuickCppLib was tested. Do not report issues to upstream without first pinning the versions as QuickCppLib was tested against. + ]=]) +endif() + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO ned14/outcome + REF e4f14947525fac8085c6df1dfd30cdbee6ccfb1c + SHA512 ffece86cf299087ad2fd1152ea6ff30d1c063247d7ce682ccbb4abeb116683749f58c54214cd9aec1733e2e34413da06203a5240253776f49c404633dae68165 + HEAD_REF develop + PATCHES + fix-status-code-path.patch + files-do-not-exist.patch +) + +# Because outcome's deployed files are header-only, the debug build is not necessary +set(VCPKG_BUILD_TYPE release) + +# Use Outcome's own build process, skipping examples and tests. +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + -Doutcome_IS_DEPENDENCY=ON + "-DCMAKE_PREFIX_PATH=${CURRENT_INSTALLED_DIR}" + -DOUTCOME_BUNDLE_EMBEDDED_STATUS_CODE=OFF + -DOUTCOME_ENABLE_DEPENDENCY_SMOKE_TEST=ON # Leave this always on to test everything compiles + -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON + -DCXX_CONCEPTS_FLAGS= +) + +if("run-tests" IN_LIST FEATURES) + vcpkg_cmake_build(TARGET test) +endif() + +vcpkg_cmake_install() + +vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/outcome) + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") + +file(INSTALL "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/Licence.txt") diff --git a/tools/ports/outcome/usage b/tools/ports/outcome/usage new file mode 100644 index 0000000..61b7b17 --- /dev/null +++ b/tools/ports/outcome/usage @@ -0,0 +1,4 @@ +The package outcome provides CMake targets: + + find_package(outcome CONFIG REQUIRED) + target_link_libraries(main PUBLIC outcome::hl) diff --git a/tools/ports/outcome/vcpkg.json b/tools/ports/outcome/vcpkg.json new file mode 100644 index 0000000..e990774 --- /dev/null +++ b/tools/ports/outcome/vcpkg.json @@ -0,0 +1,60 @@ +{ + "name": "outcome", + "version": "2.2.14", + "maintainers": [ + "Niall Douglas ", + "Henrik Gaßmann " + ], + "description": "Provides very lightweight outcome and result (non-Boost edition)", + "homepage": "https://github.com/ned14/outcome", + "license": "Apache-2.0 OR BSL-1.0", + "supports": "!uwp", + "dependencies": [ + "ned14-internal-quickcpplib", + "status-code", + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ], + "features": { + "polyfill-cxx17": { + "description": "Polyfill C++17 entities", + "dependencies": [ + { + "name": "ned14-internal-quickcpplib", + "default-features": false, + "features": [ + "polyfill-cxx17" + ] + }, + { + "name": "outcome", + "default-features": false, + "features": [ + "polyfill-cxx20" + ] + } + ] + }, + "polyfill-cxx20": { + "description": "Polyfill C++20 entities", + "dependencies": [ + { + "name": "ned14-internal-quickcpplib", + "default-features": false, + "features": [ + "polyfill-cxx20" + ] + } + ] + }, + "run-tests": { + "description": "Build and run the dependency validation tests" + } + } +} diff --git a/tools/ports/status-code/portfile.cmake b/tools/ports/status-code/portfile.cmake new file mode 100644 index 0000000..929ef79 --- /dev/null +++ b/tools/ports/status-code/portfile.cmake @@ -0,0 +1,30 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO ned14/status-code + REF b337c2278941f9c999b72dd74f4da1f7b726b173 + SHA512 c6460110ebaf1e186755a062baa3eb65d9284b9979b4a2a271a0bf0c2f416707ba1e5e5db84e638c8bad357fbd019edb9e0719c68d410645b069f0d03ebf2dce + HEAD_REF master + PATCHES +) + +# Because status-code's deployed files are header-only, the debug build is not necessary +set(VCPKG_BUILD_TYPE release) + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + -DBUILD_TESTING=OFF + -Dstatus-code_IS_DEPENDENCY=ON + -DCMAKE_DISABLE_FIND_PACKAGE_Boost=ON + MAYBE_UNUSED_VARIABLES + CMAKE_DISABLE_FIND_PACKAGE_Boost +) + +vcpkg_cmake_install() + +vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/status-code) + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") + +file(INSTALL "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/Licence.txt") diff --git a/tools/ports/status-code/usage b/tools/ports/status-code/usage new file mode 100644 index 0000000..8ede455 --- /dev/null +++ b/tools/ports/status-code/usage @@ -0,0 +1,4 @@ +The package status-code provides CMake targets: + + find_package(status-code CONFIG REQUIRED) + target_link_libraries(main PUBLIC status-code::hl) diff --git a/tools/ports/status-code/vcpkg.json b/tools/ports/status-code/vcpkg.json new file mode 100644 index 0000000..3b03f26 --- /dev/null +++ b/tools/ports/status-code/vcpkg.json @@ -0,0 +1,21 @@ +{ + "name": "status-code", + "version-date": "2025-05-21", + "maintainers": [ + "Niall Douglas ", + "Henrik Gaßmann " + ], + "description": "Proposed SG14 status_code for the C++ standard (https://wg21.link/P1028).", + "homepage": "https://github.com/ned14/status-code", + "license": "Apache-2.0 OR BSL-1.0", + "dependencies": [ + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ] +} diff --git a/tools/toolchains/_base.cmake b/tools/toolchains/_base.cmake new file mode 100644 index 0000000..d101532 --- /dev/null +++ b/tools/toolchains/_base.cmake @@ -0,0 +1,16 @@ +if(POLICY CMP0056) + cmake_policy(SET CMP0056 NEW) +endif() +if(POLICY CMP0066) + cmake_policy(SET CMP0066 NEW) +endif() +if(POLICY CMP0067) + cmake_policy(SET CMP0067 NEW) +endif() +if(POLICY CMP0137) + cmake_policy(SET CMP0137 NEW) +endif() + +set(CMAKE_C_STANDARD 17 CACHE STRING "C standard") +set(CMAKE_CXX_STANDARD 20 CACHE STRING "C++ standard") +set(CMAKE_CXX_SCAN_FOR_MODULES OFF CACHE BOOL "C++ module scanning") diff --git a/tools/toolchains/_clang.cmake b/tools/toolchains/_clang.cmake new file mode 100644 index 0000000..19c3d75 --- /dev/null +++ b/tools/toolchains/_clang.cmake @@ -0,0 +1 @@ +string(APPEND CMAKE_CXX_FLAGS_INIT " -fsized-deallocation") diff --git a/tools/toolchains/_vcpkg.cmake b/tools/toolchains/_vcpkg.cmake new file mode 100644 index 0000000..ef043a3 --- /dev/null +++ b/tools/toolchains/_vcpkg.cmake @@ -0,0 +1,5 @@ +if (DEFINED VCPKG_ROOT) + include("${VCPKG_ROOT}/scripts/toolchains/${_lxVCPKG_TARGET}.cmake") +elseif (DEFINED ENV{VCPKG_ROOT}) + include("$ENV{VCPKG_ROOT}/scripts/toolchains/${_lxVCPKG_TARGET}.cmake") +endif() diff --git a/tools/toolchains/arm64-macos-clang-19-brew.cmake b/tools/toolchains/arm64-macos-clang-19-brew.cmake index cb4d817..f97ba0b 100644 --- a/tools/toolchains/arm64-macos-clang-19-brew.cmake +++ b/tools/toolchains/arm64-macos-clang-19-brew.cmake @@ -1,12 +1,12 @@ +set(_lxVCPKG_TARGET "osx") +include("${CMAKE_CURRENT_LIST_DIR}/_vcpkg.cmake") + execute_process(COMMAND brew --prefix llvm@19 OUTPUT_VARIABLE BREW_LLVM_PATH OUTPUT_STRIP_TRAILING_WHITESPACE) +set(CMAKE_OSX_DEPLOYMENT_TARGET 16.4 CACHE STRING "OSX deployment target") set(CMAKE_C_COMPILER "${BREW_LLVM_PATH}/bin/clang") set(CMAKE_CXX_COMPILER "${BREW_LLVM_PATH}/bin/clang++") -set(CMAKE_OSX_DEPLOYMENT_TARGET 15.5 CACHE STRING "OSX deployment target") set(CMAKE_OSX_ARCHITECTURES arm64 CACHE STRING "OSX target architectures") -set(CMAKE_C_STANDARD 17 CACHE STRING "C standard") -set(CMAKE_CXX_STANDARD 20 CACHE STRING "C++ standard") - -set(CMAKE_CXX_FLAGS_INIT "-fsized-deallocation") -set(CMAKE_CXX_SCAN_FOR_MODULES OFF) +include("${CMAKE_CURRENT_LIST_DIR}/_base.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/_clang.cmake") diff --git a/tools/toolchains/x64-linux-clang-19.cmake b/tools/toolchains/x64-linux-clang-19.cmake index f296780..dc206f7 100644 --- a/tools/toolchains/x64-linux-clang-19.cmake +++ b/tools/toolchains/x64-linux-clang-19.cmake @@ -1,10 +1,12 @@ -set(CMAKE_SYSTEM_PROCESSOR AMD64) - set(CMAKE_C_COMPILER clang-19) set(CMAKE_CXX_COMPILER clang++-19) -set(CMAKE_C_STANDARD 17) -set(CMAKE_CXX_STANDARD 20) +set(_lxVCPKG_TARGET "linux") +include("${CMAKE_CURRENT_LIST_DIR}/_vcpkg.cmake") + +if (NOT DEFINED CMAKE_SYSTEM_PROCESSOR) + set(CMAKE_SYSTEM_PROCESSOR AMD64) +endif() -set(CMAKE_CXX_FLAGS_INIT "-fsized-deallocation") -set(CMAKE_CXX_SCAN_FOR_MODULES OFF) +include("${CMAKE_CURRENT_LIST_DIR}/_base.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/_clang.cmake") diff --git a/tools/toolchains/x64-linux-clang-20.cmake b/tools/toolchains/x64-linux-clang-20.cmake index 274a783..016fb3e 100644 --- a/tools/toolchains/x64-linux-clang-20.cmake +++ b/tools/toolchains/x64-linux-clang-20.cmake @@ -1,10 +1,12 @@ -set(CMAKE_SYSTEM_PROCESSOR AMD64) - set(CMAKE_C_COMPILER clang-20) set(CMAKE_CXX_COMPILER clang++-20) -set(CMAKE_C_STANDARD 17) -set(CMAKE_CXX_STANDARD 20) +set(_lxVCPKG_TARGET "linux") +include("${CMAKE_CURRENT_LIST_DIR}/_vcpkg.cmake") + +if (NOT DEFINED CMAKE_SYSTEM_PROCESSOR) + set(CMAKE_SYSTEM_PROCESSOR AMD64) +endif() -set(CMAKE_CXX_FLAGS_INIT "-fsized-deallocation") -set(CMAKE_CXX_SCAN_FOR_MODULES OFF) +include("${CMAKE_CURRENT_LIST_DIR}/_base.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/_clang.cmake") diff --git a/tools/toolchains/x64-linux-clang.cmake b/tools/toolchains/x64-linux-clang.cmake index c3f5702..3120e70 100644 --- a/tools/toolchains/x64-linux-clang.cmake +++ b/tools/toolchains/x64-linux-clang.cmake @@ -1,10 +1,12 @@ -set(CMAKE_SYSTEM_PROCESSOR AMD64) - set(CMAKE_C_COMPILER clang) set(CMAKE_CXX_COMPILER clang++) -set(CMAKE_C_STANDARD 17) -set(CMAKE_CXX_STANDARD 20 CACHE STRING "") +set(_lxVCPKG_TARGET "linux") +include("${CMAKE_CURRENT_LIST_DIR}/_vcpkg.cmake") + +if (NOT DEFINED CMAKE_SYSTEM_PROCESSOR) + set(CMAKE_SYSTEM_PROCESSOR AMD64) +endif() -set(CMAKE_CXX_FLAGS_INIT "-fsized-deallocation") -set(CMAKE_CXX_SCAN_FOR_MODULES OFF) +include("${CMAKE_CURRENT_LIST_DIR}/_base.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/_clang.cmake") diff --git a/tools/toolchains/x64-linux-gcc-12.cmake b/tools/toolchains/x64-linux-gcc-12.cmake deleted file mode 100644 index 92919b5..0000000 --- a/tools/toolchains/x64-linux-gcc-12.cmake +++ /dev/null @@ -1,9 +0,0 @@ -set(CMAKE_SYSTEM_PROCESSOR AMD64) - -set(CMAKE_C_COMPILER gcc-12) -set(CMAKE_CXX_COMPILER g++-12) - -set(CMAKE_C_STANDARD 17) -set(CMAKE_CXX_STANDARD 20) - -set(CMAKE_CXX_SCAN_FOR_MODULES OFF) diff --git a/tools/toolchains/x64-linux-gcc-14.cmake b/tools/toolchains/x64-linux-gcc-14.cmake new file mode 100644 index 0000000..614a893 --- /dev/null +++ b/tools/toolchains/x64-linux-gcc-14.cmake @@ -0,0 +1,11 @@ +set(CMAKE_C_COMPILER gcc-14) +set(CMAKE_CXX_COMPILER g++-14) + +set(_lxVCPKG_TARGET "linux") +include("${CMAKE_CURRENT_LIST_DIR}/_vcpkg.cmake") + +if (NOT DEFINED CMAKE_SYSTEM_PROCESSOR) + set(CMAKE_SYSTEM_PROCESSOR AMD64) +endif() + +include("${CMAKE_CURRENT_LIST_DIR}/_base.cmake") diff --git a/tools/toolchains/x64-linux-gcc.cmake b/tools/toolchains/x64-linux-gcc.cmake index d16cb89..4e605e8 100644 --- a/tools/toolchains/x64-linux-gcc.cmake +++ b/tools/toolchains/x64-linux-gcc.cmake @@ -1,9 +1,11 @@ -set(CMAKE_SYSTEM_PROCESSOR AMD64) - set(CMAKE_C_COMPILER gcc) set(CMAKE_CXX_COMPILER g++) -set(CMAKE_C_STANDARD 17) -set(CMAKE_CXX_STANDARD 20) +set(_lxVCPKG_TARGET "linux") +include("${CMAKE_CURRENT_LIST_DIR}/_vcpkg.cmake") + +if (NOT DEFINED CMAKE_SYSTEM_PROCESSOR) + set(CMAKE_SYSTEM_PROCESSOR AMD64) +endif() -set(CMAKE_CXX_SCAN_FOR_MODULES OFF) +include("${CMAKE_CURRENT_LIST_DIR}/_base.cmake") diff --git a/tools/toolchains/x64-macos-gcc-14.cmake b/tools/toolchains/x64-macos-gcc-14.cmake deleted file mode 100644 index aede960..0000000 --- a/tools/toolchains/x64-macos-gcc-14.cmake +++ /dev/null @@ -1,11 +0,0 @@ -set(CMAKE_SYSTEM_PROCESSOR AMD64) - -set(CMAKE_C_COMPILER gcc-14) -set(CMAKE_CXX_COMPILER g++-14) -set(CMAKE_OSX_DEPLOYMENT_TARGET 14.2 CACHE STRING "OSX deployment target") -set(CMAKE_OSX_ARCHITECTURES x86_64 CACHE STRING "OSX target architectures") - -set(CMAKE_C_STANDARD 17) -set(CMAKE_CXX_STANDARD 20) - -set(CMAKE_CXX_SCAN_FOR_MODULES OFF) diff --git a/tools/toolchains/x64-macos-gcc-15.cmake b/tools/toolchains/x64-macos-gcc-15.cmake new file mode 100644 index 0000000..5deee14 --- /dev/null +++ b/tools/toolchains/x64-macos-gcc-15.cmake @@ -0,0 +1,13 @@ +set(_lxVCPKG_TARGET "osx") +include("${CMAKE_CURRENT_LIST_DIR}/_vcpkg.cmake") + +if (NOT DEFINED CMAKE_SYSTEM_PROCESSOR) + set(CMAKE_SYSTEM_PROCESSOR x86_64) +endif() +set(CMAKE_OSX_ARCHITECTURES x86_64 CACHE STRING "OSX target architectures") + +set(CMAKE_C_COMPILER gcc-15) +set(CMAKE_CXX_COMPILER g++-15) +set(CMAKE_OSX_DEPLOYMENT_TARGET 16.4 CACHE STRING "OSX deployment target") + +include("${CMAKE_CURRENT_LIST_DIR}/_base.cmake") diff --git a/tools/triplets/x64-linux-gcc-14.cmake b/tools/triplets/x64-linux-gcc-14.cmake new file mode 100644 index 0000000..f96c7c9 --- /dev/null +++ b/tools/triplets/x64-linux-gcc-14.cmake @@ -0,0 +1,6 @@ +set(VCPKG_TARGET_ARCHITECTURE x64) +set(VCPKG_CRT_LINKAGE dynamic) +set(VCPKG_LIBRARY_LINKAGE static) + +set(VCPKG_CMAKE_SYSTEM_NAME Linux) +set(VCPKG_CHAINLOAD_TOOLCHAIN_FILE "${CMAKE_CURRENT_LIST_DIR}/../toolchains/x64-linux-gcc-14.cmake") diff --git a/tools/triplets/x64-macos-gcc-14.cmake b/tools/triplets/x64-macos-gcc-15.cmake similarity index 87% rename from tools/triplets/x64-macos-gcc-14.cmake rename to tools/triplets/x64-macos-gcc-15.cmake index c943e30..a41dab5 100644 --- a/tools/triplets/x64-macos-gcc-14.cmake +++ b/tools/triplets/x64-macos-gcc-15.cmake @@ -6,5 +6,5 @@ set(VCPKG_CMAKE_SYSTEM_NAME Darwin) set(VCPKG_OSX_ARCHITECTURES x86_64) if(NOT PORT STREQUAL "boringssl") - set(VCPKG_CHAINLOAD_TOOLCHAIN_FILE "${CMAKE_CURRENT_LIST_DIR}/../toolchains/x64-macos-gcc-14.cmake") + set(VCPKG_CHAINLOAD_TOOLCHAIN_FILE "${CMAKE_CURRENT_LIST_DIR}/../toolchains/x64-macos-gcc-15.cmake") endif() diff --git a/vcpkg-configuration.json b/vcpkg-configuration.json index bc3c065..1586a86 100644 --- a/vcpkg-configuration.json +++ b/vcpkg-configuration.json @@ -2,7 +2,7 @@ "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg-configuration.schema.json", "default-registry": { "kind": "builtin", - "baseline": "ce613c41372b23b1f51333815feb3edd87ef8a8b" + "baseline": "74e6536215718009aae747d86d84b78376bf9e09" }, "overlay-triplets": [ "tools/triplets" @@ -11,7 +11,7 @@ { "kind": "git", "repository": "https://github.com/deeplex/vcpkg-registry", - "baseline": "14ca3f0af80f32fd3f478d04b04403a6c0fe66c8", + "baseline": "d0e53d732effaba6fd1f802e9470a9ceb8193480", "packages": [ "base64", "concrete",