From 2914770fba6b3cc03a68fae493f60470a41962ec Mon Sep 17 00:00:00 2001 From: nsfisis Date: Wed, 20 May 2026 09:54:30 +0900 Subject: refactor: re-export module items to shorten import paths --- crates/shirabe/src/util/auth_helper.rs | 12 ++--- crates/shirabe/src/util/bitbucket.rs | 8 ++-- crates/shirabe/src/util/composer_mirror.rs | 2 +- crates/shirabe/src/util/config_validator.rs | 20 ++++---- crates/shirabe/src/util/error_handler.rs | 2 +- crates/shirabe/src/util/filesystem.rs | 22 ++++----- crates/shirabe/src/util/forgejo.rs | 8 ++-- crates/shirabe/src/util/forgejo_url.rs | 6 +-- crates/shirabe/src/util/git.rs | 22 ++++----- crates/shirabe/src/util/github.rs | 12 ++--- crates/shirabe/src/util/gitlab.rs | 10 ++-- crates/shirabe/src/util/hg.rs | 8 ++-- crates/shirabe/src/util/http/curl_downloader.rs | 40 ++++++++-------- crates/shirabe/src/util/http/curl_response.rs | 2 +- crates/shirabe/src/util/http/mod.rs | 7 +++ crates/shirabe/src/util/http/proxy_item.rs | 2 +- crates/shirabe/src/util/http/proxy_manager.rs | 8 ++-- crates/shirabe/src/util/http/request_proxy.rs | 2 +- crates/shirabe/src/util/http/response.rs | 10 ++-- crates/shirabe/src/util/http_downloader.rs | 30 ++++++------ crates/shirabe/src/util/ini_helper.rs | 2 +- crates/shirabe/src/util/loop.rs | 8 ++-- crates/shirabe/src/util/mod.rs | 33 +++++++++++++ crates/shirabe/src/util/no_proxy_pattern.rs | 2 +- crates/shirabe/src/util/package_info.rs | 4 +- crates/shirabe/src/util/package_sorter.rs | 6 +-- crates/shirabe/src/util/perforce.rs | 14 +++--- crates/shirabe/src/util/platform.rs | 8 ++-- crates/shirabe/src/util/process_executor.rs | 22 ++++----- crates/shirabe/src/util/remote_filesystem.rs | 56 +++++++++++------------ crates/shirabe/src/util/stream_context_factory.rs | 14 +++--- crates/shirabe/src/util/svn.rs | 8 ++-- crates/shirabe/src/util/sync_helper.rs | 8 ++-- crates/shirabe/src/util/tls_helper.rs | 4 +- crates/shirabe/src/util/url.rs | 4 +- 35 files changed, 231 insertions(+), 195 deletions(-) (limited to 'crates/shirabe/src/util') diff --git a/crates/shirabe/src/util/auth_helper.rs b/crates/shirabe/src/util/auth_helper.rs index 1bbe7dc..908839e 100644 --- a/crates/shirabe/src/util/auth_helper.rs +++ b/crates/shirabe/src/util/auth_helper.rs @@ -3,7 +3,7 @@ use crate::io::io_interface; use anyhow::Result; use indexmap::IndexMap; -use shirabe_external_packages::composer::pcre::preg::Preg; +use shirabe_external_packages::composer::pcre::Preg; use shirabe_php_shim::{ E_USER_DEPRECATED, PHP_URL_HOST, PHP_URL_PATH, PHP_URL_SCHEME, PhpMixed, base64_encode, explode, in_array, is_array, is_string, json_decode, parse_url, sprintf, str_replace, strpos, @@ -11,11 +11,11 @@ use shirabe_php_shim::{ }; use crate::config::Config; -use crate::downloader::transport_exception::TransportException; -use crate::io::io_interface::IOInterface; -use crate::util::bitbucket::Bitbucket; -use crate::util::github::GitHub; -use crate::util::gitlab::GitLab; +use crate::downloader::TransportException; +use crate::io::IOInterface; +use crate::util::Bitbucket; +use crate::util::GitHub; +use crate::util::GitLab; #[derive(Debug)] pub struct AuthHelper { diff --git a/crates/shirabe/src/util/bitbucket.rs b/crates/shirabe/src/util/bitbucket.rs index ef1d4bf..1708447 100644 --- a/crates/shirabe/src/util/bitbucket.rs +++ b/crates/shirabe/src/util/bitbucket.rs @@ -5,11 +5,11 @@ use indexmap::IndexMap; use shirabe_php_shim::{LogicException, PhpMixed, time}; use crate::config::Config; -use crate::downloader::transport_exception::TransportException; +use crate::downloader::TransportException; use crate::factory::Factory; -use crate::io::io_interface::IOInterface; -use crate::util::http_downloader::HttpDownloader; -use crate::util::process_executor::ProcessExecutor; +use crate::io::IOInterface; +use crate::util::HttpDownloader; +use crate::util::ProcessExecutor; fn transport_error_code(err: &anyhow::Error) -> Option { err.downcast_ref::().map(|te| te.code) diff --git a/crates/shirabe/src/util/composer_mirror.rs b/crates/shirabe/src/util/composer_mirror.rs index d70af94..6f15a13 100644 --- a/crates/shirabe/src/util/composer_mirror.rs +++ b/crates/shirabe/src/util/composer_mirror.rs @@ -1,6 +1,6 @@ //! ref: composer/src/Composer/Util/ComposerMirror.php -use shirabe_external_packages::composer::pcre::preg::{CaptureKey, Preg}; +use shirabe_external_packages::composer::pcre::{CaptureKey, Preg}; use shirabe_php_shim::hash; pub struct ComposerMirror; diff --git a/crates/shirabe/src/util/config_validator.rs b/crates/shirabe/src/util/config_validator.rs index 4e99da0..ee78c26 100644 --- a/crates/shirabe/src/util/config_validator.rs +++ b/crates/shirabe/src/util/config_validator.rs @@ -1,16 +1,16 @@ //! ref: composer/src/Composer/Util/ConfigValidator.php -use crate::io::io_interface::IOInterface; -use crate::json::json_file::JsonFile; -use crate::json::json_validation_exception::JsonValidationException; -use crate::package::loader::array_loader::ArrayLoader; -use crate::package::loader::invalid_package_exception::InvalidPackageException; -use crate::package::loader::validating_array_loader::ValidatingArrayLoader; +use crate::io::IOInterface; +use crate::json::JsonFile; +use crate::json::JsonValidationException; +use crate::package::loader::ArrayLoader; +use crate::package::loader::InvalidPackageException; +use crate::package::loader::ValidatingArrayLoader; use indexmap::IndexMap; -use shirabe_external_packages::composer::pcre::preg::Preg; -use shirabe_external_packages::composer::spdx_licenses::spdx_licenses::SpdxLicenses; -use shirabe_external_packages::seld::json_lint::duplicate_key_exception::DuplicateKeyException; -use shirabe_external_packages::seld::json_lint::json_parser::JsonParser; +use shirabe_external_packages::composer::pcre::Preg; +use shirabe_external_packages::composer::spdx_licenses::SpdxLicenses; +use shirabe_external_packages::seld::json_lint::DuplicateKeyException; +use shirabe_external_packages::seld::json_lint::JsonParser; use shirabe_php_shim::PhpMixed; #[derive(Debug)] diff --git a/crates/shirabe/src/util/error_handler.rs b/crates/shirabe/src/util/error_handler.rs index d531658..c0648be 100644 --- a/crates/shirabe/src/util/error_handler.rs +++ b/crates/shirabe/src/util/error_handler.rs @@ -1,6 +1,6 @@ //! ref: composer/src/Composer/Util/ErrorHandler.php -use crate::io::io_interface::IOInterface; +use crate::io::IOInterface; use shirabe_php_shim::{ E_ALL, E_DEPRECATED, E_USER_DEPRECATED, E_USER_WARNING, E_WARNING, ErrorException, FILTER_VALIDATE_BOOLEAN, PHP_EOL, PhpMixed, STDERR, debug_backtrace, error_reporting, diff --git a/crates/shirabe/src/util/filesystem.rs b/crates/shirabe/src/util/filesystem.rs index e51c1e2..a51b0f3 100644 --- a/crates/shirabe/src/util/filesystem.rs +++ b/crates/shirabe/src/util/filesystem.rs @@ -1,9 +1,9 @@ //! ref: composer/src/Composer/Util/Filesystem.php -use shirabe_external_packages::composer::pcre::preg::Preg; -use shirabe_external_packages::react::promise::promise_interface::PromiseInterface; -use shirabe_external_packages::symfony::component::filesystem::exception::io_exception::IOException; -use shirabe_external_packages::symfony::component::finder::finder::Finder; +use shirabe_external_packages::composer::pcre::Preg; +use shirabe_external_packages::react::promise::PromiseInterface; +use shirabe_external_packages::symfony::component::filesystem::exception::IOException; +use shirabe_external_packages::symfony::component::finder::Finder; use shirabe_php_shim::{ DIRECTORY_SEPARATOR, ErrorException, InvalidArgumentException, LogicException, PhpMixed, RuntimeException, UnexpectedValueException, array_pop, basename, chdir, clearstatcache, @@ -15,9 +15,9 @@ use shirabe_php_shim::{ substr_count, symlink, touch, unlink, usleep, var_export, }; -use crate::util::platform::Platform; -use crate::util::process_executor::ProcessExecutor; -use crate::util::silencer::Silencer; +use crate::util::Platform; +use crate::util::ProcessExecutor; +use crate::util::Silencer; #[derive(Debug)] pub struct Filesystem { @@ -702,7 +702,7 @@ impl Filesystem { // extract a prefix being a protocol://, protocol:, protocol://drive: or simply drive: let mut prefix_match: indexmap::IndexMap< - shirabe_external_packages::composer::pcre::preg::CaptureKey, + shirabe_external_packages::composer::pcre::CaptureKey, String, > = indexmap::IndexMap::new(); if Preg::is_match_strict_groups3( @@ -713,7 +713,7 @@ impl Filesystem { .unwrap_or(false) { prefix = prefix_match - .get(&shirabe_external_packages::composer::pcre::preg::CaptureKey::ByIndex(1)) + .get(&shirabe_external_packages::composer::pcre::CaptureKey::ByIndex(1)) .cloned() .unwrap_or_default(); path = substr(&path, strlen(&prefix), None); @@ -739,12 +739,12 @@ impl Filesystem { prefix = Preg::replace_callback( "{(^|://)[a-z]:$}i", |m: &indexmap::IndexMap< - shirabe_external_packages::composer::pcre::preg::CaptureKey, + shirabe_external_packages::composer::pcre::CaptureKey, String, >| -> String { let s = m - .get(&shirabe_external_packages::composer::pcre::preg::CaptureKey::ByIndex(0)) + .get(&shirabe_external_packages::composer::pcre::CaptureKey::ByIndex(0)) .cloned() .unwrap_or_default(); strtoupper(&s) diff --git a/crates/shirabe/src/util/forgejo.rs b/crates/shirabe/src/util/forgejo.rs index 002e4e5..0e1d52d 100644 --- a/crates/shirabe/src/util/forgejo.rs +++ b/crates/shirabe/src/util/forgejo.rs @@ -1,10 +1,10 @@ //! ref: composer/src/Composer/Util/Forgejo.php use crate::config::Config; -use crate::downloader::transport_exception::TransportException; +use crate::downloader::TransportException; +use crate::io::IOInterface; use crate::io::io_interface; -use crate::io::io_interface::IOInterface; -use crate::util::http_downloader::HttpDownloader; +use crate::util::HttpDownloader; #[derive(Debug)] pub struct Forgejo { @@ -124,7 +124,7 @@ impl Forgejo { // TODO(phase-b): anyhow::Error has no get_code(); HTTP status codes come from // TransportException::get_status_code(). let code = e - .downcast_ref::() + .downcast_ref::() .and_then(|te| te.get_status_code()) .unwrap_or(0); if [403, 401, 404].contains(&code) { diff --git a/crates/shirabe/src/util/forgejo_url.rs b/crates/shirabe/src/util/forgejo_url.rs index 5fdaab7..90a1424 100644 --- a/crates/shirabe/src/util/forgejo_url.rs +++ b/crates/shirabe/src/util/forgejo_url.rs @@ -1,7 +1,7 @@ //! ref: composer/src/Composer/Util/ForgejoUrl.php use anyhow::Result; -use shirabe_external_packages::composer::pcre::preg::Preg; +use shirabe_external_packages::composer::pcre::Preg; use shirabe_php_shim::InvalidArgumentException; #[derive(Debug)] @@ -39,13 +39,13 @@ impl ForgejoUrl { pub fn try_from(repo_url: Option<&str>) -> Option { let repo_url = repo_url?; let mut matches: indexmap::IndexMap< - shirabe_external_packages::composer::pcre::preg::CaptureKey, + shirabe_external_packages::composer::pcre::CaptureKey, String, > = indexmap::IndexMap::new(); if !Preg::match3(Self::URL_REGEX, repo_url, Some(&mut matches)).unwrap_or(false) { return None; } - use shirabe_external_packages::composer::pcre::preg::CaptureKey; + use shirabe_external_packages::composer::pcre::CaptureKey; let m: Vec = (0..5) .map(|i| { matches diff --git a/crates/shirabe/src/util/git.rs b/crates/shirabe/src/util/git.rs index cd5082f..d8e11d9 100644 --- a/crates/shirabe/src/util/git.rs +++ b/crates/shirabe/src/util/git.rs @@ -5,7 +5,7 @@ use anyhow::Result; use indexmap::IndexMap; use std::sync::Mutex; -use shirabe_external_packages::composer::pcre::preg::{CaptureKey, Preg}; +use shirabe_external_packages::composer::pcre::{CaptureKey, Preg}; use shirabe_php_shim::{ InvalidArgumentException, PHP_EOL, PhpMixed, RuntimeException, array_map, array_merge_recursive, clearstatcache, count, explode, implode, in_array, is_array, @@ -14,16 +14,16 @@ use shirabe_php_shim::{ }; use crate::config::Config; -use crate::io::io_interface::IOInterface; -use crate::util::auth_helper::{AuthHelper, StoreAuth}; -use crate::util::bitbucket::Bitbucket; -use crate::util::filesystem::Filesystem; -use crate::util::github::GitHub; -use crate::util::gitlab::GitLab; -use crate::util::http_downloader::HttpDownloader; -use crate::util::platform::Platform; -use crate::util::process_executor::ProcessExecutor; -use crate::util::url::Url; +use crate::io::IOInterface; +use crate::util::Bitbucket; +use crate::util::Filesystem; +use crate::util::GitHub; +use crate::util::GitLab; +use crate::util::HttpDownloader; +use crate::util::Platform; +use crate::util::ProcessExecutor; +use crate::util::Url; +use crate::util::{AuthHelper, StoreAuth}; #[derive(Debug)] pub struct Git { diff --git a/crates/shirabe/src/util/github.rs b/crates/shirabe/src/util/github.rs index c9513aa..f8a592e 100644 --- a/crates/shirabe/src/util/github.rs +++ b/crates/shirabe/src/util/github.rs @@ -2,15 +2,15 @@ use crate::io::io_interface; use indexmap::IndexMap; -use shirabe_external_packages::composer::pcre::preg::{CaptureKey, Preg}; +use shirabe_external_packages::composer::pcre::{CaptureKey, Preg}; use shirabe_php_shim::{PhpMixed, date, stripos, strtolower}; use crate::config::Config; -use crate::downloader::transport_exception::TransportException; +use crate::downloader::TransportException; use crate::factory::Factory; -use crate::io::io_interface::IOInterface; -use crate::util::http_downloader::HttpDownloader; -use crate::util::process_executor::ProcessExecutor; +use crate::io::IOInterface; +use crate::util::HttpDownloader; +use crate::util::ProcessExecutor; #[derive(Debug)] pub struct GitHub { @@ -240,7 +240,7 @@ impl GitHub { Err(te) => { // TODO(phase-b): downcast anyhow::Error to TransportException for status code let code = te - .downcast_ref::() + .downcast_ref::() .and_then(|t| t.get_status_code()) .unwrap_or(0); if code == 403 || code == 401 { diff --git a/crates/shirabe/src/util/gitlab.rs b/crates/shirabe/src/util/gitlab.rs index 7049686..88563db 100644 --- a/crates/shirabe/src/util/gitlab.rs +++ b/crates/shirabe/src/util/gitlab.rs @@ -2,15 +2,15 @@ use crate::io::io_interface; use indexmap::IndexMap; -use shirabe_external_packages::composer::pcre::preg::Preg; +use shirabe_external_packages::composer::pcre::Preg; use shirabe_php_shim::{PhpMixed, RuntimeException, http_build_query, json_decode, time}; use crate::config::Config; -use crate::downloader::transport_exception::TransportException; +use crate::downloader::TransportException; use crate::factory::Factory; -use crate::io::io_interface::IOInterface; -use crate::util::http_downloader::HttpDownloader; -use crate::util::process_executor::ProcessExecutor; +use crate::io::IOInterface; +use crate::util::HttpDownloader; +use crate::util::ProcessExecutor; #[derive(Debug)] pub struct GitLab { diff --git a/crates/shirabe/src/util/hg.rs b/crates/shirabe/src/util/hg.rs index 0d4d36d..b6bdd04 100644 --- a/crates/shirabe/src/util/hg.rs +++ b/crates/shirabe/src/util/hg.rs @@ -1,11 +1,11 @@ //! ref: composer/src/Composer/Util/Hg.php use crate::config::Config; -use crate::io::io_interface::IOInterface; -use crate::util::process_executor::ProcessExecutor; -use crate::util::url::Url; +use crate::io::IOInterface; +use crate::util::ProcessExecutor; +use crate::util::Url; use anyhow::Result; -use shirabe_external_packages::composer::pcre::preg::Preg; +use shirabe_external_packages::composer::pcre::Preg; use shirabe_php_shim::rawurlencode; use std::sync::OnceLock; diff --git a/crates/shirabe/src/util/http/curl_downloader.rs b/crates/shirabe/src/util/http/curl_downloader.rs index fd46220..bd6817c 100644 --- a/crates/shirabe/src/util/http/curl_downloader.rs +++ b/crates/shirabe/src/util/http/curl_downloader.rs @@ -4,7 +4,7 @@ use std::sync::atomic::{AtomicBool, Ordering}; use indexmap::IndexMap; -use shirabe_external_packages::composer::pcre::preg::Preg; +use shirabe_external_packages::composer::pcre::Preg; use shirabe_php_shim::{ CURL_HTTP_VERSION_2_0, CURL_HTTP_VERSION_3, CURL_IPRESOLVE_V4, CURL_IPRESOLVE_V6, CURL_LOCK_DATA_COOKIE, CURL_LOCK_DATA_DNS, CURL_LOCK_DATA_SSL_SESSION, CURL_VERSION_HTTP2, @@ -26,17 +26,17 @@ use shirabe_php_shim::{ }; use crate::config::Config; -use crate::downloader::max_file_size_exceeded_exception::MaxFileSizeExceededException; -use crate::downloader::transport_exception::TransportException; -use crate::io::io_interface::IOInterface; -use crate::util::auth_helper::{AuthHelper, PromptAuthResult, StoreAuth}; -use crate::util::http::curl_response::CurlResponse; -use crate::util::http::proxy_manager::ProxyManager; -use crate::util::http_downloader::HttpDownloader; -use crate::util::platform::Platform; -use crate::util::stream_context_factory::StreamContextFactory; -use crate::util::url::Url; -// use shirabe_external_packages::react::promise::promise::Promise; // typehint only in PHP +use crate::downloader::MaxFileSizeExceededException; +use crate::downloader::TransportException; +use crate::io::IOInterface; +use crate::util::HttpDownloader; +use crate::util::Platform; +use crate::util::StreamContextFactory; +use crate::util::Url; +use crate::util::http::CurlResponse; +use crate::util::http::ProxyManager; +use crate::util::{AuthHelper, PromptAuthResult, StoreAuth}; +// use shirabe_external_packages::react::promise::Promise; // typehint only in PHP /// @phpstan-type Attributes array{retryAuthFailure: bool, redirects: int<0, max>, retries: int<0, max>, storeAuth: 'prompt'|bool, ipResolve: 4|6|null} /// @phpstan-type Job array{url: non-empty-string, origin: string, attributes: Attributes, options: mixed[], progress: mixed[], curlHandle: \CurlHandle, filename: string|null, headerHandle: resource, bodyHandle: resource, resolve: callable, reject: callable, primaryIp: string} @@ -699,7 +699,7 @@ impl CurlDownloader { if_modified ), true, - crate::io::io_interface::DEBUG, + crate::io::DEBUG, ); } @@ -843,7 +843,7 @@ impl CurlDownloader { self.io.write_error3( "A connection timeout was encountered. If you intend to run Composer without connecting to the internet, run the command again prefixed with COMPOSER_DISABLE_NETWORK=1 to make Composer run in offline mode.", true, - crate::io::io_interface::NORMAL, + crate::io::NORMAL, ); } @@ -929,7 +929,7 @@ impl CurlDownloader { errno ), true, - crate::io::io_interface::DEBUG, + crate::io::DEBUG, ); self.restart_job_with_delay( &job, @@ -961,7 +961,7 @@ impl CurlDownloader { errno ), true, - crate::io::io_interface::DEBUG, + crate::io::DEBUG, ); let mut attrs: IndexMap = IndexMap::new(); attrs.insert( @@ -1095,7 +1095,7 @@ impl CurlDownloader { ) ), true, - crate::io::io_interface::DEBUG, + crate::io::DEBUG, ); } else { let max_file_size: Option = job @@ -1174,7 +1174,7 @@ impl CurlDownloader { ) ), true, - crate::io::io_interface::DEBUG, + crate::io::DEBUG, ); } fclose(job.get("bodyHandle").cloned().unwrap_or(PhpMixed::Null)); @@ -1323,7 +1323,7 @@ impl CurlDownloader { sc ), true, - crate::io::io_interface::DEBUG, + crate::io::DEBUG, ); let mut attrs: IndexMap = IndexMap::new(); attrs.insert( @@ -1632,7 +1632,7 @@ impl CurlDownloader { ], ), true, - crate::io::io_interface::DEBUG, + crate::io::DEBUG, ); return Ok(Ok(target_url)); diff --git a/crates/shirabe/src/util/http/curl_response.rs b/crates/shirabe/src/util/http/curl_response.rs index c6f5d77..9f330b6 100644 --- a/crates/shirabe/src/util/http/curl_response.rs +++ b/crates/shirabe/src/util/http/curl_response.rs @@ -3,7 +3,7 @@ use indexmap::IndexMap; use shirabe_php_shim::PhpMixed; -use super::response::Response; +use super::Response; #[derive(Debug)] pub struct CurlResponse { diff --git a/crates/shirabe/src/util/http/mod.rs b/crates/shirabe/src/util/http/mod.rs index 4ee97c5..19e5a86 100644 --- a/crates/shirabe/src/util/http/mod.rs +++ b/crates/shirabe/src/util/http/mod.rs @@ -4,3 +4,10 @@ pub mod proxy_item; pub mod proxy_manager; pub mod request_proxy; pub mod response; + +pub use curl_downloader::*; +pub use curl_response::*; +pub use proxy_item::*; +pub use proxy_manager::*; +pub use request_proxy::*; +pub use response::*; diff --git a/crates/shirabe/src/util/http/proxy_item.rs b/crates/shirabe/src/util/http/proxy_item.rs index db71476..1a0b3ee 100644 --- a/crates/shirabe/src/util/http/proxy_item.rs +++ b/crates/shirabe/src/util/http/proxy_item.rs @@ -1,6 +1,6 @@ //! ref: composer/src/Composer/Util/Http/ProxyItem.php -use crate::util::http::request_proxy::RequestProxy; +use crate::util::http::RequestProxy; use indexmap::IndexMap; use shirabe_php_shim::{ PhpMixed, RuntimeException, base64_encode, parse_url_all, rawurldecode, strpbrk, diff --git a/crates/shirabe/src/util/http/proxy_manager.rs b/crates/shirabe/src/util/http/proxy_manager.rs index 13a9920..eac3cb2 100644 --- a/crates/shirabe/src/util/http/proxy_manager.rs +++ b/crates/shirabe/src/util/http/proxy_manager.rs @@ -2,10 +2,10 @@ use std::sync::{Mutex, OnceLock}; -use crate::downloader::transport_exception::TransportException; -use crate::util::http::proxy_item::ProxyItem; -use crate::util::http::request_proxy::RequestProxy; -use crate::util::no_proxy_pattern::NoProxyPattern; +use crate::downloader::TransportException; +use crate::util::NoProxyPattern; +use crate::util::http::ProxyItem; +use crate::util::http::RequestProxy; static INSTANCE: OnceLock>> = OnceLock::new(); diff --git a/crates/shirabe/src/util/http/request_proxy.rs b/crates/shirabe/src/util/http/request_proxy.rs index a85e283..876b8cc 100644 --- a/crates/shirabe/src/util/http/request_proxy.rs +++ b/crates/shirabe/src/util/http/request_proxy.rs @@ -7,7 +7,7 @@ use shirabe_php_shim::{ PhpMixed, curl_version, }; -use crate::downloader::transport_exception::TransportException; +use crate::downloader::TransportException; // contextOptions = array{http: array{proxy: string, header?: string, request_fulluri?: bool}} type ContextOptions = IndexMap>; diff --git a/crates/shirabe/src/util/http/response.rs b/crates/shirabe/src/util/http/response.rs index ef86ec9..a2bc0f1 100644 --- a/crates/shirabe/src/util/http/response.rs +++ b/crates/shirabe/src/util/http/response.rs @@ -1,8 +1,8 @@ //! ref: composer/src/Composer/Util/Http/Response.php -use crate::json::json_file::JsonFile; +use crate::json::JsonFile; use indexmap::IndexMap; -use shirabe_external_packages::composer::pcre::preg::Preg; +use shirabe_external_packages::composer::pcre::Preg; use shirabe_php_shim::{LogicException, PhpMixed, preg_quote}; #[derive(Debug)] @@ -83,12 +83,12 @@ impl Response { let pattern = format!("(?i)^{}:\\s*(.+?)\\s*$", preg_quote(name, None)); for header in headers { let mut matches: indexmap::IndexMap< - shirabe_external_packages::composer::pcre::preg::CaptureKey, + shirabe_external_packages::composer::pcre::CaptureKey, String, > = indexmap::IndexMap::new(); if Preg::match3(&pattern, header, Some(&mut matches)).unwrap_or(false) { - if let Some(s) = matches - .get(&shirabe_external_packages::composer::pcre::preg::CaptureKey::ByIndex(1)) + if let Some(s) = + matches.get(&shirabe_external_packages::composer::pcre::CaptureKey::ByIndex(1)) { value = Some(s.clone()); } diff --git a/crates/shirabe/src/util/http_downloader.rs b/crates/shirabe/src/util/http_downloader.rs index b57626d..8c8b8ef 100644 --- a/crates/shirabe/src/util/http_downloader.rs +++ b/crates/shirabe/src/util/http_downloader.rs @@ -3,29 +3,29 @@ use anyhow::Result; use indexmap::IndexMap; -use crate::util::silencer::Silencer; -use shirabe_external_packages::composer::pcre::preg::{CaptureKey, Preg}; -use shirabe_external_packages::react::promise::promise::Promise; -use shirabe_external_packages::react::promise::promise_interface::PromiseInterface; +use crate::util::Silencer; +use shirabe_external_packages::composer::pcre::{CaptureKey, Preg}; +use shirabe_external_packages::react::promise::Promise; +use shirabe_external_packages::react::promise::PromiseInterface; use shirabe_php_shim::{ InvalidArgumentException, LogicException, PhpMixed, array_replace_recursive, chr, extension_loaded, file_get_contents, function_exists, implode, is_numeric, max, min, rawurldecode, stream_context_create, stripos, strpos, substr, ucfirst, }; -use shirabe_semver::constraint::constraint::Constraint; +use shirabe_semver::constraint::Constraint; use crate::composer::Composer; use crate::config::Config; -use crate::downloader::transport_exception::TransportException; -use crate::exception::irrecoverable_download_exception::IrrecoverableDownloadException; -use crate::io::io_interface::IOInterface; -use crate::package::version::version_parser::VersionParser; -use crate::util::http::curl_downloader::CurlDownloader; -use crate::util::http::response::Response; -use crate::util::platform::Platform; -use crate::util::remote_filesystem::RemoteFilesystem; -use crate::util::stream_context_factory::StreamContextFactory; -use crate::util::url::Url; +use crate::downloader::TransportException; +use crate::exception::IrrecoverableDownloadException; +use crate::io::IOInterface; +use crate::package::version::VersionParser; +use crate::util::Platform; +use crate::util::RemoteFilesystem; +use crate::util::StreamContextFactory; +use crate::util::Url; +use crate::util::http::CurlDownloader; +use crate::util::http::Response; /// @phpstan-type Request array{url: non-empty-string, options: mixed[], copyTo: string|null} /// @phpstan-type Job array{id: int, status: int, request: Request, sync: bool, origin: string, resolve?: callable, reject?: callable, curl_id?: int, response?: Response, exception?: \Throwable} diff --git a/crates/shirabe/src/util/ini_helper.rs b/crates/shirabe/src/util/ini_helper.rs index e09b94f..a0f3fd5 100644 --- a/crates/shirabe/src/util/ini_helper.rs +++ b/crates/shirabe/src/util/ini_helper.rs @@ -1,6 +1,6 @@ //! ref: composer/src/Composer/Util/IniHelper.php -use shirabe_external_packages::composer::xdebug_handler::xdebug_handler::XdebugHandler; +use shirabe_external_packages::composer::xdebug_handler::XdebugHandler; pub struct IniHelper; diff --git a/crates/shirabe/src/util/loop.rs b/crates/shirabe/src/util/loop.rs index 9f8493b..1463d5e 100644 --- a/crates/shirabe/src/util/loop.rs +++ b/crates/shirabe/src/util/loop.rs @@ -1,11 +1,11 @@ //! ref: composer/src/Composer/Util/Loop.php -use crate::util::http_downloader::HttpDownloader; -use crate::util::process_executor::ProcessExecutor; +use crate::util::HttpDownloader; +use crate::util::ProcessExecutor; use anyhow::Result; use indexmap::IndexMap; -use shirabe_external_packages::react::promise::promise_interface::PromiseInterface; -use shirabe_external_packages::symfony::component::console::helper::progress_bar::ProgressBar; +use shirabe_external_packages::react::promise::PromiseInterface; +use shirabe_external_packages::symfony::component::console::helper::ProgressBar; use shirabe_php_shim::microtime; pub struct Loop { diff --git a/crates/shirabe/src/util/mod.rs b/crates/shirabe/src/util/mod.rs index 6a2d55e..633928b 100644 --- a/crates/shirabe/src/util/mod.rs +++ b/crates/shirabe/src/util/mod.rs @@ -31,3 +31,36 @@ pub mod tar; pub mod tls_helper; pub mod url; pub mod zip; + +pub use auth_helper::*; +pub use bitbucket::*; +pub use composer_mirror::*; +pub use config_validator::*; +pub use error_handler::*; +pub use filesystem::*; +pub use forgejo::*; +pub use forgejo_repository_data::*; +pub use forgejo_url::*; +pub use git::*; +pub use github::*; +pub use gitlab::*; +pub use hg::*; +pub use http::*; +pub use http_downloader::*; +pub use ini_helper::*; +pub use metadata_minifier::*; +pub use no_proxy_pattern::*; +pub use package_info::*; +pub use package_sorter::*; +pub use perforce::*; +pub use platform::*; +pub use process_executor::*; +pub use remote_filesystem::*; +pub use silencer::*; +pub use stream_context_factory::*; +pub use svn::*; +pub use sync_helper::*; +pub use tar::*; +pub use tls_helper::*; +pub use url::*; +pub use zip::*; diff --git a/crates/shirabe/src/util/no_proxy_pattern.rs b/crates/shirabe/src/util/no_proxy_pattern.rs index 2b593c3..dbca5d7 100644 --- a/crates/shirabe/src/util/no_proxy_pattern.rs +++ b/crates/shirabe/src/util/no_proxy_pattern.rs @@ -2,7 +2,7 @@ use anyhow::Result; use indexmap::IndexMap; -use shirabe_external_packages::composer::pcre::preg::Preg; +use shirabe_external_packages::composer::pcre::Preg; use shirabe_php_shim::{ FILTER_VALIDATE_INT, FILTER_VALIDATE_IP, PHP_URL_HOST, PHP_URL_PORT, PHP_URL_SCHEME, PhpMixed, RuntimeException, array_key_exists, chr, empty, explode, filter_var, filter_var_with_options, diff --git a/crates/shirabe/src/util/package_info.rs b/crates/shirabe/src/util/package_info.rs index d8d93ef..6660404 100644 --- a/crates/shirabe/src/util/package_info.rs +++ b/crates/shirabe/src/util/package_info.rs @@ -1,7 +1,7 @@ //! ref: composer/src/Composer/Util/PackageInfo.php -use crate::package::complete_package_interface::CompletePackageInterface; -use crate::package::package_interface::PackageInterface; +use crate::package::CompletePackageInterface; +use crate::package::PackageInterface; pub struct PackageInfo; diff --git a/crates/shirabe/src/util/package_sorter.rs b/crates/shirabe/src/util/package_sorter.rs index a2728b5..185f595 100644 --- a/crates/shirabe/src/util/package_sorter.rs +++ b/crates/shirabe/src/util/package_sorter.rs @@ -5,9 +5,9 @@ use std::any::Any; use indexmap::IndexMap; use shirabe_php_shim::{strnatcasecmp, version_compare}; -use crate::package::link::Link; -use crate::package::package_interface::PackageInterface; -use crate::package::root_package::RootPackage; +use crate::package::Link; +use crate::package::PackageInterface; +use crate::package::RootPackage; pub struct PackageSorter; diff --git a/crates/shirabe/src/util/perforce.rs b/crates/shirabe/src/util/perforce.rs index 0182437..9c68cc9 100644 --- a/crates/shirabe/src/util/perforce.rs +++ b/crates/shirabe/src/util/perforce.rs @@ -2,19 +2,19 @@ use anyhow::Result; use indexmap::IndexMap; -use shirabe_external_packages::composer::pcre::preg::Preg; -use shirabe_external_packages::symfony::component::process::executable_finder::ExecutableFinder; -use shirabe_external_packages::symfony::component::process::process::Process; +use shirabe_external_packages::composer::pcre::Preg; +use shirabe_external_packages::symfony::component::process::ExecutableFinder; +use shirabe_external_packages::symfony::component::process::Process; use shirabe_php_shim::{ Exception, PHP_EOL, PhpMixed, chdir, count, date, explode, fclose, feof, fgets, file_get_contents, fopen, fwrite, gethostname, json_decode, str_replace_array, strcmp, strlen, strpos, strrpos, substr, time, trim, }; -use crate::io::io_interface::IOInterface; -use crate::util::filesystem::Filesystem; -use crate::util::platform::Platform; -use crate::util::process_executor::ProcessExecutor; +use crate::io::IOInterface; +use crate::util::Filesystem; +use crate::util::Platform; +use crate::util::ProcessExecutor; /// @phpstan-type RepoConfig array{unique_perforce_client_name?: string, depot?: string, branch?: string, p4user?: string, p4password?: string} #[derive(Debug)] diff --git a/crates/shirabe/src/util/platform.rs b/crates/shirabe/src/util/platform.rs index 64b3ae7..541fd56 100644 --- a/crates/shirabe/src/util/platform.rs +++ b/crates/shirabe/src/util/platform.rs @@ -3,7 +3,7 @@ use std::sync::Mutex; use anyhow::Result; -use shirabe_external_packages::composer::pcre::preg::Preg; +use shirabe_external_packages::composer::pcre::Preg; use shirabe_php_shim::{ PhpMixed, RuntimeException, defined, env_contains_key, env_get, env_set, env_unset, file_exists, file_get_contents, fopen, fstat, function_exists, getcwd, getenv, in_array, @@ -12,8 +12,8 @@ use shirabe_php_shim::{ server_unset, stream_isatty, stripos, strlen, strtoupper, substr, usleep, }; -use crate::util::process_executor::ProcessExecutor; -use crate::util::silencer::Silencer; +use crate::util::ProcessExecutor; +use crate::util::Silencer; /// Platform helper for uniform platform-specific tests. pub struct Platform; @@ -92,7 +92,7 @@ impl Platform { /// Parses tildes and environment variables in paths. pub fn expand_path(path: &str) -> String { - use shirabe_external_packages::composer::pcre::preg::CaptureKey; + use shirabe_external_packages::composer::pcre::CaptureKey; if Preg::is_match(r"#^~[\\/]#", path).unwrap_or(false) { return format!( "{}{}", diff --git a/crates/shirabe/src/util/process_executor.rs b/crates/shirabe/src/util/process_executor.rs index 41cb9f1..cd25fbc 100644 --- a/crates/shirabe/src/util/process_executor.rs +++ b/crates/shirabe/src/util/process_executor.rs @@ -5,14 +5,14 @@ use anyhow::Result; use indexmap::IndexMap; use std::sync::{LazyLock, Mutex}; -use shirabe_external_packages::composer::pcre::preg::{CaptureKey, Preg}; -use shirabe_external_packages::react::promise::promise::Promise; -use shirabe_external_packages::react::promise::promise_interface::PromiseInterface; -use shirabe_external_packages::seld::signal::signal_handler::SignalHandler; -use shirabe_external_packages::symfony::component::process::exception::process_signaled_exception::ProcessSignaledException; -use shirabe_external_packages::symfony::component::process::exception::runtime_exception::RuntimeException as SymfonyProcessRuntimeException; -use shirabe_external_packages::symfony::component::process::executable_finder::ExecutableFinder; -use shirabe_external_packages::symfony::component::process::process::Process; +use shirabe_external_packages::composer::pcre::{CaptureKey, Preg}; +use shirabe_external_packages::react::promise::Promise; +use shirabe_external_packages::react::promise::PromiseInterface; +use shirabe_external_packages::seld::signal::SignalHandler; +use shirabe_external_packages::symfony::component::process::ExecutableFinder; +use shirabe_external_packages::symfony::component::process::Process; +use shirabe_external_packages::symfony::component::process::exception::ProcessSignaledException; +use shirabe_external_packages::symfony::component::process::exception::RuntimeException as SymfonyProcessRuntimeException; use shirabe_php_shim::{ LogicException, PhpMixed, RuntimeException, array_intersect, array_map, call_user_func, defined, escapeshellarg, explode, implode, in_array, is_array, is_callable, is_dir, is_numeric, @@ -20,9 +20,9 @@ use shirabe_php_shim::{ substr_replace, trim, usleep, }; -use crate::io::io_interface::IOInterface; -use crate::util::github::GitHub; -use crate::util::platform::Platform; +use crate::io::IOInterface; +use crate::util::GitHub; +use crate::util::Platform; static EXECUTABLES: LazyLock>> = LazyLock::new(|| Mutex::new(IndexMap::new())); diff --git a/crates/shirabe/src/util/remote_filesystem.rs b/crates/shirabe/src/util/remote_filesystem.rs index 0ad5ff3..2e77fe8 100644 --- a/crates/shirabe/src/util/remote_filesystem.rs +++ b/crates/shirabe/src/util/remote_filesystem.rs @@ -2,7 +2,7 @@ use indexmap::IndexMap; -use shirabe_external_packages::composer::pcre::preg::{CaptureKey, Preg}; +use shirabe_external_packages::composer::pcre::{CaptureKey, Preg}; use shirabe_php_shim::{ FILTER_VALIDATE_BOOLEAN, PHP_URL_HOST, PHP_URL_PATH, PHP_VERSION_ID, PhpMixed, RuntimeException, STREAM_NOTIFY_FAILURE, STREAM_NOTIFY_FILE_SIZE_IS, STREAM_NOTIFY_PROGRESS, @@ -13,16 +13,16 @@ use shirabe_php_shim::{ }; use crate::config::Config; -use crate::downloader::max_file_size_exceeded_exception::MaxFileSizeExceededException; -use crate::downloader::transport_exception::TransportException; -use crate::io::io_interface::IOInterface; -use crate::util::auth_helper::AuthHelper; -use crate::util::http::proxy_manager::ProxyManager; -use crate::util::http::response::Response; -use crate::util::http_downloader::HttpDownloader; -use crate::util::platform::Platform; -use crate::util::stream_context_factory::StreamContextFactory; -use crate::util::url::Url; +use crate::downloader::MaxFileSizeExceededException; +use crate::downloader::TransportException; +use crate::io::IOInterface; +use crate::util::AuthHelper; +use crate::util::HttpDownloader; +use crate::util::Platform; +use crate::util::StreamContextFactory; +use crate::util::Url; +use crate::util::http::ProxyManager; +use crate::util::http::Response; /// Result of `RemoteFilesystem::get` — string content, `true` (for copy), or `false`. #[derive(Debug, Clone)] @@ -283,7 +283,7 @@ impl RemoteFilesystem { using_proxy ), true, - crate::io::io_interface::DEBUG, + crate::io::DEBUG, ); if (!Preg::is_match("{^http://(repo\\.)?packagist\\.org/p/}", &file_url).unwrap_or(false) @@ -301,7 +301,7 @@ impl RemoteFilesystem { self.io.write_error3( "Downloading (connecting...)", false, - crate::io::io_interface::NORMAL, + crate::io::NORMAL, ); } @@ -383,7 +383,7 @@ impl RemoteFilesystem { base64_encode(result.as_deref().unwrap_or("")) ), true, - crate::io::io_interface::DEBUG, + crate::io::DEBUG, ); return Err(anyhow::anyhow!(e)); @@ -426,8 +426,7 @@ impl RemoteFilesystem { let msg_owned = format!("{}", e); if !self.degraded_mode && strpos(&msg_owned, "Operation timed out").is_some() { self.degraded_mode = true; - self.io - .write_error3("", true, crate::io::io_interface::NORMAL); + self.io.write_error3("", true, crate::io::NORMAL); // TODO(phase-b): PHP writeError accepts an array of lines; joined here with newline. self.io.write_error3( &format!( @@ -435,7 +434,7 @@ impl RemoteFilesystem { msg_owned, ), true, - crate::io::io_interface::NORMAL, + crate::io::NORMAL, ); return self.get( @@ -523,7 +522,7 @@ impl RemoteFilesystem { "Downloading (failed)", false, None, - crate::io::io_interface::NORMAL, + crate::io::NORMAL, ); } @@ -558,7 +557,7 @@ impl RemoteFilesystem { ), false, None, - crate::io::io_interface::NORMAL, + crate::io::NORMAL, ); } @@ -584,7 +583,7 @@ impl RemoteFilesystem { e, ), true, - crate::io::io_interface::NORMAL, + crate::io::NORMAL, ); return self.get( @@ -644,7 +643,7 @@ impl RemoteFilesystem { if self.store_auth { let _ = self.auth_helper.store_auth( &self.origin_url, - crate::util::auth_helper::StoreAuth::Bool(self.store_auth), + crate::util::StoreAuth::Bool(self.store_auth), ); self.store_auth = false; } @@ -667,8 +666,7 @@ impl RemoteFilesystem { let msg_owned = format!("{}", e); if !self.degraded_mode && strpos(&msg_owned, "Operation timed out").is_some() { self.degraded_mode = true; - self.io - .write_error3("", true, crate::io::io_interface::NORMAL); + self.io.write_error3("", true, crate::io::NORMAL); // TODO(phase-b): PHP writeError accepts an array of lines; joined here with newline. self.io.write_error3( &format!( @@ -676,7 +674,7 @@ impl RemoteFilesystem { msg_owned, ), true, - crate::io::io_interface::NORMAL, + crate::io::NORMAL, ); return self.get( @@ -797,7 +795,7 @@ impl RemoteFilesystem { &format!("Downloading ({}%)", progression), false, None, - crate::io::io_interface::NORMAL, + crate::io::NORMAL, ); } } @@ -827,8 +825,7 @@ impl RemoteFilesystem { self.store_auth = matches!( result.store_auth, - crate::util::auth_helper::StoreAuth::Bool(true) - | crate::util::auth_helper::StoreAuth::Prompt + crate::util::StoreAuth::Bool(true) | crate::util::StoreAuth::Prompt ); self.retry = result.retry; @@ -973,8 +970,7 @@ impl RemoteFilesystem { if let Some(target_url) = target_url { self.redirects += 1; - self.io - .write_error3("", true, crate::io::io_interface::DEBUG); + self.io.write_error3("", true, crate::io::DEBUG); self.io.write_error3( &sprintf( "Following redirect (%u) %s", @@ -984,7 +980,7 @@ impl RemoteFilesystem { ], ), true, - crate::io::io_interface::DEBUG, + crate::io::DEBUG, ); additional_options.insert("redirects".to_string(), PhpMixed::Int(self.redirects)); diff --git a/crates/shirabe/src/util/stream_context_factory.rs b/crates/shirabe/src/util/stream_context_factory.rs index 783d47a..bb1948e 100644 --- a/crates/shirabe/src/util/stream_context_factory.rs +++ b/crates/shirabe/src/util/stream_context_factory.rs @@ -1,8 +1,8 @@ //! ref: composer/src/Composer/Util/StreamContextFactory.php use indexmap::IndexMap; -use shirabe_external_packages::composer::ca_bundle::ca_bundle::CaBundle; -use shirabe_external_packages::psr::log::logger_interface::LoggerInterface; +use shirabe_external_packages::composer::ca_bundle::CaBundle; +use shirabe_external_packages::psr::log::LoggerInterface; use shirabe_php_shim::{ HHVM_VERSION, PHP_MAJOR_VERSION, PHP_MINOR_VERSION, PHP_RELEASE_VERSION, PhpMixed, RuntimeException, array_replace_recursive, curl_version, extension_loaded, function_exists, @@ -10,11 +10,11 @@ use shirabe_php_shim::{ }; use crate::composer::Composer; -use crate::downloader::transport_exception::TransportException; -use crate::repository::platform_repository::PlatformRepository; -use crate::util::filesystem::Filesystem; -use crate::util::http::proxy_manager::ProxyManager; -use crate::util::platform::Platform; +use crate::downloader::TransportException; +use crate::repository::PlatformRepository; +use crate::util::Filesystem; +use crate::util::Platform; +use crate::util::http::ProxyManager; pub struct StreamContextFactory; diff --git a/crates/shirabe/src/util/svn.rs b/crates/shirabe/src/util/svn.rs index 15809df..aa81f0f 100644 --- a/crates/shirabe/src/util/svn.rs +++ b/crates/shirabe/src/util/svn.rs @@ -5,16 +5,16 @@ use std::sync::Mutex; use anyhow::Result; use indexmap::IndexMap; -use shirabe_external_packages::composer::pcre::preg::{CaptureKey, Preg}; +use shirabe_external_packages::composer::pcre::{CaptureKey, Preg}; use shirabe_php_shim::{ LogicException, PHP_URL_HOST, PhpMixed, RuntimeException, empty, implode, parse_url, parse_url_all, stripos, strpos, trim, }; use crate::config::Config; -use crate::io::io_interface::IOInterface; -use crate::util::platform::Platform; -use crate::util::process_executor::ProcessExecutor; +use crate::io::IOInterface; +use crate::util::Platform; +use crate::util::ProcessExecutor; #[derive(Debug, Clone)] pub struct SvnCredentials { diff --git a/crates/shirabe/src/util/sync_helper.rs b/crates/shirabe/src/util/sync_helper.rs index 7d69db3..f22b532 100644 --- a/crates/shirabe/src/util/sync_helper.rs +++ b/crates/shirabe/src/util/sync_helper.rs @@ -1,11 +1,11 @@ //! ref: composer/src/Composer/Util/SyncHelper.php -use crate::downloader::download_manager::DownloadManager; -use crate::downloader::downloader_interface::DownloaderInterface; -use crate::package::package_interface::PackageInterface; +use crate::downloader::DownloadManager; +use crate::downloader::DownloaderInterface; +use crate::package::PackageInterface; use crate::util::r#loop::Loop; use anyhow::Result; -use shirabe_external_packages::react::promise::promise_interface::PromiseInterface; +use shirabe_external_packages::react::promise::PromiseInterface; pub enum DownloaderOrManager<'a> { Interface(&'a dyn DownloaderInterface), diff --git a/crates/shirabe/src/util/tls_helper.rs b/crates/shirabe/src/util/tls_helper.rs index 21b53a4..0c20dd4 100644 --- a/crates/shirabe/src/util/tls_helper.rs +++ b/crates/shirabe/src/util/tls_helper.rs @@ -1,7 +1,7 @@ //! ref: composer/src/Composer/Util/TlsHelper.php -use shirabe_external_packages::composer::ca_bundle::ca_bundle::CaBundle; -use shirabe_external_packages::composer::pcre::preg::Preg; +use shirabe_external_packages::composer::ca_bundle::CaBundle; +use shirabe_external_packages::composer::pcre::Preg; use shirabe_php_shim::{ PhpMixed, RuntimeException, base64_decode, openssl_get_publickey, openssl_pkey_get_details, openssl_x509_parse, preg_quote, substr_count, diff --git a/crates/shirabe/src/util/url.rs b/crates/shirabe/src/util/url.rs index 9ee5dc9..a6736aa 100644 --- a/crates/shirabe/src/util/url.rs +++ b/crates/shirabe/src/util/url.rs @@ -1,9 +1,9 @@ //! ref: composer/src/Composer/Util/Url.php use crate::config::Config; -use crate::util::github::GitHub; +use crate::util::GitHub; use indexmap::IndexMap; -use shirabe_external_packages::composer::pcre::preg::{CaptureKey, Preg}; +use shirabe_external_packages::composer::pcre::{CaptureKey, Preg}; use shirabe_php_shim::{PHP_URL_HOST, PHP_URL_PORT, PhpMixed, in_array, parse_url}; pub struct Url; -- cgit v1.3.1