aube 1.41.0

Aube — a fast Node.js package manager
Documentation
pub mod access;
pub mod activate;
pub mod add;
pub mod add_supply_chain;
pub mod approve_builds;
pub mod audit;
pub mod bin;
pub mod bugs;
pub mod cache;
pub mod cat_file;
pub mod cat_index;
pub mod catalogs;
pub mod check;
pub mod ci;
pub mod clean;
pub mod completion;
pub mod config;
pub mod create;
pub mod dedupe;
pub mod deploy;
pub mod deprecate;
pub mod deprecations;
pub mod diag;
pub mod dist_tag;
pub mod dlx;
pub mod doctor;
pub mod exec;
pub mod fetch;
pub mod find_hash;
pub mod global;
pub(crate) mod gvs_registry;
pub mod ignored_builds;
pub mod import;
pub mod init;
pub mod inject;
pub mod install;
pub mod install_test;
pub mod licenses;
pub mod link;
pub mod list;
pub mod login;
pub mod logout;
pub mod node;
pub mod npm_fallback;
pub mod npmrc;
pub mod outdated;
pub mod pack;
pub mod patch;
pub mod patch_commit;
pub mod patch_remove;
pub mod peers;
pub mod prefix;
pub mod prune;
#[cfg(feature = "publish")]
pub mod publish;
#[cfg(feature = "publish")]
pub mod publish_provenance;
pub mod query;
pub mod rebuild;
pub mod recursive;
pub mod remove;
pub mod restart;
pub mod root;
pub mod run;
pub mod run_output;
pub mod runtime;
pub mod sbom;
pub mod security_scanner;
pub mod sponsors;
pub mod store;
pub mod trust;
pub mod undeprecate;
pub mod unlink;
pub mod unpublish;
pub mod update;
pub mod version;
pub mod view;
pub mod why;

mod auto_install;
mod catalog_discovery;
mod dep_filter;
mod fs_helpers;
mod manifest_io;
mod package_spec;
mod project_lock;
mod script_settings;
mod settings_context;
mod workspace_helpers;

pub(crate) use auto_install::{ensure_installed, ensure_installed_in};

/// Resolve the directory a completion probe should inspect without changing
/// the process cwd. Invalid `-C` targets yield no completions, matching the
/// real command's chdir behavior without mutating an embedding host.
pub(crate) fn completion_start_dir(dir: Option<&std::path::Path>) -> Option<std::path::PathBuf> {
    let cwd = crate::dirs::cwd().ok()?;
    match dir {
        Some(dir) => {
            let resolved = cwd.join(dir).canonicalize().ok()?;
            (resolved.is_dir() && resolved.join("package.json").try_exists().is_ok())
                .then_some(resolved)
        }
        None => Some(cwd),
    }
}

pub(crate) fn settings_hoisting_limits_to_linker(
    value: aube_settings::resolved::HoistingLimits,
) -> aube_linker::HoistingLimits {
    match value {
        aube_settings::resolved::HoistingLimits::None => aube_linker::HoistingLimits::None,
        aube_settings::resolved::HoistingLimits::Workspaces => {
            aube_linker::HoistingLimits::Workspaces
        }
        aube_settings::resolved::HoistingLimits::Dependencies => {
            aube_linker::HoistingLimits::Dependencies
        }
    }
}
pub(crate) use catalog_discovery::{
    CatalogMap, CatalogSource, catalog_entry_source, discover_catalogs, load_workspace_catalogs,
};
pub(crate) use dep_filter::DepFilter;
pub(crate) use fs_helpers::{
    format_virtual_store_display_prefix, is_link_or_junction_metadata, remove_existing, symlink_dir,
};
pub(crate) use manifest_io::{
    load_manifest, load_manifest_or_default, update_manifest_json_object,
    write_manifest_dep_sections, write_manifest_json,
};
pub(crate) use package_spec::{
    encode_package_name, policy_version_info, record_age_gated_update, resolve_version,
    split_name_spec, warn_age_gated_updates,
};
pub(crate) use project_lock::take_install_project_lock;
pub(crate) use project_lock::take_project_lock;
pub(crate) use script_settings::{configure_script_settings, configure_script_settings_for_cwd};
pub(crate) use settings_context::{
    FileSources, GlobalOutputFlags, build_resolver, chained_frozen_mode, default_lockfile_kind,
    ensure_registry_auth_for_package, expand_setting_path, global_frozen_override,
    global_output_flags, global_virtual_store_dir, global_virtual_store_dir_with_ctx,
    global_virtual_store_flags, has_embedder_store_override, load_npm_config,
    lockfile_kind_for_write, lockfile_kind_for_write_with_ctx, make_client, metadata_cache_anchor,
    open_store, open_store_with_ctx, packument_cache_dir, packument_cache_dir_for_cwd,
    packument_full_cache_dir, packument_full_cache_dir_for_cwd, project_modules_dir,
    resolve_fetch_policy, resolve_modules_dir_name_for_cwd, resolve_virtual_store_dir,
    resolve_virtual_store_dir_for_cwd, resolve_virtual_store_dir_max_length,
    resolve_virtual_store_dir_max_length_for_cwd, resolved_cache_dir, resolved_cache_dir_with_ctx,
    resolved_store_dir, resolved_store_dir_with_ctx, run_pnpmfile_pre_resolution,
    scope_embedder_install_overrides, set_fetch_cli_overrides, set_global_frozen_override,
    set_global_output_flags, set_global_virtual_store_flags, set_registry_override,
    set_skip_auto_install_on_package_manager_mismatch,
    skip_auto_install_on_package_manager_mismatch, with_settings_ctx, with_settings_ctx_and_cli,
};
pub(crate) use workspace_helpers::{
    collect_dep_closure, find_workspace_root, finish_filtered_workspace, load_graph,
    prepare_resolved_graph_for_lockfile_write, retarget_cwd, select_workspace_packages,
    workspace_importer_path, write_and_log_lockfile,
};