From b7b45e14695bbe8ae9058c565a5bc6ea95c062d2 Mon Sep 17 00:00:00 2001 From: Will Binns-Smith Date: Thu, 17 Oct 2024 17:28:25 -0700 Subject: [PATCH] Replace `turbopack://[project]/...` sourcemap uris with `file://...` This makes working with devtools more straightforward, reduces our own overhead when tracing stack frames in the error overlay, etc. Generated code from Turbopack or Next.js still use `turbopack://[turbopack]` or `turbopack://[next]` respectively. Test Plan: CI. Update snapshots. --- crates/napi/src/next_api/project.rs | 20 +- crates/next-api/src/project.rs | 31 ++- crates/next-core/src/embed_js.rs | 2 +- crates/next-core/src/next_font/google/mod.rs | 3 +- .../experimental-lightningcss.test.ts | 2 +- test/development/sass-error/index.test.ts | 2 +- .../css-modules/test/index.test.js | 20 +- turbopack/crates/node-file-trace/src/lib.rs | 8 +- .../crates/turbo-tasks-fetch/tests/fetch.rs | 16 +- .../turbo-tasks-fs/examples/hash_directory.rs | 9 +- .../turbo-tasks-fs/examples/hash_glob.rs | 9 +- .../crates/turbo-tasks-fs/src/embed/dir.rs | 24 +- .../crates/turbo-tasks-fs/src/embed/file.rs | 4 +- .../crates/turbo-tasks-fs/src/embed/fs.rs | 23 +- turbopack/crates/turbo-tasks-fs/src/lib.rs | 40 +++- .../crates/turbopack-cli/src/embed_js.rs | 2 +- turbopack/crates/turbopack-cli/src/util.rs | 16 +- .../turbopack-core/src/source_map/mod.rs | 7 +- turbopack/crates/turbopack-css/src/process.rs | 207 +++++++++++------- .../turbopack-css/src/references/mod.rs | 4 +- .../turbopack-css/src/references/url.rs | 4 +- .../src/embed_js.rs | 2 +- .../crates/turbopack-ecmascript/src/parse.rs | 18 +- .../crates/turbopack-node/src/embed_js.rs | 2 +- .../crates/turbopack-tests/tests/execution.rs | 16 +- .../crates/turbopack-tests/tests/snapshot.rs | 16 +- ..._css-modules_input_style_module_76a252.css | 2 +- ..._css-modules_input_style_module_7d7e1c.css | 2 +- ...snapshot_css_css-modules_input_8f2e7f._.js | 2 +- ...shot_css_css-modules_input_8f2e7f._.js.map | 2 +- .../output/08d19_foo_style_module_7d7e1c.css | 2 +- ...shot_css_css_input_style_module_7d7e1c.css | 2 +- ...s_tests_snapshot_css_css_input_6dc4af._.js | 10 +- ...sts_snapshot_css_css_input_6dc4af._.js.map | 4 +- ..._tests_snapshot_css_css_input_8f45c3._.css | 4 +- ...-supports-query_input_style_0d54ef.css.map | 2 +- ...-supports-query_input_style_4b6496.css.map | 2 +- ...les_composes_input_index_module_226602.css | 2 +- ...les_composes_input_index_module_7d7e1c.css | 2 +- ...shot_cssmodules_composes_input_8bd350._.js | 4 +- ..._cssmodules_composes_input_8bd350._.js.map | 2 +- ...e-uri-import_input_index_module_7d7e1c.css | 2 +- ...e-uri-import_input_other_module_7d7e1c.css | 2 +- ...les_relative-uri-import_input_5a7b6f._.css | 4 +- ...ules_relative-uri-import_input_65c884._.js | 4 +- ..._relative-uri-import_input_65c884._.js.map | 4 +- ...turbopack-tests_tests_snapshot_6fdc60._.js | 2 +- ...turbopack-tests_tests_snapshot_b56e07._.js | 2 +- .../turbopack/benches/node_file_trace.rs | 9 +- .../crates/turbopack/examples/turbopack.rs | 9 +- .../crates/turbopack/tests/node-file-trace.rs | 10 +- 51 files changed, 399 insertions(+), 200 deletions(-) diff --git a/crates/napi/src/next_api/project.rs b/crates/napi/src/next_api/project.rs index 343cf76b7ab0d5..918df933270c47 100644 --- a/crates/napi/src/next_api/project.rs +++ b/crates/napi/src/next_api/project.rs @@ -1099,15 +1099,25 @@ pub async fn project_trace_source( } }; - let Some(source_file) = original_file.strip_prefix(SOURCE_MAP_PREFIX) else { - bail!("Original file ({}) outside project", original_file) - }; + let project_path_uri = format!( + "{}/", + &*project + .container + .project() + .project_path() + .fs() + .root() + .uri() + .await? + ); let (source_file, is_internal) = - if let Some(source_file) = source_file.strip_prefix("[project]/") { + if let Some(source_file) = original_file.strip_prefix(&project_path_uri) { (source_file, false) - } else { + } else if let Some(source_file) = original_file.strip_prefix(SOURCE_MAP_PREFIX) { (source_file, true) + } else { + bail!("Original file ({}) outside project", original_file) }; Ok(Some(StackFrame { diff --git a/crates/next-api/src/project.rs b/crates/next-api/src/project.rs index 6d9da153bac29e..364bb95f4e31e2 100644 --- a/crates/next-api/src/project.rs +++ b/crates/next-api/src/project.rs @@ -31,7 +31,7 @@ use turbo_tasks::{ TransientInstance, TryFlatJoinIterExt, Value, Vc, }; use turbo_tasks_env::{EnvMap, ProcessEnv}; -use turbo_tasks_fs::{DiskFileSystem, FileSystem, FileSystemPath, VirtualFileSystem}; +use turbo_tasks_fs::{DiskFileSystem, FileSystem, FileSystemPath, UriScheme, VirtualFileSystem}; use turbopack::{ evaluate_context::node_build_environment, transition::TransitionOptions, ModuleAssetContext, }; @@ -524,6 +524,15 @@ impl Issue for ConflictIssue { #[turbo_tasks::value_impl] impl Project { + #[turbo_tasks::function] + pub async fn uri_scheme(&self) -> Result> { + Ok(match &*self.mode.await? { + NextMode::Build => UriScheme::Custom("turbopack".into()), + NextMode::Development => UriScheme::File, + } + .cell()) + } + #[turbo_tasks::function] pub async fn app_project(self: Vc) -> Result> { let app_dir = find_app_dir(self.project_path()).await?; @@ -539,12 +548,14 @@ impl Project { } #[turbo_tasks::function] - fn project_fs(&self) -> Vc { - DiskFileSystem::new( + async fn project_fs(self: Vc) -> Result> { + let this = &*self.await?; + Ok(DiskFileSystem::new( + self.uri_scheme(), PROJECT_FILESYSTEM_NAME.into(), - self.root_path.clone(), + this.root_path.clone(), vec![], - ) + )) } #[turbo_tasks::function] @@ -554,8 +565,14 @@ impl Project { } #[turbo_tasks::function] - pub fn output_fs(&self) -> Vc { - DiskFileSystem::new("output".into(), self.project_path.clone(), vec![]) + pub async fn output_fs(self: Vc) -> Result> { + let this = &*self.await?; + Ok(DiskFileSystem::new( + self.uri_scheme(), + "output".into(), + this.project_path.clone(), + vec![], + )) } #[turbo_tasks::function] diff --git a/crates/next-core/src/embed_js.rs b/crates/next-core/src/embed_js.rs index 9a7eee773ca37b..0b53af3b39791c 100644 --- a/crates/next-core/src/embed_js.rs +++ b/crates/next-core/src/embed_js.rs @@ -7,7 +7,7 @@ pub const VIRTUAL_PACKAGE_NAME: &str = "@vercel/turbopack-next"; #[turbo_tasks::function] pub(crate) fn next_js_fs() -> Vc> { // [TODO]: macro need to be refactored to be used via turbopack-binding - turbo_tasks_fs::embed_directory!("next", "$CARGO_MANIFEST_DIR/js/src") + turbo_tasks_fs::embed_directory!("turbopack", "next", "$CARGO_MANIFEST_DIR/js/src") } #[turbo_tasks::function] diff --git a/crates/next-core/src/next_font/google/mod.rs b/crates/next-core/src/next_font/google/mod.rs index 3ad5503ec9e4a0..f4cc5d7b564a2c 100644 --- a/crates/next-core/src/next_font/google/mod.rs +++ b/crates/next-core/src/next_font/google/mod.rs @@ -10,7 +10,7 @@ use turbo_tasks_env::{CommandLineProcessEnv, ProcessEnv}; use turbo_tasks_fetch::{fetch, HttpResponseBody}; use turbo_tasks_fs::{ json::parse_json_with_source_context, DiskFileSystem, File, FileContent, FileSystem, - FileSystemPath, + FileSystemPath, UriScheme, }; use turbopack::evaluate_context::node_evaluate_asset_context; use turbopack_core::{ @@ -637,6 +637,7 @@ async fn get_mock_stylesheet( ) -> Result>> { let response_path = Path::new(&mocked_responses_path); let mock_fs = Vc::upcast::>(DiskFileSystem::new( + UriScheme::Custom("test".into()).cell(), "mock".into(), response_path .parent() diff --git a/test/development/app-dir/experimental-lightningcss/experimental-lightningcss.test.ts b/test/development/app-dir/experimental-lightningcss/experimental-lightningcss.test.ts index 0a53d31901758d..58dc13644f2647 100644 --- a/test/development/app-dir/experimental-lightningcss/experimental-lightningcss.test.ts +++ b/test/development/app-dir/experimental-lightningcss/experimental-lightningcss.test.ts @@ -12,7 +12,7 @@ describeVariants.each(['turbo'])('experimental-lightningcss', () => { expect($('p').text()).toBe('hello world') // swc_css does not include `-module` in the class name, while lightningcss does. expect($('p').attr('class')).toBe( - 'search-keyword style-module__hlQ3RG__blue' + 'search-keyword style-module__Qo74fG__blue' ) }) }) diff --git a/test/development/sass-error/index.test.ts b/test/development/sass-error/index.test.ts index f1d55a54413af1..9784a702291780 100644 --- a/test/development/sass-error/index.test.ts +++ b/test/development/sass-error/index.test.ts @@ -35,7 +35,7 @@ describe('app dir - css', () => { 47 | } 48 | - Pseudo-elements like '::before' or '::after' can't be followed by selectors like 'Ident("path")' at [project]/app/global.scss.css:0:884" + Pseudo-elements like '::before' or '::after' can't be followed by selectors like 'Ident("path")' at app/global.scss.css:0:884" `) }) } diff --git a/test/integration/css-modules/test/index.test.js b/test/integration/css-modules/test/index.test.js index c14456cab00614..8526d2b5f4b9cd 100644 --- a/test/integration/css-modules/test/index.test.js +++ b/test/integration/css-modules/test/index.test.js @@ -61,7 +61,7 @@ describe('Basic CSS Module Support', () => { if (process.env.TURBOPACK) { expect( cssContent.replace(/\/\*.*?\*\//g, '').trim() - ).toMatchInlineSnapshot(`".index-module__VJHdSq__redText{color:red}"`) + ).toMatchInlineSnapshot(`".index-module__NoKL0W__redText{color:red}"`) } else { expect( cssContent.replace(/\/\*.*?\*\//g, '').trim() @@ -83,7 +83,7 @@ describe('Basic CSS Module Support', () => { if (process.env.TURBOPACK) { expect($('#verify-red').attr('class')).toMatchInlineSnapshot( - `"index-module__VJHdSq__redText"` + `"index-module__NoKL0W__redText"` ) } else { expect($('#verify-red').attr('class')).toMatchInlineSnapshot( @@ -137,7 +137,7 @@ describe('3rd Party CSS Module Support', () => { expect( cssContent.replace(/\/\*.*?\*\//g, '').trim() ).toMatchInlineSnapshot( - `".index-module__jAE1EW__foo{position:relative}.index-module__jAE1EW__foo .bar,.index-module__jAE1EW__foo .baz{height:100%;overflow:hidden}.index-module__jAE1EW__foo .lol{width:80%}.index-module__jAE1EW__foo>.lel{width:80%}"` + `".index-module__Cwv4sq__foo{position:relative}.index-module__Cwv4sq__foo .bar,.index-module__Cwv4sq__foo .baz{height:100%;overflow:hidden}.index-module__Cwv4sq__foo .lol{width:80%}.index-module__Cwv4sq__foo>.lel{width:80%}"` ) } else { expect( @@ -162,7 +162,7 @@ describe('3rd Party CSS Module Support', () => { if (process.env.TURBOPACK) { expect($('#verify-div').attr('class')).toMatchInlineSnapshot( - `"index-module__jAE1EW__foo"` + `"index-module__Cwv4sq__foo"` ) } else { expect($('#verify-div').attr('class')).toMatchInlineSnapshot( @@ -377,7 +377,7 @@ describe('Valid CSS Module Usage from within node_modules', () => { const cssPreload = $('#nm-div') if (process.env.TURBOPACK) { expect(cssPreload.text()).toMatchInlineSnapshot( - `"{"message":"Why hello there","default":{"message":"Why hello there"}} {"redText":"index-module__kwuKnq__redText","default":{"redText":"index-module__kwuKnq__redText"}}"` + `"{"message":"Why hello there","default":{"message":"Why hello there"}} {"redText":"index-module__xkL-Iq__redText","default":{"redText":"index-module__xkL-Iq__redText"}}"` ) } else { expect(cssPreload.text()).toMatchInlineSnapshot( @@ -401,7 +401,7 @@ describe('Valid CSS Module Usage from within node_modules', () => { if (process.env.TURBOPACK) { expect( cssContent.replace(/\/\*.*?\*\//g, '').trim() - ).toMatchInlineSnapshot(`".index-module__kwuKnq__redText{color:red}"`) + ).toMatchInlineSnapshot(`".index-module__xkL-Iq__redText{color:red}"`) } else { expect( cssContent.replace(/\/\*.*?\*\//g, '').trim() @@ -522,7 +522,7 @@ describe('CSS Module Composes Usage (Basic)', () => { expect( cssContent.replace(/\/\*.*?\*\//g, '').trim() ).toMatchInlineSnapshot( - `".index-module__QppuLW__className{background:red;color:#ff0}.index-module__QppuLW__subClass{background:#00f;}"` + `".index-module__LaIBiq__className{background:red;color:#ff0}.index-module__LaIBiq__subClass{background:#00f;}"` ) } else { expect( @@ -643,7 +643,7 @@ describe('Dynamic Route CSS Module Usage', () => { expect( cssContent.replace(/\/\*.*?\*\//g, '').trim() ).toMatchInlineSnapshot( - `".index-module__Iury9a__home{background:red}"` + `".index-module__oDjVyW__home{background:red}"` ) } else { expect( @@ -708,10 +708,10 @@ describe('Catch-all Route CSS Module Usage', () => { if (process.env.TURBOPACK) { expect(cssContent.replace(/\/\*.*?\*\//g, '').trim()) .toMatchInlineSnapshot(` - ".index-module___rV4CG__home{background:red} + ".index-module__oqhyRW__home{background:red} - .\\35 5css-module__qe774W__home{color:green}" + .\\35 5css-module__zUCz1G__home{color:green}" `) } else { expect( diff --git a/turbopack/crates/node-file-trace/src/lib.rs b/turbopack/crates/node-file-trace/src/lib.rs index 197248c4299541..b21051ef7d1b95 100644 --- a/turbopack/crates/node-file-trace/src/lib.rs +++ b/turbopack/crates/node-file-trace/src/lib.rs @@ -28,6 +28,7 @@ use turbo_tasks::{ }; use turbo_tasks_fs::{ glob::Glob, DirectoryEntry, DiskFileSystem, FileSystem, FileSystemPath, ReadGlobResult, + UriScheme, }; use turbopack::{ emit_asset, emit_with_completion, module_options::ModuleOptionsContext, rebase::RebasedAsset, @@ -188,7 +189,12 @@ impl Args { } async fn create_fs(name: &str, root: &str, watch: bool) -> Result>> { - let fs = DiskFileSystem::new(name.into(), root.into(), vec![]); + let fs = DiskFileSystem::new( + UriScheme::Custom("turbopack".into()).cell(), + name.into(), + root.into(), + vec![], + ); if watch { fs.await?.start_watching(None).await?; } else { diff --git a/turbopack/crates/turbo-tasks-fetch/tests/fetch.rs b/turbopack/crates/turbo-tasks-fetch/tests/fetch.rs index 8c83bf091aa22f..acb795b188275c 100644 --- a/turbopack/crates/turbo-tasks-fetch/tests/fetch.rs +++ b/turbopack/crates/turbo-tasks-fetch/tests/fetch.rs @@ -3,7 +3,7 @@ use turbo_tasks::Vc; use turbo_tasks_fetch::{fetch, FetchErrorKind}; -use turbo_tasks_fs::{DiskFileSystem, FileSystem, FileSystemPath}; +use turbo_tasks_fs::{DiskFileSystem, FileSystem, FileSystemPath, UriScheme}; use turbo_tasks_testing::{register, run, Registration}; use turbopack_core::issue::{Issue, IssueSeverity, StyledString}; @@ -120,7 +120,7 @@ async fn errors_on_failed_connection() { assert_eq!(*err.kind.await?, FetchErrorKind::Connect); assert_eq!(*err.url.await?, url); - let issue = err_vc.to_issue(IssueSeverity::Error.into(), get_issue_context()); + let issue = err_vc.to_issue(IssueSeverity::Error.into(), get_test_issue_context()); assert_eq!(*issue.severity().await?, IssueSeverity::Error); assert_eq!(*issue.description().await?.unwrap().await?, StyledString::Text("There was an issue establishing a connection while requesting https://doesnotexist/foo.woff.".into())); anyhow::Ok(()) @@ -145,7 +145,7 @@ async fn errors_on_404() { assert!(matches!(*err.kind.await?, FetchErrorKind::Status(404))); assert_eq!(*err.url.await?, resource_url); - let issue = err_vc.to_issue(IssueSeverity::Error.into(), get_issue_context()); + let issue = err_vc.to_issue(IssueSeverity::Error.into(), get_test_issue_context()); assert_eq!(*issue.severity().await?, IssueSeverity::Error); assert_eq!( *issue.description().await?.unwrap().await?, @@ -163,6 +163,12 @@ async fn errors_on_404() { .unwrap() } -fn get_issue_context() -> Vc { - DiskFileSystem::new("root".into(), "/".into(), vec![]).root() +fn get_test_issue_context() -> Vc { + DiskFileSystem::new( + UriScheme::Custom("test".into()).cell(), + "root".into(), + "/".into(), + vec![], + ) + .root() } diff --git a/turbopack/crates/turbo-tasks-fs/examples/hash_directory.rs b/turbopack/crates/turbo-tasks-fs/examples/hash_directory.rs index a1728fd9fadaac..a1c20d94212e3d 100644 --- a/turbopack/crates/turbo-tasks-fs/examples/hash_directory.rs +++ b/turbopack/crates/turbo-tasks-fs/examples/hash_directory.rs @@ -13,7 +13,7 @@ use sha2::{Digest, Sha256}; use turbo_tasks::{util::FormatDuration, RcStr, ReadConsistency, TurboTasks, UpdateInfo, Vc}; use turbo_tasks_fs::{ register, DirectoryContent, DirectoryEntry, DiskFileSystem, FileContent, FileSystem, - FileSystemPath, + FileSystemPath, UriScheme, }; use turbo_tasks_memory::MemoryBackend; @@ -31,7 +31,12 @@ async fn main() -> Result<()> { let task = tt.spawn_root_task(|| { Box::pin(async { let root = current_dir().unwrap().to_str().unwrap().into(); - let disk_fs = DiskFileSystem::new("project".into(), root, vec![]); + let disk_fs = DiskFileSystem::new( + UriScheme::Custom("turbopack".into()).cell(), + "project".into(), + root, + vec![], + ); disk_fs.await?.start_watching(None).await?; // Smart Pointer cast diff --git a/turbopack/crates/turbo-tasks-fs/examples/hash_glob.rs b/turbopack/crates/turbo-tasks-fs/examples/hash_glob.rs index b5102fd80903a1..637767e4dd4bf5 100644 --- a/turbopack/crates/turbo-tasks-fs/examples/hash_glob.rs +++ b/turbopack/crates/turbo-tasks-fs/examples/hash_glob.rs @@ -13,7 +13,7 @@ use sha2::{Digest, Sha256}; use turbo_tasks::{util::FormatDuration, RcStr, ReadConsistency, TurboTasks, UpdateInfo, Vc}; use turbo_tasks_fs::{ glob::Glob, register, DirectoryEntry, DiskFileSystem, FileContent, FileSystem, FileSystemPath, - ReadGlobResult, + ReadGlobResult, UriScheme, }; use turbo_tasks_memory::MemoryBackend; @@ -28,7 +28,12 @@ async fn main() -> Result<()> { let task = tt.spawn_root_task(|| { Box::pin(async { let root = current_dir().unwrap().to_str().unwrap().into(); - let disk_fs = DiskFileSystem::new("project".into(), root, vec![]); + let disk_fs = DiskFileSystem::new( + UriScheme::Custom("turbopack".into()).cell(), + "project".into(), + root, + vec![], + ); disk_fs.await?.start_watching(None).await?; // Smart Pointer cast diff --git a/turbopack/crates/turbo-tasks-fs/src/embed/dir.rs b/turbopack/crates/turbo-tasks-fs/src/embed/dir.rs index 0a834c682a1030..d78a9aa758936f 100644 --- a/turbopack/crates/turbo-tasks-fs/src/embed/dir.rs +++ b/turbopack/crates/turbo-tasks-fs/src/embed/dir.rs @@ -4,24 +4,26 @@ pub use ::include_dir::{ use anyhow::Result; use turbo_tasks::{RcStr, Vc}; -use crate::{embed::EmbeddedFileSystem, DiskFileSystem, FileSystem}; +use crate::{embed::EmbeddedFileSystem, DiskFileSystem, FileSystem, UriScheme}; #[turbo_tasks::function] pub async fn directory_from_relative_path( + uri_scheme: Vc, name: RcStr, path: RcStr, ) -> Result>> { - let disk_fs = DiskFileSystem::new(name, path, vec![]); + let disk_fs = DiskFileSystem::new(uri_scheme, name, path, vec![]); disk_fs.await?.start_watching(None).await?; Ok(Vc::upcast(disk_fs)) } pub fn directory_from_include_dir( + uri_scheme: RcStr, name: RcStr, dir: &'static include_dir::Dir<'static>, ) -> Vc> { - Vc::upcast(EmbeddedFileSystem::new(name, dir)) + Vc::upcast(EmbeddedFileSystem::new(uri_scheme, name, dir)) } /// Returns an embedded [Vc>] for the given path. @@ -37,12 +39,12 @@ pub fn directory_from_include_dir( /// only the directory path will be embedded into the binary. #[macro_export] macro_rules! embed_directory { - ($name:tt, $path:tt) => {{ // make sure the path contains `$CARGO_MANIFEST_DIR` + ($uri_scheme:tt, $name:tt, $path:tt) => {{ // make sure the path contains `$CARGO_MANIFEST_DIR` assert!($path.contains("$CARGO_MANIFEST_DIR")); // make sure `CARGO_MANIFEST_DIR` is the only env variable in the path assert!(!$path.replace("$CARGO_MANIFEST_DIR", "").contains('$')); - turbo_tasks_fs::embed_directory_internal!($name, $path) + turbo_tasks_fs::embed_directory_internal!($uri_scheme, $name, $path) }}; } @@ -50,13 +52,17 @@ macro_rules! embed_directory { #[macro_export] #[doc(hidden)] macro_rules! embed_directory_internal { - ($name:tt, $path:tt) => {{ + ($uri_scheme:tt, $name:tt, $path:tt) => {{ // make sure the types the `include_dir!` proc macro refers to are in scope use turbo_tasks_fs::embed::include_dir; let path = $path.replace("$CARGO_MANIFEST_DIR", env!("CARGO_MANIFEST_DIR")); - turbo_tasks_fs::embed::directory_from_relative_path($name.to_string(), path) + turbo_tasks_fs::embed::directory_from_relative_path( + $uri_scheme.into(), + $name.to_string(), + path, + ) }}; } @@ -64,12 +70,12 @@ macro_rules! embed_directory_internal { #[macro_export] #[doc(hidden)] macro_rules! embed_directory_internal { - ($name:tt, $path:tt) => {{ + ($uri_scheme:tt, $name:tt, $path:tt) => {{ // make sure the types the `include_dir!` proc macro refers to are in scope use turbo_tasks_fs::embed::include_dir; static dir: include_dir::Dir<'static> = turbo_tasks_fs::embed::include_dir!($path); - turbo_tasks_fs::embed::directory_from_include_dir($name.into(), &dir) + turbo_tasks_fs::embed::directory_from_include_dir($uri_scheme.into(), $name.into(), &dir) }}; } diff --git a/turbopack/crates/turbo-tasks-fs/src/embed/file.rs b/turbopack/crates/turbo-tasks-fs/src/embed/file.rs index 84b806b524cab0..e294690601965f 100644 --- a/turbopack/crates/turbo-tasks-fs/src/embed/file.rs +++ b/turbopack/crates/turbo-tasks-fs/src/embed/file.rs @@ -4,10 +4,11 @@ use anyhow::{Context, Result}; use dunce::canonicalize; use turbo_tasks::{RcStr, Vc}; -use crate::{DiskFileSystem, File, FileContent, FileSystem}; +use crate::{DiskFileSystem, File, FileContent, FileSystem, UriScheme}; #[turbo_tasks::function] pub async fn content_from_relative_path( + uri_scheme: Vc, package_path: RcStr, path: RcStr, ) -> Result> { @@ -19,6 +20,7 @@ pub async fn content_from_relative_path( let path = resolved_path.file_name().unwrap().to_str().unwrap(); let disk_fs = DiskFileSystem::new( + uri_scheme, root_path.to_string_lossy().into(), root_path.to_string_lossy().into(), vec![], diff --git a/turbopack/crates/turbo-tasks-fs/src/embed/fs.rs b/turbopack/crates/turbo-tasks-fs/src/embed/fs.rs index 159042797b6eb9..e22731e03d58c7 100644 --- a/turbopack/crates/turbo-tasks-fs/src/embed/fs.rs +++ b/turbopack/crates/turbo-tasks-fs/src/embed/fs.rs @@ -13,11 +13,21 @@ pub struct EmbeddedFileSystem { name: RcStr, #[turbo_tasks(trace_ignore)] dir: &'static Dir<'static>, + uri_scheme: RcStr, } impl EmbeddedFileSystem { - pub(super) fn new(name: RcStr, dir: &'static Dir<'static>) -> Vc { - EmbeddedFileSystem { name, dir }.cell() + pub(super) fn new( + uri_scheme: RcStr, + name: RcStr, + dir: &'static Dir<'static>, + ) -> Vc { + EmbeddedFileSystem { + name, + dir, + uri_scheme, + } + .cell() } } @@ -100,6 +110,15 @@ impl FileSystem for EmbeddedFileSystem { Ok(FileMeta::default().cell()) } + + #[turbo_tasks::function(fs)] + async fn file_uri(&self, fs_path: Vc) -> Result> { + let path_str = &*fs_path.await?.path; + Ok(Vc::cell(RcStr::from(format!( + "{}://[{}]/{}", + self.uri_scheme, self.name, path_str + )))) + } } #[turbo_tasks::value_impl] diff --git a/turbopack/crates/turbo-tasks-fs/src/lib.rs b/turbopack/crates/turbo-tasks-fs/src/lib.rs index be153e3cebb5da..abf45c552de6ae 100644 --- a/turbopack/crates/turbo-tasks-fs/src/lib.rs +++ b/turbopack/crates/turbo-tasks-fs/src/lib.rs @@ -193,11 +193,15 @@ pub trait FileSystem: ValueToString { target: Vc, ) -> Vc; fn metadata(self: Vc, fs_path: Vc) -> Vc; + fn file_uri(self: Vc, _fs_path: Vc) -> Vc { + unimplemented!(); + } } #[turbo_tasks::value(cell = "new", eq = "manual")] pub struct DiskFileSystem { pub name: RcStr, + pub uri_scheme: Vc, pub root: RcStr, #[turbo_tasks(debug_ignore, trace_ignore)] #[serde(skip)] @@ -415,6 +419,12 @@ pub fn path_to_key(path: impl AsRef) -> String { path.as_ref().to_string_lossy().to_string() } +#[turbo_tasks::value(shared)] +pub enum UriScheme { + File, + Custom(RcStr), +} + #[turbo_tasks::value_impl] impl DiskFileSystem { /// Create a new instance of `DiskFileSystem`. @@ -426,12 +436,18 @@ impl DiskFileSystem { /// be a full path, since it is possible that root & project dir is different and requires to /// ignore specific subpaths from each. #[turbo_tasks::function] - pub async fn new(name: RcStr, root: RcStr, ignored_subpaths: Vec) -> Result> { + pub async fn new( + uri_scheme: Vc, + name: RcStr, + root: RcStr, + ignored_subpaths: Vec, + ) -> Result> { mark_stateful(); let instance = DiskFileSystem { name, root, + uri_scheme, mutex_map: Default::default(), invalidation_lock: Default::default(), invalidator_map: Arc::new(InvalidatorMap::new()), @@ -886,6 +902,22 @@ impl FileSystem for DiskFileSystem { Ok(FileMeta::cell(meta.into())) } + + #[turbo_tasks::function(fs)] + async fn file_uri(&self, fs_path: Vc) -> Result> { + Ok(Vc::cell(RcStr::from(match &*self.uri_scheme.await? { + UriScheme::File => { + format!( + "file://{}", + sys_to_unix(&self.to_sys_path(fs_path).await?.to_string_lossy()) + ) + } + UriScheme::Custom(uri_scheme) => { + let path_str = &*fs_path.await?.path; + format!("{}://[{}]/{}", uri_scheme, self.name, path_str) + } + }))) + } } #[turbo_tasks::value_impl] @@ -1301,6 +1333,12 @@ impl FileSystemPath { Cow::Owned(path) => path.cell(), }) } + + #[turbo_tasks::function] + pub async fn uri(self: Vc) -> Result> { + let this = self.await?; + Ok(this.fs.file_uri(self)) + } } impl Display for FileSystemPath { diff --git a/turbopack/crates/turbopack-cli/src/embed_js.rs b/turbopack/crates/turbopack-cli/src/embed_js.rs index 676341316d70b1..19f91305c645b2 100644 --- a/turbopack/crates/turbopack-cli/src/embed_js.rs +++ b/turbopack/crates/turbopack-cli/src/embed_js.rs @@ -3,7 +3,7 @@ use turbo_tasks_fs::{embed_directory, FileContent, FileSystem, FileSystemPath}; #[turbo_tasks::function] fn embed_fs() -> Vc> { - embed_directory!("turbopack-cli", "$CARGO_MANIFEST_DIR/js/src") + embed_directory!("turbopack", "turbopack-cli", "$CARGO_MANIFEST_DIR/js/src") } #[turbo_tasks::function] diff --git a/turbopack/crates/turbopack-cli/src/util.rs b/turbopack/crates/turbopack-cli/src/util.rs index 69ebdf0da9d4fe..b140bc0b7eecaf 100644 --- a/turbopack/crates/turbopack-cli/src/util.rs +++ b/turbopack/crates/turbopack-cli/src/util.rs @@ -3,7 +3,7 @@ use std::{env::current_dir, path::PathBuf}; use anyhow::{Context, Result}; use dunce::canonicalize; use turbo_tasks::{RcStr, Vc}; -use turbo_tasks_fs::{DiskFileSystem, FileSystem}; +use turbo_tasks_fs::{DiskFileSystem, FileSystem, UriScheme}; #[turbo_tasks::value(transparent)] pub struct EntryRequests(pub Vec>); @@ -61,14 +61,24 @@ pub fn normalize_entries(entries: &Option>) -> Vec { #[turbo_tasks::function] pub async fn project_fs(project_dir: RcStr) -> Result>> { - let disk_fs = DiskFileSystem::new("project".into(), project_dir, vec![]); + let disk_fs = DiskFileSystem::new( + UriScheme::Custom("turbopack".into()).cell(), + "project".into(), + project_dir, + vec![], + ); disk_fs.await?.start_watching(None).await?; Ok(Vc::upcast(disk_fs)) } #[turbo_tasks::function] pub async fn output_fs(project_dir: RcStr) -> Result>> { - let disk_fs = DiskFileSystem::new("output".into(), project_dir, vec![]); + let disk_fs = DiskFileSystem::new( + UriScheme::Custom("turbopack".into()).cell(), + "output".into(), + project_dir, + vec![], + ); disk_fs.await?.start_watching(None).await?; Ok(Vc::upcast(disk_fs)) } diff --git a/turbopack/crates/turbopack-core/src/source_map/mod.rs b/turbopack/crates/turbopack-core/src/source_map/mod.rs index 322980c8b9d1d0..9298a5f55bc47c 100644 --- a/turbopack/crates/turbopack-core/src/source_map/mod.rs +++ b/turbopack/crates/turbopack-core/src/source_map/mod.rs @@ -359,17 +359,16 @@ impl SourceMap { ) -> Result<(Arc, Arc)> { Ok( if let Some(path) = *origin.parent().try_join((&*source_request).into()).await? { - let path_str = path.to_string().await?; - let source = format!("{SOURCE_MAP_PREFIX}{}", path_str); + let source = &*path.uri().await?; let source_content = if let Some(source_content) = source_content { source_content } else if let FileContent::Content(file) = &*path.read().await? { let text = file.content().to_str()?; text.to_string().into() } else { - format!("unable to read source {path_str}").into() + format!("unable to read source {source}").into() }; - (source.into(), source_content) + (source.to_string().into(), source_content) } else { let origin_str = origin.to_string().await?; static INVALID_REGEX: Lazy = diff --git a/turbopack/crates/turbopack-css/src/process.rs b/turbopack/crates/turbopack-css/src/process.rs index 8779c1094377b7..37823c83bf61db 100644 --- a/turbopack/crates/turbopack-css/src/process.rs +++ b/turbopack/crates/turbopack-css/src/process.rs @@ -4,6 +4,7 @@ use std::{ }; use anyhow::{bail, Context, Result}; +use indexmap::IndexMap; use lightningcss::{ css_modules::{CssModuleExport, CssModuleExports, CssModuleReference, Pattern, Segment}, dependencies::{Dependency, ImportDependency, Location, SourceRange}, @@ -50,7 +51,6 @@ use turbopack_core::{ source::Source, source_map::{GenerateSourceMap, OptionSourceMap}, source_pos::SourcePos, - SOURCE_MAP_PREFIX, }; use turbopack_swc_utils::emitter::IssueEmitter; @@ -69,7 +69,10 @@ static BASENAME_RE: Lazy = Lazy::new(|| Regex::new(r"^[^.]*").unwrap()); #[derive(Debug)] pub enum StyleSheetLike<'i, 'o> { - LightningCss(StyleSheet<'i, 'o>), + LightningCss { + stylesheet: StyleSheet<'i, 'o>, + source_map_source_replacements: IndexMap, + }, Swc { stylesheet: swc_core::css::ast::Stylesheet, css_modules: Option, @@ -96,9 +99,13 @@ impl StyleSheetLike<'_, '_> { options: ParserOptions<'static, 'static>, ) -> StyleSheetLike<'static, 'static> { match self { - StyleSheetLike::LightningCss(ss) => { - StyleSheetLike::LightningCss(stylesheet_into_static(ss, options)) - } + StyleSheetLike::LightningCss { + stylesheet, + source_map_source_replacements, + } => StyleSheetLike::LightningCss { + stylesheet: stylesheet_into_static(stylesheet, options), + source_map_source_replacements: source_map_source_replacements.clone(), + }, StyleSheetLike::Swc { stylesheet, css_modules, @@ -119,7 +126,10 @@ impl StyleSheetLike<'_, '_> { handle_nesting: bool, ) -> Result { match self { - StyleSheetLike::LightningCss(ss) => { + StyleSheetLike::LightningCss { + stylesheet, + source_map_source_replacements, + } => { let mut srcmap = if enable_srcmap { Some(parcel_sourcemap::SourceMap::new("")) } else { @@ -135,7 +145,7 @@ impl StyleSheetLike<'_, '_> { Default::default() }; - let result = ss.to_css(PrinterOptions { + let result = stylesheet.to_css(PrinterOptions { minify: matches!(minify_type, MinifyType::Minify), source_map: srcmap.as_mut(), targets, @@ -144,15 +154,20 @@ impl StyleSheetLike<'_, '_> { })?; if let Some(srcmap) = &mut srcmap { - debug_assert_eq!(ss.sources.len(), 1); + debug_assert_eq!(stylesheet.sources.len(), 1); - srcmap.add_sources(ss.sources.clone()); + srcmap.add_sources(stylesheet.sources.clone()); srcmap.set_source_content(0, code)?; } Ok(( result, - srcmap.map(ParseCssResultSourceMap::new_lightningcss), + srcmap.map(|m| { + ParseCssResultSourceMap::new_lightningcss( + m, + source_map_source_replacements.clone(), + ) + }), )) } StyleSheetLike::Swc { @@ -309,6 +324,11 @@ pub enum ParseCssResult { #[turbo_tasks(trace_ignore)] options: ParserOptions<'static, 'static>, + + // A mapping of replacements for source path names to be used when generating sourcemaps. + // Lightningcss doesn't properly respect URLs, so project-relative source paths need to be + // replaced. + source_map_replacements: IndexMap, }, Unparseable, NotFound, @@ -493,7 +513,8 @@ pub async fn parse_css( async move { let content = source.content(); let fs_path = source.ident().path(); - let ident_str = &*source.ident().to_string().await?; + let file_path_str = &*fs_path.await?.path; + let file_uri = &*source.ident().path().uri().await?; Ok(match &*content.await? { AssetContent::Redirect { .. } => ParseCssResult::Unparseable.cell(), AssetContent::File(file_content) => match &*file_content.await? { @@ -505,7 +526,8 @@ pub async fn parse_css( *file_content, string.into_owned(), fs_path, - ident_str, + file_path_str, + file_uri, source, origin, import_context, @@ -526,7 +548,8 @@ async fn process_content( content_vc: Vc, code: String, fs_path_vc: Vc, - filename: &str, + file_path: &str, + file_uri: &str, source: Vc>, origin: Vc>, import_context: Vc, @@ -564,85 +587,94 @@ async fn process_content( _ => None, }, - filename: filename.to_string(), + filename: file_path.to_string(), error_recovery: true, ..Default::default() }; let cm: Arc = Default::default(); + let source_map_replacements = { + let mut map = IndexMap::new(); + map.insert(file_path.to_string(), file_uri.to_string()); + map + }; + let stylesheet = if !use_swc_css { - StyleSheetLike::LightningCss({ - let warnings: Arc> = Default::default(); - - match StyleSheet::parse( - &code, - ParserOptions { - warnings: Some(warnings.clone()), - ..config.clone() - }, - ) { - Ok(mut ss) => { - if matches!(ty, CssModuleAssetType::Module) { - let mut validator = CssValidator { errors: Vec::new() }; - ss.visit(&mut validator).unwrap(); - - for err in validator.errors { - err.report(source, fs_path_vc); + StyleSheetLike::LightningCss { + source_map_source_replacements: source_map_replacements.clone(), + stylesheet: ({ + let warnings: Arc> = Default::default(); + + match StyleSheet::parse( + &code, + ParserOptions { + warnings: Some(warnings.clone()), + ..config.clone() + }, + ) { + Ok(mut ss) => { + if matches!(ty, CssModuleAssetType::Module) { + let mut validator = CssValidator { errors: Vec::new() }; + ss.visit(&mut validator).unwrap(); + + for err in validator.errors { + err.report(source, fs_path_vc); + } } - } - for err in warnings.read().unwrap().iter() { - match err.kind { - lightningcss::error::ParserError::UnexpectedToken(_) - | lightningcss::error::ParserError::UnexpectedImportRule - | lightningcss::error::ParserError::SelectorError(..) - | lightningcss::error::ParserError::EndOfInput => { - let source = err.loc.as_ref().map(|loc| { - let pos = SourcePos { - line: loc.line as _, - column: loc.column as _, - }; - IssueSource::from_line_col(source, pos, pos) - }); - - ParsingIssue { - file: fs_path_vc, - msg: Vc::cell(err.to_string().into()), - source, + for err in warnings.read().unwrap().iter() { + match err.kind { + lightningcss::error::ParserError::UnexpectedToken(_) + | lightningcss::error::ParserError::UnexpectedImportRule + | lightningcss::error::ParserError::SelectorError(..) + | lightningcss::error::ParserError::EndOfInput => { + let source = err.loc.as_ref().map(|loc| { + let pos = SourcePos { + line: loc.line as _, + column: loc.column as _, + }; + IssueSource::from_line_col(source, pos, pos) + }); + + ParsingIssue { + file: fs_path_vc, + msg: Vc::cell(err.to_string().into()), + source, + } + .cell() + .emit(); + return Ok(ParseCssResult::Unparseable.cell()); } - .cell() - .emit(); - return Ok(ParseCssResult::Unparseable.cell()); - } - _ => { - // Ignore + _ => { + // Ignore + } } } - } - stylesheet_into_static(&ss, without_warnings(config.clone())) - } - Err(e) => { - let source = e.loc.as_ref().map(|loc| { - let pos = SourcePos { - line: loc.line as _, - column: loc.column as _, - }; - IssueSource::from_line_col(source, pos, pos) - }); - ParsingIssue { - file: fs_path_vc, - msg: Vc::cell(e.to_string().into()), - source, + stylesheet_into_static(&ss, without_warnings(config.clone())) + } + Err(e) => { + let source = e.loc.as_ref().map(|loc| { + let pos = SourcePos { + line: loc.line as _, + column: loc.column as _, + }; + IssueSource::from_line_col(source, pos, pos) + }); + ParsingIssue { + file: fs_path_vc, + msg: Vc::cell(e.to_string().into()), + source, + } + .cell() + .emit(); + return Ok(ParseCssResult::Unparseable.cell()); } - .cell() - .emit(); - return Ok(ParseCssResult::Unparseable.cell()); } - } - }) + }), + } } else { let fs_path = &*fs_path_vc.await?; @@ -656,7 +688,7 @@ async fn process_content( )), ); - let fm = cm.new_source_file(FileName::Custom(filename.to_string()).into(), code.clone()); + let fm = cm.new_source_file(FileName::Custom(file_uri.to_string()).into(), code.clone()); let mut errors = vec![]; let ss = swc_core::css::parser::parse_file( @@ -706,7 +738,7 @@ async fn process_content( .context("Must include basename preceding .")? .as_str(); // Truncate this as u32 so it's formatted as 8-character hex in the suffix below - let path_hash = turbo_tasks_hash::hash_xxh3_hash64(filename) as u32; + let path_hash = turbo_tasks_hash::hash_xxh3_hash64(file_uri) as u32; Some(SwcCssModuleMode { basename: basename.to_string(), @@ -731,6 +763,7 @@ async fn process_content( references: Vc::cell(references), url_references: Vc::cell(url_references), options: config, + source_map_replacements, } .cell()) } @@ -945,6 +978,7 @@ pub enum ParseCssResultSourceMap { Parcel { #[turbo_tasks(debug_ignore, trace_ignore)] source_map: parcel_sourcemap::SourceMap, + source_replacements: IndexMap, }, Swc { @@ -965,8 +999,14 @@ impl PartialEq for ParseCssResultSourceMap { } impl ParseCssResultSourceMap { - pub fn new_lightningcss(source_map: parcel_sourcemap::SourceMap) -> Self { - ParseCssResultSourceMap::Parcel { source_map } + pub fn new_lightningcss( + source_map: parcel_sourcemap::SourceMap, + source_replacements: IndexMap, + ) -> Self { + ParseCssResultSourceMap::Parcel { + source_map, + source_replacements, + } } pub fn new_swc( @@ -985,11 +1025,14 @@ impl GenerateSourceMap for ParseCssResultSourceMap { #[turbo_tasks::function] fn generate_source_map(&self) -> Vc { match self { - ParseCssResultSourceMap::Parcel { source_map } => { + ParseCssResultSourceMap::Parcel { + source_map, + source_replacements, + } => { let mut builder = SourceMapBuilder::new(None); for src in source_map.get_sources() { - builder.add_source(&format!("{SOURCE_MAP_PREFIX}{src}")); + builder.add_source(source_replacements.get(src).unwrap_or(src)); } for (idx, content) in source_map.get_sources_content().iter().enumerate() { diff --git a/turbopack/crates/turbopack-css/src/references/mod.rs b/turbopack/crates/turbopack-css/src/references/mod.rs index 680b0d7bc23aba..6915363598c1c3 100644 --- a/turbopack/crates/turbopack-css/src/references/mod.rs +++ b/turbopack/crates/turbopack-css/src/references/mod.rs @@ -52,8 +52,8 @@ pub fn analyze_references( let mut visitor = ModuleReferencesVisitor::new(source, origin, import_context, &mut references, &mut urls); match stylesheet { - StyleSheetLike::LightningCss(ss) => { - ss.visit(&mut visitor).unwrap(); + StyleSheetLike::LightningCss { stylesheet, .. } => { + stylesheet.visit(&mut visitor).unwrap(); } StyleSheetLike::Swc { stylesheet, .. } => { stylesheet.visit_mut_with(&mut visitor); diff --git a/turbopack/crates/turbopack-css/src/references/url.rs b/turbopack/crates/turbopack-css/src/references/url.rs index 1448aa693458a2..527904a4e098f2 100644 --- a/turbopack/crates/turbopack-css/src/references/url.rs +++ b/turbopack/crates/turbopack-css/src/references/url.rs @@ -148,8 +148,8 @@ pub fn replace_url_references( ) { let mut replacer = AssetReferenceReplacer { urls }; match ss { - StyleSheetLike::LightningCss(ss) => { - ss.visit(&mut replacer).unwrap(); + StyleSheetLike::LightningCss { stylesheet, .. } => { + stylesheet.visit(&mut replacer).unwrap(); } StyleSheetLike::Swc { stylesheet, .. } => { stylesheet.visit_mut_with(&mut replacer); diff --git a/turbopack/crates/turbopack-ecmascript-runtime/src/embed_js.rs b/turbopack/crates/turbopack-ecmascript-runtime/src/embed_js.rs index fda4e89341c62c..2bb4a494f231c4 100644 --- a/turbopack/crates/turbopack-ecmascript-runtime/src/embed_js.rs +++ b/turbopack/crates/turbopack-ecmascript-runtime/src/embed_js.rs @@ -5,7 +5,7 @@ use turbopack_ecmascript::StaticEcmascriptCode; #[turbo_tasks::function] pub fn embed_fs() -> Vc> { - embed_directory!("turbopack", "$CARGO_MANIFEST_DIR/js/src") + embed_directory!("turbopack", "turbopack", "$CARGO_MANIFEST_DIR/js/src") } #[turbo_tasks::function] diff --git a/turbopack/crates/turbopack-ecmascript/src/parse.rs b/turbopack/crates/turbopack-ecmascript/src/parse.rs index 1c99733c878b80..bee13fa03e75d1 100644 --- a/turbopack/crates/turbopack-ecmascript/src/parse.rs +++ b/turbopack/crates/turbopack-ecmascript/src/parse.rs @@ -30,7 +30,6 @@ use turbopack_core::{ issue::{Issue, IssueExt, IssueSeverity, IssueStage, OptionStyledString, StyledString}, source::Source, source_map::{GenerateSourceMap, OptionSourceMap, SourceMap}, - SOURCE_MAP_PREFIX, }; use turbopack_swc_utils::emitter::IssueEmitter; @@ -139,12 +138,7 @@ struct InlineSourcesContentConfig {} impl SourceMapGenConfig for InlineSourcesContentConfig { fn file_name_to_source(&self, f: &FileName) -> String { - match f { - FileName::Custom(s) => { - format!("{SOURCE_MAP_PREFIX}{s}") - } - _ => f.to_string(), - } + f.to_string() } fn inline_sources_content(&self, _f: &FileName) -> bool { @@ -180,7 +174,9 @@ async fn parse_internal( let content = source.content(); let fs_path_vc = source.ident().path(); let fs_path = &*fs_path_vc.await?; - let ident = &*source.ident().to_string().await?; + + let file_uri = fs_path_vc.uri().await?; + let file_path_hash = hash_xxh3_hash64(&*source.ident().to_string().await?) as u128; let ty = ty.into_value(); let content = match content.await { @@ -210,7 +206,7 @@ async fn parse_internal( string.into_owned(), fs_path_vc, fs_path, - ident, + &file_uri, file_path_hash, source, ty, @@ -250,7 +246,7 @@ async fn parse_file_content( string: String, fs_path_vc: Vc, fs_path: &FileSystemPath, - ident: &str, + file_uri: &str, file_path_hash: u128, source: Vc>, ty: EcmascriptModuleAssetType, @@ -278,7 +274,7 @@ async fn parse_file_content( let mut result = WrapFuture::new( async { - let file_name = FileName::Custom(ident.to_string()); + let file_name = FileName::Custom(file_uri.to_string()); let fm = source_map.new_source_file(file_name.clone().into(), string); let comments = SwcComments::default(); diff --git a/turbopack/crates/turbopack-node/src/embed_js.rs b/turbopack/crates/turbopack-node/src/embed_js.rs index 93f31eb503dd1d..4fc570a20d3cb6 100644 --- a/turbopack/crates/turbopack-node/src/embed_js.rs +++ b/turbopack/crates/turbopack-node/src/embed_js.rs @@ -3,7 +3,7 @@ use turbo_tasks_fs::{embed_directory, FileContent, FileSystem, FileSystemPath}; #[turbo_tasks::function] pub fn embed_fs() -> Vc> { - embed_directory!("turbopack-node", "$CARGO_MANIFEST_DIR/js/src") + embed_directory!("turbopack", "turbopack-node", "$CARGO_MANIFEST_DIR/js/src") } #[turbo_tasks::function] diff --git a/turbopack/crates/turbopack-tests/tests/execution.rs b/turbopack/crates/turbopack-tests/tests/execution.rs index 43ce9db5ecd9dd..42359384bfd9e4 100644 --- a/turbopack/crates/turbopack-tests/tests/execution.rs +++ b/turbopack/crates/turbopack-tests/tests/execution.rs @@ -18,7 +18,7 @@ use turbo_tasks_bytes::stream::SingleValue; use turbo_tasks_env::CommandLineProcessEnv; use turbo_tasks_fs::{ json::parse_json_with_source_context, util::sys_to_unix, DiskFileSystem, FileContent, - FileSystem, FileSystemEntryType, FileSystemPath, + FileSystem, FileSystemEntryType, FileSystemPath, UriScheme, }; use turbo_tasks_memory::MemoryBackend; use turbopack::{ @@ -204,8 +204,18 @@ async fn prepare_test(resource: RcStr) -> Result> { resource_path.to_str().unwrap() ); - let root_fs = DiskFileSystem::new("workspace".into(), REPO_ROOT.clone(), vec![]); - let project_fs = DiskFileSystem::new("project".into(), REPO_ROOT.clone(), vec![]); + let root_fs = DiskFileSystem::new( + UriScheme::Custom("turbopack".into()).cell(), + "workspace".into(), + REPO_ROOT.clone(), + vec![], + ); + let project_fs = DiskFileSystem::new( + UriScheme::Custom("turbopack".into()).cell(), + "project".into(), + REPO_ROOT.clone(), + vec![], + ); let project_root = project_fs.root(); let relative_path = resource_path.strip_prefix(&*REPO_ROOT).context(format!( diff --git a/turbopack/crates/turbopack-tests/tests/snapshot.rs b/turbopack/crates/turbopack-tests/tests/snapshot.rs index 50ba83a7f424e8..331cb8608774fc 100644 --- a/turbopack/crates/turbopack-tests/tests/snapshot.rs +++ b/turbopack/crates/turbopack-tests/tests/snapshot.rs @@ -19,7 +19,7 @@ use turbo_tasks::{ use turbo_tasks_env::DotenvProcessEnv; use turbo_tasks_fs::{ json::parse_json_with_source_context, util::sys_to_unix, DiskFileSystem, FileSystem, - FileSystemPath, + FileSystemPath, UriScheme, }; use turbo_tasks_memory::MemoryBackend; use turbopack::{ @@ -194,8 +194,18 @@ async fn run_test(resource: RcStr) -> Result> { Err(_) => SnapshotOptions::default(), Ok(options_str) => parse_json_with_source_context(&options_str).unwrap(), }; - let root_fs = DiskFileSystem::new("workspace".into(), REPO_ROOT.clone(), vec![]); - let project_fs = DiskFileSystem::new("project".into(), REPO_ROOT.clone(), vec![]); + let root_fs = DiskFileSystem::new( + UriScheme::Custom("turbopack".into()).cell(), + "workspace".into(), + REPO_ROOT.clone(), + vec![], + ); + let project_fs = DiskFileSystem::new( + UriScheme::Custom("turbopack".into()).cell(), + "project".into(), + REPO_ROOT.clone(), + vec![], + ); let project_root = project_fs.root(); let relative_path = test_path.strip_prefix(&*REPO_ROOT)?; diff --git a/turbopack/crates/turbopack-tests/tests/snapshot/css/css-modules/output/4e721_crates_turbopack-tests_tests_snapshot_css_css-modules_input_style_module_76a252.css b/turbopack/crates/turbopack-tests/tests/snapshot/css/css-modules/output/4e721_crates_turbopack-tests_tests_snapshot_css_css-modules_input_style_module_76a252.css index 983033093ca600..e333e586d4ec72 100644 --- a/turbopack/crates/turbopack-tests/tests/snapshot/css/css-modules/output/4e721_crates_turbopack-tests_tests_snapshot_css_css-modules_input_style_module_76a252.css +++ b/turbopack/crates/turbopack-tests/tests/snapshot/css/css-modules/output/4e721_crates_turbopack-tests_tests_snapshot_css_css-modules_input_style_module_76a252.css @@ -1,4 +1,4 @@ /* [project]/turbopack/crates/turbopack-tests/tests/snapshot/css/css-modules/input/style.module.css [test] (css) */ -.style-module__cu3fEW__module-style{grid-template-areas:"checkbox avatar content actions menu"} +.style-module__h5N2Da__module-style{grid-template-areas:"checkbox avatar content actions menu"} /*# sourceMappingURL=4e721_crates_turbopack-tests_tests_snapshot_css_css-modules_input_style_module_76a252.css.map*/ \ No newline at end of file diff --git a/turbopack/crates/turbopack-tests/tests/snapshot/css/css-modules/output/4e721_crates_turbopack-tests_tests_snapshot_css_css-modules_input_style_module_7d7e1c.css b/turbopack/crates/turbopack-tests/tests/snapshot/css/css-modules/output/4e721_crates_turbopack-tests_tests_snapshot_css_css-modules_input_style_module_7d7e1c.css index 8c7bccbd61cca8..f07c2659900a8f 100644 --- a/turbopack/crates/turbopack-tests/tests/snapshot/css/css-modules/output/4e721_crates_turbopack-tests_tests_snapshot_css_css-modules_input_style_module_7d7e1c.css +++ b/turbopack/crates/turbopack-tests/tests/snapshot/css/css-modules/output/4e721_crates_turbopack-tests_tests_snapshot_css_css-modules_input_style_module_7d7e1c.css @@ -1,3 +1,3 @@ /* [project]/turbopack/crates/turbopack-tests/tests/snapshot/css/css-modules/input/style.module.css [test] (css) */ -.style-module__cu3fEW__module-style{grid-template-areas:"checkbox avatar content actions menu"} +.style-module__h5N2Da__module-style{grid-template-areas:"checkbox avatar content actions menu"} /*# sourceMappingURL=4e721_crates_turbopack-tests_tests_snapshot_css_css-modules_input_style_module_7d7e1c.css.map*/ \ No newline at end of file diff --git a/turbopack/crates/turbopack-tests/tests/snapshot/css/css-modules/output/turbopack_crates_turbopack-tests_tests_snapshot_css_css-modules_input_8f2e7f._.js b/turbopack/crates/turbopack-tests/tests/snapshot/css/css-modules/output/turbopack_crates_turbopack-tests_tests_snapshot_css_css-modules_input_8f2e7f._.js index 2d55f32cc4756b..001cc936f39885 100644 --- a/turbopack/crates/turbopack-tests/tests/snapshot/css/css-modules/output/turbopack_crates_turbopack-tests_tests_snapshot_css_css-modules_input_8f2e7f._.js +++ b/turbopack/crates/turbopack-tests/tests/snapshot/css/css-modules/output/turbopack_crates_turbopack-tests_tests_snapshot_css_css-modules_input_8f2e7f._.js @@ -5,7 +5,7 @@ var { r: __turbopack_require__, f: __turbopack_module_context__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, n: __turbopack_export_namespace__, c: __turbopack_cache__, M: __turbopack_modules__, l: __turbopack_load__, j: __turbopack_dynamic__, P: __turbopack_resolve_absolute_path__, U: __turbopack_relative_url__, R: __turbopack_resolve_module_id_path__, b: __turbopack_worker_blob_url__, g: global, __dirname, t: require } = __turbopack_context__; { __turbopack_export_value__({ - "module-style": "style-module__cu3fEW__module-style", + "module-style": "style-module__h5N2Da__module-style", }); }}), "[project]/turbopack/crates/turbopack-tests/tests/snapshot/css/css-modules/input/index.js [test] (ecmascript)": ((__turbopack_context__) => { diff --git a/turbopack/crates/turbopack-tests/tests/snapshot/css/css-modules/output/turbopack_crates_turbopack-tests_tests_snapshot_css_css-modules_input_8f2e7f._.js.map b/turbopack/crates/turbopack-tests/tests/snapshot/css/css-modules/output/turbopack_crates_turbopack-tests_tests_snapshot_css_css-modules_input_8f2e7f._.js.map index 8d2be92b07820a..72f1d83a50e7b4 100644 --- a/turbopack/crates/turbopack-tests/tests/snapshot/css/css-modules/output/turbopack_crates_turbopack-tests_tests_snapshot_css_css-modules_input_8f2e7f._.js.map +++ b/turbopack/crates/turbopack-tests/tests/snapshot/css/css-modules/output/turbopack_crates_turbopack-tests_tests_snapshot_css_css-modules_input_8f2e7f._.js.map @@ -2,7 +2,7 @@ "version": 3, "sources": [], "sections": [ - {"offset": {"line": 6, "column": 0}, "map": {"version":3,"sources":["turbopack://[project]/turbopack/crates/turbopack-tests/tests/snapshot/css/css-modules/input/style.module.css [test] (css module)"],"sourcesContent":["__turbopack_export_value__({\n \"module-style\": \"style-module__cu3fEW__module-style\",\n});\n"],"names":[],"mappings":"AAAA;AACA;AACA"}}, + {"offset": {"line": 6, "column": 0}, "map": {"version":3,"sources":["[project]/turbopack/crates/turbopack-tests/tests/snapshot/css/css-modules/input/style.module.css [test] (css module)"],"sourcesContent":["__turbopack_export_value__({\n \"module-style\": \"style-module__h5N2Da__module-style\",\n});\n"],"names":[],"mappings":"AAAA;AACA;AACA"}}, {"offset": {"line": 9, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, {"offset": {"line": 15, "column": 0}, "map": {"version":3,"sources":["turbopack://[project]/turbopack/crates/turbopack-tests/tests/snapshot/css/css-modules/input/index.js"],"sourcesContent":["import style from \"./style.module.css\";\n\nconsole.log(style, import(\"./style.module.css\"));\n"],"names":[],"mappings":";AAAA;;AAEA,QAAQ,GAAG,CAAC,+MAAA,CAAA,UAAK"}}, {"offset": {"line": 19, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}] diff --git a/turbopack/crates/turbopack-tests/tests/snapshot/css/css/output/08d19_foo_style_module_7d7e1c.css b/turbopack/crates/turbopack-tests/tests/snapshot/css/css/output/08d19_foo_style_module_7d7e1c.css index 8cfc4e30112d7f..12fb0633229590 100644 --- a/turbopack/crates/turbopack-tests/tests/snapshot/css/css/output/08d19_foo_style_module_7d7e1c.css +++ b/turbopack/crates/turbopack-tests/tests/snapshot/css/css/output/08d19_foo_style_module_7d7e1c.css @@ -1,3 +1,3 @@ /* [project]/turbopack/crates/turbopack-tests/tests/snapshot/css/css/input/node_modules/foo/style.module.css [test] (css) */ -.style-module__CEkn7G__foo-module-style{color:#00f} +.style-module__Xjp-8W__foo-module-style{color:#00f} /*# sourceMappingURL=08d19_foo_style_module_7d7e1c.css.map*/ \ No newline at end of file diff --git a/turbopack/crates/turbopack-tests/tests/snapshot/css/css/output/4e721_crates_turbopack-tests_tests_snapshot_css_css_input_style_module_7d7e1c.css b/turbopack/crates/turbopack-tests/tests/snapshot/css/css/output/4e721_crates_turbopack-tests_tests_snapshot_css_css_input_style_module_7d7e1c.css index 16db85b2e8ed13..7cec840c28bcf8 100644 --- a/turbopack/crates/turbopack-tests/tests/snapshot/css/css/output/4e721_crates_turbopack-tests_tests_snapshot_css_css_input_style_module_7d7e1c.css +++ b/turbopack/crates/turbopack-tests/tests/snapshot/css/css/output/4e721_crates_turbopack-tests_tests_snapshot_css_css_input_style_module_7d7e1c.css @@ -1,3 +1,3 @@ /* [project]/turbopack/crates/turbopack-tests/tests/snapshot/css/css/input/style.module.css [test] (css) */ -.style-module__Iu_hLa__module-style{color:#f0f}.style-module__Iu_hLa__module-style>h1,.style-module__Iu_hLa__module-style+.style-module__Iu_hLa__inner{background:purple}.style-module__Iu_hLa__composed-module-style{color:green;}.style-module__Iu_hLa__another-composed-module-style{color:#ff0;} +.style-module__WZp24W__module-style{color:#f0f}.style-module__WZp24W__module-style>h1,.style-module__WZp24W__module-style+.style-module__WZp24W__inner{background:purple}.style-module__WZp24W__composed-module-style{color:green;}.style-module__WZp24W__another-composed-module-style{color:#ff0;} /*# sourceMappingURL=4e721_crates_turbopack-tests_tests_snapshot_css_css_input_style_module_7d7e1c.css.map*/ \ No newline at end of file diff --git a/turbopack/crates/turbopack-tests/tests/snapshot/css/css/output/turbopack_crates_turbopack-tests_tests_snapshot_css_css_input_6dc4af._.js b/turbopack/crates/turbopack-tests/tests/snapshot/css/css/output/turbopack_crates_turbopack-tests_tests_snapshot_css_css_input_6dc4af._.js index a98695498f5a18..82a98898c976ed 100644 --- a/turbopack/crates/turbopack-tests/tests/snapshot/css/css/output/turbopack_crates_turbopack-tests_tests_snapshot_css_css_input_6dc4af._.js +++ b/turbopack/crates/turbopack-tests/tests/snapshot/css/css/output/turbopack_crates_turbopack-tests_tests_snapshot_css_css_input_6dc4af._.js @@ -5,10 +5,10 @@ var { r: __turbopack_require__, f: __turbopack_module_context__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, n: __turbopack_export_namespace__, c: __turbopack_cache__, M: __turbopack_modules__, l: __turbopack_load__, j: __turbopack_dynamic__, P: __turbopack_resolve_absolute_path__, U: __turbopack_relative_url__, R: __turbopack_resolve_module_id_path__, b: __turbopack_worker_blob_url__, g: global, __dirname, t: require } = __turbopack_context__; { __turbopack_export_value__({ - "another-composed-module-style": "style-module__Iu_hLa__another-composed-module-style" + " " + __turbopack_import__("[project]/turbopack/crates/turbopack-tests/tests/snapshot/css/css/input/node_modules/foo/style.module.css [test] (css module)")["foo-module-style"], - "composed-module-style": "style-module__Iu_hLa__composed-module-style" + " " + __turbopack_import__("[project]/turbopack/crates/turbopack-tests/tests/snapshot/css/css/input/node_modules/foo/style.module.css [test] (css module)")["foo-module-style"], - "inner": "style-module__Iu_hLa__inner", - "module-style": "style-module__Iu_hLa__module-style", + "another-composed-module-style": "style-module__WZp24W__another-composed-module-style" + " " + __turbopack_import__("[project]/turbopack/crates/turbopack-tests/tests/snapshot/css/css/input/node_modules/foo/style.module.css [test] (css module)")["foo-module-style"], + "composed-module-style": "style-module__WZp24W__composed-module-style" + " " + __turbopack_import__("[project]/turbopack/crates/turbopack-tests/tests/snapshot/css/css/input/node_modules/foo/style.module.css [test] (css module)")["foo-module-style"], + "inner": "style-module__WZp24W__inner", + "module-style": "style-module__WZp24W__module-style", }); }}), "[project]/turbopack/crates/turbopack-tests/tests/snapshot/css/css/input/index.js [test] (ecmascript)": ((__turbopack_context__) => { @@ -31,7 +31,7 @@ console.log(__TURBOPACK__imported__module__$5b$project$5d2f$turbopack$2f$crates$ var { r: __turbopack_require__, f: __turbopack_module_context__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, n: __turbopack_export_namespace__, c: __turbopack_cache__, M: __turbopack_modules__, l: __turbopack_load__, j: __turbopack_dynamic__, P: __turbopack_resolve_absolute_path__, U: __turbopack_relative_url__, R: __turbopack_resolve_module_id_path__, b: __turbopack_worker_blob_url__, g: global, __dirname, t: require } = __turbopack_context__; { __turbopack_export_value__({ - "foo-module-style": "style-module__CEkn7G__foo-module-style", + "foo-module-style": "style-module__Xjp-8W__foo-module-style", }); }}), }]); diff --git a/turbopack/crates/turbopack-tests/tests/snapshot/css/css/output/turbopack_crates_turbopack-tests_tests_snapshot_css_css_input_6dc4af._.js.map b/turbopack/crates/turbopack-tests/tests/snapshot/css/css/output/turbopack_crates_turbopack-tests_tests_snapshot_css_css_input_6dc4af._.js.map index a4256e593330d0..dd72bafa952274 100644 --- a/turbopack/crates/turbopack-tests/tests/snapshot/css/css/output/turbopack_crates_turbopack-tests_tests_snapshot_css_css_input_6dc4af._.js.map +++ b/turbopack/crates/turbopack-tests/tests/snapshot/css/css/output/turbopack_crates_turbopack-tests_tests_snapshot_css_css_input_6dc4af._.js.map @@ -2,10 +2,10 @@ "version": 3, "sources": [], "sections": [ - {"offset": {"line": 6, "column": 0}, "map": {"version":3,"sources":["turbopack://[project]/turbopack/crates/turbopack-tests/tests/snapshot/css/css/input/style.module.css [test] (css module)"],"sourcesContent":["__turbopack_export_value__({\n \"another-composed-module-style\": \"style-module__Iu_hLa__another-composed-module-style\" + \" \" + __turbopack_import__(\"[project]/turbopack/crates/turbopack-tests/tests/snapshot/css/css/input/node_modules/foo/style.module.css [test] (css module)\")[\"foo-module-style\"],\n \"composed-module-style\": \"style-module__Iu_hLa__composed-module-style\" + \" \" + __turbopack_import__(\"[project]/turbopack/crates/turbopack-tests/tests/snapshot/css/css/input/node_modules/foo/style.module.css [test] (css module)\")[\"foo-module-style\"],\n \"inner\": \"style-module__Iu_hLa__inner\",\n \"module-style\": \"style-module__Iu_hLa__module-style\",\n});\n"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA"}}, + {"offset": {"line": 6, "column": 0}, "map": {"version":3,"sources":["[project]/turbopack/crates/turbopack-tests/tests/snapshot/css/css/input/style.module.css [test] (css module)"],"sourcesContent":["__turbopack_export_value__({\n \"another-composed-module-style\": \"style-module__WZp24W__another-composed-module-style\" + \" \" + __turbopack_import__(\"[project]/turbopack/crates/turbopack-tests/tests/snapshot/css/css/input/node_modules/foo/style.module.css [test] (css module)\")[\"foo-module-style\"],\n \"composed-module-style\": \"style-module__WZp24W__composed-module-style\" + \" \" + __turbopack_import__(\"[project]/turbopack/crates/turbopack-tests/tests/snapshot/css/css/input/node_modules/foo/style.module.css [test] (css module)\")[\"foo-module-style\"],\n \"inner\": \"style-module__WZp24W__inner\",\n \"module-style\": \"style-module__WZp24W__module-style\",\n});\n"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA"}}, {"offset": {"line": 12, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, {"offset": {"line": 18, "column": 0}, "map": {"version":3,"sources":["turbopack://[project]/turbopack/crates/turbopack-tests/tests/snapshot/css/css/input/index.js"],"sourcesContent":["import \"foo/style.css\";\nimport \"foo\";\nimport \"./style.css\";\nimport fooStyle from \"foo/style.module.css\";\nimport style from \"./style.module.css\";\n\nconsole.log(style, fooStyle, import(\"foo\"));\n"],"names":[],"mappings":";AAGA;AACA;;;;;;AAEA,QAAQ,GAAG,CAAC,oMAAA,CAAA,UAAK,EAAE,2NAAA,CAAA,UAAQ"}}, {"offset": {"line": 27, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, - {"offset": {"line": 32, "column": 0}, "map": {"version":3,"sources":["turbopack://[project]/turbopack/crates/turbopack-tests/tests/snapshot/css/css/input/node_modules/foo/style.module.css [test] (css module)"],"sourcesContent":["__turbopack_export_value__({\n \"foo-module-style\": \"style-module__CEkn7G__foo-module-style\",\n});\n"],"names":[],"mappings":"AAAA;AACA;AACA"}}, + {"offset": {"line": 32, "column": 0}, "map": {"version":3,"sources":["[project]/turbopack/crates/turbopack-tests/tests/snapshot/css/css/input/node_modules/foo/style.module.css [test] (css module)"],"sourcesContent":["__turbopack_export_value__({\n \"foo-module-style\": \"style-module__Xjp-8W__foo-module-style\",\n});\n"],"names":[],"mappings":"AAAA;AACA;AACA"}}, {"offset": {"line": 35, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}] } \ No newline at end of file diff --git a/turbopack/crates/turbopack-tests/tests/snapshot/css/css/output/turbopack_crates_turbopack-tests_tests_snapshot_css_css_input_8f45c3._.css b/turbopack/crates/turbopack-tests/tests/snapshot/css/css/output/turbopack_crates_turbopack-tests_tests_snapshot_css_css_input_8f45c3._.css index 75877af35ad1fc..dcf995e25d5b36 100644 --- a/turbopack/crates/turbopack-tests/tests/snapshot/css/css/output/turbopack_crates_turbopack-tests_tests_snapshot_css_css_input_8f45c3._.css +++ b/turbopack/crates/turbopack-tests/tests/snapshot/css/css/output/turbopack_crates_turbopack-tests_tests_snapshot_css_css_input_8f45c3._.css @@ -15,9 +15,9 @@ .style{color:#ff0} /* [project]/turbopack/crates/turbopack-tests/tests/snapshot/css/css/input/node_modules/foo/style.module.css [test] (css) */ -.style-module__CEkn7G__foo-module-style{color:#00f} +.style-module__Xjp-8W__foo-module-style{color:#00f} /* [project]/turbopack/crates/turbopack-tests/tests/snapshot/css/css/input/style.module.css [test] (css) */ -.style-module__Iu_hLa__module-style{color:#f0f}.style-module__Iu_hLa__module-style>h1,.style-module__Iu_hLa__module-style+.style-module__Iu_hLa__inner{background:purple}.style-module__Iu_hLa__composed-module-style{color:green;}.style-module__Iu_hLa__another-composed-module-style{color:#ff0;} +.style-module__WZp24W__module-style{color:#f0f}.style-module__WZp24W__module-style>h1,.style-module__WZp24W__module-style+.style-module__WZp24W__inner{background:purple}.style-module__WZp24W__composed-module-style{color:green;}.style-module__WZp24W__another-composed-module-style{color:#ff0;} /*# sourceMappingURL=turbopack_crates_turbopack-tests_tests_snapshot_css_css_input_8f45c3._.css.map*/ \ No newline at end of file diff --git a/turbopack/crates/turbopack-tests/tests/snapshot/css/url-in-supports-query/output/b1abf_turbopack-tests_tests_snapshot_css_url-in-supports-query_input_style_0d54ef.css.map b/turbopack/crates/turbopack-tests/tests/snapshot/css/url-in-supports-query/output/b1abf_turbopack-tests_tests_snapshot_css_url-in-supports-query_input_style_0d54ef.css.map index bb3f95045b9f57..71c5750a3c745d 100644 --- a/turbopack/crates/turbopack-tests/tests/snapshot/css/url-in-supports-query/output/b1abf_turbopack-tests_tests_snapshot_css_url-in-supports-query_input_style_0d54ef.css.map +++ b/turbopack/crates/turbopack-tests/tests/snapshot/css/url-in-supports-query/output/b1abf_turbopack-tests_tests_snapshot_css_url-in-supports-query_input_style_0d54ef.css.map @@ -2,6 +2,6 @@ "version": 3, "sources": [], "sections": [ - {"offset": {"line": 1, "column": 0}, "map": {"version":3,"sources":["turbopack://[project]/turbopack/crates/turbopack-tests/tests/snapshot/css/url-in-supports-query/input/style.css"],"sourcesContent":["@supports ((-webkit-mask: url(\"\")) or (mask: url(\"\"))) {\n .supports-url-in-query {\n color: red;\n }\n}\n"],"names":[],"mappings":"AAAA,CAAC,QAAQ,AAAE,CAAC,CAAC,AAAD,YAAY,CAAE,GAAG,CAAC,EAAE,CAAA,CAAC,GAAM,CAAC,AAAD,IAAI,CAAE,GAAG,CAAC,EAAE,CAAA,CAAC,CAAC,AAAE,CAAC,AACtD,CAAC,qBAAqB,AAAC,CAAC,AACtB,KAAK,CAAE,GAAG,AACZ,CAAC,AACH,CAAC"}}, + {"offset": {"line": 1, "column": 0}, "map": {"version":3,"sources":["turbopack://turbopack://[project]/turbopack/crates/turbopack-tests/tests/snapshot/css/url-in-supports-query/input/style.css"],"sourcesContent":["@supports ((-webkit-mask: url(\"\")) or (mask: url(\"\"))) {\n .supports-url-in-query {\n color: red;\n }\n}\n"],"names":[],"mappings":"AAAA,CAAC,QAAQ,AAAE,CAAC,CAAC,AAAD,YAAY,CAAE,GAAG,CAAC,EAAE,CAAA,CAAC,GAAM,CAAC,AAAD,IAAI,CAAE,GAAG,CAAC,EAAE,CAAA,CAAC,CAAC,AAAE,CAAC,AACtD,CAAC,qBAAqB,AAAC,CAAC,AACtB,KAAK,CAAE,GAAG,AACZ,CAAC,AACH,CAAC"}}, {"offset": {"line": 1, "column": 85}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}] } \ No newline at end of file diff --git a/turbopack/crates/turbopack-tests/tests/snapshot/css/url-in-supports-query/output/b1abf_turbopack-tests_tests_snapshot_css_url-in-supports-query_input_style_4b6496.css.map b/turbopack/crates/turbopack-tests/tests/snapshot/css/url-in-supports-query/output/b1abf_turbopack-tests_tests_snapshot_css_url-in-supports-query_input_style_4b6496.css.map index bb3f95045b9f57..71c5750a3c745d 100644 --- a/turbopack/crates/turbopack-tests/tests/snapshot/css/url-in-supports-query/output/b1abf_turbopack-tests_tests_snapshot_css_url-in-supports-query_input_style_4b6496.css.map +++ b/turbopack/crates/turbopack-tests/tests/snapshot/css/url-in-supports-query/output/b1abf_turbopack-tests_tests_snapshot_css_url-in-supports-query_input_style_4b6496.css.map @@ -2,6 +2,6 @@ "version": 3, "sources": [], "sections": [ - {"offset": {"line": 1, "column": 0}, "map": {"version":3,"sources":["turbopack://[project]/turbopack/crates/turbopack-tests/tests/snapshot/css/url-in-supports-query/input/style.css"],"sourcesContent":["@supports ((-webkit-mask: url(\"\")) or (mask: url(\"\"))) {\n .supports-url-in-query {\n color: red;\n }\n}\n"],"names":[],"mappings":"AAAA,CAAC,QAAQ,AAAE,CAAC,CAAC,AAAD,YAAY,CAAE,GAAG,CAAC,EAAE,CAAA,CAAC,GAAM,CAAC,AAAD,IAAI,CAAE,GAAG,CAAC,EAAE,CAAA,CAAC,CAAC,AAAE,CAAC,AACtD,CAAC,qBAAqB,AAAC,CAAC,AACtB,KAAK,CAAE,GAAG,AACZ,CAAC,AACH,CAAC"}}, + {"offset": {"line": 1, "column": 0}, "map": {"version":3,"sources":["turbopack://turbopack://[project]/turbopack/crates/turbopack-tests/tests/snapshot/css/url-in-supports-query/input/style.css"],"sourcesContent":["@supports ((-webkit-mask: url(\"\")) or (mask: url(\"\"))) {\n .supports-url-in-query {\n color: red;\n }\n}\n"],"names":[],"mappings":"AAAA,CAAC,QAAQ,AAAE,CAAC,CAAC,AAAD,YAAY,CAAE,GAAG,CAAC,EAAE,CAAA,CAAC,GAAM,CAAC,AAAD,IAAI,CAAE,GAAG,CAAC,EAAE,CAAA,CAAC,CAAC,AAAE,CAAC,AACtD,CAAC,qBAAqB,AAAC,CAAC,AACtB,KAAK,CAAE,GAAG,AACZ,CAAC,AACH,CAAC"}}, {"offset": {"line": 1, "column": 85}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}] } \ No newline at end of file diff --git a/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/composes/output/b1abf_turbopack-tests_tests_snapshot_cssmodules_composes_input_index_module_226602.css b/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/composes/output/b1abf_turbopack-tests_tests_snapshot_cssmodules_composes_input_index_module_226602.css index 4fba467e6b57c9..e0496ed4a2824b 100644 --- a/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/composes/output/b1abf_turbopack-tests_tests_snapshot_cssmodules_composes_input_index_module_226602.css +++ b/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/composes/output/b1abf_turbopack-tests_tests_snapshot_cssmodules_composes_input_index_module_226602.css @@ -1,4 +1,4 @@ /* [project]/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/composes/input/index.module.css [test] (css) */ -.index-module__H6xp9G__className{background:red;color:#ff0}.index-module__H6xp9G__subClass{background:#00f;} +.index-module__aAEE5G__className{background:red;color:#ff0}.index-module__aAEE5G__subClass{background:#00f;} /*# sourceMappingURL=b1abf_turbopack-tests_tests_snapshot_cssmodules_composes_input_index_module_226602.css.map*/ \ No newline at end of file diff --git a/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/composes/output/b1abf_turbopack-tests_tests_snapshot_cssmodules_composes_input_index_module_7d7e1c.css b/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/composes/output/b1abf_turbopack-tests_tests_snapshot_cssmodules_composes_input_index_module_7d7e1c.css index 8becb0a958a647..2e571abfb545f8 100644 --- a/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/composes/output/b1abf_turbopack-tests_tests_snapshot_cssmodules_composes_input_index_module_7d7e1c.css +++ b/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/composes/output/b1abf_turbopack-tests_tests_snapshot_cssmodules_composes_input_index_module_7d7e1c.css @@ -1,3 +1,3 @@ /* [project]/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/composes/input/index.module.css [test] (css) */ -.index-module__H6xp9G__className{background:red;color:#ff0}.index-module__H6xp9G__subClass{background:#00f;} +.index-module__aAEE5G__className{background:red;color:#ff0}.index-module__aAEE5G__subClass{background:#00f;} /*# sourceMappingURL=b1abf_turbopack-tests_tests_snapshot_cssmodules_composes_input_index_module_7d7e1c.css.map*/ \ No newline at end of file diff --git a/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/composes/output/turbopack_crates_turbopack-tests_tests_snapshot_cssmodules_composes_input_8bd350._.js b/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/composes/output/turbopack_crates_turbopack-tests_tests_snapshot_cssmodules_composes_input_8bd350._.js index 6ca26fd64e61c0..36feb0a499bbb5 100644 --- a/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/composes/output/turbopack_crates_turbopack-tests_tests_snapshot_cssmodules_composes_input_8bd350._.js +++ b/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/composes/output/turbopack_crates_turbopack-tests_tests_snapshot_cssmodules_composes_input_8bd350._.js @@ -5,8 +5,8 @@ var { r: __turbopack_require__, f: __turbopack_module_context__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, n: __turbopack_export_namespace__, c: __turbopack_cache__, M: __turbopack_modules__, l: __turbopack_load__, j: __turbopack_dynamic__, P: __turbopack_resolve_absolute_path__, U: __turbopack_relative_url__, R: __turbopack_resolve_module_id_path__, b: __turbopack_worker_blob_url__, g: global, __dirname, t: require } = __turbopack_context__; { __turbopack_export_value__({ - "className": "index-module__H6xp9G__className", - "subClass": "index-module__H6xp9G__subClass" + " " + "index-module__H6xp9G__className", + "className": "index-module__aAEE5G__className", + "subClass": "index-module__aAEE5G__subClass" + " " + "index-module__aAEE5G__className", }); }}), "[project]/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/composes/input/index.js [test] (ecmascript)": ((__turbopack_context__) => { diff --git a/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/composes/output/turbopack_crates_turbopack-tests_tests_snapshot_cssmodules_composes_input_8bd350._.js.map b/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/composes/output/turbopack_crates_turbopack-tests_tests_snapshot_cssmodules_composes_input_8bd350._.js.map index 69ec987b6782bb..ad5b106a708d24 100644 --- a/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/composes/output/turbopack_crates_turbopack-tests_tests_snapshot_cssmodules_composes_input_8bd350._.js.map +++ b/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/composes/output/turbopack_crates_turbopack-tests_tests_snapshot_cssmodules_composes_input_8bd350._.js.map @@ -2,7 +2,7 @@ "version": 3, "sources": [], "sections": [ - {"offset": {"line": 6, "column": 0}, "map": {"version":3,"sources":["turbopack://[project]/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/composes/input/index.module.css [test] (css module)"],"sourcesContent":["__turbopack_export_value__({\n \"className\": \"index-module__H6xp9G__className\",\n \"subClass\": \"index-module__H6xp9G__subClass\" + \" \" + \"index-module__H6xp9G__className\",\n});\n"],"names":[],"mappings":"AAAA;AACA;AACA;AACA"}}, + {"offset": {"line": 6, "column": 0}, "map": {"version":3,"sources":["[project]/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/composes/input/index.module.css [test] (css module)"],"sourcesContent":["__turbopack_export_value__({\n \"className\": \"index-module__aAEE5G__className\",\n \"subClass\": \"index-module__aAEE5G__subClass\" + \" \" + \"index-module__aAEE5G__className\",\n});\n"],"names":[],"mappings":"AAAA;AACA;AACA;AACA"}}, {"offset": {"line": 10, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, {"offset": {"line": 16, "column": 0}, "map": {"version":3,"sources":["turbopack://[project]/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/composes/input/index.js"],"sourcesContent":["import { subClass } from './index.module.css'\n"],"names":[],"mappings":";AAAA"}}, {"offset": {"line": 19, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}] diff --git a/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/relative-uri-import/output/4c35f_tests_snapshot_cssmodules_relative-uri-import_input_index_module_7d7e1c.css b/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/relative-uri-import/output/4c35f_tests_snapshot_cssmodules_relative-uri-import_input_index_module_7d7e1c.css index e4bd5f7a79e0be..f04a4779634a81 100644 --- a/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/relative-uri-import/output/4c35f_tests_snapshot_cssmodules_relative-uri-import_input_index_module_7d7e1c.css +++ b/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/relative-uri-import/output/4c35f_tests_snapshot_cssmodules_relative-uri-import_input_index_module_7d7e1c.css @@ -1,3 +1,3 @@ /* [project]/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/relative-uri-import/input/index.module.css [test] (css) */ -.index-module__jZ0vmq__bar{} +.index-module__dDMzXG__bar{} /*# sourceMappingURL=4c35f_tests_snapshot_cssmodules_relative-uri-import_input_index_module_7d7e1c.css.map*/ \ No newline at end of file diff --git a/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/relative-uri-import/output/4c35f_tests_snapshot_cssmodules_relative-uri-import_input_other_module_7d7e1c.css b/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/relative-uri-import/output/4c35f_tests_snapshot_cssmodules_relative-uri-import_input_other_module_7d7e1c.css index cb41bff6fa17a1..247ed5700797d9 100644 --- a/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/relative-uri-import/output/4c35f_tests_snapshot_cssmodules_relative-uri-import_input_other_module_7d7e1c.css +++ b/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/relative-uri-import/output/4c35f_tests_snapshot_cssmodules_relative-uri-import_input_other_module_7d7e1c.css @@ -1,3 +1,3 @@ /* [project]/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/relative-uri-import/input/other.module.css [test] (css) */ -.other-module__NjlEuq__foo{background-color:red} +.other-module__7QZnva__foo{background-color:red} /*# sourceMappingURL=4c35f_tests_snapshot_cssmodules_relative-uri-import_input_other_module_7d7e1c.css.map*/ \ No newline at end of file diff --git a/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/relative-uri-import/output/b1abf_turbopack-tests_tests_snapshot_cssmodules_relative-uri-import_input_5a7b6f._.css b/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/relative-uri-import/output/b1abf_turbopack-tests_tests_snapshot_cssmodules_relative-uri-import_input_5a7b6f._.css index a0ed28a8ed4343..9718c3129da706 100644 --- a/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/relative-uri-import/output/b1abf_turbopack-tests_tests_snapshot_cssmodules_relative-uri-import_input_5a7b6f._.css +++ b/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/relative-uri-import/output/b1abf_turbopack-tests_tests_snapshot_cssmodules_relative-uri-import_input_5a7b6f._.css @@ -1,7 +1,7 @@ /* [project]/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/relative-uri-import/input/other.module.css [test] (css) */ -.other-module__NjlEuq__foo{background-color:red} +.other-module__7QZnva__foo{background-color:red} /* [project]/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/relative-uri-import/input/index.module.css [test] (css) */ -.index-module__jZ0vmq__bar{} +.index-module__dDMzXG__bar{} /*# sourceMappingURL=b1abf_turbopack-tests_tests_snapshot_cssmodules_relative-uri-import_input_5a7b6f._.css.map*/ \ No newline at end of file diff --git a/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/relative-uri-import/output/b1abf_turbopack-tests_tests_snapshot_cssmodules_relative-uri-import_input_65c884._.js b/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/relative-uri-import/output/b1abf_turbopack-tests_tests_snapshot_cssmodules_relative-uri-import_input_65c884._.js index ac58ce2e09dcc8..a6cc7eab2514a3 100644 --- a/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/relative-uri-import/output/b1abf_turbopack-tests_tests_snapshot_cssmodules_relative-uri-import_input_65c884._.js +++ b/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/relative-uri-import/output/b1abf_turbopack-tests_tests_snapshot_cssmodules_relative-uri-import_input_65c884._.js @@ -5,7 +5,7 @@ var { r: __turbopack_require__, f: __turbopack_module_context__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, n: __turbopack_export_namespace__, c: __turbopack_cache__, M: __turbopack_modules__, l: __turbopack_load__, j: __turbopack_dynamic__, P: __turbopack_resolve_absolute_path__, U: __turbopack_relative_url__, R: __turbopack_resolve_module_id_path__, b: __turbopack_worker_blob_url__, g: global, __dirname, t: require } = __turbopack_context__; { __turbopack_export_value__({ - "foo": "other-module__NjlEuq__foo", + "foo": "other-module__7QZnva__foo", }); }}), "[project]/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/relative-uri-import/input/index.module.css [test] (css module)": ((__turbopack_context__) => { @@ -13,7 +13,7 @@ __turbopack_export_value__({ var { r: __turbopack_require__, f: __turbopack_module_context__, i: __turbopack_import__, s: __turbopack_esm__, v: __turbopack_export_value__, n: __turbopack_export_namespace__, c: __turbopack_cache__, M: __turbopack_modules__, l: __turbopack_load__, j: __turbopack_dynamic__, P: __turbopack_resolve_absolute_path__, U: __turbopack_relative_url__, R: __turbopack_resolve_module_id_path__, b: __turbopack_worker_blob_url__, g: global, __dirname, t: require } = __turbopack_context__; { __turbopack_export_value__({ - "bar": "index-module__jZ0vmq__bar" + " " + __turbopack_import__("[project]/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/relative-uri-import/input/other.module.css [test] (css module)")["foo"], + "bar": "index-module__dDMzXG__bar" + " " + __turbopack_import__("[project]/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/relative-uri-import/input/other.module.css [test] (css module)")["foo"], }); }}), "[project]/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/relative-uri-import/input/index.js [test] (ecmascript)": ((__turbopack_context__) => { diff --git a/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/relative-uri-import/output/b1abf_turbopack-tests_tests_snapshot_cssmodules_relative-uri-import_input_65c884._.js.map b/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/relative-uri-import/output/b1abf_turbopack-tests_tests_snapshot_cssmodules_relative-uri-import_input_65c884._.js.map index a4572b6a468129..9349e5d883541e 100644 --- a/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/relative-uri-import/output/b1abf_turbopack-tests_tests_snapshot_cssmodules_relative-uri-import_input_65c884._.js.map +++ b/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/relative-uri-import/output/b1abf_turbopack-tests_tests_snapshot_cssmodules_relative-uri-import_input_65c884._.js.map @@ -2,9 +2,9 @@ "version": 3, "sources": [], "sections": [ - {"offset": {"line": 6, "column": 0}, "map": {"version":3,"sources":["turbopack://[project]/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/relative-uri-import/input/other.module.css [test] (css module)"],"sourcesContent":["__turbopack_export_value__({\n \"foo\": \"other-module__NjlEuq__foo\",\n});\n"],"names":[],"mappings":"AAAA;AACA;AACA"}}, + {"offset": {"line": 6, "column": 0}, "map": {"version":3,"sources":["[project]/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/relative-uri-import/input/other.module.css [test] (css module)"],"sourcesContent":["__turbopack_export_value__({\n \"foo\": \"other-module__7QZnva__foo\",\n});\n"],"names":[],"mappings":"AAAA;AACA;AACA"}}, {"offset": {"line": 9, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, - {"offset": {"line": 14, "column": 0}, "map": {"version":3,"sources":["turbopack://[project]/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/relative-uri-import/input/index.module.css [test] (css module)"],"sourcesContent":["__turbopack_export_value__({\n \"bar\": \"index-module__jZ0vmq__bar\" + \" \" + __turbopack_import__(\"[project]/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/relative-uri-import/input/other.module.css [test] (css module)\")[\"foo\"],\n});\n"],"names":[],"mappings":"AAAA;AACA;AACA"}}, + {"offset": {"line": 14, "column": 0}, "map": {"version":3,"sources":["[project]/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/relative-uri-import/input/index.module.css [test] (css module)"],"sourcesContent":["__turbopack_export_value__({\n \"bar\": \"index-module__dDMzXG__bar\" + \" \" + __turbopack_import__(\"[project]/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/relative-uri-import/input/other.module.css [test] (css module)\")[\"foo\"],\n});\n"],"names":[],"mappings":"AAAA;AACA;AACA"}}, {"offset": {"line": 17, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}, {"offset": {"line": 23, "column": 0}, "map": {"version":3,"sources":["turbopack://[project]/turbopack/crates/turbopack-tests/tests/snapshot/cssmodules/relative-uri-import/input/index.js"],"sourcesContent":["import {foo} from \"./index.module.css\";\n"],"names":[],"mappings":";AAAA"}}, {"offset": {"line": 26, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":"A"}}] diff --git a/turbopack/crates/turbopack-tests/tests/snapshot/emotion/emotion/output/turbopack_crates_turbopack-tests_tests_snapshot_6fdc60._.js b/turbopack/crates/turbopack-tests/tests/snapshot/emotion/emotion/output/turbopack_crates_turbopack-tests_tests_snapshot_6fdc60._.js index 804abcd1a29933..e879644872980a 100644 --- a/turbopack/crates/turbopack-tests/tests/snapshot/emotion/emotion/output/turbopack_crates_turbopack-tests_tests_snapshot_6fdc60._.js +++ b/turbopack/crates/turbopack-tests/tests/snapshot/emotion/emotion/output/turbopack_crates_turbopack-tests_tests_snapshot_6fdc60._.js @@ -22,7 +22,7 @@ function ClassNameButton({ children }) { `, children: children }, void 0, false, { - fileName: "[project]/turbopack/crates/turbopack-tests/tests/snapshot/emotion/emotion/input/index.js", + fileName: "turbopack://[project]/turbopack/crates/turbopack-tests/tests/snapshot/emotion/emotion/input/index.js", lineNumber: 12, columnNumber: 5 }, this); diff --git a/turbopack/crates/turbopack-tests/tests/snapshot/swc_transforms/mono_transforms/output/turbopack_crates_turbopack-tests_tests_snapshot_b56e07._.js b/turbopack/crates/turbopack-tests/tests/snapshot/swc_transforms/mono_transforms/output/turbopack_crates_turbopack-tests_tests_snapshot_b56e07._.js index 094cb161ceea55..f874f371a8489e 100644 --- a/turbopack/crates/turbopack-tests/tests/snapshot/swc_transforms/mono_transforms/output/turbopack_crates_turbopack-tests_tests_snapshot_b56e07._.js +++ b/turbopack/crates/turbopack-tests/tests/snapshot/swc_transforms/mono_transforms/output/turbopack_crates_turbopack-tests_tests_snapshot_b56e07._.js @@ -14,7 +14,7 @@ function MyApp() { return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$turbopack$2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$node_modules$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$test$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { children: "App" }, void 0, false, { - fileName: "[project]/turbopack/crates/turbopack-tests/tests/snapshot/swc_transforms/mono_transforms/input/packages/component/index.js", + fileName: "turbopack://[project]/turbopack/crates/turbopack-tests/tests/snapshot/swc_transforms/mono_transforms/input/packages/component/index.js", lineNumber: 2, columnNumber: 10 }, this); diff --git a/turbopack/crates/turbopack/benches/node_file_trace.rs b/turbopack/crates/turbopack/benches/node_file_trace.rs index c05315ae757652..370c6618a3e0a1 100644 --- a/turbopack/crates/turbopack/benches/node_file_trace.rs +++ b/turbopack/crates/turbopack/benches/node_file_trace.rs @@ -3,7 +3,7 @@ use std::{fs, path::PathBuf}; use criterion::{Bencher, BenchmarkId, Criterion}; use regex::Regex; use turbo_tasks::{RcStr, ReadConsistency, TurboTasks, Value, Vc}; -use turbo_tasks_fs::{DiskFileSystem, FileSystem, NullFileSystem}; +use turbo_tasks_fs::{DiskFileSystem, FileSystem, NullFileSystem, UriScheme}; use turbo_tasks_memory::MemoryBackend; use turbopack::{ emit_with_completion, @@ -74,7 +74,12 @@ fn bench_emit(b: &mut Bencher, bench_input: &BenchInput) { let input: RcStr = bench_input.input.clone().into(); async move { let task = tt.spawn_once_task(async move { - let input_fs = DiskFileSystem::new("tests".into(), tests_root.clone(), vec![]); + let input_fs = DiskFileSystem::new( + UriScheme::Custom("test".into()).cell(), + "tests".into(), + tests_root.clone(), + vec![], + ); let input = input_fs.root().join(input.clone()); let input_dir = input.parent().parent(); diff --git a/turbopack/crates/turbopack/examples/turbopack.rs b/turbopack/crates/turbopack/examples/turbopack.rs index 81d1b12bac23c5..910355aba9fd78 100644 --- a/turbopack/crates/turbopack/examples/turbopack.rs +++ b/turbopack/crates/turbopack/examples/turbopack.rs @@ -11,7 +11,7 @@ use tokio::{spawn, time::sleep}; use turbo_tasks::{ util::FormatDuration, RcStr, ReadConsistency, TurboTasks, UpdateInfo, Value, Vc, }; -use turbo_tasks_fs::{DiskFileSystem, FileSystem}; +use turbo_tasks_fs::{DiskFileSystem, FileSystem, UriScheme}; use turbo_tasks_memory::MemoryBackend; use turbopack::{emit_with_completion, rebase::RebasedAsset, register}; use turbopack_core::{ @@ -33,7 +33,12 @@ async fn main() -> Result<()> { let task = tt.spawn_root_task(|| { Box::pin(async { let root: RcStr = current_dir().unwrap().to_str().unwrap().into(); - let disk_fs = DiskFileSystem::new(PROJECT_FILESYSTEM_NAME.into(), root, vec![]); + let disk_fs = DiskFileSystem::new( + UriScheme::Custom("turbopack".into()).cell(), + PROJECT_FILESYSTEM_NAME.into(), + root, + vec![], + ); disk_fs.await?.start_watching(None).await?; // Smart Pointer cast diff --git a/turbopack/crates/turbopack/tests/node-file-trace.rs b/turbopack/crates/turbopack/tests/node-file-trace.rs index 7778b5419955fb..628935a909bfad 100644 --- a/turbopack/crates/turbopack/tests/node-file-trace.rs +++ b/turbopack/crates/turbopack/tests/node-file-trace.rs @@ -30,7 +30,7 @@ use rstest_reuse::{ use serde::{Deserialize, Serialize}; use tokio::{process::Command, time::timeout}; use turbo_tasks::{backend::Backend, RcStr, ReadRef, TurboTasks, Value, ValueToString, Vc}; -use turbo_tasks_fs::{DiskFileSystem, FileSystem, FileSystemPath}; +use turbo_tasks_fs::{DiskFileSystem, FileSystem, FileSystemPath, UriScheme}; use turbo_tasks_memory::MemoryBackend; use turbopack::{ emit_with_completion, @@ -406,6 +406,7 @@ fn node_file_trace( #[cfg(feature = "bench_against_node_nft")] let before_start = Instant::now(); let workspace_fs: Vc> = Vc::upcast(DiskFileSystem::new( + UriScheme::Custom("turbopack".into()).cell(), "workspace".into(), package_root.clone(), vec![], @@ -416,7 +417,12 @@ fn node_file_trace( #[cfg(not(feature = "bench_against_node_nft"))] let original_output = exec_node(package_root, input); - let output_fs = DiskFileSystem::new("output".into(), directory.clone(), vec![]); + let output_fs = DiskFileSystem::new( + UriScheme::Custom("turbopack".into()).cell(), + "output".into(), + directory.clone(), + vec![], + ); let output_dir = output_fs.root(); let source = FileSource::new(input);