1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
//! # vsix
//!
//! A command-line utility that downloads and installs .vsix extensions into Visual Studio Code and Cursor.
//!
//! ## Features
//!
//! - Search for extensions in the Visual Studio Code marketplace
//! - Install extensions to VSCode or Cursor
//! - Download extensions without installing
//! - Automatic CLI detection for `code` and `cursor` commands
//! - Cross-platform support (Windows, macOS, Linux)
//! - Architecture-aware installation (x86_64, ARM64)
//!
//! ## Architecture
//!
//! This crate follows Domain-Driven Design (DDD) principles with a clean architecture:
//!
//! - **Domain Layer**: Core business logic and domain model
//! - **Application Layer**: Use cases and service orchestration
//! - **Infrastructure Layer**: External service implementations
//! - **Presentation Layer**: User interface and CLI handling
//!
//! ## Example Usage
//!
//! ```no_run
//! use vsix::application::ApplicationService;
//!
//! #[tokio::main]
//! async fn main() -> Result<(), Box<dyn std::error::Error>> {
//! let service = ApplicationService::new();
//!
//! // Search for extensions
//! let results = service.search_extensions("rust", None).await?;
//! println!("Found {} extensions", results.total_count);
//!
//! // Install an extension
//! service.install_extension("rust-lang.rust-analyzer", false, None).await?;
//!
//! Ok(())
//! }
//! ```
/// Application layer containing use cases and services
/// Domain layer with core business logic, entities, and value objects
/// Infrastructure layer with external service implementations
/// Presentation layer for user interface and CLI
pub use *;
pub use *;