use sha2::{Digest, Sha512};
pub fn generate_package_id(registry_handle: &str, repo_path: &str, package_name: &str) -> String {
let format_string = format!("#{}@{}/{}", registry_handle, repo_path, package_name);
let mut hasher = Sha512::new();
hasher.update(format_string.as_bytes());
let result = hasher.finalize();
let hex_string = hex::encode(result);
hex_string[..32].to_string()
}
pub fn generate_versioned_package_id(
registry_handle: &str,
repo_path: &str,
package_name: &str,
version: &str,
) -> String {
let format_string = format!(
"#{}@{}/{}@{}",
registry_handle, repo_path, package_name, version
);
let mut hasher = Sha512::new();
hasher.update(format_string.as_bytes());
let result = hasher.finalize();
let hex_string = hex::encode(result);
hex_string[..32].to_string()
}
pub fn get_package_dir_name(package_id: &str, package_name: &str) -> String {
format!("{}-{}", package_id, package_name)
}