diff --git a/Cargo.lock b/Cargo.lock
index 5e41e795c57e75..cef572f6869505 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1579,9 +1579,9 @@ dependencies = [
[[package]]
name = "deno_config"
-version = "0.47.1"
+version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2f7883c48549bab8e446a58c64ee3d106a13052d2ff5e864de765a60260cb02b"
+checksum = "6c486df63f7fa0f2142c7eba286c7be87a3cd8c93f66f744fb5853a77cf4347b"
dependencies = [
"boxed_error",
"capacity_builder 0.5.0",
@@ -2382,10 +2382,14 @@ dependencies = [
"deno_semver",
"deno_terminal 0.2.0",
"futures",
+ "import_map",
+ "indexmap 2.3.0",
"log",
"node_resolver",
"once_cell",
"parking_lot",
+ "serde",
+ "serde_json",
"sys_traits",
"test_server",
"thiserror 2.0.3",
@@ -8033,6 +8037,8 @@ dependencies = [
"getrandom",
"libc",
"parking_lot",
+ "serde",
+ "serde_json",
"windows-sys 0.59.0",
]
diff --git a/Cargo.toml b/Cargo.toml
index 5af9ac3a88980d..99a2e0812dfa9e 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -54,7 +54,7 @@ deno_ast = { version = "=0.44.0", features = ["transpiling"] }
deno_core = { version = "0.333.0" }
deno_bench_util = { version = "0.183.0", path = "./bench_util" }
-deno_config = { version = "=0.47.1", features = ["workspace"] }
+deno_config = { version = "=0.48.0", features = ["workspace"] }
deno_lockfile = "=0.24.0"
deno_media_type = { version = "=0.2.5", features = ["module_specifier"] }
deno_npm = "=0.27.2"
@@ -155,6 +155,7 @@ hyper = { version = "1.6.0", features = ["full"] }
hyper-rustls = { version = "0.27.2", default-features = false, features = ["http1", "http2", "tls12", "ring"] }
hyper-util = { version = "0.1.10", features = ["tokio", "client", "client-legacy", "server", "server-auto"] }
hyper_v014 = { package = "hyper", version = "0.14.26", features = ["runtime", "http1"] }
+import_map = { version = "0.21.0", features = ["ext"] }
indexmap = { version = "2", features = ["serde"] }
ipnet = "2.3"
jsonc-parser = { version = "=0.26.2", features = ["serde"] }
diff --git a/cli/factory.rs b/cli/factory.rs
index bd9b58073f654a..1ae4954f69ae30 100644
--- a/cli/factory.rs
+++ b/cli/factory.rs
@@ -9,7 +9,6 @@ use std::sync::Arc;
use deno_cache_dir::npm::NpmCacheDir;
use deno_config::workspace::Workspace;
use deno_config::workspace::WorkspaceDirectory;
-use deno_config::workspace::WorkspaceResolver;
use deno_core::anyhow::Context;
use deno_core::error::AnyError;
use deno_core::futures::FutureExt;
@@ -38,6 +37,7 @@ use deno_resolver::factory::ResolverFactoryOptions;
use deno_resolver::factory::SpecifiedImportMapProvider;
use deno_resolver::npm::managed::NpmResolutionCell;
use deno_resolver::npm::DenoInNpmPackageChecker;
+use deno_resolver::workspace::WorkspaceResolver;
use deno_runtime::deno_fs;
use deno_runtime::deno_fs::RealFs;
use deno_runtime::deno_permissions::Permissions;
@@ -97,7 +97,6 @@ use crate::resolver::CliDenoResolver;
use crate::resolver::CliNpmGraphResolver;
use crate::resolver::CliNpmReqResolver;
use crate::resolver::CliResolver;
-use crate::resolver::CliSloppyImportsResolver;
use crate::resolver::FoundPackageJsonDepFlag;
use crate::standalone::binary::DenoCompileBinaryWriter;
use crate::sys::CliSys;
@@ -160,7 +159,8 @@ struct CliSpecifiedImportMapProvider {
impl SpecifiedImportMapProvider for CliSpecifiedImportMapProvider {
async fn get(
&self,
- ) -> Result