diff --git a/Cargo.lock b/Cargo.lock index 665005e..ae6e915 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1166,12 +1166,6 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05ca71f324d19e85a2e976be04b5ecbb193253794a75adfe2e5044c8bef03f6a" -[[package]] -name = "convert_case" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" - [[package]] name = "core-foundation" version = "0.9.4" @@ -1602,19 +1596,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "derive_more" -version = "0.99.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" -dependencies = [ - "convert_case", - "proc-macro2", - "quote", - "rustc_version", - "syn 1.0.109", -] - [[package]] name = "des" version = "0.8.1" @@ -1911,7 +1892,6 @@ dependencies = [ "base64 0.22.1", "did-method-key", "didkit", - "iana-media-types", "jsonschema", "libipld 0.16.0", "libipld-cbor 0.16.0", @@ -2921,16 +2901,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "iana-media-types" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd90d3ef17e5e24acdd48bd423a7836e8d681ff771de493ab021c91916fd282d" -dependencies = [ - "derive_more", - "serde", -] - [[package]] name = "iana-time-zone" version = "0.1.60" diff --git a/README.md b/README.md index d951d3e..24790d2 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,6 @@ Rust implementation of a [Decentralized Web Node](https://identity.foundation/de use std::sync::Arc; use dwn::{actor::Actor, message::Data, store::SurrealStore, DWN}; -use iana_media_types::Application; use surrealdb::{Surreal, engine::local::Mem}; #[tokio::main] @@ -31,7 +30,7 @@ async fn main() { let create = actor .create_record() .data(data.clone()) - .data_format(Application::Json.into()) + .data_format("application/json".to_string()) .process() .await .unwrap(); diff --git a/crates/dwn-server/tests/schema.rs b/crates/dwn-server/tests/schema.rs index 04c86bb..26df606 100644 --- a/crates/dwn-server/tests/schema.rs +++ b/crates/dwn-server/tests/schema.rs @@ -3,7 +3,7 @@ use std::sync::Arc; use axum::{routing::get, Json, Router}; use dwn::{ actor::{records::Encryption, Actor}, - message::{descriptor::iana_media_types::Application, Data}, + message::Data, store::SurrealStore, DWN, }; @@ -56,7 +56,7 @@ async fn test_records_schema() { let create = actor .create_record() .data(data.clone()) - .data_format(Application::Json.into()) + .data_format("application/json".to_string()) .schema(schema_url.clone()) .process() .await; @@ -67,7 +67,7 @@ async fn test_records_schema() { let create = actor .create_record() .data(data.clone()) - .data_format(Application::Json.into()) + .data_format("application/json".to_string()) .schema(schema_url.clone()) .process() .await @@ -87,7 +87,7 @@ async fn test_records_schema() { let create_two = actor .create_record() .data(data.clone()) - .data_format(Application::Json.into()) + .data_format("application/json".to_string()) .schema(schema_url.clone()) .process() .await @@ -101,7 +101,7 @@ async fn test_records_schema() { let update = actor .update_record(create.record_id.clone(), create.entry_id.clone()) .data(data.clone()) - .data_format(Application::Json.into()) + .data_format("application/json".to_string()) .process() .await; assert!(update.is_err()); @@ -109,7 +109,7 @@ async fn test_records_schema() { let update = actor .update_record(create.record_id.clone(), create.entry_id.clone()) .data(data.clone()) - .data_format(Application::Json.into()) + .data_format("application/json".to_string()) .schema(schema_url.clone()) .process() .await; @@ -120,7 +120,7 @@ async fn test_records_schema() { let update = actor .update_record(create.record_id.clone(), create.entry_id.clone()) .data(data.clone()) - .data_format(Application::Json.into()) + .data_format("application/json".to_string()) .process() .await; assert!(update.is_err()); @@ -128,7 +128,7 @@ async fn test_records_schema() { let update = actor .update_record(create.record_id.clone(), create.entry_id.clone()) .data(data.clone()) - .data_format(Application::Json.into()) + .data_format("application/json".to_string()) .schema("http://localhost:1234/new-schema.json".to_string()) .process() .await; @@ -139,7 +139,7 @@ async fn test_records_schema() { let update = actor .update_record(create.record_id.clone(), create.entry_id.clone()) .data(data.clone()) - .data_format(Application::Json.into()) + .data_format("application/json".to_string()) .schema(schema_url.clone()) .encryption(&encryption) .process() @@ -149,7 +149,7 @@ async fn test_records_schema() { let update = actor .update_record(create.record_id.clone(), create.entry_id.clone()) .data(data.clone()) - .data_format(Application::Json.into()) + .data_format("application/json".to_string()) .schema(schema_url) .process() .await diff --git a/crates/dwn-server/tests/send.rs b/crates/dwn-server/tests/send.rs index f133fff..e57d5d9 100644 --- a/crates/dwn-server/tests/send.rs +++ b/crates/dwn-server/tests/send.rs @@ -12,7 +12,6 @@ use didkit::{ }; use dwn::{ actor::{Actor, MessageBuilder}, - message::descriptor::iana_media_types::Application, store::SurrealStore, DWN, }; @@ -104,7 +103,7 @@ async fn test_send() { let create = alice_osaka .create_record() .data(data.to_vec()) - .data_format(Application::Json.into()) + .data_format("application/json".to_string()) .published(true) .process() .await diff --git a/crates/dwn-server/tests/sync.rs b/crates/dwn-server/tests/sync.rs index 27cba60..1248bd8 100644 --- a/crates/dwn-server/tests/sync.rs +++ b/crates/dwn-server/tests/sync.rs @@ -2,10 +2,7 @@ use std::sync::Arc; use dwn::{ actor::Actor, - message::{ - descriptor::{iana_media_types::Application, Descriptor}, - Data, - }, + message::{descriptor::Descriptor, Data}, store::{DataStore, MessageStore, SurrealStore}, DWN, }; @@ -79,7 +76,7 @@ async fn test_read_remote() { let create = alice_osaka .create_record() .data(data.clone()) - .data_format(Application::Json.into()) + .data_format("application/json".to_string()) .process() .await .unwrap(); @@ -125,7 +122,7 @@ async fn test_sync_push() { let create = alice_kyoto .create_record() .data(data.clone()) - .data_format(Application::Json.into()) + .data_format("application/json".to_string()) .process() .await .unwrap(); @@ -168,7 +165,7 @@ async fn test_sync_pull_update() { let create = alice_osaka .create_record() .data(data.clone()) - .data_format(Application::Json.into()) + .data_format("application/json".to_string()) .process() .await .unwrap(); @@ -189,7 +186,7 @@ async fn test_sync_pull_update() { let update = alice_osaka .update_record(create.record_id.clone(), create.entry_id.clone()) .data(new_data.clone()) - .data_format(Application::Json.into()) + .data_format("application/json".to_string()) .process() .await .unwrap(); @@ -234,7 +231,7 @@ async fn test_sync_pull_many_updates() { let create = alice_osaka .create_record() .data(data.clone()) - .data_format(Application::Json.into()) + .data_format("application/json".to_string()) .process() .await .unwrap(); @@ -255,7 +252,7 @@ async fn test_sync_pull_many_updates() { let update = alice_osaka .update_record(create.record_id.clone(), create.entry_id.clone()) .data(new_data.clone()) - .data_format(Application::Json.into()) + .data_format("application/json".to_string()) .process() .await .unwrap(); @@ -266,7 +263,7 @@ async fn test_sync_pull_many_updates() { let update = alice_osaka .update_record(create.record_id.clone(), update.entry_id.clone()) .data(newer_data.clone()) - .data_format(Application::Json.into()) + .data_format("application/json".to_string()) .process() .await .unwrap(); @@ -311,7 +308,7 @@ async fn test_sync_pull_delete() { let create = alice_osaka .create_record() .data(data.clone()) - .data_format(Application::Json.into()) + .data_format("application/json".to_string()) .process() .await .unwrap(); @@ -378,7 +375,7 @@ async fn test_sync_pull_delete_after_update() { let create = alice_osaka .create_record() .data(data.clone()) - .data_format(Application::Json.into()) + .data_format("application/json".to_string()) .process() .await .unwrap(); @@ -400,7 +397,7 @@ async fn test_sync_pull_delete_after_update() { let update = alice_osaka .update_record(create.record_id.clone(), create.entry_id.clone()) .data(new_data.clone()) - .data_format(Application::Json.into()) + .data_format("application/json".to_string()) .process() .await .unwrap(); @@ -465,7 +462,7 @@ async fn test_sync_pull_delete_after_local_update() { let create = alice_osaka .create_record() .data(data.clone()) - .data_format(Application::Json.into()) + .data_format("application/json".to_string()) .process() .await .unwrap(); @@ -486,7 +483,7 @@ async fn test_sync_pull_delete_after_local_update() { let update = alice_kyoto .update_record(create.record_id.clone(), create.entry_id.clone()) .data(new_data.clone()) - .data_format(Application::Json.into()) + .data_format("application/json".to_string()) .process() .await .unwrap(); diff --git a/crates/dwn/Cargo.toml b/crates/dwn/Cargo.toml index e6ae260..5826161 100644 --- a/crates/dwn/Cargo.toml +++ b/crates/dwn/Cargo.toml @@ -18,7 +18,6 @@ anyhow = "1.0.82" base64 = "0.22.0" did-method-key = "0.2.2" didkit.workspace = true -iana-media-types = "0.1.2" jsonschema = { version = "0.17.1", default-features = false, features = ["draft201909", "draft202012"] } libipld = { version = "0.16.0", features = ["serde-codec"] } libipld-cbor = "0.16.0" diff --git a/crates/dwn/src/actor/records/write.rs b/crates/dwn/src/actor/records/write.rs index b9c1c4b..af5a1c6 100644 --- a/crates/dwn/src/actor/records/write.rs +++ b/crates/dwn/src/actor/records/write.rs @@ -1,6 +1,5 @@ use aes_gcm::{aead::OsRng, Aes256Gcm, KeyInit}; use base64::{engine::general_purpose::URL_SAFE_NO_PAD, Engine}; -use iana_media_types::MediaType; use semver::Version; use time::OffsetDateTime; @@ -27,7 +26,7 @@ pub struct RecordsWriteBuilder<'a, D: DataStore, M: MessageStore> { actor: &'a Actor, authorized: bool, data: Option>, - data_format: Option, + data_format: Option, encryption: Option<&'a Encryption>, parent_context_id: Option, parent_id: Option, @@ -182,7 +181,7 @@ impl<'a, D: DataStore, M: MessageStore> RecordsWriteBuilder<'a, D, M> { } /// Format of the data. - pub fn data_format(mut self, data_format: MediaType) -> Self { + pub fn data_format(mut self, data_format: String) -> Self { self.data_format = Some(data_format); self } diff --git a/crates/dwn/src/lib.rs b/crates/dwn/src/lib.rs index a0ca0f4..3572e62 100644 --- a/crates/dwn/src/lib.rs +++ b/crates/dwn/src/lib.rs @@ -6,7 +6,6 @@ //! use std::sync::Arc; //! //! use dwn::{actor::Actor, message::Data, store::SurrealStore, DWN}; -//! use iana_media_types::Application; //! use surrealdb::{Surreal, engine::local::Mem}; //! //! #[tokio::main] @@ -27,7 +26,7 @@ //! let create = actor //! .create_record() //! .data(data.clone()) -//! .data_format(Application::Json.into()) +//! .data_format("text/plain".to_string()) //! .process() //! .await //! .unwrap(); diff --git a/crates/dwn/src/message/descriptor/mod.rs b/crates/dwn/src/message/descriptor/mod.rs index 86a606a..168d222 100644 --- a/crates/dwn/src/message/descriptor/mod.rs +++ b/crates/dwn/src/message/descriptor/mod.rs @@ -10,8 +10,6 @@ use self::{ pub mod protocols; pub mod records; -pub use iana_media_types; - #[derive(Clone, Debug, Deserialize, Serialize, PartialEq)] pub enum Interface { Permissions, diff --git a/crates/dwn/src/message/descriptor/protocols/configure.rs b/crates/dwn/src/message/descriptor/protocols/configure.rs index be4dc2e..40d2e83 100644 --- a/crates/dwn/src/message/descriptor/protocols/configure.rs +++ b/crates/dwn/src/message/descriptor/protocols/configure.rs @@ -1,6 +1,5 @@ use std::collections::HashMap; -use iana_media_types::MediaType; use semver::Version; use serde::{Deserialize, Deserializer, Serialize}; @@ -67,7 +66,7 @@ impl ProtocolDefinition { #[derive(Clone, Debug, Default, Deserialize, Serialize, PartialEq)] pub struct StructureType { #[serde(rename = "dataFormat", skip_serializing_if = "Option::is_none")] - pub data_format: Option>, + pub data_format: Option>, #[serde(skip_serializing_if = "Option::is_none")] pub schema: Option, } diff --git a/crates/dwn/src/message/descriptor/records/query.rs b/crates/dwn/src/message/descriptor/records/query.rs index ce99330..2f9e331 100644 --- a/crates/dwn/src/message/descriptor/records/query.rs +++ b/crates/dwn/src/message/descriptor/records/query.rs @@ -1,4 +1,3 @@ -use iana_media_types::MediaType; use semver::Version; use serde::{Deserialize, Serialize}; use time::OffsetDateTime; @@ -44,7 +43,7 @@ pub struct RecordsFilter { #[serde(rename = "contextId", skip_serializing_if = "Option::is_none")] pub context_id: Option, #[serde(rename = "dataFormat", skip_serializing_if = "Option::is_none")] - pub data_format: Option, + pub data_format: Option, #[serde(rename = "dateSort", skip_serializing_if = "Option::is_none")] pub date_sort: Option, #[serde(rename = "messageTimestamp", skip_serializing_if = "Option::is_none")] @@ -91,8 +90,6 @@ pub enum FilterDateSort { #[cfg(test)] mod tests { - use iana_media_types::Application; - use super::*; #[test] @@ -100,7 +97,7 @@ mod tests { let filter = RecordsFilter { attester: Some("did:key:z6Mk".to_string()), context_id: Some("https://w3id.org/did/v1".to_string()), - data_format: Some(MediaType::Application(Application::Json)), + data_format: Some("application/json".to_string()), date_sort: Some(FilterDateSort::CreatedAscending), message_timestamp: Some(FilterDateCreated { from: Some(OffsetDateTime::now_utc()), diff --git a/crates/dwn/src/message/descriptor/records/write.rs b/crates/dwn/src/message/descriptor/records/write.rs index bed72b7..5a70458 100644 --- a/crates/dwn/src/message/descriptor/records/write.rs +++ b/crates/dwn/src/message/descriptor/records/write.rs @@ -1,4 +1,3 @@ -use iana_media_types::MediaType; use serde::{Deserialize, Serialize}; use time::OffsetDateTime; @@ -14,7 +13,7 @@ pub struct RecordsWrite { #[serde(skip_serializing_if = "Option::is_none")] pub data_cid: Option, #[serde(skip_serializing_if = "Option::is_none")] - pub data_format: Option, + pub data_format: Option, #[serde(rename = "datePublished", with = "time::serde::rfc3339::option")] #[serde(skip_serializing_if = "Option::is_none")] pub date_published: Option, diff --git a/crates/dwn/tests/encrypt.rs b/crates/dwn/tests/encrypt.rs index f0322fe..d8cb23f 100644 --- a/crates/dwn/tests/encrypt.rs +++ b/crates/dwn/tests/encrypt.rs @@ -6,7 +6,6 @@ use dwn::{ store::SurrealStore, DWN, }; -use iana_media_types::Application; use surrealdb::{engine::local::Mem, Surreal}; use tracing_test::traced_test; @@ -26,7 +25,7 @@ async fn test_encrypt() { let create = actor .create_record() .data(data.clone()) - .data_format(Application::Json.into()) + .data_format("text/plain".to_string()) .encryption(&encryption) .process() .await diff --git a/crates/dwn/tests/publish.rs b/crates/dwn/tests/publish.rs index 019266a..93bb46b 100644 --- a/crates/dwn/tests/publish.rs +++ b/crates/dwn/tests/publish.rs @@ -6,7 +6,6 @@ use dwn::{ store::SurrealStore, DWN, }; -use iana_media_types::Application; use surrealdb::{engine::local::Mem, Surreal}; use tracing_test::traced_test; @@ -25,7 +24,7 @@ async fn test_publish() { let create = actor .create_record() .data(data.clone()) - .data_format(Application::Json.into()) + .data_format("application/json".to_string()) .process() .await .unwrap(); @@ -75,7 +74,7 @@ async fn test_publish() { let create = actor .create_record() .data(data.clone()) - .data_format(Application::Json.into()) + .data_format("application/json".to_string()) .published(true) .process() .await diff --git a/crates/dwn/tests/query.rs b/crates/dwn/tests/query.rs index 172e732..0104958 100644 --- a/crates/dwn/tests/query.rs +++ b/crates/dwn/tests/query.rs @@ -6,7 +6,6 @@ use dwn::{ store::SurrealStore, DWN, }; -use iana_media_types::Application; use surrealdb::{engine::local::Mem, Surreal}; use time::OffsetDateTime; use tracing_test::traced_test; @@ -34,7 +33,7 @@ async fn test_filter_date_sort() { let create = actor .create_record() .data(data) - .data_format(Application::Json.into()) + .data_format("application/json".to_string()) .process() .await .unwrap(); @@ -134,7 +133,7 @@ async fn test_filter_message_timestamp() { let create = actor .create_record() .data(data) - .data_format(Application::Json.into()) + .data_format("application/json".to_string()) .process() .await .unwrap(); @@ -262,7 +261,7 @@ async fn test_query_records_delete() { let create = actor .create_record() .data(data) - .data_format(Application::Json.into()) + .data_format("application/json".to_string()) .process() .await .unwrap(); diff --git a/crates/dwn/tests/records.rs b/crates/dwn/tests/records.rs index 7fd42ff..86dceaf 100644 --- a/crates/dwn/tests/records.rs +++ b/crates/dwn/tests/records.rs @@ -6,7 +6,6 @@ use dwn::{ store::SurrealStore, DWN, }; -use iana_media_types::Application; use surrealdb::{engine::local::Mem, Surreal}; use tracing_test::traced_test; @@ -25,7 +24,7 @@ async fn test_records() { let create = actor .create_record() .data(data.clone()) - .data_format(Application::Json.into()) + .data_format("text/plain".to_string()) .process() .await .unwrap(); @@ -77,7 +76,7 @@ async fn test_records() { let create_two = actor_two .create_record() .data(data.clone()) - .data_format(Application::Json.into()) + .data_format("text/plain".to_string()) .process() .await .unwrap(); @@ -87,7 +86,7 @@ async fn test_records() { let create = actor .create_record() .data("Hello, world!".bytes().collect::>()) - .data_format(Application::Json.into()) + .data_format("text/plain".to_string()) .process() .await .unwrap(); @@ -109,7 +108,7 @@ async fn test_records() { let update = actor .update_record(record_id.clone(), record_id.clone()) .data(new_data.clone()) - .data_format(Application::Json.into()) + .data_format("text/plain".to_string()) .process() .await .unwrap(); @@ -130,7 +129,7 @@ async fn test_records() { let update = actor .update_record(record_id.clone(), update.entry_id) .data(newer_data.clone()) - .data_format(Application::Json.into()) + .data_format("text/plain".to_string()) .process() .await .unwrap();