From 930ee1ec0ba4c7de0c5f5139eb0a3d36f2a9358d Mon Sep 17 00:00:00 2001 From: expl Date: Wed, 19 Nov 2025 08:31:53 +0900 Subject: [PATCH] Renovation with 2024 edition --- docker/Dockerfile | 2 +- examples/clear_emulator/Cargo.toml | 4 ++-- examples/clear_emulator/src/main.rs | 2 +- examples/get_users/Cargo.toml | 4 ++-- examples/get_users/src/main.rs | 3 ++- examples/verify_token/Cargo.toml | 4 ++-- examples/verify_token/src/main.rs | 2 +- lib/Cargo.toml | 14 +++++++------- lib/src/auth/claims/mod.rs | 4 ++-- lib/src/auth/claims/test.rs | 2 +- lib/src/auth/mod.rs | 2 +- lib/src/auth/test.rs | 2 +- lib/src/auth/token/crypto/mod.rs | 8 ++++---- lib/src/auth/token/jwt/mod.rs | 4 ++-- lib/src/auth/token/jwt/util.rs | 2 +- lib/src/auth/token/test.rs | 2 +- lib/src/client/mod.rs | 2 +- lib/src/credentials/mod.rs | 2 +- lib/src/credentials/test.rs | 4 ++-- lib/src/lib.rs | 6 +++--- lib/src/util/serialize.rs | 6 +++--- 21 files changed, 41 insertions(+), 40 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 265bce8..36526c2 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,4 +1,4 @@ -FROM rust:1.81 +FROM rust:1.85 RUN rustup update RUN rustup component add clippy diff --git a/examples/clear_emulator/Cargo.toml b/examples/clear_emulator/Cargo.toml index af07324..c3ac4d5 100644 --- a/examples/clear_emulator/Cargo.toml +++ b/examples/clear_emulator/Cargo.toml @@ -1,10 +1,10 @@ [package] name = "clear_emulator" version = "0.1.0" -edition = "2021" +edition = "2024" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] rs-firebase-admin-sdk = { path = "../../lib" } -tokio = { version = "1.25.0", features = ["macros", "rt-multi-thread"] } \ No newline at end of file +tokio = { version = "1.48", features = ["macros", "rt-multi-thread"] } \ No newline at end of file diff --git a/examples/clear_emulator/src/main.rs b/examples/clear_emulator/src/main.rs index a547d2f..35ac3b9 100644 --- a/examples/clear_emulator/src/main.rs +++ b/examples/clear_emulator/src/main.rs @@ -1,4 +1,4 @@ -use rs_firebase_admin_sdk::{auth::FirebaseEmulatorAuthService, client::ApiHttpClient, App}; +use rs_firebase_admin_sdk::{App, auth::FirebaseEmulatorAuthService, client::ApiHttpClient}; async fn clear_emulator(auth_emulator_admin: &A) where diff --git a/examples/get_users/Cargo.toml b/examples/get_users/Cargo.toml index 8d550c5..37763ef 100644 --- a/examples/get_users/Cargo.toml +++ b/examples/get_users/Cargo.toml @@ -1,10 +1,10 @@ [package] name = "get_users" version = "0.1.0" -edition = "2021" +edition = "2024" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] rs-firebase-admin-sdk = { path = "../../lib" } -tokio = { version = "1.25.0", features = ["macros", "rt-multi-thread"] } \ No newline at end of file +tokio = { version = "1.48", features = ["macros", "rt-multi-thread"] } \ No newline at end of file diff --git a/examples/get_users/src/main.rs b/examples/get_users/src/main.rs index 3a6765e..3388820 100644 --- a/examples/get_users/src/main.rs +++ b/examples/get_users/src/main.rs @@ -1,7 +1,8 @@ use rs_firebase_admin_sdk::{ + App, auth::{FirebaseAuthService, UserList}, client::ApiHttpClient, - credentials_provider, App, + credentials_provider, }; /// Generic method to print out all live users, fetch 10 at a time diff --git a/examples/verify_token/Cargo.toml b/examples/verify_token/Cargo.toml index 6f3b65d..66a29e1 100644 --- a/examples/verify_token/Cargo.toml +++ b/examples/verify_token/Cargo.toml @@ -1,10 +1,10 @@ [package] name = "verify_token" version = "0.1.0" -edition = "2021" +edition = "2024" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] rs-firebase-admin-sdk = { path = "../../lib", features = ["tokens"] } -tokio = { version = "1.25.0", features = ["macros", "rt-multi-thread"] } \ No newline at end of file +tokio = { version = "1.48", features = ["macros", "rt-multi-thread"] } \ No newline at end of file diff --git a/examples/verify_token/src/main.rs b/examples/verify_token/src/main.rs index 66bb720..d9f0386 100644 --- a/examples/verify_token/src/main.rs +++ b/examples/verify_token/src/main.rs @@ -1,4 +1,4 @@ -use rs_firebase_admin_sdk::{auth::token::TokenVerifier, credentials_provider, App}; +use rs_firebase_admin_sdk::{App, auth::token::TokenVerifier, credentials_provider}; async fn verify_token(token: &str, verifier: &T) { match verifier.verify_token(token).await { diff --git a/lib/Cargo.toml b/lib/Cargo.toml index 166c335..d0323b3 100644 --- a/lib/Cargo.toml +++ b/lib/Cargo.toml @@ -1,8 +1,8 @@ [package] name = "rs-firebase-admin-sdk" -version = "2.4.0" -rust-version = "1.81" -edition = "2021" +version = "3.0.0" +rust-version = "1.85" +edition = "2024" authors = ["Kostas Petrikas"] categories = ["authentication", "api-bindings", "asynchronous"] description = "Firebase Admin SDK for Rust" @@ -19,12 +19,12 @@ rustls-tls = ["reqwest/rustls-tls"] tokens = ["dep:openssl"] [dependencies] -tokio = { version = "1.43", features = ["sync"], default-features = false } -error-stack = "0.5" +tokio = { version = "1.48", features = ["sync"], default-features = false } +error-stack = "0.6" thiserror = "2.0" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" -http = "1.2" +http = "1.3" headers = "0.4" reqwest = { version = "0.12", features = ["charset", "json"], default-features = false } urlencoding = "2.1" @@ -35,5 +35,5 @@ base64 = "0.22" openssl = { version = "0.10", optional = true } [dev-dependencies] -tokio = { version = "1.43", features = ["macros", "rt-multi-thread"] } +tokio = { version = "1.48", features = ["macros", "rt-multi-thread"] } serial_test = "3.2" diff --git a/lib/src/auth/claims/mod.rs b/lib/src/auth/claims/mod.rs index 9315a9e..8d6fa72 100644 --- a/lib/src/auth/claims/mod.rs +++ b/lib/src/auth/claims/mod.rs @@ -4,7 +4,7 @@ mod test; use serde::de::{self, Visitor}; use serde::ser::Error; use serde::{Serialize, Serializer}; -use serde_json::{from_str, to_string, Value}; +use serde_json::{Value, from_str, to_string}; use std::collections::BTreeMap; use std::fmt; @@ -31,7 +31,7 @@ impl From> for Claims { struct ClaimsVisitor; -impl<'de> Visitor<'de> for ClaimsVisitor { +impl Visitor<'_> for ClaimsVisitor { type Value = Claims; fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result { diff --git a/lib/src/auth/claims/test.rs b/lib/src/auth/claims/test.rs index dea48fe..0b88beb 100644 --- a/lib/src/auth/claims/test.rs +++ b/lib/src/auth/claims/test.rs @@ -1,5 +1,5 @@ use super::Claims; -use serde_json::{to_string, Value}; +use serde_json::{Value, to_string}; #[test] fn test_claims() { diff --git a/lib/src/auth/mod.rs b/lib/src/auth/mod.rs index 16bb4ec..d92e606 100644 --- a/lib/src/auth/mod.rs +++ b/lib/src/auth/mod.rs @@ -11,8 +11,8 @@ pub mod oob_code; pub mod token; use crate::api_uri::{ApiUriBuilder, FirebaseAuthEmulatorRestApi, FirebaseAuthRestApi}; -use crate::client::error::ApiClientError; use crate::client::ApiHttpClient; +use crate::client::error::ApiClientError; use crate::util::{I128EpochMs, StrEpochMs, StrEpochSec}; pub use claims::Claims; use error_stack::Report; diff --git a/lib/src/auth/test.rs b/lib/src/auth/test.rs index f22f623..b25fcbb 100644 --- a/lib/src/auth/test.rs +++ b/lib/src/auth/test.rs @@ -5,9 +5,9 @@ use super::{ AttributeOp, Claims, FirebaseAuth, FirebaseAuthService, FirebaseEmulatorAuthService, NewUser, OobCode, OobCodeAction, OobCodeActionType, UserIdentifiers, UserList, UserUpdate, }; +use crate::App; use crate::client::ReqwestApiClient; use crate::credentials::emulator::EmulatorCredentials; -use crate::App; use serde::{Deserialize, Serialize}; use serde_json::Value; use serial_test::serial; diff --git a/lib/src/auth/token/crypto/mod.rs b/lib/src/auth/token/crypto/mod.rs index 0c2e495..0be6677 100644 --- a/lib/src/auth/token/crypto/mod.rs +++ b/lib/src/auth/token/crypto/mod.rs @@ -1,4 +1,4 @@ -use super::jwt::{error::JWTError, JwtSigner}; +use super::jwt::{JwtSigner, error::JWTError}; use base64::{self, Engine}; use error_stack::{Report, ResultExt}; use openssl::{ @@ -9,12 +9,12 @@ use openssl::{ pkey::{PKey, Private, Public}, rsa::Rsa, sign::{Signer, Verifier}, - x509::{X509Name, X509}, + x509::{X509, X509Name}, }; use serde::de::{self, Visitor}; use std::fmt; -impl<'a> JwtSigner for Signer<'a> { +impl JwtSigner for Signer<'_> { fn sign_jwt(&mut self, header: &str, payload: &str) -> Result> { self.update(header.as_bytes()) .change_context(JWTError::FailedToEncode)?; @@ -51,7 +51,7 @@ impl JwtRsaPubKey { struct JwtRsaPubKeyVisitor; -impl<'de> Visitor<'de> for JwtRsaPubKeyVisitor { +impl Visitor<'_> for JwtRsaPubKeyVisitor { type Value = JwtRsaPubKey; fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result { diff --git a/lib/src/auth/token/jwt/mod.rs b/lib/src/auth/token/jwt/mod.rs index 020be74..1864d7b 100644 --- a/lib/src/auth/token/jwt/mod.rs +++ b/lib/src/auth/token/jwt/mod.rs @@ -8,9 +8,9 @@ use base64::{self, Engine}; use error::JWTError; use error_stack::{Report, ResultExt}; use serde::{Deserialize, Serialize}; -use serde_json::{from_slice, to_string, Value}; +use serde_json::{Value, from_slice, to_string}; use std::collections::BTreeMap; -use time::{serde::timestamp, OffsetDateTime}; +use time::{OffsetDateTime, serde::timestamp}; #[derive(Debug, Deserialize, Serialize, Clone, Eq, PartialEq)] pub enum JWTAlgorithm { diff --git a/lib/src/auth/token/jwt/util.rs b/lib/src/auth/token/jwt/util.rs index 8b80a34..bab63b4 100644 --- a/lib/src/auth/token/jwt/util.rs +++ b/lib/src/auth/token/jwt/util.rs @@ -1,4 +1,4 @@ -use super::{encode_jwt, TokenClaims, TokenHeader}; +use super::{TokenClaims, TokenHeader, encode_jwt}; use crate::auth::token::crypto::generate_test_cert; use openssl::{hash::MessageDigest, sign::Signer, x509::X509}; diff --git a/lib/src/auth/token/test.rs b/lib/src/auth/token/test.rs index 8ccfddc..ea5ba5d 100644 --- a/lib/src/auth/token/test.rs +++ b/lib/src/auth/token/test.rs @@ -1,6 +1,6 @@ use super::cache::{CacheClient, HttpCache, Resource}; use super::crypto::generate_test_cert; -use super::jwt::{util::generate_test_token, JWTAlgorithm, JWToken, TokenClaims, TokenHeader}; +use super::jwt::{JWTAlgorithm, JWToken, TokenClaims, TokenHeader, util::generate_test_token}; use super::{LiveTokenVerifier, TokenVerificationError}; use error_stack::Report; use serde_json::to_string; diff --git a/lib/src/client/mod.rs b/lib/src/client/mod.rs index a5daa77..ec48b9e 100644 --- a/lib/src/client/mod.rs +++ b/lib/src/client/mod.rs @@ -8,7 +8,7 @@ use bytes::Bytes; use error::{ApiClientError, FireBaseAPIErrorResponse}; use error_stack::{Report, ResultExt}; use http::Method; -use serde::{de::DeserializeOwned, Serialize}; +use serde::{Serialize, de::DeserializeOwned}; use std::future::Future; use std::iter::Iterator; use url_params::UrlParams; diff --git a/lib/src/credentials/mod.rs b/lib/src/credentials/mod.rs index 71f1858..eb73eed 100644 --- a/lib/src/credentials/mod.rs +++ b/lib/src/credentials/mod.rs @@ -9,7 +9,7 @@ mod test; use error::CredentialsError; use error_stack::{Report, ResultExt}; -use headers::{authorization::Bearer, Authorization, HeaderMapExt}; +use headers::{Authorization, HeaderMapExt, authorization::Bearer}; use headers::{Header, HeaderName, HeaderValue}; use http::header::HeaderMap; use std::future::Future; diff --git a/lib/src/credentials/test.rs b/lib/src/credentials/test.rs index 645da72..e339915 100644 --- a/lib/src/credentials/test.rs +++ b/lib/src/credentials/test.rs @@ -1,5 +1,5 @@ -use super::{emulator::EmulatorCredentials, Credentials, GoogleUserProject}; -use headers::{authorization::Bearer, Authorization, HeaderMapExt}; +use super::{Credentials, GoogleUserProject, emulator::EmulatorCredentials}; +use headers::{Authorization, HeaderMapExt, authorization::Bearer}; use http::header::{HeaderMap, HeaderValue}; #[tokio::test] diff --git a/lib/src/lib.rs b/lib/src/lib.rs index 0a28314..cf130c2 100644 --- a/lib/src/lib.rs +++ b/lib/src/lib.rs @@ -8,16 +8,16 @@ use auth::FirebaseAuth; #[cfg(feature = "tokens")] use auth::token::{ + EmulatedTokenVerifier, GOOGLE_COOKIE_PUB_KEY_URI, GOOGLE_PUB_KEY_URI, LiveTokenVerifier, cache::{HttpCache, PubKeys}, error::TokenVerificationError, - EmulatedTokenVerifier, LiveTokenVerifier, GOOGLE_COOKIE_PUB_KEY_URI, GOOGLE_PUB_KEY_URI, }; use client::ReqwestApiClient; use credentials::emulator::EmulatorCredentials; -pub use credentials::{error::CredentialsError, Credentials}; +pub use credentials::{Credentials, error::CredentialsError}; use error_stack::{Report, ResultExt}; -pub use gcp_auth::provider as credentials_provider; use gcp_auth::TokenProvider; +pub use gcp_auth::provider as credentials_provider; use std::sync::Arc; /// Default Firebase Auth admin manager diff --git a/lib/src/util/serialize.rs b/lib/src/util/serialize.rs index a013219..4eea36b 100644 --- a/lib/src/util/serialize.rs +++ b/lib/src/util/serialize.rs @@ -21,7 +21,7 @@ impl From for OffsetDateTime { struct StrEpochMsVisitor; -impl<'de> Visitor<'de> for StrEpochMsVisitor { +impl Visitor<'_> for StrEpochMsVisitor { type Value = StrEpochMs; fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result { @@ -69,7 +69,7 @@ impl From for OffsetDateTime { struct StrEpochSecVisitor; -impl<'de> Visitor<'de> for StrEpochSecVisitor { +impl Visitor<'_> for StrEpochSecVisitor { type Value = StrEpochSec; fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result { @@ -117,7 +117,7 @@ impl From for OffsetDateTime { struct I128EpochMsVisitor; -impl<'de> Visitor<'de> for I128EpochMsVisitor { +impl Visitor<'_> for I128EpochMsVisitor { type Value = I128EpochMs; fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {