From 7e70ac64b372c92dd608eecdd449f3a6660a8250 Mon Sep 17 00:00:00 2001 From: OJ Kwon <1210596+kwonoj@users.noreply.github.com> Date: Wed, 29 Mar 2023 20:25:11 -0700 Subject: [PATCH] build(next-swc): introduce turbo-binding (#47512) ### What? Part of WEB-736. This PR refactors imports to turbopack to turbo-binding, as same as we used to do with next-binding. Current next-binding in this repo doesn't make sense anymore and removed. There are no functional changes. This'll reducwe surface for the imports and also will make easier to run integration test over latest turbopack. Note swc dependency is not reflected in this PR yet - following PR will update those imports. --- packages/next-swc/Cargo.lock | 174 +++++------------- packages/next-swc/Cargo.toml | 35 +--- packages/next-swc/crates/core/Cargo.toml | 7 +- .../crates/core/src/amp_attributes.rs | 2 +- .../next-swc/crates/core/src/auto_cjs/mod.rs | 2 +- .../src/disallow_re_export_all_in_page.rs | 2 +- packages/next-swc/crates/core/src/lib.rs | 19 +- .../next-swc/crates/core/src/next_dynamic.rs | 2 +- packages/next-swc/crates/core/src/next_ssg.rs | 2 +- .../next-swc/crates/core/src/page_config.rs | 2 +- .../core/src/react_remove_properties.rs | 2 +- .../core/src/react_server_components.rs | 2 +- .../crates/core/src/remove_console.rs | 2 +- .../crates/core/src/server_actions.rs | 6 +- .../next-swc/crates/core/src/shake_exports.rs | 2 +- .../core/src/top_level_binding_collector.rs | 2 +- packages/next-swc/crates/core/tests/errors.rs | 20 +- .../next-swc/crates/core/tests/fixture.rs | 24 +-- packages/next-swc/crates/core/tests/full.rs | 20 +- .../next-swc/crates/core/tests/telemetry.rs | 2 +- packages/next-swc/crates/napi/Cargo.toml | 31 ++-- packages/next-swc/crates/napi/src/lib.rs | 4 +- packages/next-swc/crates/napi/src/mdx.rs | 2 +- packages/next-swc/crates/napi/src/minify.rs | 12 +- packages/next-swc/crates/napi/src/parse.rs | 6 +- .../next-swc/crates/napi/src/transform.rs | 6 +- .../next-swc/crates/napi/src/turbopack.rs | 6 +- .../next-swc/crates/napi/src/turbotrace.rs | 8 +- .../next-swc/crates/next-binding/Cargo.toml | 118 ------------ .../next-swc/crates/next-binding/README.md | 3 - .../next-swc/crates/next-binding/src/lib.rs | 36 ---- .../next-swc/crates/next-build/Cargo.toml | 9 +- packages/next-swc/crates/next-build/build.rs | 2 +- .../next-swc/crates/next-build/src/lib.rs | 6 +- packages/next-swc/crates/next-core/Cargo.toml | 41 +++-- packages/next-swc/crates/next-core/build.rs | 2 +- .../crates/next-core/src/app_render/mod.rs | 2 +- .../next_layout_entry_transition.rs | 19 +- .../crates/next-core/src/app_source.rs | 28 +-- .../crates/next-core/src/app_structure.rs | 10 +- .../next-swc/crates/next-core/src/babel.rs | 22 ++- .../next-swc/crates/next-core/src/embed_js.rs | 7 +- packages/next-swc/crates/next-core/src/env.rs | 6 +- .../next-swc/crates/next-core/src/fallback.rs | 18 +- packages/next-swc/crates/next-core/src/lib.rs | 17 +- .../next-swc/crates/next-core/src/manifest.rs | 18 +- .../crates/next-core/src/next_build.rs | 4 +- .../next-core/src/next_client/context.rs | 32 ++-- .../src/next_client/runtime_entry.rs | 8 +- .../next-core/src/next_client/transforms.rs | 2 +- .../next-core/src/next_client/transition.rs | 24 +-- .../client_chunks_transition.rs | 14 +- .../in_chunking_context_asset.rs | 22 ++- .../src/next_client_chunks/with_chunks.rs | 21 ++- .../server_to_client_transition.rs | 14 +- .../ssr_client_module_transition.rs | 4 +- .../with_chunking_context_scope_asset.rs | 14 +- .../with_client_chunks.rs | 20 +- .../crates/next-core/src/next_config.rs | 25 +-- .../crates/next-core/src/next_edge/context.rs | 12 +- .../next-core/src/next_edge/transition.rs | 20 +- .../src/next_font/google/font_fallback.rs | 6 +- .../next-core/src/next_font/google/mod.rs | 33 ++-- .../next-core/src/next_font/google/options.rs | 2 +- .../next-core/src/next_font/google/util.rs | 2 +- .../crates/next-core/src/next_font/issue.rs | 4 +- .../next-core/src/next_font/local/mod.rs | 12 +- .../crates/next-core/src/next_font/util.rs | 4 +- .../crates/next-core/src/next_image/mod.rs | 6 +- .../crates/next-core/src/next_import_map.rs | 12 +- .../next-core/src/next_route_matcher/all.rs | 4 +- .../next-core/src/next_route_matcher/mod.rs | 2 +- .../src/next_route_matcher/path_regex.rs | 2 +- .../src/next_route_matcher/prefix_suffix.rs | 2 +- .../next-core/src/next_server/context.rs | 26 +-- .../next-core/src/next_server/resolve.rs | 6 +- .../next-core/src/next_server/transforms.rs | 2 +- .../next-core/src/next_shared/transforms.rs | 10 +- .../crates/next-core/src/page_loader.rs | 12 +- .../crates/next-core/src/page_source.rs | 28 +-- .../crates/next-core/src/pages_structure.rs | 6 +- .../crates/next-core/src/react_refresh.rs | 23 ++- .../next-swc/crates/next-core/src/router.rs | 27 +-- .../crates/next-core/src/router_source.rs | 8 +- .../next-swc/crates/next-core/src/runtime.rs | 6 +- .../crates/next-core/src/typescript.rs | 12 +- .../next-swc/crates/next-core/src/util.rs | 12 +- .../crates/next-core/src/web_entry_source.rs | 14 +- .../next-swc/crates/next-dev-tests/Cargo.toml | 30 +-- .../next-swc/crates/next-dev-tests/build.rs | 2 +- .../next-dev-tests/tests/integration.rs | 14 +- packages/next-swc/crates/next-dev/Cargo.toml | 35 ++-- .../crates/next-dev/benches/util/mod.rs | 6 +- packages/next-swc/crates/next-dev/build.rs | 2 +- .../crates/next-dev/src/devserver_options.rs | 2 +- packages/next-swc/crates/next-dev/src/lib.rs | 26 +-- packages/next-swc/crates/next-dev/src/main.rs | 4 +- .../crates/next-dev/src/turbo_tasks_viz.rs | 10 +- packages/next-swc/crates/wasm/Cargo.toml | 4 +- packages/next-swc/crates/wasm/src/lib.rs | 10 +- packages/next-swc/crates/wasm/src/mdx.rs | 2 +- packages/next/src/build/swc/index.ts | 52 +++++- 102 files changed, 659 insertions(+), 827 deletions(-) delete mode 100644 packages/next-swc/crates/next-binding/Cargo.toml delete mode 100644 packages/next-swc/crates/next-binding/README.md delete mode 100644 packages/next-swc/crates/next-binding/src/lib.rs diff --git a/packages/next-swc/Cargo.lock b/packages/next-swc/Cargo.lock index 8fc5cf5108..355e923aba 100644 --- a/packages/next-swc/Cargo.lock +++ b/packages/next-swc/Cargo.lock @@ -1245,12 +1245,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "cty" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35" - [[package]] name = "curl" version = "0.4.44" @@ -1724,12 +1718,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "fs_extra" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" - [[package]] name = "fsevent" version = "0.4.0" @@ -2884,26 +2872,6 @@ dependencies = [ "libmimalloc-sys", ] -[[package]] -name = "mimalloc-rust" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6973866e0bc6504c03a16b6817b7e70839cc8a1dbd5d6dab00c65d8034868d8b" -dependencies = [ - "cty", - "mimalloc-rust-sys", -] - -[[package]] -name = "mimalloc-rust-sys" -version = "1.7.6-source" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a50daf45336b979a202a19f53b4b382f2c4bd50f392a8dbdb4c6c56ba5dfa64" -dependencies = [ - "cc", - "cty", -] - [[package]] name = "mime" version = "0.3.17" @@ -3117,32 +3085,13 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" -[[package]] -name = "next-binding" -version = "0.1.0" -dependencies = [ - "mdxjs", - "modularize_imports", - "next-build", - "next-dev", - "node-file-trace", - "styled_components", - "styled_jsx", - "swc_core", - "swc_emotion", - "testing", -] - [[package]] name = "next-build" version = "0.1.0" dependencies = [ "anyhow", "next-core", - "turbo-malloc", - "turbo-tasks", - "turbo-tasks-build", - "turbo-tasks-memory", + "turbo-binding", "vergen", ] @@ -3152,7 +3101,6 @@ version = "0.1.0" dependencies = [ "allsorts", "anyhow", - "auto-hash-map", "futures", "indexmap", "indoc", @@ -3166,20 +3114,9 @@ dependencies = [ "serde", "serde_json", "swc_core", + "turbo-binding", "turbo-tasks", - "turbo-tasks-build", - "turbo-tasks-bytes", - "turbo-tasks-env", - "turbo-tasks-fetch", "turbo-tasks-fs", - "turbo-tasks-hash", - "turbopack", - "turbopack-core", - "turbopack-dev", - "turbopack-dev-server", - "turbopack-ecmascript", - "turbopack-env", - "turbopack-node", ] [[package]] @@ -3207,19 +3144,8 @@ dependencies = [ "tempfile", "tokio", "tungstenite 0.17.3", - "turbo-malloc", + "turbo-binding", "turbo-tasks", - "turbo-tasks-build", - "turbo-tasks-fs", - "turbo-tasks-memory", - "turbo-tasks-testing", - "turbopack", - "turbopack-cli-utils", - "turbopack-core", - "turbopack-create-test-app", - "turbopack-dev", - "turbopack-dev-server", - "turbopack-node", "url", "vergen", "webbrowser", @@ -3248,17 +3174,8 @@ dependencies = [ "testing", "tokio", "tungstenite 0.17.3", - "turbo-malloc", + "turbo-binding", "turbo-tasks", - "turbo-tasks-build", - "turbo-tasks-fs", - "turbo-tasks-memory", - "turbo-tasks-testing", - "turbopack-cli-utils", - "turbopack-core", - "turbopack-dev-server", - "turbopack-node", - "turbopack-test-utils", "url", "webbrowser", ] @@ -3272,7 +3189,6 @@ dependencies = [ "either", "fxhash", "hex", - "next-binding", "next-transform-font", "once_cell", "pathdiff", @@ -3282,6 +3198,7 @@ dependencies = [ "sha1 0.10.5", "swc_relay", "tracing", + "turbo-binding", "walkdir", ] @@ -3295,7 +3212,8 @@ dependencies = [ "napi", "napi-build", "napi-derive", - "next-binding", + "next-build", + "next-dev", "next-swc", "once_cell", "sentry", @@ -3305,10 +3223,7 @@ dependencies = [ "tracing-chrome", "tracing-futures", "tracing-subscriber", - "turbo-malloc", - "turbo-tasks", - "turbo-tasks-memory", - "turbopack", + "turbo-binding", ] [[package]] @@ -3360,11 +3275,9 @@ version = "0.1.0" source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230329.2#ad2bf568a12b25c06a88e0e0a508f053634084ee" dependencies = [ "anyhow", - "clap 4.1.11", "serde", "serde_json", "tokio", - "turbo-malloc", "turbo-tasks", "turbo-tasks-build", "turbo-tasks-fs", @@ -5307,7 +5220,6 @@ dependencies = [ "swc_ecma_transforms_typescript", "swc_ecma_utils", "swc_ecma_visit", - "swc_node_base", "swc_nodejs_common", "swc_plugin_proxy", "swc_plugin_runner", @@ -6043,16 +5955,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "swc_node_base" -version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6065892f97ac3f42280d0f3eadc351aeff552e8de4d459604bcd9c56eb799ade" -dependencies = [ - "mimalloc-rust", - "tikv-jemallocator", -] - [[package]] name = "swc_node_comments" version = "0.16.37" @@ -6324,27 +6226,6 @@ dependencies = [ "once_cell", ] -[[package]] -name = "tikv-jemalloc-sys" -version = "0.4.3+5.2.1-patched.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1792ccb507d955b46af42c123ea8863668fae24d03721e40cad6a41773dbb49" -dependencies = [ - "cc", - "fs_extra", - "libc", -] - -[[package]] -name = "tikv-jemallocator" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5b7bcecfafe4998587d636f9ae9d55eb9d0499877b88757767c346875067098" -dependencies = [ - "libc", - "tikv-jemalloc-sys", -] - [[package]] name = "time" version = "0.1.45" @@ -6757,6 +6638,43 @@ dependencies = [ "utf-8", ] +[[package]] +name = "turbo-binding" +version = "0.1.0" +source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230329.2#ad2bf568a12b25c06a88e0e0a508f053634084ee" +dependencies = [ + "auto-hash-map", + "mdxjs", + "modularize_imports", + "node-file-trace", + "styled_components", + "styled_jsx", + "swc_core", + "swc_emotion", + "swc_relay", + "testing", + "turbo-malloc", + "turbo-tasks", + "turbo-tasks-build", + "turbo-tasks-bytes", + "turbo-tasks-env", + "turbo-tasks-fetch", + "turbo-tasks-fs", + "turbo-tasks-hash", + "turbo-tasks-memory", + "turbo-tasks-testing", + "turbopack", + "turbopack-cli-utils", + "turbopack-core", + "turbopack-create-test-app", + "turbopack-dev", + "turbopack-dev-server", + "turbopack-ecmascript", + "turbopack-env", + "turbopack-node", + "turbopack-test-utils", +] + [[package]] name = "turbo-malloc" version = "0.1.0" @@ -7522,7 +7440,6 @@ dependencies = [ "console_error_panic_hook", "getrandom", "js-sys", - "next-binding", "next-swc", "once_cell", "parking_lot_core 0.8.0", @@ -7531,6 +7448,7 @@ dependencies = [ "serde-wasm-bindgen", "serde_json", "tracing", + "turbo-binding", "wasm-bindgen", "wasm-bindgen-futures", ] diff --git a/packages/next-swc/Cargo.toml b/packages/next-swc/Cargo.toml index 5634a4f020..fad2f6b48e 100644 --- a/packages/next-swc/Cargo.toml +++ b/packages/next-swc/Cargo.toml @@ -4,7 +4,6 @@ members = [ "crates/core", "crates/napi", "crates/wasm", - "crates/next-binding", "crates/next-build", "crates/next-core", "crates/next-dev", @@ -26,9 +25,9 @@ lto = true [workspace.dependencies] # Workspace crates -next-binding = { path = "crates/next-binding" } +next-build = { path = "crates/next-build" } next-core = { path = "crates/next-core", default-features = false } -next-dev = { path = "crates/next-dev" } +next-dev = { path = "crates/next-dev", default-features = false, features = ["serializable"] } next-dev-tests = { path = "crates/next-dev-tests" } next-transform-font = { path = "crates/next-transform-font" } next-transform-dynamic = { path = "crates/next-transform-dynamic" } @@ -46,35 +45,11 @@ swc_emotion = { version = "0.29.10" } testing = { version = "0.31.31" } # Turbo crates -auto-hash-map = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230329.2" } -node-file-trace = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230329.2" } -turbo-malloc = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230329.2", default-features = false } +turbo-binding = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230329.2" } +# [TODO]: need to refactor embed_directory! macro usages, as well as resolving turbo_tasks::function, macros.. turbo-tasks = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230329.2" } -turbo-tasks-build = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230329.2" } -turbo-tasks-bytes = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230329.2" } -turbo-tasks-env = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230329.2" } -turbo-tasks-fetch = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230329.2", default-features = false } +# [TODO]: need to refactor embed_directory! macro usage in next-core turbo-tasks-fs = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230329.2" } -turbo-tasks-hash = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230329.2" } -turbo-tasks-macros = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230329.2" } -turbo-tasks-macros-shared = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230329.2" } -turbo-tasks-memory = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230329.2" } -turbo-tasks-testing = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230329.2" } -turbopack = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230329.2" } -turbopack-cli-utils = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230329.2" } -turbopack-core = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230329.2" } -turbopack-create-test-app = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230329.2" } -turbopack-css = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230329.2" } -turbopack-dev = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230329.2" } -turbopack-dev-server = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230329.2" } -turbopack-ecmascript = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230329.2" } -turbopack-env = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230329.2" } -turbopack-json = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230329.2" } -turbopack-mdx = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230329.2" } -turbopack-node = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230329.2" } -turbopack-static = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230329.2" } -turbopack-swc-utils = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230329.2" } -turbopack-test-utils = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230329.2" } # General Deps diff --git a/packages/next-swc/crates/core/Cargo.toml b/packages/next-swc/crates/core/Cargo.toml index fb4bd90061..9d44eaf3a8 100644 --- a/packages/next-swc/crates/core/Cargo.toml +++ b/packages/next-swc/crates/core/Cargo.toml @@ -5,7 +5,7 @@ version = "0.0.0" publish = false [features] -plugin = ["next-binding/__swc_core_binding_napi_plugin"] +plugin = ["turbo-binding/__swc_core_binding_napi_plugin"] [dependencies] chrono = "0.4" @@ -22,18 +22,19 @@ serde_json = "1" sha1 = "0.10.1" tracing = { version = "0.1.37", features = ["release_max_level_info"] } -next-binding = { path = "../next-binding", features = [ +turbo-binding = { workspace = true, features = [ "__swc_core", "__swc_core_next_core", "__swc_transform_styled_jsx", "__swc_transform_emotion", "__swc_transform_styled_components", "__swc_transform_modularize_imports", + "__swc_transform_relay", ] } swc_relay = "0.1.0" [dev-dependencies] -next-binding = { path = "../next-binding", features = [ +turbo-binding = { workspace = true, features = [ "__swc_core_testing_transform", "__swc_testing", ] } diff --git a/packages/next-swc/crates/core/src/amp_attributes.rs b/packages/next-swc/crates/core/src/amp_attributes.rs index 7d0f82317f..dca97716a5 100644 --- a/packages/next-swc/crates/core/src/amp_attributes.rs +++ b/packages/next-swc/crates/core/src/amp_attributes.rs @@ -1,4 +1,4 @@ -use next_binding::swc::core::{ +use turbo_binding::swc::core::{ ecma::ast::{Ident, JSXAttr, JSXAttrName, JSXAttrOrSpread, JSXElementName, JSXOpeningElement}, ecma::atoms::JsWord, ecma::visit::Fold, diff --git a/packages/next-swc/crates/core/src/auto_cjs/mod.rs b/packages/next-swc/crates/core/src/auto_cjs/mod.rs index baf347f32b..f2d092f08a 100644 --- a/packages/next-swc/crates/core/src/auto_cjs/mod.rs +++ b/packages/next-swc/crates/core/src/auto_cjs/mod.rs @@ -1,4 +1,4 @@ -use next_binding::swc::core::{ +use turbo_binding::swc::core::{ ecma::ast::*, ecma::visit::{Visit, VisitWith}, }; diff --git a/packages/next-swc/crates/core/src/disallow_re_export_all_in_page.rs b/packages/next-swc/crates/core/src/disallow_re_export_all_in_page.rs index 50f588ed33..69566b135f 100644 --- a/packages/next-swc/crates/core/src/disallow_re_export_all_in_page.rs +++ b/packages/next-swc/crates/core/src/disallow_re_export_all_in_page.rs @@ -1,4 +1,4 @@ -use next_binding::swc::core::{ +use turbo_binding::swc::core::{ common::errors::HANDLER, ecma::ast::ExportAll, ecma::transforms::base::pass::Optional, diff --git a/packages/next-swc/crates/core/src/lib.rs b/packages/next-swc/crates/core/src/lib.rs index 13834b13bc..01dcb79e4b 100644 --- a/packages/next-swc/crates/core/src/lib.rs +++ b/packages/next-swc/crates/core/src/lib.rs @@ -41,7 +41,7 @@ use std::env::current_dir; use std::rc::Rc; use std::{path::PathBuf, sync::Arc}; -use next_binding::swc::core::{ +use turbo_binding::swc::core::{ common::{chain, comments::Comments, pass::Optional, FileName, SourceFile, SourceMap}, ecma::ast::EsVersion, ecma::parser::parse_file_as_module, @@ -66,7 +66,7 @@ mod top_level_binding_collector; #[serde(rename_all = "camelCase")] pub struct TransformOptions { #[serde(flatten)] - pub swc: next_binding::swc::core::base::config::Options, + pub swc: turbo_binding::swc::core::base::config::Options, #[serde(default)] pub disable_next_ssg: bool, @@ -96,7 +96,7 @@ pub struct TransformOptions { pub styled_jsx: bool, #[serde(default)] - pub styled_components: Option, + pub styled_components: Option, #[serde(default)] pub remove_console: Option, @@ -118,10 +118,11 @@ pub struct TransformOptions { pub shake_exports: Option, #[serde(default)] - pub emotion: Option, + pub emotion: Option, #[serde(default)] - pub modularize_imports: Option, + pub modularize_imports: + Option, #[serde(default)] pub font_loaders: Option, @@ -171,7 +172,7 @@ where }, if opts.styled_jsx { Either::Left( - next_binding::swc::custom_transform::styled_jsx::visitor::styled_jsx( + turbo_binding::swc::custom_transform::styled_jsx::visitor::styled_jsx( cm.clone(), file.name.clone(), ), @@ -181,7 +182,7 @@ where }, match &opts.styled_components { Some(config) => Either::Left( - next_binding::swc::custom_transform::styled_components::styled_components( + turbo_binding::swc::custom_transform::styled_components::styled_components( file.name.clone(), file.src_hash, config.clone(), @@ -235,7 +236,7 @@ where if let FileName::Real(path) = &file.name { path.to_str().map(|_| { Either::Left( - next_binding::swc::custom_transform::emotion::EmotionTransformer::new( + turbo_binding::swc::custom_transform::emotion::EmotionTransformer::new( config.clone(), path, cm, @@ -250,7 +251,7 @@ where .unwrap_or_else(|| Either::Right(noop())), match &opts.modularize_imports { Some(config) => Either::Left( - next_binding::swc::custom_transform::modularize_imports::modularize_imports( + turbo_binding::swc::custom_transform::modularize_imports::modularize_imports( config.clone() ) ), diff --git a/packages/next-swc/crates/core/src/next_dynamic.rs b/packages/next-swc/crates/core/src/next_dynamic.rs index 5de2205f57..25878f395b 100644 --- a/packages/next-swc/crates/core/src/next_dynamic.rs +++ b/packages/next-swc/crates/core/src/next_dynamic.rs @@ -2,7 +2,7 @@ use std::path::{Path, PathBuf}; use pathdiff::diff_paths; -use next_binding::swc::core::{ +use turbo_binding::swc::core::{ common::{errors::HANDLER, FileName, DUMMY_SP}, ecma::ast::{ ArrayLit, ArrowExpr, BinExpr, BinaryOp, BlockStmtOrExpr, Bool, CallExpr, Callee, Expr, diff --git a/packages/next-swc/crates/core/src/next_ssg.rs b/packages/next-swc/crates/core/src/next_ssg.rs index e1fdb0842b..4e9c4cb280 100644 --- a/packages/next-swc/crates/core/src/next_ssg.rs +++ b/packages/next-swc/crates/core/src/next_ssg.rs @@ -4,7 +4,7 @@ use std::cell::RefCell; use std::mem::take; use std::rc::Rc; -use next_binding::swc::core::{ +use turbo_binding::swc::core::{ common::{ errors::HANDLER, pass::{Repeat, Repeated}, diff --git a/packages/next-swc/crates/core/src/page_config.rs b/packages/next-swc/crates/core/src/page_config.rs index c800f315a4..3a82438f44 100644 --- a/packages/next-swc/crates/core/src/page_config.rs +++ b/packages/next-swc/crates/core/src/page_config.rs @@ -1,6 +1,6 @@ use chrono::Utc; -use next_binding::swc::core::{ +use turbo_binding::swc::core::{ common::{errors::HANDLER, Span, DUMMY_SP}, ecma::ast::*, ecma::visit::{Fold, FoldWith}, diff --git a/packages/next-swc/crates/core/src/react_remove_properties.rs b/packages/next-swc/crates/core/src/react_remove_properties.rs index 900078a9bf..1e1913bbc2 100644 --- a/packages/next-swc/crates/core/src/react_remove_properties.rs +++ b/packages/next-swc/crates/core/src/react_remove_properties.rs @@ -1,7 +1,7 @@ use regex::Regex; use serde::Deserialize; -use next_binding::swc::core::{ +use turbo_binding::swc::core::{ ecma::ast::*, ecma::visit::{noop_fold_type, Fold, FoldWith}, }; diff --git a/packages/next-swc/crates/core/src/react_server_components.rs b/packages/next-swc/crates/core/src/react_server_components.rs index 525398382f..74a03bcd84 100644 --- a/packages/next-swc/crates/core/src/react_server_components.rs +++ b/packages/next-swc/crates/core/src/react_server_components.rs @@ -5,7 +5,7 @@ use regex::Regex; use serde::Deserialize; use crate::auto_cjs::contains_cjs; -use next_binding::swc::core::{ +use turbo_binding::swc::core::{ common::{ comments::{Comment, CommentKind, Comments}, errors::HANDLER, diff --git a/packages/next-swc/crates/core/src/remove_console.rs b/packages/next-swc/crates/core/src/remove_console.rs index 1b8e80e2a0..6130a07a35 100644 --- a/packages/next-swc/crates/core/src/remove_console.rs +++ b/packages/next-swc/crates/core/src/remove_console.rs @@ -1,6 +1,6 @@ use serde::Deserialize; -use next_binding::swc::core::{ +use turbo_binding::swc::core::{ common::{collections::AHashSet, DUMMY_SP}, ecma::ast::*, ecma::atoms::JsWord, diff --git a/packages/next-swc/crates/core/src/server_actions.rs b/packages/next-swc/crates/core/src/server_actions.rs index 7945333ff7..f4051fa84a 100644 --- a/packages/next-swc/crates/core/src/server_actions.rs +++ b/packages/next-swc/crates/core/src/server_actions.rs @@ -1,7 +1,9 @@ use std::convert::{TryFrom, TryInto}; use hex::encode as hex_encode; -use next_binding::swc::core::{ +use serde::Deserialize; +use sha1::{Digest, Sha1}; +use turbo_binding::swc::core::{ common::{ comments::{Comment, CommentKind, Comments}, errors::HANDLER, @@ -15,8 +17,6 @@ use next_binding::swc::core::{ visit::{as_folder, noop_visit_mut_type, Fold, VisitMut, VisitMutWith}, }, }; -use serde::Deserialize; -use sha1::{Digest, Sha1}; #[derive(Clone, Debug, Deserialize)] #[serde(deny_unknown_fields, rename_all = "camelCase")] diff --git a/packages/next-swc/crates/core/src/shake_exports.rs b/packages/next-swc/crates/core/src/shake_exports.rs index 49fa2d1b36..1300b95c71 100644 --- a/packages/next-swc/crates/core/src/shake_exports.rs +++ b/packages/next-swc/crates/core/src/shake_exports.rs @@ -1,6 +1,6 @@ use serde::Deserialize; -use next_binding::swc::core::{ +use turbo_binding::swc::core::{ common::Mark, ecma::ast::*, ecma::atoms::{js_word, JsWord}, diff --git a/packages/next-swc/crates/core/src/top_level_binding_collector.rs b/packages/next-swc/crates/core/src/top_level_binding_collector.rs index 62d0b18f74..13de0dc818 100644 --- a/packages/next-swc/crates/core/src/top_level_binding_collector.rs +++ b/packages/next-swc/crates/core/src/top_level_binding_collector.rs @@ -1,6 +1,6 @@ use std::hash::Hash; -use next_binding::swc::core::{ +use turbo_binding::swc::core::{ common::{collections::AHashSet, SyntaxContext}, ecma::ast::{ ClassDecl, FnDecl, Ident, ImportDefaultSpecifier, ImportNamedSpecifier, diff --git a/packages/next-swc/crates/core/tests/errors.rs b/packages/next-swc/crates/core/tests/errors.rs index 19aa76cb71..c36b49f6f4 100644 --- a/packages/next-swc/crates/core/tests/errors.rs +++ b/packages/next-swc/crates/core/tests/errors.rs @@ -1,4 +1,13 @@ -use next_binding::swc::{ +use next_swc::{ + disallow_re_export_all_in_page::disallow_re_export_all_in_page, + next_dynamic::next_dynamic, + next_ssg::next_ssg, + react_server_components::server_components, + server_actions::{self, server_actions}, +}; +use next_transform_font::{next_font_loaders, Config as FontLoaderConfig}; +use std::path::PathBuf; +use turbo_binding::swc::{ core::{ common::{chain, FileName, Mark}, ecma::{ @@ -11,15 +20,6 @@ use next_binding::swc::{ }, testing::fixture, }; -use next_swc::{ - disallow_re_export_all_in_page::disallow_re_export_all_in_page, - next_dynamic::next_dynamic, - next_ssg::next_ssg, - react_server_components::server_components, - server_actions::{self, server_actions}, -}; -use next_transform_font::{next_font_loaders, Config as FontLoaderConfig}; -use std::path::PathBuf; fn syntax() -> Syntax { Syntax::Es(EsConfig { diff --git a/packages/next-swc/crates/core/tests/fixture.rs b/packages/next-swc/crates/core/tests/fixture.rs index 17c186ffa7..c6b612c0e2 100644 --- a/packages/next-swc/crates/core/tests/fixture.rs +++ b/packages/next-swc/crates/core/tests/fixture.rs @@ -1,13 +1,3 @@ -use next_binding::swc::{ - core::{ - common::{chain, comments::SingleThreadedComments, FileName, Mark}, - ecma::parser::{EsConfig, Syntax}, - ecma::transforms::base::resolver, - ecma::transforms::react::jsx, - ecma::transforms::testing::{test, test_fixture}, - }, - testing::fixture, -}; use next_swc::{ amp_attributes::amp_attributes, next_dynamic::next_dynamic, @@ -22,6 +12,18 @@ use next_swc::{ use next_transform_font::{next_font_loaders, Config as FontLoaderConfig}; use std::{env::current_dir, path::PathBuf}; use swc_relay::{relay, RelayLanguageConfig}; +use turbo_binding::swc::{ + core::{ + common::{chain, comments::SingleThreadedComments, FileName, Mark}, + ecma::transforms::base::resolver, + ecma::transforms::testing::{test, test_fixture}, + ecma::{ + parser::{EsConfig, Syntax}, + transforms::react::jsx, + }, + }, + testing::fixture, +}; fn syntax() -> Syntax { Syntax::Es(EsConfig { @@ -104,7 +106,7 @@ fn next_ssg_fixture(input: PathBuf) { let jsx = jsx::( tr.cm.clone(), None, - next_binding::swc::core::ecma::transforms::react::Options { + turbo_binding::swc::core::ecma::transforms::react::Options { next: false.into(), runtime: None, import_source: Some("".into()), diff --git a/packages/next-swc/crates/core/tests/full.rs b/packages/next-swc/crates/core/tests/full.rs index 12bef2d152..169febedf5 100644 --- a/packages/next-swc/crates/core/tests/full.rs +++ b/packages/next-swc/crates/core/tests/full.rs @@ -1,4 +1,7 @@ -use next_binding::swc::{ +use next_swc::{custom_before_pass, TransformOptions}; +use serde::de::DeserializeOwned; +use std::path::{Path, PathBuf}; +use turbo_binding::swc::{ core::{ base::Compiler, common::comments::SingleThreadedComments, @@ -7,16 +10,13 @@ use next_binding::swc::{ }, testing::{NormalizedOutput, Tester}, }; -use next_swc::{custom_before_pass, TransformOptions}; -use serde::de::DeserializeOwned; -use std::path::{Path, PathBuf}; -#[next_binding::swc::testing::fixture("tests/full/**/input.js")] +#[turbo_binding::swc::testing::fixture("tests/full/**/input.js")] fn full(input: PathBuf) { test(&input, true); } -#[next_binding::swc::testing::fixture("tests/loader/**/input.js")] +#[turbo_binding::swc::testing::fixture("tests/loader/**/input.js")] fn loader(input: PathBuf) { test(&input, false); } @@ -31,16 +31,16 @@ fn test(input: &Path, minify: bool) { let fm = cm.load_file(input).expect("failed to load file"); let options = TransformOptions { - swc: next_binding::swc::core::base::config::Options { + swc: turbo_binding::swc::core::base::config::Options { swcrc: true, output_path: Some(output.clone()), - config: next_binding::swc::core::base::config::Config { - is_module: Some(next_binding::swc::core::base::config::IsModule::Bool( + config: turbo_binding::swc::core::base::config::Config { + is_module: Some(turbo_binding::swc::core::base::config::IsModule::Bool( true, )), - jsc: next_binding::swc::core::base::config::JscConfig { + jsc: turbo_binding::swc::core::base::config::JscConfig { minify: if minify { Some(assert_json("{ \"compress\": true, \"mangle\": true }")) } else { diff --git a/packages/next-swc/crates/core/tests/telemetry.rs b/packages/next-swc/crates/core/tests/telemetry.rs index cbf2199a03..87a0e58801 100644 --- a/packages/next-swc/crates/core/tests/telemetry.rs +++ b/packages/next-swc/crates/core/tests/telemetry.rs @@ -6,7 +6,7 @@ use fxhash::FxHashSet; use next_swc::next_ssg::next_ssg; use once_cell::sync::Lazy; -use next_binding::swc::core::{ +use turbo_binding::swc::core::{ base::{try_with_handler, Compiler}, common::{comments::SingleThreadedComments, FileName, FilePathMapping, SourceMap, GLOBALS}, ecma::transforms::base::pass::noop, diff --git a/packages/next-swc/crates/napi/Cargo.toml b/packages/next-swc/crates/napi/Cargo.toml index e199259245..ac6a6c8936 100644 --- a/packages/next-swc/crates/napi/Cargo.toml +++ b/packages/next-swc/crates/napi/Cargo.toml @@ -13,12 +13,18 @@ default = ["rustls-tls"] # when build (i.e napi --build --features plugin), same for the wasm as well. # this is due to some of transitive dependencies have features cannot be enabled at the same time # (i.e wasmer/default vs wasmer/js-default) while cargo merges all the features at once. -plugin = ["next-binding/__swc_core_binding_napi_plugin", "next-swc/plugin"] +plugin = ["turbo-binding/__swc_core_binding_napi_plugin", "next-swc/plugin"] sentry_native_tls = ["sentry", "sentry/native-tls", "native-tls"] sentry_rustls = ["sentry", "sentry/rustls", "rustls-tls"] -native-tls = ["next-binding/__turbo_native_tls"] -rustls-tls = ["next-binding/__turbo_rustls_tls"] +native-tls = ["next-dev/native-tls"] +rustls-tls = ["next-dev/rustls-tls"] + +# Internal only. Enabled when building for the Next.js integration test suite. +__internal_nextjs_integration_test = [ + "next-dev/__internal_nextjs_integration_test", + "next-dev/serializable" +] [dependencies] anyhow = "1.0.66" @@ -32,6 +38,8 @@ napi = { version = "2", default-features = false, features = [ ] } napi-derive = "2" next-swc = { version = "0.0.0", path = "../core" } +next-dev = { workspace = true } +next-build = { workspace = true } once_cell = { workspace = true } serde = "1" serde_json = "1" @@ -39,20 +47,19 @@ tracing = { version = "0.1.37", features = ["release_max_level_info"] } tracing-futures = "0.2.5" tracing-subscriber = "0.3.9" tracing-chrome = "0.5.0" -turbopack = { workspace = true } -turbo-tasks = { workspace = true } -turbo-tasks-memory = { workspace = true } -next-binding = { path = "../next-binding", features = [ +turbo-binding = { workspace = true, features = [ "__swc_core_binding_napi", - "__turbo_next_build", - "__turbo_next_dev_server", - "__turbo_node_file_trace", + "__feature_node_file_trace", "__feature_mdx_rs", + "__turbo_tasks", + "__turbo_tasks_memory", + "__turbopack" ] } - [target.'cfg(not(all(target_os = "linux", target_env = "musl", target_arch = "aarch64")))'.dependencies] -turbo-malloc = { workspace = true } +turbo-binding = { workspace = true, features = [ + "__turbo_malloc" +] } # There are few build targets we can't use native-tls which default features rely on, # allow to specify alternative (rustls) instead via features. diff --git a/packages/next-swc/crates/napi/src/lib.rs b/packages/next-swc/crates/napi/src/lib.rs index e3c31a957d..73105af23e 100644 --- a/packages/next-swc/crates/napi/src/lib.rs +++ b/packages/next-swc/crates/napi/src/lib.rs @@ -37,7 +37,7 @@ use std::{env, panic::set_hook, sync::Arc}; use backtrace::Backtrace; use fxhash::FxHashSet; use napi::bindgen_prelude::*; -use next_binding::swc::core::{ +use turbo_binding::swc::core::{ base::{Compiler, TransformOutput}, common::{sync::Lazy, FilePathMapping, SourceMap}, }; @@ -54,7 +54,7 @@ pub mod util; // compile error #[cfg(not(all(target_os = "linux", target_env = "musl", target_arch = "aarch64")))] #[global_allocator] -static ALLOC: turbo_malloc::TurboMalloc = turbo_malloc::TurboMalloc; +static ALLOC: turbo_binding::turbo::malloc::TurboMalloc = turbo_binding::turbo::malloc::TurboMalloc; static COMPILER: Lazy> = Lazy::new(|| { let cm = Arc::new(SourceMap::new(FilePathMapping::empty())); diff --git a/packages/next-swc/crates/napi/src/mdx.rs b/packages/next-swc/crates/napi/src/mdx.rs index 999fd7f37d..3dfa7cb29b 100644 --- a/packages/next-swc/crates/napi/src/mdx.rs +++ b/packages/next-swc/crates/napi/src/mdx.rs @@ -1,5 +1,5 @@ use napi::bindgen_prelude::*; -use next_binding::features::mdxjs::{compile, Options}; +use turbo_binding::features::mdxjs::{compile, Options}; pub struct MdxCompileTask { pub input: String, diff --git a/packages/next-swc/crates/napi/src/minify.rs b/packages/next-swc/crates/napi/src/minify.rs index fb9ac27c45..e3e7a5dd7c 100644 --- a/packages/next-swc/crates/napi/src/minify.rs +++ b/packages/next-swc/crates/napi/src/minify.rs @@ -29,18 +29,18 @@ use std::sync::Arc; use fxhash::FxHashMap; use napi::bindgen_prelude::*; -use next_binding::swc::core::{ +use serde::Deserialize; +use turbo_binding::swc::core::{ base::{try_with_handler, TransformOutput}, common::{errors::ColorConfig, sync::Lrc, FileName, SourceFile, SourceMap, GLOBALS}, }; -use serde::Deserialize; use crate::{get_compiler, util::MapErr}; pub struct MinifyTask { - c: Arc, + c: Arc, code: MinifyTarget, - opts: next_binding::swc::core::base::config::JsMinifyOptions, + opts: turbo_binding::swc::core::base::config::JsMinifyOptions, } #[derive(Deserialize)] @@ -80,7 +80,7 @@ impl Task for MinifyTask { fn compute(&mut self) -> napi::Result { try_with_handler( self.c.cm.clone(), - next_binding::swc::core::base::HandlerOpts { + turbo_binding::swc::core::base::HandlerOpts { color: ColorConfig::Never, skip_filename: true, }, @@ -127,7 +127,7 @@ pub fn minify_sync(input: Buffer, opts: Buffer) -> napi::Result try_with_handler( c.cm.clone(), - next_binding::swc::core::base::HandlerOpts { + turbo_binding::swc::core::base::HandlerOpts { color: ColorConfig::Never, skip_filename: true, }, diff --git a/packages/next-swc/crates/napi/src/parse.rs b/packages/next-swc/crates/napi/src/parse.rs index bdd49b8307..c6deda1c32 100644 --- a/packages/next-swc/crates/napi/src/parse.rs +++ b/packages/next-swc/crates/napi/src/parse.rs @@ -2,7 +2,7 @@ use std::sync::Arc; use anyhow::Context as _; use napi::bindgen_prelude::*; -use next_binding::swc::core::{ +use turbo_binding::swc::core::{ base::{config::ParseOptions, try_with_handler}, common::{ comments::Comments, errors::ColorConfig, FileName, FilePathMapping, SourceMap, GLOBALS, @@ -24,7 +24,7 @@ impl Task for ParseTask { fn compute(&mut self) -> napi::Result { GLOBALS.set(&Default::default(), || { - let c = next_binding::swc::core::base::Compiler::new(Arc::new(SourceMap::new( + let c = turbo_binding::swc::core::base::Compiler::new(Arc::new(SourceMap::new( FilePathMapping::empty(), ))); @@ -39,7 +39,7 @@ impl Task for ParseTask { c.cm.new_source_file(self.filename.clone(), self.src.clone()); let program = try_with_handler( c.cm.clone(), - next_binding::swc::core::base::HandlerOpts { + turbo_binding::swc::core::base::HandlerOpts { color: ColorConfig::Never, skip_filename: false, }, diff --git a/packages/next-swc/crates/napi/src/transform.rs b/packages/next-swc/crates/napi/src/transform.rs index 59ed21094f..d54bb0eeb7 100644 --- a/packages/next-swc/crates/napi/src/transform.rs +++ b/packages/next-swc/crates/napi/src/transform.rs @@ -37,12 +37,12 @@ use std::{ use anyhow::{anyhow, bail, Context as _}; use fxhash::FxHashSet; use napi::bindgen_prelude::*; -use next_binding::swc::core::{ +use next_swc::{custom_before_pass, TransformOptions}; +use turbo_binding::swc::core::{ base::{try_with_handler, Compiler, TransformOutput}, common::{comments::SingleThreadedComments, errors::ColorConfig, FileName, GLOBALS}, ecma::transforms::base::pass::noop, }; -use next_swc::{custom_before_pass, TransformOptions}; use crate::{complete_output, get_compiler, util::MapErr}; @@ -76,7 +76,7 @@ impl Task for TransformTask { let res = catch_unwind(AssertUnwindSafe(|| { try_with_handler( self.c.cm.clone(), - next_binding::swc::core::base::HandlerOpts { + turbo_binding::swc::core::base::HandlerOpts { color: ColorConfig::Always, skip_filename: skip_filename(), }, diff --git a/packages/next-swc/crates/napi/src/turbopack.rs b/packages/next-swc/crates/napi/src/turbopack.rs index 4e2aa29d39..ca73bcc0f1 100644 --- a/packages/next-swc/crates/napi/src/turbopack.rs +++ b/packages/next-swc/crates/napi/src/turbopack.rs @@ -2,10 +2,8 @@ use std::convert::TryFrom; use crate::util::MapErr; use napi::bindgen_prelude::*; -use next_binding::turbo::{ - next_build::{next_build as turbo_next_build, NextBuildOptions}, - next_dev::{devserver_options::DevServerOptions, start_server}, -}; +use next_build::{next_build as turbo_next_build, NextBuildOptions}; +use next_dev::{devserver_options::DevServerOptions, start_server}; #[napi] pub async fn start_turbo_dev(options: Buffer) -> napi::Result<()> { diff --git a/packages/next-swc/crates/napi/src/turbotrace.rs b/packages/next-swc/crates/napi/src/turbotrace.rs index 869eedf85b..f50ce31269 100644 --- a/packages/next-swc/crates/napi/src/turbotrace.rs +++ b/packages/next-swc/crates/napi/src/turbotrace.rs @@ -1,10 +1,10 @@ use std::sync::Arc; use napi::bindgen_prelude::*; -use next_binding::turbo::node_file_trace::{start, Args}; -use turbo_tasks::TurboTasks; -use turbo_tasks_memory::MemoryBackend; -use turbopack::{ +use turbo_binding::features::node_file_trace::{start, Args}; +use turbo_binding::turbo::tasks::TurboTasks; +use turbo_binding::turbo::tasks_memory::MemoryBackend; +use turbo_binding::turbopack::turbopack::{ module_options::ModuleOptionsContext, resolve_options_context::ResolveOptionsContext, }; diff --git a/packages/next-swc/crates/next-binding/Cargo.toml b/packages/next-swc/crates/next-binding/Cargo.toml deleted file mode 100644 index 668e4731d9..0000000000 --- a/packages/next-swc/crates/next-binding/Cargo.toml +++ /dev/null @@ -1,118 +0,0 @@ -[package] -name = "next-binding" -version = "0.1.0" -edition = "2021" -license = "MPL-2.0" -autobenches = false - -[lib] -bench = false - -[features] -__swc = [] -__swc_core = ["__swc"] -__swc_core_next_core = [ - "__swc_core", - "swc_core/common_concurrent", - "swc_core/ecma_ast", - "swc_core/ecma_visit", - "swc_core/ecma_loader_node", - "swc_core/ecma_loader_lru", - "swc_core/ecma_utils", - "swc_core/ecma_minifier", - "swc_core/ecma_transforms", - "swc_core/ecma_transforms_react", - "swc_core/ecma_transforms_typescript", - "swc_core/ecma_transforms_optimization", - "swc_core/ecma_parser", - "swc_core/ecma_parser_typescript", - "swc_core/cached", - "swc_core/base", -] - -__swc_core_binding_napi = [ - "__swc_core", - "swc_core/base_concurrent", - "swc_core/base_node", - "swc_core/common_concurrent", - "swc_core/ecma_ast", - "swc_core/ecma_loader_node", - "swc_core/ecma_loader_lru", - "swc_core/bundler", - "swc_core/bundler_concurrent", - "swc_core/ecma_codegen", - "swc_core/ecma_minifier", - "swc_core/ecma_parser", - "swc_core/ecma_parser_typescript", - "swc_core/ecma_transforms", - "swc_core/ecma_transforms_optimization", - "swc_core/ecma_transforms_react", - "swc_core/ecma_transforms_typescript", - "swc_core/ecma_utils", - "swc_core/ecma_visit", -] -__swc_core_binding_napi_plugin = ["swc_core/plugin_transform_host_native"] -__swc_core_binding_napi_allocator = ["swc_core/allocator_node"] - -__swc_core_binding_wasm = [ - "__swc_core", - "swc_core/common_concurrent", - "swc_core/binding_macro_wasm", - "swc_core/ecma_codegen", - "swc_core/ecma_minifier", - "swc_core/ecma_transforms", - "swc_core/ecma_transforms_typescript", - "swc_core/ecma_transforms_optimization", - "swc_core/ecma_transforms_react", - "swc_core/ecma_parser", - "swc_core/ecma_parser_typescript", - "swc_core/ecma_utils", - "swc_core/ecma_visit", -] -__swc_core_binding_wasm_plugin = ["swc_core/plugin_transform_host_js"] - -__swc_core_testing_transform = ["swc_core/testing_transform"] - -__turbo = [] -__turbo_next_build = ["__turbo", "next-build"] -__turbo_next_dev_server = ["__turbo", "next-dev/serializable"] -__turbo_node_file_trace = ["__turbo", "node-file-trace/node-api"] - -# set tls for downstream dependenices of turbo -__turbo_native_tls = ["next-dev/native-tls"] -__turbo_rustls_tls = ["next-dev/rustls-tls"] - -__features = [] -__feature_mdx_rs = ["__features", "mdxjs/serializable"] - -__swc_custom_transform = [] -__swc_transform_styled_components = [ - "__swc", - "__swc_custom_transform", - "styled_components", -] -__swc_transform_styled_jsx = ["__swc", "__swc_custom_transform", "styled_jsx"] -__swc_transform_emotion = ["__swc", "__swc_custom_transform", "swc_emotion"] -__swc_transform_modularize_imports = [ - "__swc", - "__swc_custom_transform", - "modularize_imports", -] -__swc_testing = ["__swc", "testing"] - -[dependencies] -mdxjs = { optional = true, workspace = true } -modularize_imports = { optional = true, workspace = true } -next-build = { optional = true, path = "../next-build", default-features = false, features = [ - "custom_allocator", -] } -# TODO: Not sure what's going on, but using `workspace = true` noops `default-features = false`? -next-dev = { optional = true, path = "../next-dev", default-features = false, features = [ - "custom_allocator", -] } -node-file-trace = { optional = true, workspace = true } -styled_components = { optional = true, workspace = true } -styled_jsx = { optional = true, workspace = true } -swc_core = { optional = true, workspace = true } -swc_emotion = { optional = true, workspace = true } -testing = { optional = true, workspace = true } diff --git a/packages/next-swc/crates/next-binding/README.md b/packages/next-swc/crates/next-binding/README.md deleted file mode 100644 index 2eb6cb028a..0000000000 --- a/packages/next-swc/crates/next-binding/README.md +++ /dev/null @@ -1,3 +0,0 @@ -### next-binding - -This is an internal package, does not provide any public interface or stability guarantees. Do not use it directly. diff --git a/packages/next-swc/crates/next-binding/src/lib.rs b/packages/next-swc/crates/next-binding/src/lib.rs deleted file mode 100644 index db7756d02e..0000000000 --- a/packages/next-swc/crates/next-binding/src/lib.rs +++ /dev/null @@ -1,36 +0,0 @@ -#[cfg(feature = "__swc")] -pub mod swc { - #[cfg(feature = "__swc_core")] - pub use swc_core as core; - - #[cfg(feature = "__swc_custom_transform")] - pub mod custom_transform { - #[cfg(feature = "__swc_transform_modularize_imports")] - pub use modularize_imports; - #[cfg(feature = "__swc_transform_styled_components")] - pub use styled_components; - #[cfg(feature = "__swc_transform_styled_jsx")] - pub use styled_jsx; - #[cfg(feature = "__swc_transform_emotion")] - pub use swc_emotion as emotion; - } - - #[cfg(feature = "testing")] - pub use testing; -} - -#[cfg(feature = "__turbo")] -pub mod turbo { - #[cfg(feature = "__turbo_next_build")] - pub use next_build; - #[cfg(feature = "__turbo_next_dev_server")] - pub use next_dev; - #[cfg(feature = "__turbo_node_file_trace")] - pub use node_file_trace; -} - -#[cfg(feature = "__features")] -pub mod features { - #[cfg(feature = "__feature_mdx_rs")] - pub use mdxjs; -} diff --git a/packages/next-swc/crates/next-build/Cargo.toml b/packages/next-swc/crates/next-build/Cargo.toml index e23d2bae0f..9a48600a65 100644 --- a/packages/next-swc/crates/next-build/Cargo.toml +++ b/packages/next-swc/crates/next-build/Cargo.toml @@ -9,17 +9,16 @@ autobenches = false [features] native-tls = ["next-core/native-tls"] rustls-tls = ["next-core/rustls-tls"] -custom_allocator = ["turbo-malloc/custom_allocator"] +custom_allocator = ["turbo-binding/__turbo_malloc", "turbo-binding/__turbo_malloc_custom_allocator"] [dependencies] anyhow = "1.0.47" next-core = { workspace = true } -turbo-malloc = { workspace = true, default-features = false } -turbo-tasks = { workspace = true } -turbo-tasks-memory = { workspace = true } + +turbo-binding = { workspace = true, features = ["__turbo_tasks", "__turbo_tasks_memory"] } [build-dependencies] -turbo-tasks-build = { workspace = true } +turbo-binding = { workspace = true, features = ["__turbo_tasks_build"] } vergen = { version = "7.3.2", default-features = false, features = [ "cargo", "build", diff --git a/packages/next-swc/crates/next-build/build.rs b/packages/next-swc/crates/next-build/build.rs index cc35b5e244..489c9ae513 100644 --- a/packages/next-swc/crates/next-build/build.rs +++ b/packages/next-swc/crates/next-build/build.rs @@ -1,4 +1,4 @@ -use turbo_tasks_build::{generate_register, rerun_if_glob}; +use turbo_binding::turbo::tasks_build::{generate_register, rerun_if_glob}; use vergen::{vergen, Config}; diff --git a/packages/next-swc/crates/next-build/src/lib.rs b/packages/next-swc/crates/next-build/src/lib.rs index e9d04ee765..7bae412ca7 100644 --- a/packages/next-swc/crates/next-build/src/lib.rs +++ b/packages/next-swc/crates/next-build/src/lib.rs @@ -1,8 +1,8 @@ -use turbo_tasks::{NothingVc, StatsType, TurboTasks, TurboTasksBackendApi}; -use turbo_tasks_memory::MemoryBackend; +use turbo_binding::turbo::tasks::{NothingVc, StatsType, TurboTasks, TurboTasksBackendApi}; +use turbo_binding::turbo::tasks_memory::MemoryBackend; pub fn register() { - turbo_tasks::register(); + turbo_binding::turbo::tasks::register(); include!(concat!(env!("OUT_DIR"), "/register.rs")); } diff --git a/packages/next-swc/crates/next-core/Cargo.toml b/packages/next-swc/crates/next-core/Cargo.toml index 048f9f5ffe..774934a636 100644 --- a/packages/next-swc/crates/next-core/Cargo.toml +++ b/packages/next-swc/crates/next-core/Cargo.toml @@ -11,7 +11,6 @@ bench = false [dependencies] allsorts = { workspace = true } anyhow = { workspace = true } -auto-hash-map = { workspace = true } futures = { workspace = true } indexmap = { workspace = true, features = ["serde"] } indoc = { workspace = true } @@ -21,19 +20,24 @@ qstring = { workspace = true } regex = { workspace = true } serde = { workspace = true } serde_json = { workspace = true } +turbo-binding = { workspace = true, features = [ + "__feature_auto_hash_map", + "__turbo_tasks", + "__turbo_tasks_bytes", + "__turbo_tasks_env", + "__turbo_tasks_fetch", + "__turbo_tasks_fs", + "__turbo_tasks_hash", + "__turbopack", + "__turbopack_core", + "__turbopack_dev", + "__turbopack_dev_server", + "__turbopack_ecmascript", + "__turbopack_env", + "__turbopack_node", + ] } turbo-tasks = { workspace = true } -turbo-tasks-bytes = { workspace = true } -turbo-tasks-env = { workspace = true } -turbo-tasks-fetch = { workspace = true } turbo-tasks-fs = { workspace = true } -turbo-tasks-hash = { workspace = true } -turbopack = { workspace = true } -turbopack-core = { workspace = true } -turbopack-dev = { workspace = true } -turbopack-dev-server = { workspace = true } -turbopack-ecmascript = { workspace = true } -turbopack-env = { workspace = true } -turbopack-node = { workspace = true } next-transform-strip-page-exports = { workspace = true } next-transform-font = { workspace = true } next-transform-dynamic = { workspace = true } @@ -41,15 +45,18 @@ next-transform-dynamic = { workspace = true } swc_core = { workspace = true, features = ["ecma_ast", "common"] } [build-dependencies] -turbo-tasks-build = { workspace = true } +turbo-binding = { workspace = true, features = [ + "__turbo_tasks_build" +]} [features] -native-tls = ["turbo-tasks-fetch/native-tls"] -rustls-tls = ["turbo-tasks-fetch/rustls-tls"] +next-font-local = [] +native-tls = ["turbo-binding/__turbo_tasks_fetch_native-tls"] +rustls-tls = ["turbo-binding/__turbo_tasks_fetch_rustls-tls"] # Internal only. Enabled when building for the Next.js integration test suite. __internal_nextjs_integration_test = [] # enable "HMR" for embedded assets dynamic_embed_contents = [ - "turbo-tasks-fs/dynamic_embed_contents", - "turbopack-dev/dynamic_embed_contents", + "turbo-binding/__turbo_tasks_fs_dynamic_embed_contents", + "turbo-binding/__turbopack_dev_dynamic_embed_contents", ] diff --git a/packages/next-swc/crates/next-core/build.rs b/packages/next-swc/crates/next-core/build.rs index 1673efed59..d600ae626e 100644 --- a/packages/next-swc/crates/next-core/build.rs +++ b/packages/next-swc/crates/next-core/build.rs @@ -1,4 +1,4 @@ -use turbo_tasks_build::generate_register; +use turbo_binding::turbo::tasks_build::generate_register; fn main() { generate_register(); diff --git a/packages/next-swc/crates/next-core/src/app_render/mod.rs b/packages/next-swc/crates/next-core/src/app_render/mod.rs index b8fc422395..c3d3e4f4d6 100644 --- a/packages/next-swc/crates/next-core/src/app_render/mod.rs +++ b/packages/next-swc/crates/next-core/src/app_render/mod.rs @@ -1,6 +1,6 @@ use std::collections::HashMap; -use turbo_tasks_fs::FileSystemPathVc; +use turbo_binding::turbo::tasks_fs::FileSystemPathVc; pub mod next_layout_entry_transition; diff --git a/packages/next-swc/crates/next-core/src/app_render/next_layout_entry_transition.rs b/packages/next-swc/crates/next-core/src/app_render/next_layout_entry_transition.rs index 6593d03b3a..027effae46 100644 --- a/packages/next-swc/crates/next-core/src/app_render/next_layout_entry_transition.rs +++ b/packages/next-swc/crates/next-core/src/app_render/next_layout_entry_transition.rs @@ -1,19 +1,20 @@ use anyhow::Result; use indexmap::indexmap; -use turbo_tasks::{primitives::OptionStringVc, Value}; -use turbo_tasks_fs::FileSystemPathVc; -use turbopack::{ - self, +use turbo_binding::turbo::tasks_fs::FileSystemPathVc; +use turbo_binding::turbopack::core::{ + asset::AssetVc, compile_time_info::CompileTimeInfoVc, context::AssetContext, +}; +use turbo_binding::turbopack::ecmascript::{ + EcmascriptInputTransform, EcmascriptInputTransformsVc, EcmascriptModuleAssetType, + EcmascriptModuleAssetVc, InnerAssetsVc, +}; +use turbo_binding::turbopack::turbopack::{ module_options::ModuleOptionsContextVc, resolve_options_context::ResolveOptionsContextVc, transition::{Transition, TransitionVc}, ModuleAssetContextVc, }; -use turbopack_core::{asset::AssetVc, compile_time_info::CompileTimeInfoVc, context::AssetContext}; -use turbopack_ecmascript::{ - EcmascriptInputTransform, EcmascriptInputTransformsVc, EcmascriptModuleAssetType, - EcmascriptModuleAssetVc, InnerAssetsVc, -}; +use turbo_tasks::{primitives::OptionStringVc, Value}; use crate::{ embed_js::next_asset, next_client_component::with_client_chunks::WithClientChunksAsset, diff --git a/packages/next-swc/crates/next-core/src/app_source.rs b/packages/next-swc/crates/next-core/src/app_source.rs index ddf4b5e376..868992bfcd 100644 --- a/packages/next-swc/crates/next-core/src/app_source.rs +++ b/packages/next-swc/crates/next-core/src/app_source.rs @@ -6,15 +6,12 @@ use std::{ use anyhow::{anyhow, Result}; use indexmap::indexmap; -use turbo_tasks::{primitives::OptionStringVc, TryJoinIterExt, Value, ValueToString}; -use turbo_tasks_env::{CustomProcessEnvVc, EnvMapVc, ProcessEnvVc}; -use turbo_tasks_fs::{rope::RopeBuilder, File, FileContent, FileSystemPathVc}; -use turbopack::{ - ecmascript::EcmascriptInputTransform, - transition::{TransitionVc, TransitionsByNameVc}, - ModuleAssetContextVc, +use turbo_binding::turbo::tasks::{ + primitives::OptionStringVc, TryJoinIterExt, Value, ValueToString, }; -use turbopack_core::{ +use turbo_binding::turbo::tasks_env::{CustomProcessEnvVc, EnvMapVc, ProcessEnvVc}; +use turbo_binding::turbo::tasks_fs::{rope::RopeBuilder, File, FileContent, FileSystemPathVc}; +use turbo_binding::turbopack::core::{ compile_time_info::CompileTimeInfoVc, context::{AssetContext, AssetContextVc}, environment::{EnvironmentIntention, ServerAddrVc}, @@ -22,25 +19,30 @@ use turbopack_core::{ source_asset::SourceAssetVc, virtual_asset::VirtualAssetVc, }; -use turbopack_dev::DevChunkingContextVc; -use turbopack_dev_server::{ +use turbo_binding::turbopack::dev::DevChunkingContextVc; +use turbo_binding::turbopack::dev_server::{ html::DevHtmlAssetVc, source::{ combined::CombinedContentSource, ContentSourceData, ContentSourceVc, NoContentSourceVc, }, }; -use turbopack_ecmascript::{ +use turbo_binding::turbopack::ecmascript::{ chunk::EcmascriptChunkPlaceablesVc, magic_identifier, utils::StringifyJs, EcmascriptInputTransformsVc, EcmascriptModuleAssetType, EcmascriptModuleAssetVc, InnerAssetsVc, }; -use turbopack_env::ProcessEnvAssetVc; -use turbopack_node::{ +use turbo_binding::turbopack::env::ProcessEnvAssetVc; +use turbo_binding::turbopack::node::{ execution_context::ExecutionContextVc, render::{ node_api_source::create_node_api_source, rendered_source::create_node_rendered_source, }, NodeEntry, NodeEntryVc, NodeRenderingEntry, NodeRenderingEntryVc, }; +use turbo_binding::turbopack::turbopack::{ + ecmascript::EcmascriptInputTransform, + transition::{TransitionVc, TransitionsByNameVc}, + ModuleAssetContextVc, +}; use crate::{ app_render::{ diff --git a/packages/next-swc/crates/next-core/src/app_structure.rs b/packages/next-swc/crates/next-core/src/app_structure.rs index 4bae35699d..f8a0ee48d9 100644 --- a/packages/next-swc/crates/next-core/src/app_structure.rs +++ b/packages/next-swc/crates/next-core/src/app_structure.rs @@ -1,15 +1,15 @@ use std::collections::HashMap; use anyhow::{bail, Result}; +use turbo_binding::turbo::tasks_fs::{ + DirectoryContent, DirectoryEntry, File, FileContentVc, FileSystemEntryType, FileSystemPathVc, +}; +use turbo_binding::turbopack::core::issue::{Issue, IssueSeverity, IssueSeverityVc, IssueVc}; +use turbo_binding::turbopack::dev_server::source::specificity::SpecificityVc; use turbo_tasks::{ primitives::{StringVc, StringsVc}, CompletionVc, ValueToString, }; -use turbo_tasks_fs::{ - DirectoryContent, DirectoryEntry, File, FileContentVc, FileSystemEntryType, FileSystemPathVc, -}; -use turbopack_core::issue::{Issue, IssueSeverity, IssueSeverityVc, IssueVc}; -use turbopack_dev_server::source::specificity::SpecificityVc; use crate::{ app_render::{LayoutSegment, LayoutSegmentVc, LayoutSegmentsVc}, diff --git a/packages/next-swc/crates/next-core/src/babel.rs b/packages/next-swc/crates/next-core/src/babel.rs index 15bcfe7778..1d26e112e2 100644 --- a/packages/next-swc/crates/next-core/src/babel.rs +++ b/packages/next-swc/crates/next-core/src/babel.rs @@ -1,18 +1,20 @@ use anyhow::Result; +use turbo_binding::turbo::tasks_fs::{FileSystemEntryType, FileSystemPathVc}; +use turbo_binding::turbopack::core::{ + issue::{Issue, IssueSeverity, IssueSeverityVc, IssueVc}, + resolve::{parse::RequestVc, pattern::Pattern, resolve}, +}; +use turbo_binding::turbopack::node::transforms::webpack::{ + WebpackLoaderConfigItem, WebpackLoaderConfigItemsVc, +}; +use turbo_binding::turbopack::turbopack::{ + module_options::WebpackLoadersOptionsVc, resolve_options, + resolve_options_context::ResolveOptionsContext, +}; use turbo_tasks::{ primitives::{BoolVc, StringVc}, Value, }; -use turbo_tasks_fs::{FileSystemEntryType, FileSystemPathVc}; -use turbopack::{ - module_options::WebpackLoadersOptionsVc, resolve_options, - resolve_options_context::ResolveOptionsContext, -}; -use turbopack_core::{ - issue::{Issue, IssueSeverity, IssueSeverityVc, IssueVc}, - resolve::{parse::RequestVc, pattern::Pattern, resolve}, -}; -use turbopack_node::transforms::webpack::{WebpackLoaderConfigItem, WebpackLoaderConfigItemsVc}; const BABEL_CONFIG_FILES: &[&str] = &[ ".babelrc", diff --git a/packages/next-swc/crates/next-core/src/embed_js.rs b/packages/next-swc/crates/next-core/src/embed_js.rs index c5dfee8fc7..ff463c606a 100644 --- a/packages/next-swc/crates/next-core/src/embed_js.rs +++ b/packages/next-swc/crates/next-core/src/embed_js.rs @@ -1,11 +1,12 @@ -use turbo_tasks_fs::{embed_directory, FileContentVc, FileSystem, FileSystemPathVc, FileSystemVc}; -use turbopack_core::{asset::AssetVc, source_asset::SourceAssetVc}; +use turbo_binding::turbo::tasks_fs::{FileContentVc, FileSystem, FileSystemPathVc, FileSystemVc}; +use turbo_binding::turbopack::core::{asset::AssetVc, source_asset::SourceAssetVc}; pub const VIRTUAL_PACKAGE_NAME: &str = "@vercel/turbopack-next"; #[turbo_tasks::function] pub(crate) fn next_js_fs() -> FileSystemVc { - embed_directory!("next", "$CARGO_MANIFEST_DIR/js/src") + // [TODO]: macro need to be refactored to be used via turbo-binding + turbo_tasks_fs::embed_directory!("next", "$CARGO_MANIFEST_DIR/js/src") } #[turbo_tasks::function] diff --git a/packages/next-swc/crates/next-core/src/env.rs b/packages/next-swc/crates/next-core/src/env.rs index d10f7fb532..dac65e4685 100644 --- a/packages/next-swc/crates/next-core/src/env.rs +++ b/packages/next-swc/crates/next-core/src/env.rs @@ -1,11 +1,11 @@ use anyhow::Result; use indexmap::indexmap; -use turbo_tasks_env::{ +use turbo_binding::turbo::tasks_env::{ CommandLineProcessEnvVc, CustomProcessEnvVc, EnvMapVc, FilterProcessEnvVc, ProcessEnv, ProcessEnvVc, }; -use turbo_tasks_fs::FileSystemPathVc; -use turbopack_env::{EmbeddableProcessEnvVc, TryDotenvProcessEnvVc}; +use turbo_binding::turbo::tasks_fs::FileSystemPathVc; +use turbo_binding::turbopack::env::{EmbeddableProcessEnvVc, TryDotenvProcessEnvVc}; use crate::next_config::NextConfigVc; diff --git a/packages/next-swc/crates/next-core/src/fallback.rs b/packages/next-swc/crates/next-core/src/fallback.rs index 730649a8de..43d56b9807 100644 --- a/packages/next-swc/crates/next-core/src/fallback.rs +++ b/packages/next-swc/crates/next-core/src/fallback.rs @@ -1,20 +1,20 @@ use std::collections::HashMap; use anyhow::{bail, Result}; -use turbo_tasks::Value; -use turbo_tasks_env::ProcessEnvVc; -use turbo_tasks_fs::FileSystemPathVc; -use turbopack::{ - ecmascript::EcmascriptModuleAssetVc, transition::TransitionsByNameVc, ModuleAssetContextVc, -}; -use turbopack_core::{ +use turbo_binding::turbo::tasks_env::ProcessEnvVc; +use turbo_binding::turbo::tasks_fs::FileSystemPathVc; +use turbo_binding::turbopack::core::{ chunk::ChunkGroupVc, compile_time_info::CompileTimeInfoVc, context::AssetContextVc, resolve::{options::ImportMap, origin::PlainResolveOriginVc}, }; -use turbopack_dev_server::html::DevHtmlAssetVc; -use turbopack_node::execution_context::ExecutionContextVc; +use turbo_binding::turbopack::dev_server::html::DevHtmlAssetVc; +use turbo_binding::turbopack::node::execution_context::ExecutionContextVc; +use turbo_binding::turbopack::turbopack::{ + ecmascript::EcmascriptModuleAssetVc, transition::TransitionsByNameVc, ModuleAssetContextVc, +}; +use turbo_tasks::Value; use crate::{ next_client::context::{ diff --git a/packages/next-swc/crates/next-core/src/lib.rs b/packages/next-swc/crates/next-core/src/lib.rs index 09df101224..ed12a3f05e 100644 --- a/packages/next-swc/crates/next-core/src/lib.rs +++ b/packages/next-swc/crates/next-core/src/lib.rs @@ -35,17 +35,18 @@ mod web_entry_source; pub use app_source::create_app_source; pub use page_source::create_page_source; -pub use turbopack_node::source_map; +pub use turbo_binding::turbopack::node::source_map; +pub use turbo_binding::*; pub use web_entry_source::create_web_entry_source; pub fn register() { turbo_tasks::register(); - turbo_tasks_bytes::register(); - turbo_tasks_fs::register(); - turbo_tasks_fetch::register(); - turbopack_dev::register(); - turbopack_dev_server::register(); - turbopack_node::register(); - turbopack::register(); + turbo::tasks_bytes::register(); + turbo::tasks_fs::register(); + turbo::tasks_fetch::register(); + turbopack::dev::register(); + turbopack::dev_server::register(); + turbopack::node::register(); + turbopack::turbopack::register(); include!(concat!(env!("OUT_DIR"), "/register.rs")); } diff --git a/packages/next-swc/crates/next-core/src/manifest.rs b/packages/next-swc/crates/next-core/src/manifest.rs index 88059027e7..f63236a12a 100644 --- a/packages/next-swc/crates/next-core/src/manifest.rs +++ b/packages/next-swc/crates/next-core/src/manifest.rs @@ -2,20 +2,20 @@ use anyhow::{Context, Result}; use indexmap::IndexMap; use mime::{APPLICATION_JAVASCRIPT_UTF_8, APPLICATION_JSON}; use serde::Serialize; +use turbo_binding::turbo::tasks_fs::File; +use turbo_binding::turbopack::core::asset::AssetContentVc; +use turbo_binding::turbopack::dev_server::source::{ + ContentSource, ContentSourceContentVc, ContentSourceData, ContentSourceResultVc, + ContentSourceVc, +}; +use turbo_binding::turbopack::node::render::{ + node_api_source::NodeApiContentSourceVc, rendered_source::NodeRenderContentSourceVc, +}; use turbo_tasks::{ graph::{GraphTraversal, NonDeterministic}, primitives::{StringVc, StringsVc}, TryJoinIterExt, }; -use turbo_tasks_fs::File; -use turbopack_core::asset::AssetContentVc; -use turbopack_dev_server::source::{ - ContentSource, ContentSourceContentVc, ContentSourceData, ContentSourceResultVc, - ContentSourceVc, -}; -use turbopack_node::render::{ - node_api_source::NodeApiContentSourceVc, rendered_source::NodeRenderContentSourceVc, -}; use crate::{ embed_js::next_js_file, diff --git a/packages/next-swc/crates/next-core/src/next_build.rs b/packages/next-swc/crates/next-core/src/next_build.rs index eced1b27d9..4e2ff254b7 100644 --- a/packages/next-swc/crates/next-core/src/next_build.rs +++ b/packages/next-swc/crates/next-core/src/next_build.rs @@ -1,7 +1,7 @@ use anyhow::Result; +use turbo_binding::turbo::tasks_fs::FileSystemPathVc; +use turbo_binding::turbopack::core::resolve::options::{ImportMapping, ImportMappingVc}; use turbo_tasks::primitives::StringVc; -use turbo_tasks_fs::FileSystemPathVc; -use turbopack_core::resolve::options::{ImportMapping, ImportMappingVc}; use crate::next_import_map::get_next_package; diff --git a/packages/next-swc/crates/next-core/src/next_client/context.rs b/packages/next-swc/crates/next-core/src/next_client/context.rs index 7fe2541e0d..488fcd33fa 100644 --- a/packages/next-swc/crates/next-core/src/next_client/context.rs +++ b/packages/next-swc/crates/next-core/src/next_client/context.rs @@ -2,19 +2,9 @@ use core::{default::Default, result::Result::Ok}; use std::collections::HashMap; use anyhow::Result; -use turbo_tasks::{primitives::StringVc, Value}; -use turbo_tasks_env::ProcessEnvVc; -use turbo_tasks_fs::{FileSystem, FileSystemPathVc}; -use turbopack::{ - module_options::{ - module_options_context::{ModuleOptionsContext, ModuleOptionsContextVc}, - JsxTransformOptions, PostCssTransformOptions, WebpackLoadersOptions, - }, - resolve_options_context::{ResolveOptionsContext, ResolveOptionsContextVc}, - transition::TransitionsByNameVc, - ModuleAssetContextVc, -}; -use turbopack_core::{ +use turbo_binding::turbo::tasks_env::ProcessEnvVc; +use turbo_binding::turbo::tasks_fs::{FileSystem, FileSystemPathVc}; +use turbo_binding::turbopack::core::{ chunk::ChunkingContextVc, compile_time_defines, compile_time_info::{ @@ -26,9 +16,19 @@ use turbopack_core::{ free_var_references, resolve::{parse::RequestVc, pattern::Pattern}, }; -use turbopack_dev::DevChunkingContextVc; -use turbopack_env::ProcessEnvAssetVc; -use turbopack_node::execution_context::ExecutionContextVc; +use turbo_binding::turbopack::dev::DevChunkingContextVc; +use turbo_binding::turbopack::env::ProcessEnvAssetVc; +use turbo_binding::turbopack::node::execution_context::ExecutionContextVc; +use turbo_binding::turbopack::turbopack::{ + module_options::{ + module_options_context::{ModuleOptionsContext, ModuleOptionsContextVc}, + JsxTransformOptions, PostCssTransformOptions, WebpackLoadersOptions, + }, + resolve_options_context::{ResolveOptionsContext, ResolveOptionsContextVc}, + transition::TransitionsByNameVc, + ModuleAssetContextVc, +}; +use turbo_tasks::{primitives::StringVc, Value}; use super::transforms::get_next_client_transforms_rules; use crate::{ diff --git a/packages/next-swc/crates/next-core/src/next_client/runtime_entry.rs b/packages/next-swc/crates/next-core/src/next_client/runtime_entry.rs index b847981ff3..65acdf9229 100644 --- a/packages/next-swc/crates/next-core/src/next_client/runtime_entry.rs +++ b/packages/next-swc/crates/next-core/src/next_client/runtime_entry.rs @@ -1,15 +1,15 @@ use anyhow::{bail, Result}; -use turbo_tasks::ValueToString; -use turbo_tasks_fs::FileSystemPathVc; -use turbopack_core::{ +use turbo_binding::turbo::tasks_fs::FileSystemPathVc; +use turbo_binding::turbopack::core::{ asset::Asset, context::AssetContextVc, resolve::{origin::PlainResolveOriginVc, parse::RequestVc}, }; -use turbopack_ecmascript::{ +use turbo_binding::turbopack::ecmascript::{ chunk::{EcmascriptChunkPlaceableVc, EcmascriptChunkPlaceablesVc}, resolve::cjs_resolve, }; +use turbo_tasks::ValueToString; #[turbo_tasks::value(shared)] pub enum RuntimeEntry { diff --git a/packages/next-swc/crates/next-core/src/next_client/transforms.rs b/packages/next-swc/crates/next-core/src/next_client/transforms.rs index 1dc24931a9..6abc8c2569 100644 --- a/packages/next-swc/crates/next-core/src/next_client/transforms.rs +++ b/packages/next-swc/crates/next-core/src/next_client/transforms.rs @@ -1,6 +1,6 @@ use anyhow::Result; use next_transform_strip_page_exports::ExportFilter; -use turbopack::module_options::ModuleRule; +use turbo_binding::turbopack::turbopack::module_options::ModuleRule; use crate::{ next_client::context::ClientContextType, diff --git a/packages/next-swc/crates/next-core/src/next_client/transition.rs b/packages/next-swc/crates/next-core/src/next_client/transition.rs index a46ae6cb64..2cc11f9281 100644 --- a/packages/next-swc/crates/next-core/src/next_client/transition.rs +++ b/packages/next-swc/crates/next-core/src/next_client/transition.rs @@ -1,23 +1,23 @@ use anyhow::Result; use indexmap::indexmap; -use turbo_tasks::{primitives::OptionStringVc, Value}; -use turbopack::{ +use turbo_binding::turbopack::core::{ + asset::AssetVc, + chunk::{ChunkingContext, ChunkingContextVc}, + compile_time_info::CompileTimeInfoVc, + context::AssetContext, +}; +use turbo_binding::turbopack::ecmascript::{ + EcmascriptInputTransform, EcmascriptInputTransformsVc, EcmascriptModuleAssetType, + EcmascriptModuleAssetVc, InnerAssetsVc, +}; +use turbo_binding::turbopack::turbopack::{ ecmascript::chunk_group_files_asset::ChunkGroupFilesAsset, module_options::ModuleOptionsContextVc, resolve_options_context::ResolveOptionsContextVc, transition::{Transition, TransitionVc}, ModuleAssetContextVc, }; -use turbopack_core::{ - asset::AssetVc, - chunk::{ChunkingContext, ChunkingContextVc}, - compile_time_info::CompileTimeInfoVc, - context::AssetContext, -}; -use turbopack_ecmascript::{ - EcmascriptInputTransform, EcmascriptInputTransformsVc, EcmascriptModuleAssetType, - EcmascriptModuleAssetVc, InnerAssetsVc, -}; +use turbo_tasks::{primitives::OptionStringVc, Value}; use super::runtime_entry::RuntimeEntriesVc; use crate::embed_js::next_asset; diff --git a/packages/next-swc/crates/next-core/src/next_client_chunks/client_chunks_transition.rs b/packages/next-swc/crates/next-core/src/next_client_chunks/client_chunks_transition.rs index a0db94a854..698321c94e 100644 --- a/packages/next-swc/crates/next-core/src/next_client_chunks/client_chunks_transition.rs +++ b/packages/next-swc/crates/next-core/src/next_client_chunks/client_chunks_transition.rs @@ -1,17 +1,17 @@ use anyhow::Result; -use turbo_tasks::Value; -use turbo_tasks_fs::FileSystemPathVc; -use turbopack::{ +use turbo_binding::turbo::tasks_fs::FileSystemPathVc; +use turbo_binding::turbopack::core::{ + asset::AssetVc, chunk::ChunkingContextVc, compile_time_info::CompileTimeInfoVc, +}; +use turbo_binding::turbopack::node::execution_context::ExecutionContextVc; +use turbo_binding::turbopack::turbopack::{ ecmascript::chunk::EcmascriptChunkPlaceableVc, module_options::ModuleOptionsContextVc, resolve_options_context::ResolveOptionsContextVc, transition::{Transition, TransitionVc}, ModuleAssetContextVc, }; -use turbopack_core::{ - asset::AssetVc, chunk::ChunkingContextVc, compile_time_info::CompileTimeInfoVc, -}; -use turbopack_node::execution_context::ExecutionContextVc; +use turbo_tasks::Value; use super::with_chunks::WithChunksAsset; use crate::{ diff --git a/packages/next-swc/crates/next-core/src/next_client_chunks/in_chunking_context_asset.rs b/packages/next-swc/crates/next-core/src/next_client_chunks/in_chunking_context_asset.rs index 25bc5552f8..5575b6c34d 100644 --- a/packages/next-swc/crates/next-core/src/next_client_chunks/in_chunking_context_asset.rs +++ b/packages/next-swc/crates/next-core/src/next_client_chunks/in_chunking_context_asset.rs @@ -1,19 +1,21 @@ use anyhow::{bail, Result}; -use turbo_tasks::{primitives::StringVc, Value}; -use turbopack::ecmascript::chunk::{ +use turbo_binding::turbopack::turbopack::ecmascript::chunk::{ EcmascriptChunkItemVc, EcmascriptChunkPlaceable, EcmascriptChunkPlaceableVc, EcmascriptChunkVc, EcmascriptExportsVc, }; -use turbopack_core::{ - asset::{Asset, AssetContentVc, AssetVc}, - chunk::{ - availability_info::AvailabilityInfo, ChunkVc, ChunkableAsset, ChunkableAssetVc, - ChunkingContextVc, +use turbo_binding::turbopack::{ + core::{ + asset::{Asset, AssetContentVc, AssetVc}, + chunk::{ + availability_info::AvailabilityInfo, ChunkVc, ChunkableAsset, ChunkableAssetVc, + ChunkingContextVc, + }, + ident::AssetIdentVc, + reference::AssetReferencesVc, }, - ident::AssetIdentVc, - reference::AssetReferencesVc, + ecmascript::chunk::EcmascriptChunkingContextVc, }; -use turbopack_ecmascript::chunk::EcmascriptChunkingContextVc; +use turbo_tasks::{primitives::StringVc, Value}; #[turbo_tasks::function] fn modifier() -> StringVc { diff --git a/packages/next-swc/crates/next-core/src/next_client_chunks/with_chunks.rs b/packages/next-swc/crates/next-core/src/next_client_chunks/with_chunks.rs index fdbe5a99f5..5daabe145e 100644 --- a/packages/next-swc/crates/next-core/src/next_client_chunks/with_chunks.rs +++ b/packages/next-swc/crates/next-core/src/next_client_chunks/with_chunks.rs @@ -1,13 +1,7 @@ use anyhow::{bail, Result}; use indoc::formatdoc; -use turbo_tasks::{primitives::StringVc, TryJoinIterExt, Value}; -use turbo_tasks_fs::FileSystemPathVc; -use turbopack::ecmascript::chunk::{ - EcmascriptChunkItem, EcmascriptChunkItemContent, EcmascriptChunkItemContentVc, - EcmascriptChunkItemVc, EcmascriptChunkPlaceable, EcmascriptChunkPlaceableVc, EcmascriptChunkVc, - EcmascriptExports, EcmascriptExportsVc, -}; -use turbopack_core::{ +use turbo_binding::turbo::tasks_fs::FileSystemPathVc; +use turbo_binding::turbopack::core::{ asset::{Asset, AssetContentVc, AssetVc}, chunk::{ availability_info::AvailabilityInfo, Chunk, ChunkGroupReferenceVc, ChunkGroupVc, ChunkItem, @@ -17,8 +11,15 @@ use turbopack_core::{ ident::AssetIdentVc, reference::AssetReferencesVc, }; -use turbopack_ecmascript::{chunk::EcmascriptChunkingContextVc, utils::StringifyJs}; - +use turbo_binding::turbopack::turbopack::ecmascript::{ + chunk::{ + EcmascriptChunkItem, EcmascriptChunkItemContent, EcmascriptChunkItemContentVc, + EcmascriptChunkItemVc, EcmascriptChunkPlaceable, EcmascriptChunkPlaceableVc, + EcmascriptChunkVc, EcmascriptChunkingContextVc, EcmascriptExports, EcmascriptExportsVc, + }, + utils::StringifyJs, +}; +use turbo_tasks::{primitives::StringVc, TryJoinIterExt, Value}; #[turbo_tasks::function] fn modifier() -> StringVc { StringVc::cell("chunks".to_string()) diff --git a/packages/next-swc/crates/next-core/src/next_client_component/server_to_client_transition.rs b/packages/next-swc/crates/next-core/src/next_client_component/server_to_client_transition.rs index 2d449bf607..af7ba78438 100644 --- a/packages/next-swc/crates/next-core/src/next_client_component/server_to_client_transition.rs +++ b/packages/next-swc/crates/next-core/src/next_client_component/server_to_client_transition.rs @@ -1,19 +1,19 @@ use anyhow::Result; use indexmap::indexmap; -use turbo_tasks::{primitives::OptionStringVc, Value}; -use turbopack::{ - transition::{Transition, TransitionVc}, - ModuleAssetContextVc, -}; -use turbopack_core::{ +use turbo_binding::turbopack::core::{ asset::AssetVc, context::AssetContext, reference_type::{EntryReferenceSubType, ReferenceType}, }; -use turbopack_ecmascript::{ +use turbo_binding::turbopack::ecmascript::{ EcmascriptInputTransform, EcmascriptInputTransformsVc, EcmascriptModuleAssetType, EcmascriptModuleAssetVc, InnerAssetsVc, }; +use turbo_binding::turbopack::turbopack::{ + transition::{Transition, TransitionVc}, + ModuleAssetContextVc, +}; +use turbo_tasks::{primitives::OptionStringVc, Value}; use crate::embed_js::next_asset; diff --git a/packages/next-swc/crates/next-core/src/next_client_component/ssr_client_module_transition.rs b/packages/next-swc/crates/next-core/src/next_client_component/ssr_client_module_transition.rs index 052085cb48..7ea35c8cd0 100644 --- a/packages/next-swc/crates/next-core/src/next_client_component/ssr_client_module_transition.rs +++ b/packages/next-swc/crates/next-core/src/next_client_component/ssr_client_module_transition.rs @@ -1,12 +1,12 @@ use anyhow::Result; -use turbopack::{ +use turbo_binding::turbopack::core::{asset::AssetVc, compile_time_info::CompileTimeInfoVc}; +use turbo_binding::turbopack::turbopack::{ ecmascript::chunk::EcmascriptChunkPlaceableVc, module_options::ModuleOptionsContextVc, resolve_options_context::ResolveOptionsContextVc, transition::{Transition, TransitionVc}, ModuleAssetContextVc, }; -use turbopack_core::{asset::AssetVc, compile_time_info::CompileTimeInfoVc}; use super::with_chunking_context_scope_asset::WithChunkingContextScopeAsset; diff --git a/packages/next-swc/crates/next-core/src/next_client_component/with_chunking_context_scope_asset.rs b/packages/next-swc/crates/next-core/src/next_client_component/with_chunking_context_scope_asset.rs index 56d6a9dcbb..3ebf2bf59a 100644 --- a/packages/next-swc/crates/next-core/src/next_client_component/with_chunking_context_scope_asset.rs +++ b/packages/next-swc/crates/next-core/src/next_client_component/with_chunking_context_scope_asset.rs @@ -1,10 +1,5 @@ use anyhow::{Context, Result}; -use turbo_tasks::{primitives::StringVc, Value}; -use turbopack::ecmascript::chunk::{ - EcmascriptChunkItemVc, EcmascriptChunkPlaceable, EcmascriptChunkPlaceableVc, EcmascriptChunkVc, - EcmascriptExportsVc, -}; -use turbopack_core::{ +use turbo_binding::turbopack::core::{ asset::{Asset, AssetContentVc, AssetVc}, chunk::{ availability_info::AvailabilityInfo, ChunkVc, ChunkableAsset, ChunkableAssetVc, @@ -13,7 +8,12 @@ use turbopack_core::{ ident::AssetIdentVc, reference::AssetReferencesVc, }; -use turbopack_ecmascript::chunk::EcmascriptChunkingContextVc; +use turbo_binding::turbopack::ecmascript::chunk::EcmascriptChunkingContextVc; +use turbo_binding::turbopack::turbopack::ecmascript::chunk::{ + EcmascriptChunkItemVc, EcmascriptChunkPlaceable, EcmascriptChunkPlaceableVc, EcmascriptChunkVc, + EcmascriptExportsVc, +}; +use turbo_tasks::{primitives::StringVc, Value}; #[turbo_tasks::function] fn modifier() -> StringVc { diff --git a/packages/next-swc/crates/next-core/src/next_client_component/with_client_chunks.rs b/packages/next-swc/crates/next-core/src/next_client_component/with_client_chunks.rs index 038d696114..a0b423ca14 100644 --- a/packages/next-swc/crates/next-core/src/next_client_component/with_client_chunks.rs +++ b/packages/next-swc/crates/next-core/src/next_client_component/with_client_chunks.rs @@ -1,13 +1,7 @@ use anyhow::{Context, Result}; use indoc::formatdoc; -use turbo_tasks::{primitives::StringVc, Value, ValueToString, ValueToStringVc}; -use turbo_tasks_fs::FileSystemPathVc; -use turbopack::ecmascript::chunk::{ - EcmascriptChunkItem, EcmascriptChunkItemContent, EcmascriptChunkItemContentVc, - EcmascriptChunkItemVc, EcmascriptChunkPlaceable, EcmascriptChunkPlaceableVc, EcmascriptChunkVc, - EcmascriptExports, EcmascriptExportsVc, -}; -use turbopack_core::{ +use turbo_binding::turbo::tasks_fs::FileSystemPathVc; +use turbo_binding::turbopack::core::{ asset::{Asset, AssetContentVc, AssetVc}, chunk::{ availability_info::AvailabilityInfo, Chunk, ChunkGroupVc, ChunkItem, ChunkItemVc, ChunkVc, @@ -18,7 +12,15 @@ use turbopack_core::{ reference::{AssetReference, AssetReferenceVc, AssetReferencesVc}, resolve::{ResolveResult, ResolveResultVc}, }; -use turbopack_ecmascript::{chunk::EcmascriptChunkingContextVc, utils::StringifyJs}; +use turbo_binding::turbopack::turbopack::ecmascript::{ + chunk::{ + EcmascriptChunkItem, EcmascriptChunkItemContent, EcmascriptChunkItemContentVc, + EcmascriptChunkItemVc, EcmascriptChunkPlaceable, EcmascriptChunkPlaceableVc, + EcmascriptChunkVc, EcmascriptChunkingContextVc, EcmascriptExports, EcmascriptExportsVc, + }, + utils::StringifyJs, +}; +use turbo_tasks::{primitives::StringVc, Value, ValueToString, ValueToStringVc}; #[turbo_tasks::function] fn modifier() -> StringVc { diff --git a/packages/next-swc/crates/next-core/src/next_config.rs b/packages/next-swc/crates/next-core/src/next_config.rs index a4cd90e383..9b18bf9c71 100644 --- a/packages/next-swc/crates/next-core/src/next_config.rs +++ b/packages/next-swc/crates/next-core/src/next_config.rs @@ -2,15 +2,9 @@ use anyhow::{Context, Result}; use indexmap::IndexMap; use serde::{Deserialize, Serialize}; use serde_json::Value as JsonValue; -use turbo_tasks::{ - primitives::{BoolVc, StringsVc}, - trace::TraceRawVcs, - CompletionVc, Value, -}; -use turbo_tasks_env::EnvMapVc; -use turbo_tasks_fs::{json::parse_json_with_source_context, FileSystemPathVc}; -use turbopack::evaluate_context::node_evaluate_asset_context; -use turbopack_core::{ +use turbo_binding::turbo::tasks_env::EnvMapVc; +use turbo_binding::turbo::tasks_fs::FileSystemPathVc; +use turbo_binding::turbopack::core::{ asset::Asset, changed::any_content_changed, chunk::ChunkingContext, @@ -25,14 +19,21 @@ use turbopack_core::{ }, source_asset::SourceAssetVc, }; -use turbopack_ecmascript::{ +use turbo_binding::turbopack::ecmascript::{ EcmascriptInputTransformsVc, EcmascriptModuleAssetType, EcmascriptModuleAssetVc, }; -use turbopack_node::{ +use turbo_binding::turbopack::node::{ evaluate::evaluate, execution_context::{ExecutionContext, ExecutionContextVc}, transforms::webpack::{WebpackLoaderConfigItems, WebpackLoaderConfigItemsVc}, }; +use turbo_binding::turbopack::turbopack::evaluate_context::node_evaluate_asset_context; +use turbo_tasks::{ + primitives::{BoolVc, StringsVc}, + trace::TraceRawVcs, + CompletionVc, Value, +}; +use turbo_tasks_fs::json::parse_json_with_source_context; use crate::embed_js::next_asset; @@ -604,7 +605,7 @@ pub async fn load_next_config_internal( ) .await?; - let turbo_tasks_bytes::stream::SingleValue::Single(val) = config_value.try_into_single().await.context("Evaluation of Next.js config failed")? else { + let turbo_binding::turbo::tasks_bytes::stream::SingleValue::Single(val) = config_value.try_into_single().await.context("Evaluation of Next.js config failed")? else { return Ok(NextConfig::default().cell()); }; let next_config: NextConfig = parse_json_with_source_context(val.to_str()?)?; diff --git a/packages/next-swc/crates/next-core/src/next_edge/context.rs b/packages/next-swc/crates/next-core/src/next_edge/context.rs index a3de681d15..3659d32647 100644 --- a/packages/next-swc/crates/next-core/src/next_edge/context.rs +++ b/packages/next-swc/crates/next-core/src/next_edge/context.rs @@ -1,8 +1,6 @@ use anyhow::Result; -use turbo_tasks::Value; -use turbo_tasks_fs::FileSystemPathVc; -use turbopack::resolve_options_context::{ResolveOptionsContext, ResolveOptionsContextVc}; -use turbopack_core::{ +use turbo_binding::turbo::tasks_fs::FileSystemPathVc; +use turbo_binding::turbopack::core::{ compile_time_defines, compile_time_info::{ CompileTimeDefinesVc, CompileTimeInfo, CompileTimeInfoVc, FreeVarReference, @@ -14,7 +12,11 @@ use turbopack_core::{ }, free_var_references, }; -use turbopack_node::execution_context::ExecutionContextVc; +use turbo_binding::turbopack::node::execution_context::ExecutionContextVc; +use turbo_binding::turbopack::turbopack::resolve_options_context::{ + ResolveOptionsContext, ResolveOptionsContextVc, +}; +use turbo_tasks::Value; use crate::{ next_config::NextConfigVc, next_import_map::get_next_edge_import_map, diff --git a/packages/next-swc/crates/next-core/src/next_edge/transition.rs b/packages/next-swc/crates/next-core/src/next_edge/transition.rs index 1c26f96e48..8a42303189 100644 --- a/packages/next-swc/crates/next-core/src/next_edge/transition.rs +++ b/packages/next-swc/crates/next-core/src/next_edge/transition.rs @@ -1,14 +1,10 @@ use anyhow::{anyhow, bail, Result}; use indexmap::indexmap; -use turbo_tasks::Value; -use turbo_tasks_fs::{rope::RopeBuilder, File, FileContent, FileContentVc, FileSystemPathVc}; -use turbopack::{ - module_options::ModuleOptionsContextVc, - resolve_options_context::ResolveOptionsContextVc, - transition::{Transition, TransitionVc}, - ModuleAssetContextVc, +use turbo_binding::turbo::tasks::Value; +use turbo_binding::turbo::tasks_fs::{ + rope::RopeBuilder, File, FileContent, FileContentVc, FileSystemPathVc, }; -use turbopack_core::{ +use turbo_binding::turbopack::core::{ asset::{Asset, AssetVc}, chunk::ChunkingContextVc, compile_time_info::CompileTimeInfoVc, @@ -17,11 +13,17 @@ use turbopack_core::{ resolve::parse::RequestVc, virtual_asset::VirtualAssetVc, }; -use turbopack_ecmascript::{ +use turbo_binding::turbopack::ecmascript::{ chunk_group_files_asset::ChunkGroupFilesAsset, resolve::esm_resolve, utils::StringifyJs, EcmascriptInputTransform, EcmascriptInputTransformsVc, EcmascriptModuleAssetType, EcmascriptModuleAssetVc, InnerAssetsVc, }; +use turbo_binding::turbopack::turbopack::{ + module_options::ModuleOptionsContextVc, + resolve_options_context::ResolveOptionsContextVc, + transition::{Transition, TransitionVc}, + ModuleAssetContextVc, +}; #[turbo_tasks::value(shared)] pub struct NextEdgeTransition { diff --git a/packages/next-swc/crates/next-core/src/next_font/google/font_fallback.rs b/packages/next-swc/crates/next-core/src/next_font/google/font_fallback.rs index 3224bb6124..75506cdd83 100644 --- a/packages/next-swc/crates/next-core/src/next_font/google/font_fallback.rs +++ b/packages/next-swc/crates/next-core/src/next_font/google/font_fallback.rs @@ -2,12 +2,12 @@ use std::collections::HashMap; use anyhow::{Context, Result}; use serde::{Deserialize, Serialize}; +use turbo_binding::turbo::tasks_fs::FileSystemPathVc; +use turbo_binding::turbopack::core::issue::IssueSeverity; use turbo_tasks::{ primitives::{StringVc, StringsVc, U32Vc}, trace::TraceRawVcs, }; -use turbo_tasks_fs::FileSystemPathVc; -use turbopack_core::issue::IssueSeverity; use super::options::NextFontGoogleOptionsVc; use crate::{ @@ -148,7 +148,7 @@ fn lookup_fallback( #[cfg(test)] mod tests { use anyhow::Result; - use turbo_tasks_fs::json::parse_json_with_source_context; + use turbo_binding::turbo::tasks_fs::json::parse_json_with_source_context; use super::{FontAdjustment, FontMetricsMap}; use crate::next_font::google::font_fallback::{lookup_fallback, Fallback}; diff --git a/packages/next-swc/crates/next-core/src/next_font/google/mod.rs b/packages/next-swc/crates/next-core/src/next_font/google/mod.rs index 7f13b358b3..20cc3f8f9a 100644 --- a/packages/next-swc/crates/next-core/src/next_font/google/mod.rs +++ b/packages/next-swc/crates/next-core/src/next_font/google/mod.rs @@ -1,13 +1,14 @@ use anyhow::{bail, Context, Result}; use indexmap::IndexMap; use indoc::formatdoc; -use turbo_tasks::{ +use turbo_binding::turbo::tasks::{ primitives::{OptionStringVc, StringVc, U32Vc}, Value, }; - -use turbo_tasks_fs::{json::parse_json_with_source_context, FileContent, FileSystemPathVc}; -use turbopack_core::{ +use turbo_binding::turbo::tasks_fs::{ + json::parse_json_with_source_context, FileContent, FileSystemPathVc, +}; +use turbo_binding::turbopack::core::{ resolve::{ options::{ ImportMapResult, ImportMapResultVc, ImportMapping, ImportMappingReplacement, @@ -19,7 +20,7 @@ use turbopack_core::{ }, virtual_asset::VirtualAssetVc, }; -use turbopack_node::execution_context::ExecutionContextVc; +use turbo_binding::turbopack::node::execution_context::ExecutionContextVc; use self::{ font_fallback::get_font_fallback, @@ -204,8 +205,8 @@ impl ImportMappingReplacement for NextFontGoogleCssModuleReplacer { #[cfg(not(feature = "__internal_nextjs_integration_test"))] let stylesheet_str = { - use turbo_tasks_fetch::fetch; - use turbopack_core::issue::IssueSeverity; + use turbo_binding::turbo::tasks_fetch::fetch; + use turbo_binding::turbopack::core::issue::IssueSeverity; let stylesheet_res = fetch( stylesheet_url, @@ -300,7 +301,7 @@ async fn get_stylesheet_url_from_options( let mut css_url: Option = None; #[cfg(debug_assertions)] { - use turbo_tasks_env::{CommandLineProcessEnvVc, ProcessEnv}; + use turbo_binding::turbo::tasks_env::{CommandLineProcessEnvVc, ProcessEnv}; let env = CommandLineProcessEnvVc::new(); if let Some(url) = &*env.read("TURBOPACK_TEST_ONLY_MOCK_SERVER").await? { @@ -392,16 +393,16 @@ async fn get_mock_stylesheet( ) -> Result> { use std::{collections::HashMap, path::Path}; - use turbo_tasks::CompletionVc; - use turbo_tasks_bytes::stream::SingleValue; - use turbo_tasks_env::{CommandLineProcessEnvVc, ProcessEnv}; - use turbo_tasks_fs::{DiskFileSystemVc, File, FileSystem}; - use turbopack::evaluate_context::node_evaluate_asset_context; - use turbopack_core::{context::AssetContext, ident::AssetIdentVc}; - use turbopack_ecmascript::{ + use turbo_binding::turbo::tasks::CompletionVc; + use turbo_binding::turbo::tasks_bytes::stream::SingleValue; + use turbo_binding::turbo::tasks_env::{CommandLineProcessEnvVc, ProcessEnv}; + use turbo_binding::turbo::tasks_fs::{DiskFileSystemVc, File, FileSystem}; + use turbo_binding::turbopack::core::{context::AssetContext, ident::AssetIdentVc}; + use turbo_binding::turbopack::ecmascript::{ EcmascriptInputTransformsVc, EcmascriptModuleAssetType, EcmascriptModuleAssetVc, }; - use turbopack_node::{evaluate::evaluate, execution_context::ExecutionContext}; + use turbo_binding::turbopack::node::{evaluate::evaluate, execution_context::ExecutionContext}; + use turbo_binding::turbopack::turbopack::evaluate_context::node_evaluate_asset_context; let env = CommandLineProcessEnvVc::new().as_process_env(); let mocked_response_js = &*env.read("NEXT_FONT_GOOGLE_MOCKED_RESPONSES").await?; diff --git a/packages/next-swc/crates/next-core/src/next_font/google/options.rs b/packages/next-swc/crates/next-core/src/next_font/google/options.rs index 3730ce559c..c23106d618 100644 --- a/packages/next-swc/crates/next-core/src/next_font/google/options.rs +++ b/packages/next-swc/crates/next-core/src/next_font/google/options.rs @@ -198,7 +198,7 @@ pub(super) fn options_from_request( mod tests { use anyhow::Result; use indexmap::IndexMap; - use turbo_tasks_fs::json::parse_json_with_source_context; + use turbo_binding::turbo::tasks_fs::json::parse_json_with_source_context; use super::{options_from_request, FontDataEntry, NextFontGoogleOptions}; use crate::next_font::google::{options::FontWeights, request::NextFontRequest}; diff --git a/packages/next-swc/crates/next-core/src/next_font/google/util.rs b/packages/next-swc/crates/next-core/src/next_font/google/util.rs index 9eaf277067..291b9d4c85 100644 --- a/packages/next-swc/crates/next-core/src/next_font/google/util.rs +++ b/packages/next-swc/crates/next-core/src/next_font/google/util.rs @@ -231,7 +231,7 @@ pub(super) fn get_stylesheet_url( mod tests { use anyhow::Result; use indexmap::indexset; - use turbo_tasks_fs::json::parse_json_with_source_context; + use turbo_binding::turbo::tasks_fs::json::parse_json_with_source_context; use super::get_font_axes; use crate::next_font::google::{ diff --git a/packages/next-swc/crates/next-core/src/next_font/issue.rs b/packages/next-swc/crates/next-core/src/next_font/issue.rs index 7878148549..ad6cbc586d 100644 --- a/packages/next-swc/crates/next-core/src/next_font/issue.rs +++ b/packages/next-swc/crates/next-core/src/next_font/issue.rs @@ -1,6 +1,6 @@ +use turbo_binding::turbo::tasks_fs::FileSystemPathVc; +use turbo_binding::turbopack::core::issue::{Issue, IssueSeverityVc, IssueVc}; use turbo_tasks::primitives::StringVc; -use turbo_tasks_fs::FileSystemPathVc; -use turbopack_core::issue::{Issue, IssueSeverityVc, IssueVc}; #[turbo_tasks::value(shared)] pub(crate) struct NextFontIssue { diff --git a/packages/next-swc/crates/next-core/src/next_font/local/mod.rs b/packages/next-swc/crates/next-core/src/next_font/local/mod.rs index c72b52c789..95bd2b402a 100644 --- a/packages/next-swc/crates/next-core/src/next_font/local/mod.rs +++ b/packages/next-swc/crates/next-core/src/next_font/local/mod.rs @@ -1,11 +1,6 @@ use anyhow::{bail, Context, Result}; use indoc::formatdoc; -use turbo_tasks::{ - primitives::{OptionStringVc, U32Vc}, - Value, -}; -use turbo_tasks_fs::{json::parse_json_with_source_context, FileContent, FileSystemPathVc}; -use turbopack_core::{ +use turbo_binding::turbopack::core::{ resolve::{ options::{ ImportMapResult, ImportMapResultVc, ImportMapping, ImportMappingReplacement, @@ -17,6 +12,11 @@ use turbopack_core::{ }, virtual_asset::VirtualAssetVc, }; +use turbo_tasks::{ + primitives::{OptionStringVc, U32Vc}, + Value, +}; +use turbo_tasks_fs::{json::parse_json_with_source_context, FileContent, FileSystemPathVc}; use self::{ font_fallback::get_font_fallbacks, diff --git a/packages/next-swc/crates/next-core/src/next_font/util.rs b/packages/next-swc/crates/next-core/src/next_font/util.rs index 7d979491ee..e5b831aa51 100644 --- a/packages/next-swc/crates/next-core/src/next_font/util.rs +++ b/packages/next-swc/crates/next-core/src/next_font/util.rs @@ -1,7 +1,7 @@ use anyhow::{Context, Result}; +use turbo_binding::turbo::tasks_hash::hash_xxh3_hash64; +use turbo_binding::turbopack::core::resolve::pattern::QueryMapVc; use turbo_tasks::primitives::{OptionStringVc, StringVc, U32Vc}; -use turbo_tasks_hash::hash_xxh3_hash64; -use turbopack_core::resolve::pattern::QueryMapVc; /// CSS properties and values for a given font variation. These are rendered as /// values in both the returned JavaScript object and in the referenced css diff --git a/packages/next-swc/crates/next-core/src/next_image/mod.rs b/packages/next-swc/crates/next-core/src/next_image/mod.rs index 99556500f5..c054a186e5 100644 --- a/packages/next-swc/crates/next-core/src/next_image/mod.rs +++ b/packages/next-swc/crates/next-core/src/next_image/mod.rs @@ -1,13 +1,13 @@ use std::collections::BTreeSet; use anyhow::Result; -use turbo_tasks::{primitives::StringVc, Value}; -use turbopack_core::introspect::{Introspectable, IntrospectableVc}; -use turbopack_dev_server::source::{ +use turbo_binding::turbopack::core::introspect::{Introspectable, IntrospectableVc}; +use turbo_binding::turbopack::dev_server::source::{ query::QueryValue, ContentSource, ContentSourceContent, ContentSourceData, ContentSourceDataFilter, ContentSourceDataVary, ContentSourceResultVc, ContentSourceVc, NeededData, ProxyResult, }; +use turbo_tasks::{primitives::StringVc, Value}; /// Serves, resizes, optimizes, and re-encodes images to be used with /// next/image. diff --git a/packages/next-swc/crates/next-core/src/next_import_map.rs b/packages/next-swc/crates/next-core/src/next_import_map.rs index 676fa9338d..b911a0bac9 100644 --- a/packages/next-swc/crates/next-core/src/next_import_map.rs +++ b/packages/next-swc/crates/next-core/src/next_import_map.rs @@ -1,10 +1,8 @@ use std::collections::{BTreeMap, HashMap}; use anyhow::{Context, Result}; -use turbo_tasks::Value; -use turbo_tasks_fs::{glob::GlobVc, FileSystem, FileSystemPathVc}; -use turbopack::{resolve_options, resolve_options_context::ResolveOptionsContext}; -use turbopack_core::{ +use turbo_binding::turbo::tasks_fs::{glob::GlobVc, FileSystem, FileSystemPathVc}; +use turbo_binding::turbopack::core::{ asset::Asset, resolve::{ options::{ @@ -16,7 +14,11 @@ use turbopack_core::{ resolve, AliasPattern, ExportsValue, ResolveAliasMapVc, }, }; -use turbopack_node::execution_context::ExecutionContextVc; +use turbo_binding::turbopack::node::execution_context::ExecutionContextVc; +use turbo_binding::turbopack::turbopack::{ + resolve_options, resolve_options_context::ResolveOptionsContext, +}; +use turbo_tasks::Value; use crate::{ embed_js::{next_js_fs, VIRTUAL_PACKAGE_NAME}, diff --git a/packages/next-swc/crates/next-core/src/next_route_matcher/all.rs b/packages/next-swc/crates/next-core/src/next_route_matcher/all.rs index 232f47713b..5238b79e4b 100644 --- a/packages/next-swc/crates/next-core/src/next_route_matcher/all.rs +++ b/packages/next-swc/crates/next-core/src/next_route_matcher/all.rs @@ -1,6 +1,6 @@ use serde::{Deserialize, Serialize}; -use turbo_tasks::primitives::BoolVc; -use turbopack_node::route_matcher::{ParamsVc, RouteMatcher}; +use turbo_binding::turbo::tasks::primitives::BoolVc; +use turbo_binding::turbopack::node::route_matcher::{ParamsVc, RouteMatcher}; #[derive(Debug, Serialize, Deserialize, Eq, PartialEq)] pub struct AllMatch; diff --git a/packages/next-swc/crates/next-core/src/next_route_matcher/mod.rs b/packages/next-swc/crates/next-core/src/next_route_matcher/mod.rs index 2a141d5c9a..a8ee1ac851 100644 --- a/packages/next-swc/crates/next-core/src/next_route_matcher/mod.rs +++ b/packages/next-swc/crates/next-core/src/next_route_matcher/mod.rs @@ -1,6 +1,6 @@ use anyhow::{bail, Result}; +use turbo_binding::turbopack::node::route_matcher::{ParamsVc, RouteMatcher, RouteMatcherVc}; use turbo_tasks::primitives::{BoolVc, StringVc}; -use turbopack_node::route_matcher::{ParamsVc, RouteMatcher, RouteMatcherVc}; use self::{ all::AllMatch, diff --git a/packages/next-swc/crates/next-core/src/next_route_matcher/path_regex.rs b/packages/next-swc/crates/next-core/src/next_route_matcher/path_regex.rs index 688de9a42b..88d38c05ed 100644 --- a/packages/next-swc/crates/next-core/src/next_route_matcher/path_regex.rs +++ b/packages/next-swc/crates/next-core/src/next_route_matcher/path_regex.rs @@ -1,7 +1,7 @@ use anyhow::{Context, Result}; use serde::{Deserialize, Serialize}; +use turbo_binding::turbopack::node::route_matcher::{Param, ParamsVc, RouteMatcher}; use turbo_tasks::primitives::{BoolVc, Regex}; -use turbopack_node::route_matcher::{Param, ParamsVc, RouteMatcher}; /// A regular expression that matches a path, with named capture groups for the /// dynamic parts of the path. diff --git a/packages/next-swc/crates/next-core/src/next_route_matcher/prefix_suffix.rs b/packages/next-swc/crates/next-core/src/next_route_matcher/prefix_suffix.rs index 980d7164cf..7d50eab579 100644 --- a/packages/next-swc/crates/next-core/src/next_route_matcher/prefix_suffix.rs +++ b/packages/next-swc/crates/next-core/src/next_route_matcher/prefix_suffix.rs @@ -1,6 +1,6 @@ use serde::{Deserialize, Serialize}; +use turbo_binding::turbopack::node::route_matcher::{ParamsVc, RouteMatcher}; use turbo_tasks::primitives::BoolVc; -use turbopack_node::route_matcher::{ParamsVc, RouteMatcher}; /// A composite route matcher that matches a path if it has a given prefix and /// suffix. diff --git a/packages/next-swc/crates/next-core/src/next_server/context.rs b/packages/next-swc/crates/next-core/src/next_server/context.rs index bfc74bc8f7..9ba220e40c 100644 --- a/packages/next-swc/crates/next-core/src/next_server/context.rs +++ b/packages/next-swc/crates/next-core/src/next_server/context.rs @@ -1,15 +1,7 @@ use anyhow::Result; -use turbo_tasks::{primitives::StringVc, Value}; -use turbo_tasks_env::ProcessEnvVc; -use turbo_tasks_fs::FileSystemPathVc; -use turbopack::{ - module_options::{ - JsxTransformOptions, JsxTransformOptionsVc, ModuleOptionsContext, ModuleOptionsContextVc, - PostCssTransformOptions, WebpackLoadersOptions, - }, - resolve_options_context::{ResolveOptionsContext, ResolveOptionsContextVc}, -}; -use turbopack_core::{ +use turbo_binding::turbo::tasks_env::ProcessEnvVc; +use turbo_binding::turbo::tasks_fs::FileSystemPathVc; +use turbo_binding::turbopack::core::{ compile_time_defines, compile_time_info::{CompileTimeDefinesVc, CompileTimeInfo, CompileTimeInfoVc}, environment::{ @@ -17,8 +9,16 @@ use turbopack_core::{ ServerAddrVc, }, }; -use turbopack_ecmascript::EcmascriptInputTransform; -use turbopack_node::execution_context::ExecutionContextVc; +use turbo_binding::turbopack::ecmascript::EcmascriptInputTransform; +use turbo_binding::turbopack::node::execution_context::ExecutionContextVc; +use turbo_binding::turbopack::turbopack::{ + module_options::{ + JsxTransformOptions, JsxTransformOptionsVc, ModuleOptionsContext, ModuleOptionsContextVc, + PostCssTransformOptions, WebpackLoadersOptions, + }, + resolve_options_context::{ResolveOptionsContext, ResolveOptionsContextVc}, +}; +use turbo_tasks::{primitives::StringVc, Value}; use super::{ resolve::ExternalCjsModulesResolvePluginVc, transforms::get_next_server_transforms_rules, diff --git a/packages/next-swc/crates/next-core/src/next_server/resolve.rs b/packages/next-swc/crates/next-core/src/next_server/resolve.rs index 86161c5e64..3165d5cbe5 100644 --- a/packages/next-swc/crates/next-core/src/next_server/resolve.rs +++ b/packages/next-swc/crates/next-core/src/next_server/resolve.rs @@ -1,9 +1,8 @@ use anyhow::Result; use once_cell::sync::Lazy; use regex::Regex; -use turbo_tasks::primitives::{BoolVc, StringsVc}; -use turbo_tasks_fs::{glob::GlobVc, FileJsonContent, FileSystemPathVc}; -use turbopack_core::{ +use turbo_binding::turbo::tasks_fs::{glob::GlobVc, FileJsonContent, FileSystemPathVc}; +use turbo_binding::turbopack::core::{ asset::Asset, resolve::{ find_context_file, @@ -14,6 +13,7 @@ use turbopack_core::{ resolve, FindContextFileResult, PrimaryResolveResult, ResolveResult, ResolveResultOptionVc, }, }; +use turbo_tasks::primitives::{BoolVc, StringsVc}; #[turbo_tasks::value] pub(crate) struct ExternalCjsModulesResolvePlugin { diff --git a/packages/next-swc/crates/next-core/src/next_server/transforms.rs b/packages/next-swc/crates/next-core/src/next_server/transforms.rs index 8a37a4028d..b9c270a3d0 100644 --- a/packages/next-swc/crates/next-core/src/next_server/transforms.rs +++ b/packages/next-swc/crates/next-core/src/next_server/transforms.rs @@ -1,6 +1,6 @@ use anyhow::Result; use next_transform_strip_page_exports::ExportFilter; -use turbopack::module_options::ModuleRule; +use turbo_binding::turbopack::turbopack::module_options::ModuleRule; use crate::{ next_server::context::ServerContextType, diff --git a/packages/next-swc/crates/next-core/src/next_shared/transforms.rs b/packages/next-swc/crates/next-core/src/next_shared/transforms.rs index d171a2b998..7041273b88 100644 --- a/packages/next-swc/crates/next-core/src/next_shared/transforms.rs +++ b/packages/next-swc/crates/next-core/src/next_shared/transforms.rs @@ -11,13 +11,15 @@ use swc_core::{ visit::{FoldWith, VisitMutWith}, }, }; -use turbo_tasks_fs::FileSystemPathVc; -use turbopack::module_options::{ModuleRule, ModuleRuleCondition, ModuleRuleEffect}; -use turbopack_core::reference_type::{ReferenceType, UrlReferenceSubType}; -use turbopack_ecmascript::{ +use turbo_binding::turbo::tasks_fs::FileSystemPathVc; +use turbo_binding::turbopack::core::reference_type::{ReferenceType, UrlReferenceSubType}; +use turbo_binding::turbopack::ecmascript::{ CustomTransformVc, CustomTransformer, EcmascriptInputTransform, EcmascriptInputTransformsVc, TransformContext, }; +use turbo_binding::turbopack::turbopack::module_options::{ + ModuleRule, ModuleRuleCondition, ModuleRuleEffect, +}; /// Returns a rule which applies the Next.js page export stripping transform. pub async fn get_next_pages_transforms_rule( diff --git a/packages/next-swc/crates/next-core/src/page_loader.rs b/packages/next-swc/crates/next-core/src/page_loader.rs index 7d3fad19ab..cd366b8f7f 100644 --- a/packages/next-swc/crates/next-core/src/page_loader.rs +++ b/packages/next-swc/crates/next-core/src/page_loader.rs @@ -2,9 +2,8 @@ use std::io::Write; use anyhow::{bail, Result}; use indexmap::indexmap; -use turbo_tasks::{primitives::StringVc, TryJoinIterExt, Value}; -use turbo_tasks_fs::{rope::RopeBuilder, File, FileContent, FileSystemPathVc}; -use turbopack_core::{ +use turbo_binding::turbo::tasks_fs::{rope::RopeBuilder, File, FileContent, FileSystemPathVc}; +use turbo_binding::turbopack::core::{ asset::{Asset, AssetContentVc, AssetVc}, chunk::{Chunk, ChunkGroupVc, ChunkReferenceVc, ChunkingContextVc, ChunksVc}, context::{AssetContext, AssetContextVc}, @@ -13,11 +12,14 @@ use turbopack_core::{ reference_type::{EntryReferenceSubType, ReferenceType}, virtual_asset::VirtualAssetVc, }; -use turbopack_dev_server::source::{asset_graph::AssetGraphContentSourceVc, ContentSourceVc}; -use turbopack_ecmascript::{ +use turbo_binding::turbopack::dev_server::source::{ + asset_graph::AssetGraphContentSourceVc, ContentSourceVc, +}; +use turbo_binding::turbopack::ecmascript::{ utils::StringifyJs, EcmascriptInputTransform, EcmascriptInputTransformsVc, EcmascriptModuleAssetType, EcmascriptModuleAssetVc, InnerAssetsVc, }; +use turbo_tasks::{primitives::StringVc, TryJoinIterExt, Value}; use crate::{embed_js::next_js_file_path, util::get_asset_path_from_route}; diff --git a/packages/next-swc/crates/next-core/src/page_source.rs b/packages/next-swc/crates/next-core/src/page_source.rs index 4c5a5cd451..edc791aa04 100644 --- a/packages/next-swc/crates/next-core/src/page_source.rs +++ b/packages/next-swc/crates/next-core/src/page_source.rs @@ -1,15 +1,9 @@ use anyhow::Result; use indexmap::indexmap; use serde::{Deserialize, Serialize}; -use turbo_tasks::{ - primitives::{OptionStringVc, StringVc, StringsVc}, - trace::TraceRawVcs, - Value, -}; -use turbo_tasks_env::{CustomProcessEnvVc, EnvMapVc, ProcessEnvVc}; -use turbo_tasks_fs::{FileContent, FileSystemPathVc}; -use turbopack::{transition::TransitionsByNameVc, ModuleAssetContextVc}; -use turbopack_core::{ +use turbo_binding::turbo::tasks_env::{CustomProcessEnvVc, EnvMapVc, ProcessEnvVc}; +use turbo_binding::turbo::tasks_fs::{FileContent, FileSystemPathVc}; +use turbo_binding::turbopack::core::{ asset::AssetVc, chunk::ChunkingContextVc, context::{AssetContext, AssetContextVc}, @@ -17,8 +11,8 @@ use turbopack_core::{ reference_type::{EntryReferenceSubType, ReferenceType}, source_asset::SourceAssetVc, }; -use turbopack_dev::DevChunkingContextVc; -use turbopack_dev_server::{ +use turbo_binding::turbopack::dev::DevChunkingContextVc; +use turbo_binding::turbopack::dev_server::{ html::DevHtmlAssetVc, source::{ asset_graph::AssetGraphContentSourceVc, @@ -27,12 +21,12 @@ use turbopack_dev_server::{ ContentSourceData, ContentSourceVc, NoContentSourceVc, }, }; -use turbopack_ecmascript::{ +use turbo_binding::turbopack::ecmascript::{ chunk::EcmascriptChunkPlaceablesVc, EcmascriptInputTransform, EcmascriptInputTransformsVc, EcmascriptModuleAssetType, EcmascriptModuleAssetVc, InnerAssetsVc, }; -use turbopack_env::ProcessEnvAssetVc; -use turbopack_node::{ +use turbo_binding::turbopack::env::ProcessEnvAssetVc; +use turbo_binding::turbopack::node::{ execution_context::ExecutionContextVc, render::{ node_api_source::create_node_api_source, rendered_source::create_node_rendered_source, @@ -40,6 +34,12 @@ use turbopack_node::{ route_matcher::RouteMatcherVc, NodeEntry, NodeEntryVc, NodeRenderingEntry, NodeRenderingEntryVc, }; +use turbo_binding::turbopack::turbopack::{transition::TransitionsByNameVc, ModuleAssetContextVc}; +use turbo_tasks::{ + primitives::{OptionStringVc, StringVc, StringsVc}, + trace::TraceRawVcs, + Value, +}; use crate::{ embed_js::{next_asset, next_js_file}, diff --git a/packages/next-swc/crates/next-core/src/pages_structure.rs b/packages/next-swc/crates/next-core/src/pages_structure.rs index 7a571929aa..be070acf7e 100644 --- a/packages/next-swc/crates/next-core/src/pages_structure.rs +++ b/packages/next-swc/crates/next-core/src/pages_structure.rs @@ -1,10 +1,12 @@ use anyhow::Result; +use turbo_binding::turbo::tasks_fs::{ + DirectoryContent, DirectoryEntry, FileSystemEntryType, FileSystemPathVc, +}; +use turbo_binding::turbopack::dev_server::source::specificity::SpecificityVc; use turbo_tasks::{ primitives::{BoolVc, StringsVc}, CompletionVc, }; -use turbo_tasks_fs::{DirectoryContent, DirectoryEntry, FileSystemEntryType, FileSystemPathVc}; -use turbopack_dev_server::source::specificity::SpecificityVc; use crate::next_config::NextConfigVc; diff --git a/packages/next-swc/crates/next-core/src/react_refresh.rs b/packages/next-swc/crates/next-core/src/react_refresh.rs index 618ec6f53e..3a86ef8343 100644 --- a/packages/next-swc/crates/next-core/src/react_refresh.rs +++ b/packages/next-swc/crates/next-core/src/react_refresh.rs @@ -1,17 +1,17 @@ use anyhow::{anyhow, Result}; -use turbo_tasks::{debug::ValueDebug, primitives::StringVc}; -use turbo_tasks_fs::FileSystemPathVc; -use turbopack::{ +use turbo_binding::turbo::tasks_fs::FileSystemPathVc; +use turbo_binding::turbopack::core::{ + issue::{Issue, IssueSeverity, IssueSeverityVc, IssueVc}, + resolve::{origin::ResolveOriginVc, parse::RequestVc}, +}; +use turbo_binding::turbopack::turbopack::{ ecmascript::{ chunk::EcmascriptChunkPlaceableVc, resolve::{apply_cjs_specific_options, cjs_resolve}, }, resolve_options_context::ResolveOptionsContextVc, }; -use turbopack_core::{ - issue::{Issue, IssueSeverity, IssueSeverityVc, IssueVc}, - resolve::{origin::ResolveOriginVc, parse::RequestVc}, -}; +use turbo_tasks::{debug::ValueDebug, primitives::StringVc}; #[turbo_tasks::function] fn react_refresh_request() -> RequestVc { @@ -54,10 +54,13 @@ pub async fn assert_can_resolve_react_refresh( path: FileSystemPathVc, resolve_options_context: ResolveOptionsContextVc, ) -> Result { - let resolve_options = - apply_cjs_specific_options(turbopack::resolve_options(path, resolve_options_context)); + let resolve_options = apply_cjs_specific_options( + turbo_binding::turbopack::turbopack::resolve_options(path, resolve_options_context), + ); for request in [react_refresh_request_in_next(), react_refresh_request()] { - let result = turbopack_core::resolve::resolve(path, request, resolve_options).first_asset(); + let result = + turbo_binding::turbopack::core::resolve::resolve(path, request, resolve_options) + .first_asset(); if result.await?.is_some() { return Ok(AssertReactRefreshResult::Found(request).cell()); diff --git a/packages/next-swc/crates/next-core/src/router.rs b/packages/next-swc/crates/next-core/src/router.rs index ab6d93fbdb..38c425cee6 100644 --- a/packages/next-swc/crates/next-core/src/router.rs +++ b/packages/next-swc/crates/next-core/src/router.rs @@ -3,15 +3,9 @@ use futures::StreamExt; use indexmap::indexmap; use serde::Deserialize; use serde_json::json; -use turbo_tasks::{ - primitives::{JsonValueVc, StringsVc}, - util::SharedError, - CompletionVc, CompletionsVc, Value, -}; -use turbo_tasks_bytes::{Bytes, Stream}; -use turbo_tasks_fs::{json::parse_json_with_source_context, to_sys_path, File, FileSystemPathVc}; -use turbopack::{evaluate_context::node_evaluate_asset_context, transition::TransitionsByNameVc}; -use turbopack_core::{ +use turbo_binding::turbo::tasks_bytes::{Bytes, Stream}; +use turbo_binding::turbo::tasks_fs::{to_sys_path, File, FileSystemPathVc}; +use turbo_binding::turbopack::core::{ asset::AssetVc, changed::any_content_changed, chunk::ChunkingContext, @@ -24,16 +18,25 @@ use turbopack_core::{ source_asset::SourceAssetVc, virtual_asset::VirtualAssetVc, }; -use turbopack_dev::DevChunkingContextVc; -use turbopack_ecmascript::{ +use turbo_binding::turbopack::dev::DevChunkingContextVc; +use turbo_binding::turbopack::ecmascript::{ EcmascriptInputTransform, EcmascriptInputTransformsVc, EcmascriptModuleAssetType, EcmascriptModuleAssetVc, InnerAssetsVc, OptionEcmascriptModuleAssetVc, }; -use turbopack_node::{ +use turbo_binding::turbopack::node::{ evaluate::evaluate, execution_context::{ExecutionContext, ExecutionContextVc}, source_map::StructuredError, }; +use turbo_binding::turbopack::turbopack::{ + evaluate_context::node_evaluate_asset_context, transition::TransitionsByNameVc, +}; +use turbo_tasks::{ + primitives::{JsonValueVc, StringsVc}, + util::SharedError, + CompletionVc, CompletionsVc, Value, +}; +use turbo_tasks_fs::json::parse_json_with_source_context; use crate::{ embed_js::{next_asset, next_js_file}, diff --git a/packages/next-swc/crates/next-core/src/router_source.rs b/packages/next-swc/crates/next-core/src/router_source.rs index c07271d9a8..2ff54324e1 100644 --- a/packages/next-swc/crates/next-core/src/router_source.rs +++ b/packages/next-swc/crates/next-core/src/router_source.rs @@ -1,16 +1,16 @@ use anyhow::{anyhow, bail, Context, Result}; use futures::stream::StreamExt; use indexmap::IndexSet; -use turbo_tasks::{primitives::StringVc, CompletionVc, CompletionsVc, Value}; -use turbopack_core::{ +use turbo_binding::turbopack::core::{ environment::ServerAddrVc, introspect::{Introspectable, IntrospectableChildrenVc, IntrospectableVc}, }; -use turbopack_dev_server::source::{ +use turbo_binding::turbopack::dev_server::source::{ Body, BodyError, ContentSource, ContentSourceContent, ContentSourceData, ContentSourceDataVary, ContentSourceResultVc, ContentSourceVc, HeaderListVc, NeededData, ProxyResult, RewriteBuilder, }; -use turbopack_node::execution_context::ExecutionContextVc; +use turbo_binding::turbopack::node::execution_context::ExecutionContextVc; +use turbo_tasks::{primitives::StringVc, CompletionVc, CompletionsVc, Value}; use crate::{ app_structure::OptionAppStructureVc, diff --git a/packages/next-swc/crates/next-core/src/runtime.rs b/packages/next-swc/crates/next-core/src/runtime.rs index 67181ca203..24472050e6 100644 --- a/packages/next-swc/crates/next-core/src/runtime.rs +++ b/packages/next-swc/crates/next-core/src/runtime.rs @@ -1,6 +1,8 @@ use anyhow::{bail, Result}; -use turbopack::ecmascript::{chunk::EcmascriptChunkPlaceableVc, resolve::cjs_resolve}; -use turbopack_core::resolve::{origin::ResolveOriginVc, parse::RequestVc}; +use turbo_binding::turbopack::core::resolve::{origin::ResolveOriginVc, parse::RequestVc}; +use turbo_binding::turbopack::turbopack::ecmascript::{ + chunk::EcmascriptChunkPlaceableVc, resolve::cjs_resolve, +}; /// Resolves the turbopack runtime module from the given [AssetContextVc]. #[turbo_tasks::function] diff --git a/packages/next-swc/crates/next-core/src/typescript.rs b/packages/next-swc/crates/next-core/src/typescript.rs index e9d3ad8961..2a89966f65 100644 --- a/packages/next-swc/crates/next-core/src/typescript.rs +++ b/packages/next-swc/crates/next-core/src/typescript.rs @@ -1,11 +1,15 @@ use anyhow::Result; -use turbo_tasks_fs::FileSystemPathVc; -use turbopack::module_options::{TypescriptTransformOptions, TypescriptTransformOptionsVc}; -use turbopack_core::{ +use turbo_binding::turbo::tasks_fs::FileSystemPathVc; +use turbo_binding::turbopack::core::{ resolve::{find_context_file, node::node_cjs_resolve_options, FindContextFileResult}, source_asset::SourceAssetVc, }; -use turbopack_ecmascript::typescript::resolve::{read_from_tsconfigs, read_tsconfigs, tsconfig}; +use turbo_binding::turbopack::ecmascript::typescript::resolve::{ + read_from_tsconfigs, read_tsconfigs, tsconfig, +}; +use turbo_binding::turbopack::turbopack::module_options::{ + TypescriptTransformOptions, TypescriptTransformOptionsVc, +}; // Get the transform options for specifically for the typescript's runtime // outputs diff --git a/packages/next-swc/crates/next-core/src/util.rs b/packages/next-swc/crates/next-core/src/util.rs index 30dc35ebef..ff2c9a2ffe 100644 --- a/packages/next-swc/crates/next-core/src/util.rs +++ b/packages/next-swc/crates/next-core/src/util.rs @@ -1,10 +1,10 @@ use anyhow::{anyhow, bail, Context, Result}; use serde::{de::DeserializeOwned, Deserialize, Serialize}; use swc_core::ecma::ast::Program; -use turbo_tasks::{primitives::StringVc, trace::TraceRawVcs, Value, ValueToString}; -use turbo_tasks_fs::{json::parse_json_rope_with_source_context, FileContent, FileSystemPathVc}; -use turbopack::condition::ContextCondition; -use turbopack_core::{ +use turbo_binding::turbo::tasks_fs::{ + json::parse_json_rope_with_source_context, FileContent, FileSystemPathVc, +}; +use turbo_binding::turbopack::core::{ asset::{Asset, AssetVc}, ident::AssetIdentVc, issue::{Issue, IssueSeverity, IssueSeverityVc, IssueVc}, @@ -14,11 +14,13 @@ use turbopack_core::{ pattern::QueryMapVc, PrimaryResolveResult, }, }; -use turbopack_ecmascript::{ +use turbo_binding::turbopack::ecmascript::{ analyzer::{JsValue, ObjectPart}, parse::ParseResult, EcmascriptModuleAssetVc, }; +use turbo_binding::turbopack::turbopack::condition::ContextCondition; +use turbo_tasks::{primitives::StringVc, trace::TraceRawVcs, Value, ValueToString}; use crate::next_config::NextConfigVc; diff --git a/packages/next-swc/crates/next-core/src/web_entry_source.rs b/packages/next-swc/crates/next-core/src/web_entry_source.rs index fde8578ade..c3507c9847 100644 --- a/packages/next-swc/crates/next-core/src/web_entry_source.rs +++ b/packages/next-swc/crates/next-core/src/web_entry_source.rs @@ -1,18 +1,18 @@ use anyhow::{anyhow, Result}; -use turbo_tasks::{TryJoinIterExt, Value}; -use turbo_tasks_env::ProcessEnvVc; -use turbo_tasks_fs::FileSystemPathVc; -use turbopack::ecmascript::EcmascriptModuleAssetVc; -use turbopack_core::{ +use turbo_binding::turbo::tasks_env::ProcessEnvVc; +use turbo_binding::turbo::tasks_fs::FileSystemPathVc; +use turbo_binding::turbopack::core::{ chunk::{availability_info::AvailabilityInfo, ChunkGroupVc, ChunkableAsset, ChunkableAssetVc}, reference_type::{EntryReferenceSubType, ReferenceType}, resolve::{origin::PlainResolveOriginVc, parse::RequestVc}, }; -use turbopack_dev_server::{ +use turbo_binding::turbopack::dev_server::{ html::DevHtmlAssetVc, source::{asset_graph::AssetGraphContentSourceVc, ContentSourceVc}, }; -use turbopack_node::execution_context::ExecutionContextVc; +use turbo_binding::turbopack::node::execution_context::ExecutionContextVc; +use turbo_binding::turbopack::turbopack::ecmascript::EcmascriptModuleAssetVc; +use turbo_tasks::{TryJoinIterExt, Value}; use crate::{ next_client::context::{ diff --git a/packages/next-swc/crates/next-dev-tests/Cargo.toml b/packages/next-swc/crates/next-dev-tests/Cargo.toml index 904c938414..2f55521d8e 100644 --- a/packages/next-swc/crates/next-dev-tests/Cargo.toml +++ b/packages/next-swc/crates/next-dev-tests/Cargo.toml @@ -13,7 +13,7 @@ publish = false tokio_console = [ "dep:console-subscriber", "tokio/tracing", - "turbo-tasks/tokio_tracing", + "turbo-binding/__turbo_tasks_tokio_tracing", ] [dependencies] @@ -42,20 +42,24 @@ tokio = { workspace = true, features = ["full"] } # For matching on errors from chromiumoxide. Keep in # sync with chromiumoxide's tungstenite requirement. tungstenite = { workspace = true } -turbo-malloc = { workspace = true, default-features = false, features = [ - "custom_allocator", -] } +turbo-binding = { workspace = true, features = [ + "__turbo_malloc", + "__turbo_tasks_memory", + "__turbo_tasks", + "__turbo_tasks_fs", + "__turbo_tasks_testing", + "__turbopack_cli_utils", + "__turbopack_test_utils", + "__turbopack_core", + "__turbopack_core_issue_path", + "__turbopack_node", + "__turbopack_dev_server", +]} turbo-tasks = { workspace = true } -turbo-tasks-fs = { workspace = true } -turbo-tasks-memory = { workspace = true } -turbo-tasks-testing = { workspace = true } -turbopack-cli-utils = { workspace = true } -turbopack-core = { workspace = true, features = ["issue_path"] } -turbopack-dev-server = { workspace = true } -turbopack-node = { workspace = true } -turbopack-test-utils = { workspace = true } url = { workspace = true } webbrowser = { workspace = true } [build-dependencies] -turbo-tasks-build = { workspace = true } +turbo-binding = { workspace = true, features = [ + "__turbo_tasks_build" +]} diff --git a/packages/next-swc/crates/next-dev-tests/build.rs b/packages/next-swc/crates/next-dev-tests/build.rs index 1cfa867e95..3dc0548a15 100644 --- a/packages/next-swc/crates/next-dev-tests/build.rs +++ b/packages/next-swc/crates/next-dev-tests/build.rs @@ -1,4 +1,4 @@ -use turbo_tasks_build::{generate_register, rerun_if_glob}; +use turbo_binding::turbo::tasks_build::{generate_register, rerun_if_glob}; fn main() { generate_register(); diff --git a/packages/next-swc/crates/next-dev-tests/tests/integration.rs b/packages/next-swc/crates/next-dev-tests/tests/integration.rs index 970fc43f86..d86cdf5bcf 100644 --- a/packages/next-swc/crates/next-dev-tests/tests/integration.rs +++ b/packages/next-swc/crates/next-dev-tests/tests/integration.rs @@ -36,19 +36,19 @@ use tokio::{ task::JoinSet, }; use tungstenite::{error::ProtocolError::ResetWithoutClosingHandshake, Error::Protocol}; -use turbo_tasks::{ +use turbo_binding::turbo::tasks::{ debug::{ValueDebug, ValueDebugStringReadRef}, primitives::{BoolVc, StringVc}, NothingVc, RawVc, ReadRef, State, TransientInstance, TransientValue, TurboTasks, }; -use turbo_tasks_fs::{DiskFileSystemVc, FileSystem, FileSystemPathVc}; -use turbo_tasks_memory::MemoryBackend; -use turbo_tasks_testing::retry::retry_async; -use turbopack_core::issue::{ +use turbo_binding::turbo::tasks_fs::{DiskFileSystemVc, FileSystem, FileSystemPathVc}; +use turbo_binding::turbo::tasks_memory::MemoryBackend; +use turbo_binding::turbo::tasks_testing::retry::retry_async; +use turbo_binding::turbopack::core::issue::{ CapturedIssues, Issue, IssueReporter, IssueReporterVc, IssueSeverityVc, IssueVc, IssuesVc, OptionIssueSourceVc, PlainIssueReadRef, }; -use turbopack_test_utils::snapshot::snapshot_issues; +use turbo_binding::turbopack::test_utils::snapshot::snapshot_issues; fn register() { next_dev::register(); @@ -211,7 +211,7 @@ async fn run_test(resource: PathBuf) -> JestRunResult { .eager_compile(false) .hostname(requested_addr.ip()) .port(requested_addr.port()) - .log_level(turbopack_core::issue::IssueSeverity::Warning) + .log_level(turbo_binding::turbopack::core::issue::IssueSeverity::Warning) .log_detail(true) .issue_reporter(Box::new(move || { TestIssueReporterVc::new(issue_tx.clone()).into() diff --git a/packages/next-swc/crates/next-dev/Cargo.toml b/packages/next-swc/crates/next-dev/Cargo.toml index db9447b2cf..20ff4de9c6 100644 --- a/packages/next-swc/crates/next-dev/Cargo.toml +++ b/packages/next-swc/crates/next-dev/Cargo.toml @@ -33,7 +33,7 @@ tokio_console = [ "turbo-tasks/tokio_tracing", ] profile = [] -custom_allocator = ["turbo-malloc/custom_allocator"] +custom_allocator = ["turbo-binding/__turbo_malloc", "turbo-binding/__turbo_malloc_custom_allocator"] native-tls = ["next-core/native-tls"] rustls-tls = ["next-core/rustls-tls"] # Internal only. Enabled when building for the Next.js integration test suite. @@ -43,8 +43,8 @@ __internal_nextjs_integration_test = [ # enable "HMR" for embedded assets dynamic_embed_contents = [ "next-core/dynamic_embed_contents", - "turbopack-node/dynamic_embed_contents", - "turbopack-dev/dynamic_embed_contents", + "turbo-binding/__turbopack_node_dynamic_embed_contents", + "turbo-binding/__turbopack_dev_dynamic_embed_contents", ] [dependencies] @@ -58,16 +58,17 @@ next-core = { workspace = true } owo-colors = { workspace = true } serde = { workspace = true } tokio = { workspace = true, features = ["full"] } -turbo-malloc = { workspace = true, default-features = false } +turbo-binding = { workspace = true, features = [ + "__turbo_tasks_memory", + "__turbo_tasks_fs", + "__turbopack", + "__turbopack_dev", + "__turbopack_core", + "__turbopack_cli_utils", + "__turbopack_node", + "__turbopack_dev_server", +]} turbo-tasks = { workspace = true } -turbo-tasks-fs = { workspace = true } -turbo-tasks-memory = { workspace = true } -turbopack = { workspace = true } -turbopack-cli-utils = { workspace = true } -turbopack-core = { workspace = true } -turbopack-dev = { workspace = true } -turbopack-dev-server = { workspace = true } -turbopack-node = { workspace = true } webbrowser = { workspace = true } [dev-dependencies] @@ -83,15 +84,19 @@ regex = { workspace = true } serde_json = { workspace = true } tempfile = { workspace = true } tungstenite = { workspace = true } -turbo-tasks-testing = { workspace = true } -turbopack-create-test-app = { workspace = true } +turbo-binding = { workspace = true, features = [ + "__turbo_tasks_testing", + "__turbopack_create_test_app", +]} url = { workspace = true } [target.'cfg(unix)'.dev-dependencies] nix = "0.26.1" [build-dependencies] -turbo-tasks-build = { workspace = true } +turbo-binding = { workspace = true, features = [ + "__turbo_tasks_build" +]} vergen = { version = "7.3.2", default-features = false, features = [ "cargo", "build", diff --git a/packages/next-swc/crates/next-dev/benches/util/mod.rs b/packages/next-swc/crates/next-dev/benches/util/mod.rs index 16a95bf61c..9d84d993ea 100644 --- a/packages/next-swc/crates/next-dev/benches/util/mod.rs +++ b/packages/next-swc/crates/next-dev/benches/util/mod.rs @@ -17,11 +17,11 @@ use parking_lot::Mutex; pub use prepared_app::PreparedApp; use regex::Regex; use tungstenite::{error::ProtocolError::ResetWithoutClosingHandshake, Error::Protocol}; -use turbo_tasks::util::FormatDuration; -use turbo_tasks_testing::retry::{retry, retry_async}; -use turbopack_create_test_app::test_app_builder::{ +use turbo_binding::turbo::tasks_testing::retry::{retry, retry_async}; +use turbo_binding::turbopack::create_test_app::test_app_builder::{ EffectMode, PackageJsonConfig, TestApp, TestAppBuilder, }; +use turbo_tasks::util::FormatDuration; use self::env::read_env_bool; use crate::bundlers::{Bundler, RenderType}; diff --git a/packages/next-swc/crates/next-dev/build.rs b/packages/next-swc/crates/next-dev/build.rs index ae54961424..fe7deb8608 100644 --- a/packages/next-swc/crates/next-dev/build.rs +++ b/packages/next-swc/crates/next-dev/build.rs @@ -1,4 +1,4 @@ -use turbo_tasks_build::generate_register; +use turbo_binding::turbo::tasks_build::generate_register; use vergen::{vergen, Config}; fn main() { diff --git a/packages/next-swc/crates/next-dev/src/devserver_options.rs b/packages/next-swc/crates/next-dev/src/devserver_options.rs index 51b952076d..8ace2a8da9 100644 --- a/packages/next-swc/crates/next-dev/src/devserver_options.rs +++ b/packages/next-swc/crates/next-dev/src/devserver_options.rs @@ -2,7 +2,7 @@ use std::{net::IpAddr, path::PathBuf}; #[cfg(feature = "cli")] use clap::Parser; -use turbopack_cli_utils::issue::IssueSeverityCliOption; +use turbo_binding::turbopack::cli_utils::issue::IssueSeverityCliOption; #[derive(Debug)] #[cfg_attr(feature = "cli", derive(Parser))] diff --git a/packages/next-swc/crates/next-dev/src/lib.rs b/packages/next-swc/crates/next-dev/src/lib.rs index 0e596ce433..512ea853bc 100644 --- a/packages/next-swc/crates/next-dev/src/lib.rs +++ b/packages/next-swc/crates/next-dev/src/lib.rs @@ -27,24 +27,19 @@ use next_core::{ source_map::NextSourceMapTraceContentSourceVc, }; use owo_colors::OwoColorize; -use turbo_malloc::TurboMalloc; -use turbo_tasks::{ - util::{FormatBytes, FormatDuration}, - StatsType, TransientInstance, TurboTasks, TurboTasksBackendApi, Value, -}; -use turbo_tasks_fs::{DiskFileSystemVc, FileSystem, FileSystemVc}; -use turbo_tasks_memory::MemoryBackend; -use turbopack::evaluate_context::node_build_environment; -use turbopack_cli_utils::issue::{ConsoleUiVc, LogOptions}; -use turbopack_core::{ +use turbo_binding::turbo::malloc::TurboMalloc; +use turbo_binding::turbo::tasks_fs::{DiskFileSystemVc, FileSystem, FileSystemVc}; +use turbo_binding::turbo::tasks_memory::MemoryBackend; +use turbo_binding::turbopack::cli_utils::issue::{ConsoleUiVc, LogOptions}; +use turbo_binding::turbopack::core::{ environment::ServerAddr, issue::{IssueReporterVc, IssueSeverity}, resolve::{parse::RequestVc, pattern::QueryMapVc}, server_fs::ServerFileSystemVc, PROJECT_FILESYSTEM_NAME, }; -use turbopack_dev::DevChunkingContextVc; -use turbopack_dev_server::{ +use turbo_binding::turbopack::dev::DevChunkingContextVc; +use turbo_binding::turbopack::dev_server::{ introspect::IntrospectionSource, source::{ combined::CombinedContentSourceVc, router::RouterContentSource, @@ -53,7 +48,12 @@ use turbopack_dev_server::{ }, DevServer, DevServerBuilder, }; -use turbopack_node::execution_context::ExecutionContextVc; +use turbo_binding::turbopack::node::execution_context::ExecutionContextVc; +use turbo_binding::turbopack::turbopack::evaluate_context::node_build_environment; +use turbo_tasks::{ + util::{FormatBytes, FormatDuration}, + StatsType, TransientInstance, TurboTasks, TurboTasksBackendApi, Value, +}; #[derive(Clone)] pub enum EntryRequest { diff --git a/packages/next-swc/crates/next-dev/src/main.rs b/packages/next-swc/crates/next-dev/src/main.rs index cad47aa7bd..942c08462e 100644 --- a/packages/next-swc/crates/next-dev/src/main.rs +++ b/packages/next-swc/crates/next-dev/src/main.rs @@ -6,7 +6,7 @@ use anyhow::Result; use clap::Parser; #[global_allocator] -static ALLOC: turbo_malloc::TurboMalloc = turbo_malloc::TurboMalloc; +static ALLOC: turbo_binding::turbo::malloc::TurboMalloc = turbo_binding::turbo::malloc::TurboMalloc; #[cfg(not(feature = "cli"))] fn main() -> Result<()> { @@ -15,7 +15,7 @@ fn main() -> Result<()> { #[cfg(feature = "cli")] fn main() { - use turbo_malloc::TurboMalloc; + use turbo_binding::turbo::malloc::TurboMalloc; tokio::runtime::Builder::new_multi_thread() .enable_all() diff --git a/packages/next-swc/crates/next-dev/src/turbo_tasks_viz.rs b/packages/next-swc/crates/next-dev/src/turbo_tasks_viz.rs index 81b1ab09eb..cb5fecd2a9 100644 --- a/packages/next-swc/crates/next-dev/src/turbo_tasks_viz.rs +++ b/packages/next-swc/crates/next-dev/src/turbo_tasks_viz.rs @@ -2,17 +2,17 @@ use std::{sync::Arc, time::Duration}; use anyhow::Result; use mime::TEXT_HTML_UTF_8; -use turbo_tasks::{get_invalidator, TurboTasks, TurboTasksBackendApi, Value}; -use turbo_tasks_fs::File; -use turbo_tasks_memory::{ +use turbo_binding::turbo::tasks_fs::File; +use turbo_binding::turbo::tasks_memory::{ stats::{ReferenceType, Stats}, viz, MemoryBackend, }; -use turbopack_core::asset::AssetContentVc; -use turbopack_dev_server::source::{ +use turbo_binding::turbopack::core::asset::AssetContentVc; +use turbo_binding::turbopack::dev_server::source::{ ContentSource, ContentSourceContentVc, ContentSourceData, ContentSourceDataFilter, ContentSourceDataVary, ContentSourceResultVc, ContentSourceVc, NeededData, }; +use turbo_tasks::{get_invalidator, TurboTasks, TurboTasksBackendApi, Value}; #[turbo_tasks::value(serialization = "none", eq = "manual", cell = "new", into = "new")] pub struct TurboTasksSource { diff --git a/packages/next-swc/crates/wasm/Cargo.toml b/packages/next-swc/crates/wasm/Cargo.toml index a178827040..353ead7d3c 100644 --- a/packages/next-swc/crates/wasm/Cargo.toml +++ b/packages/next-swc/crates/wasm/Cargo.toml @@ -11,7 +11,7 @@ crate-type = ["cdylib"] default = ["swc_v1"] swc_v1 = [] -plugin = ["getrandom/js", "next-binding/__swc_core_binding_wasm_plugin"] +plugin = ["getrandom/js", "turbo-binding/__swc_core_binding_wasm_plugin"] [dependencies] anyhow = "1.0.66" @@ -31,7 +31,7 @@ wasm-bindgen-futures = "0.4.8" getrandom = { version = "0.2.5", optional = true, default-features = false } js-sys = "0.3.59" serde-wasm-bindgen = "0.4.3" -next-binding = { path = "../next-binding", features = [ +turbo-binding = { workspace = true, features = [ "__swc_core_binding_wasm", "__feature_mdx_rs", ] } diff --git a/packages/next-swc/crates/wasm/src/lib.rs b/packages/next-swc/crates/wasm/src/lib.rs index 5ebef8613c..b6336a5f1c 100644 --- a/packages/next-swc/crates/wasm/src/lib.rs +++ b/packages/next-swc/crates/wasm/src/lib.rs @@ -5,7 +5,7 @@ use std::sync::Arc; use wasm_bindgen::{prelude::*, JsCast}; use wasm_bindgen_futures::future_to_promise; -use next_binding::swc::core::{ +use turbo_binding::swc::core::{ base::{config::JsMinifyOptions, config::ParseOptions, try_with_handler, Compiler}, common::{ comments::{Comments, SingleThreadedComments}, @@ -31,7 +31,7 @@ pub fn minify_sync(s: JsString, opts: JsValue) -> Result { let value = try_with_handler( c.cm.clone(), - next_binding::swc::core::base::HandlerOpts { + turbo_binding::swc::core::base::HandlerOpts { color: ColorConfig::Never, skip_filename: false, }, @@ -68,7 +68,7 @@ pub fn transform_sync(s: JsValue, opts: JsValue) -> Result { let s = s.dyn_into::(); let out = try_with_handler( c.cm.clone(), - next_binding::swc::core::base::HandlerOpts { + turbo_binding::swc::core::base::HandlerOpts { color: ColorConfig::Never, skip_filename: false, }, @@ -133,14 +133,14 @@ pub fn transform(s: JsValue, opts: JsValue) -> js_sys::Promise { pub fn parse_sync(s: JsString, opts: JsValue) -> Result { console_error_panic_hook::set_once(); - let c = next_binding::swc::core::base::Compiler::new(Arc::new(SourceMap::new( + let c = turbo_binding::swc::core::base::Compiler::new(Arc::new(SourceMap::new( FilePathMapping::empty(), ))); let opts: ParseOptions = serde_wasm_bindgen::from_value(opts)?; try_with_handler( c.cm.clone(), - next_binding::swc::core::base::HandlerOpts { + turbo_binding::swc::core::base::HandlerOpts { ..Default::default() }, |handler| { diff --git a/packages/next-swc/crates/wasm/src/mdx.rs b/packages/next-swc/crates/wasm/src/mdx.rs index 616d72417e..6fd2cb0d4a 100644 --- a/packages/next-swc/crates/wasm/src/mdx.rs +++ b/packages/next-swc/crates/wasm/src/mdx.rs @@ -1,5 +1,5 @@ use js_sys::JsString; -use next_binding::features::mdxjs::{compile, Options}; +use turbo_binding::features::mdxjs::{compile, Options}; use wasm_bindgen::prelude::*; use wasm_bindgen_futures::future_to_promise; diff --git a/packages/next/src/build/swc/index.ts b/packages/next/src/build/swc/index.ts index b4c230013b..9bf87972b5 100644 --- a/packages/next/src/build/swc/index.ts +++ b/packages/next/src/build/swc/index.ts @@ -100,7 +100,10 @@ export async function loadBindings(): Promise { ) if (shouldLoadWasmFallbackFirst) { - const fallbackBindings = await tryLoadWasmWithFallback(attempts) + const fallbackBindings = await tryLoadWasmWithFallback( + attempts, + isCustomTurbopack + ) if (fallbackBindings) { return resolve(fallbackBindings) } @@ -114,7 +117,10 @@ export async function loadBindings(): Promise { // For these platforms we already tried to load wasm and failed, skip reattempt if (!shouldLoadWasmFallbackFirst) { - const fallbackBindings = await tryLoadWasmWithFallback(attempts) + const fallbackBindings = await tryLoadWasmWithFallback( + attempts, + isCustomTurbopack + ) if (fallbackBindings) { return resolve(fallbackBindings) } @@ -125,9 +131,12 @@ export async function loadBindings(): Promise { return pendingBindings } -async function tryLoadWasmWithFallback(attempts: any) { +async function tryLoadWasmWithFallback( + attempts: any, + isCustomTurbopack: boolean +) { try { - let bindings = await loadWasm() + let bindings = await loadWasm('', isCustomTurbopack) // @ts-expect-error TODO: this event has a wrong type. eventSwcLoadFailure({ wasm: 'enabled' }) return bindings @@ -148,7 +157,10 @@ async function tryLoadWasmWithFallback(attempts: any) { downloadWasmPromise = downloadWasmSwc(nextVersion, wasmDirectory) } await downloadWasmPromise - let bindings = await loadWasm(pathToFileURL(wasmDirectory).href) + let bindings = await loadWasm( + pathToFileURL(wasmDirectory).href, + isCustomTurbopack + ) // @ts-expect-error TODO: this event has a wrong type. eventSwcLoadFailure({ wasm: 'fallback' }) @@ -202,7 +214,7 @@ function logLoadFailure(attempts: any, triedWasm = false) { }) } -async function loadWasm(importPath = '') { +async function loadWasm(importPath = '', isCustomTurbopack: boolean) { if (wasmBindings) { return wasmBindings } @@ -256,8 +268,26 @@ async function loadWasm(importPath = '') { return undefined }, turbo: { - startDev: () => { - Log.error('Wasm binding does not support --turbo yet') + startDev: (options: any) => { + if (!isCustomTurbopack) { + Log.error('Wasm binding does not support --turbo yet') + return + } else if (!!__INTERNAL_CUSTOM_TURBOPACK_BINDINGS) { + Log.warn( + 'Trying to load custom turbopack bindings. Note this is internal testing purpose only, actual wasm fallback cannot load this bindings' + ) + Log.warn( + `Loading custom turbopack bindings from ${__INTERNAL_CUSTOM_TURBOPACK_BINDINGS}` + ) + + const devOptions = { + ...options, + noOpen: options.noOpen ?? true, + } + require(__INTERNAL_CUSTOM_TURBOPACK_BINDINGS).startTurboDev( + toBuffer(devOptions) + ) + } }, startTrace: () => { Log.error('Wasm binding does not support trace yet') @@ -464,11 +494,13 @@ function loadNative(isCustomTurbopack = false) { }) } else if (!!__INTERNAL_CUSTOM_TURBOPACK_BINDINGS) { console.warn( - `Loading custom turbopack bindings from ${__INTERNAL_CUSTOM_TURBOPACK_BINARY}` + `Loading custom turbopack bindings from ${__INTERNAL_CUSTOM_TURBOPACK_BINDINGS}` ) console.warn(`Running turbopack with args: `, devOptions) - require(__INTERNAL_CUSTOM_TURBOPACK_BINDINGS).startDev(devOptions) + require(__INTERNAL_CUSTOM_TURBOPACK_BINDINGS).startTurboDev( + toBuffer(devOptions) + ) } }, nextBuild: (options: unknown) => {