diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index bb5117b..26a8e49 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -124,37 +124,8 @@ jobs: shared-key: "publish" save-if: false - - name: Publish pjson-rs-domain to crates.io - run: cargo publish --manifest-path crates/pjs-domain/Cargo.toml --token ${{ secrets.CARGO_REGISTRY_TOKEN }} - continue-on-error: true - - - name: Wait for pjson-rs-domain to be available (up to 2 minutes) - run: | - for i in {1..24}; do - if cargo search pjson-rs-domain --limit 1 2>/dev/null | grep -q "pjson-rs-domain"; then - echo "pjson-rs-domain is now available on crates.io" - exit 0 - fi - echo "Waiting for pjson-rs-domain to be available... ($i/24)" - sleep 5 - done - echo "Warning: pjson-rs-domain may not be immediately available" - - - name: Publish pjson-rs to crates.io - run: cargo publish --manifest-path crates/pjs-core/Cargo.toml --token ${{ secrets.CARGO_REGISTRY_TOKEN }} - continue-on-error: true - - - name: Wait for pjson-rs to be available (up to 2 minutes) - run: | - for i in {1..24}; do - if cargo search pjson-rs --limit 1 2>/dev/null | grep -q "pjson-rs"; then - echo "pjson-rs is now available on crates.io" - exit 0 - fi - echo "Waiting for pjson-rs to be available... ($i/24)" - sleep 5 - done - echo "Warning: pjson-rs may not be immediately available" + - name: Publish workspace to crates.io + run: cargo publish --workspace --token ${{ secrets.CARGO_REGISTRY_TOKEN }} # Create GitHub release github-release: diff --git a/Cargo.lock b/Cargo.lock index 3cdc35a..c7bafa4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1121,7 +1121,7 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pjs-wasm" -version = "0.4.5" +version = "0.4.6" dependencies = [ "console_error_panic_hook", "js-sys", @@ -1135,7 +1135,7 @@ dependencies = [ [[package]] name = "pjson-rs" -version = "0.4.5" +version = "0.4.6" dependencies = [ "async-trait", "axum", @@ -1176,7 +1176,7 @@ dependencies = [ [[package]] name = "pjson-rs-domain" -version = "0.4.5" +version = "0.4.6" dependencies = [ "chrono", "serde", diff --git a/Cargo.toml b/Cargo.toml index d37d228..7daa448 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,7 +7,7 @@ resolver = "2" [workspace.package] homepage = "https://github.com/bug-ops/pjs" documentation = "https://docs.rs/pjson-rs" -version = "0.4.5" +version = "0.4.6" authors = ["Andrei G. "] readme = "README.md" edition = "2024" @@ -43,8 +43,8 @@ memchr = "2.6" mimalloc = "0.1" once_cell = "1.21" parking_lot = "0.12" -pjson-rs-domain = { path = "crates/pjs-domain" } -pjson-rs = { path = "crates/pjs-core" } +pjson-rs-domain = { version = "0.4.6",path = "crates/pjs-domain" } +pjson-rs = { version = "0.4.6", path = "crates/pjs-core" } priority-queue = "2.0" prometheus = "0.14" proptest = "1.4" diff --git a/crates/pjs-core/src/domain/mod.rs b/crates/pjs-core/src/domain/mod.rs index de58452..693072a 100644 --- a/crates/pjs-core/src/domain/mod.rs +++ b/crates/pjs-core/src/domain/mod.rs @@ -4,7 +4,7 @@ //! and domain events. No dependencies on infrastructure concerns. // Re-export domain types from pjs-domain crate (WASM-compatible) -pub use pjs_domain::{DomainError, DomainResult, entities, events, value_objects}; +pub use pjson_rs_domain::{DomainError, DomainResult, entities, events, value_objects}; // pjs-core specific domain modules pub mod aggregates; diff --git a/crates/pjs-domain/Cargo.toml b/crates/pjs-domain/Cargo.toml index 746b599..63690ae 100644 --- a/crates/pjs-domain/Cargo.toml +++ b/crates/pjs-domain/Cargo.toml @@ -10,7 +10,7 @@ authors = { workspace = true } publish = true [lib] -name = "pjs_domain" +name = "pjson_rs_domain" path = "src/lib.rs" [dependencies] diff --git a/crates/pjs-domain/src/value_objects/schema.rs b/crates/pjs-domain/src/value_objects/schema.rs index e9e790c..dd0f23c 100644 --- a/crates/pjs-domain/src/value_objects/schema.rs +++ b/crates/pjs-domain/src/value_objects/schema.rs @@ -24,7 +24,7 @@ impl SchemaId { /// /// # Examples /// ``` - /// # use pjs_domain::value_objects::SchemaId; + /// # use pjson_rs_domain::value_objects::SchemaId; /// let schema_id = SchemaId::new("user-profile-v1"); /// ``` pub fn new(id: impl Into) -> Self { @@ -56,7 +56,7 @@ impl std::fmt::Display for SchemaId { /// /// # Examples /// ``` -/// # use pjs_domain::value_objects::{Schema, SchemaType}; +/// # use pjson_rs_domain::value_objects::{Schema, SchemaType}; /// let schema = Schema::Object { /// properties: vec![ /// ("id".to_string(), Schema::Integer { minimum: Some(1), maximum: None }), diff --git a/crates/pjs-domain/tests/events_comprehensive.rs b/crates/pjs-domain/tests/events_comprehensive.rs index d03a5c9..674ec1f 100644 --- a/crates/pjs-domain/tests/events_comprehensive.rs +++ b/crates/pjs-domain/tests/events_comprehensive.rs @@ -10,7 +10,7 @@ //! - EventId generation use chrono::Utc; -use pjs_domain::{ +use pjson_rs_domain::{ events::{ DomainEvent, EventStore, InMemoryEventStore, PerformanceMetrics, PriorityDistribution, SessionState, @@ -692,7 +692,7 @@ mod session_state_tests { } mod event_id_tests { - use pjs_domain::events::EventId; + use pjson_rs_domain::events::EventId; #[test] fn test_event_id_new() { diff --git a/crates/pjs-domain/tests/frame_comprehensive.rs b/crates/pjs-domain/tests/frame_comprehensive.rs index acf2b08..82a4add 100644 --- a/crates/pjs-domain/tests/frame_comprehensive.rs +++ b/crates/pjs-domain/tests/frame_comprehensive.rs @@ -3,8 +3,8 @@ //! Tests cover all frame types (Skeleton, Patch, Complete, Error), //! frame operations, validation, metadata, and edge cases. -use pjs_domain::entities::frame::{Frame, FramePatch, FrameType, PatchOperation}; -use pjs_domain::value_objects::{JsonData, JsonPath, Priority, StreamId}; +use pjson_rs_domain::entities::frame::{Frame, FramePatch, FrameType, PatchOperation}; +use pjson_rs_domain::value_objects::{JsonData, JsonPath, Priority, StreamId}; use std::collections::HashMap; // ============================================================================ diff --git a/crates/pjs-domain/tests/json_data_comprehensive.rs b/crates/pjs-domain/tests/json_data_comprehensive.rs index 427ffbc..c52f553 100644 --- a/crates/pjs-domain/tests/json_data_comprehensive.rs +++ b/crates/pjs-domain/tests/json_data_comprehensive.rs @@ -3,7 +3,7 @@ //! Tests cover all variants (Null, Bool, Number, String, Array, Object), //! conversions, edge cases, and memory operations. -use pjs_domain::value_objects::JsonData; +use pjson_rs_domain::value_objects::JsonData; use std::collections::HashMap; // ============================================================================ diff --git a/crates/pjs-domain/tests/schema_comprehensive.rs b/crates/pjs-domain/tests/schema_comprehensive.rs index 245932d..af55e28 100644 --- a/crates/pjs-domain/tests/schema_comprehensive.rs +++ b/crates/pjs-domain/tests/schema_comprehensive.rs @@ -3,7 +3,7 @@ //! Tests cover schema creation, validation rules, type checking, //! cost estimation, and error handling. -use pjs_domain::value_objects::{Schema, SchemaId, SchemaType, SchemaValidationError}; +use pjson_rs_domain::value_objects::{Schema, SchemaId, SchemaType, SchemaValidationError}; use std::collections::HashMap; // ============================================================================ diff --git a/crates/pjs-domain/tests/stream_comprehensive.rs b/crates/pjs-domain/tests/stream_comprehensive.rs index 465a0d4..ef67841 100644 --- a/crates/pjs-domain/tests/stream_comprehensive.rs +++ b/crates/pjs-domain/tests/stream_comprehensive.rs @@ -8,7 +8,7 @@ //! - Error conditions //! - Progress calculation -use pjs_domain::{ +use pjson_rs_domain::{ entities::{ Stream, frame::FrameType, diff --git a/crates/pjs-wasm/src/parser.rs b/crates/pjs-wasm/src/parser.rs index 725164a..0269cd7 100644 --- a/crates/pjs-wasm/src/parser.rs +++ b/crates/pjs-wasm/src/parser.rs @@ -7,9 +7,9 @@ use crate::priority_assignment::{PriorityAssigner, group_by_priority, sort_priorities}; use crate::priority_config::PriorityConfigBuilder; use crate::security::{SecurityConfig, validate_input_size}; -use pjs_domain::entities::Frame; -use pjs_domain::entities::frame::FramePatch; -use pjs_domain::value_objects::{JsonData, Priority, StreamId}; +use pjson_rs_domain::entities::Frame; +use pjson_rs_domain::entities::frame::FramePatch; +use pjson_rs_domain::value_objects::{JsonData, Priority, StreamId}; use std::collections::HashMap; use wasm_bindgen::prelude::*; @@ -359,7 +359,7 @@ impl Default for PjsParser { #[cfg(test)] mod tests { use super::*; - use pjs_domain::entities::frame::FrameType; + use pjson_rs_domain::entities::frame::FrameType; #[test] fn test_parser_creation() { diff --git a/crates/pjs-wasm/src/priority_assignment.rs b/crates/pjs-wasm/src/priority_assignment.rs index 1edfcf4..4565af4 100644 --- a/crates/pjs-wasm/src/priority_assignment.rs +++ b/crates/pjs-wasm/src/priority_assignment.rs @@ -3,7 +3,7 @@ //! This module provides WASM-compatible priority assignment for JSON paths. //! It analyzes JSON structure and assigns priorities based on configurable rules. -use pjs_domain::value_objects::{JsonData, JsonPath, Priority}; +use pjson_rs_domain::value_objects::{JsonData, JsonPath, Priority}; use std::collections::HashMap; /// Priority assignment rules configuration @@ -130,7 +130,7 @@ impl PriorityAssigner { // Extract field name from path let field_name = if let Some(segment) = path.last_segment() { match segment { - pjs_domain::value_objects::PathSegment::Key(key) => Some(key), + pjson_rs_domain::value_objects::PathSegment::Key(key) => Some(key), _ => None, } } else { @@ -197,7 +197,7 @@ impl PriorityAssigner { } // Check field name patterns - if let Some(pjs_domain::value_objects::PathSegment::Key(key)) = path.last_segment() { + if let Some(pjson_rs_domain::value_objects::PathSegment::Key(key)) = path.last_segment() { if self .config .background_patterns diff --git a/crates/pjs-wasm/src/priority_constants.rs b/crates/pjs-wasm/src/priority_constants.rs index 67a62b2..da35b5a 100644 --- a/crates/pjs-wasm/src/priority_constants.rs +++ b/crates/pjs-wasm/src/priority_constants.rs @@ -4,7 +4,7 @@ //! making it easier to use common priority levels without memorizing //! numeric values. -use pjs_domain::value_objects::Priority; +use pjson_rs_domain::value_objects::Priority; use wasm_bindgen::prelude::*; /// Priority constants for JavaScript. diff --git a/crates/pjs-wasm/src/streaming.rs b/crates/pjs-wasm/src/streaming.rs index 7708063..656ea0a 100644 --- a/crates/pjs-wasm/src/streaming.rs +++ b/crates/pjs-wasm/src/streaming.rs @@ -30,9 +30,9 @@ use crate::priority_assignment::PriorityAssigner; use crate::priority_config::PriorityConfigBuilder; use crate::security::{SecurityConfig, validate_input_size}; -use pjs_domain::entities::Frame; -use pjs_domain::entities::frame::FrameType; -use pjs_domain::value_objects::{JsonData, Priority, StreamId}; +use pjson_rs_domain::entities::Frame; +use pjson_rs_domain::entities::frame::FrameType; +use pjson_rs_domain::value_objects::{JsonData, Priority, StreamId}; use std::collections::HashMap; use wasm_bindgen::prelude::*; @@ -427,7 +427,7 @@ impl PriorityStream { min_priority: Priority, ) -> Result, String> { use crate::priority_assignment::{group_by_priority, sort_priorities}; - use pjs_domain::entities::frame::FramePatch; + use pjson_rs_domain::entities::frame::FramePatch; let max_depth = self.security_config.max_depth(); diff --git a/crates/pjs-wasm/tests/streaming_comprehensive.rs b/crates/pjs-wasm/tests/streaming_comprehensive.rs index aea136f..f442f83 100644 --- a/crates/pjs-wasm/tests/streaming_comprehensive.rs +++ b/crates/pjs-wasm/tests/streaming_comprehensive.rs @@ -9,8 +9,8 @@ //! Note: Core PriorityStream functionality is tested through WASM-bindgen-test in the source file. //! These tests focus on supporting infrastructure that can be tested in standard Rust. -use pjs_domain::value_objects::{JsonData, Priority}; use pjs_wasm::security::{SecurityConfig, validate_input_size}; +use pjson_rs_domain::value_objects::{JsonData, Priority}; use std::collections::HashMap; // === SecurityConfig Tests ===