diff --git a/crates/next-custom-transforms/src/transforms/server_actions.rs b/crates/next-custom-transforms/src/transforms/server_actions.rs index 169835ebdc43c..5106516131114 100644 --- a/crates/next-custom-transforms/src/transforms/server_actions.rs +++ b/crates/next-custom-transforms/src/transforms/server_actions.rs @@ -446,7 +446,6 @@ impl ServerActions { .collect(), action_id.clone(), ); - add_turbopack_disable_export_merging_comment(action_ident.span, &self.comments); if let BlockStmtOrExpr::BlockStmt(block) = &mut *arrow.body { block.visit_mut_with(&mut ClosureReplacer { @@ -593,7 +592,6 @@ impl ServerActions { .collect(), action_id.clone(), ); - add_turbopack_disable_export_merging_comment(action_ident.span, &self.comments); function.body.visit_mut_with(&mut ClosureReplacer { used_ids: &ids_from_closure, @@ -770,7 +768,6 @@ impl ServerActions { reference_id.clone(), arrow.span, ); - add_turbopack_disable_export_merging_comment(cache_ident.span, &self.comments); // If there're any bound args from the closure, we need to hoist the // register action expression to the top-level, and return the bind @@ -842,7 +839,6 @@ impl ServerActions { reference_id.clone(), function.span, ); - add_turbopack_disable_export_merging_comment(cache_ident.span, &self.comments); function.body.visit_mut_with(&mut ClosureReplacer { used_ids: &ids_from_closure, @@ -1943,7 +1939,6 @@ impl VisitMut for ServerActions { ident.span, )), })); - add_turbopack_disable_export_merging_comment(ident.span, &self.comments); } } @@ -2351,17 +2346,6 @@ fn annotate_ident_as_server_reference(ident: Ident, action_id: Atom, original_sp }) } -fn add_turbopack_disable_export_merging_comment(span: Span, comments: &dyn Comments) { - comments.add_leading( - span.lo, - Comment { - kind: CommentKind::Block, - span: DUMMY_SP, - text: "#__TURBOPACK_DISABLE_EXPORT_MERGING__".into(), - }, - ); -} - fn bind_args_to_ref_expr(expr: Expr, bound: Vec>, action_id: Atom) -> Expr { if bound.is_empty() { expr diff --git a/crates/next-custom-transforms/tests/errors/server-actions/server-graph/1/output.js b/crates/next-custom-transforms/tests/errors/server-actions/server-graph/1/output.js index 115c398279999..025c36246e3fc 100644 --- a/crates/next-custom-transforms/tests/errors/server-actions/server-graph/1/output.js +++ b/crates/next-custom-transforms/tests/errors/server-actions/server-graph/1/output.js @@ -1,6 +1,6 @@ /* __next_internal_action_entry_do_not_use__ {"00ab21efdafbe611287bc25c0462b1e0510d13e48b":"foo"} */ import { registerServerReference } from "private-next-rsc-server-reference"; import { encryptActionBoundArgs, decryptActionBoundArgs } from "private-next-rsc-action-encryption"; -export function /*#__TURBOPACK_DISABLE_EXPORT_MERGING__*/ foo() {} +export function foo() {} import { ensureServerEntryExports } from "private-next-rsc-action-validate"; ensureServerEntryExports([ foo diff --git a/crates/next-custom-transforms/tests/errors/server-actions/server-graph/2/output.js b/crates/next-custom-transforms/tests/errors/server-actions/server-graph/2/output.js index cc519cb758b4a..e9f6847c43eb4 100644 --- a/crates/next-custom-transforms/tests/errors/server-actions/server-graph/2/output.js +++ b/crates/next-custom-transforms/tests/errors/server-actions/server-graph/2/output.js @@ -1,7 +1,7 @@ /* __next_internal_action_entry_do_not_use__ {"00ac840dcaf5e8197cb02b7f3a43c119b7a770b272":"bar"} */ import { registerServerReference } from "private-next-rsc-server-reference"; import { encryptActionBoundArgs, decryptActionBoundArgs } from "private-next-rsc-action-encryption"; 'use strict'; -export function /*#__TURBOPACK_DISABLE_EXPORT_MERGING__*/ bar() {} +export function bar() {} import { ensureServerEntryExports } from "private-next-rsc-action-validate"; ensureServerEntryExports([ bar diff --git a/crates/next-custom-transforms/tests/errors/server-actions/server-graph/6/output.js b/crates/next-custom-transforms/tests/errors/server-actions/server-graph/6/output.js index 67b26a6d849f5..4a3b0e6cd3c07 100644 --- a/crates/next-custom-transforms/tests/errors/server-actions/server-graph/6/output.js +++ b/crates/next-custom-transforms/tests/errors/server-actions/server-graph/6/output.js @@ -1,6 +1,6 @@ /* __next_internal_action_entry_do_not_use__ {"00c18c215a6b7cdc64bf709f3a714ffdef1bf9651d":"default"} */ import { registerServerReference } from "private-next-rsc-server-reference"; import { encryptActionBoundArgs, decryptActionBoundArgs } from "private-next-rsc-action-encryption"; -export default /*#__TURBOPACK_DISABLE_EXPORT_MERGING__*/ $$RSC_SERVER_ACTION_0 = ()=>{}; +export default $$RSC_SERVER_ACTION_0 = ()=>{}; var $$RSC_SERVER_ACTION_0; Object["defineProperty"]($$RSC_SERVER_ACTION_0, "name", { value: "default", diff --git a/crates/next-custom-transforms/tests/errors/server-actions/server-graph/8/output.js b/crates/next-custom-transforms/tests/errors/server-actions/server-graph/8/output.js index 978ca4b2933f1..52754aa562f9f 100644 --- a/crates/next-custom-transforms/tests/errors/server-actions/server-graph/8/output.js +++ b/crates/next-custom-transforms/tests/errors/server-actions/server-graph/8/output.js @@ -1,6 +1,6 @@ /* __next_internal_action_entry_do_not_use__ {"006a88810ecce4a4e8b59d53b8327d7e98bbf251d7":"$$RSC_SERVER_ACTION_0"} */ import { registerServerReference } from "private-next-rsc-server-reference"; import { encryptActionBoundArgs, decryptActionBoundArgs } from "private-next-rsc-action-encryption"; -export const /*#__TURBOPACK_DISABLE_EXPORT_MERGING__*/ $$RSC_SERVER_ACTION_0 = async function foo() { +export const $$RSC_SERVER_ACTION_0 = async function foo() { 'use strict'; }; const foo = registerServerReference($$RSC_SERVER_ACTION_0, "006a88810ecce4a4e8b59d53b8327d7e98bbf251d7", null); diff --git a/crates/next-custom-transforms/tests/fixture/next-font-with-directive/use-cache/output.js b/crates/next-custom-transforms/tests/fixture/next-font-with-directive/use-cache/output.js index 191c636b3c724..6a0caf7a40e96 100644 --- a/crates/next-custom-transforms/tests/fixture/next-font-with-directive/use-cache/output.js +++ b/crates/next-custom-transforms/tests/fixture/next-font-with-directive/use-cache/output.js @@ -3,7 +3,7 @@ import { encryptActionBoundArgs, decryptActionBoundArgs } from "private-next-rsc import { cache as $$cache__ } from "private-next-rsc-cache-wrapper"; import React from 'react'; import inter from '@next/font/google/target.css?{"path":"app/test.tsx","import":"Inter","arguments":[],"variableName":"inter"}'; -export var /*#__TURBOPACK_DISABLE_EXPORT_MERGING__*/ $$RSC_SERVER_CACHE_0 = $$cache__("default", "c0dd5bb6fef67f5ab84327f5164ac2c3111a159337", 0, async function Cached({ children }) { +export var $$RSC_SERVER_CACHE_0 = $$cache__("default", "c0dd5bb6fef67f5ab84327f5164ac2c3111a159337", 0, async function Cached({ children }) { return
{children}
; }); Object["defineProperty"]($$RSC_SERVER_CACHE_0, "name", { diff --git a/crates/next-custom-transforms/tests/fixture/next-font-with-directive/use-server/output.js b/crates/next-custom-transforms/tests/fixture/next-font-with-directive/use-server/output.js index be653c8fb3300..c51629b44cb4b 100644 --- a/crates/next-custom-transforms/tests/fixture/next-font-with-directive/use-server/output.js +++ b/crates/next-custom-transforms/tests/fixture/next-font-with-directive/use-server/output.js @@ -2,7 +2,7 @@ import { encryptActionBoundArgs, decryptActionBoundArgs } from "private-next-rsc-action-encryption"; import React from 'react'; import inter from '@next/font/google/target.css?{"path":"app/test.tsx","import":"Inter","arguments":[],"variableName":"inter"}'; -export async function /*#__TURBOPACK_DISABLE_EXPORT_MERGING__*/ myCoolServerAction() { +export async function myCoolServerAction() { return
Hello from server action
; } import { ensureServerEntryExports } from "private-next-rsc-action-validate"; diff --git a/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/1/output.js b/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/1/output.js index e7119eee79bce..b4a5289cb8a8e 100644 --- a/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/1/output.js +++ b/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/1/output.js @@ -2,7 +2,7 @@ import { encryptActionBoundArgs, decryptActionBoundArgs } from "private-next-rsc-action-encryption"; import { Button } from 'components'; import deleteFromDb from 'db'; -export const /*#__TURBOPACK_DISABLE_EXPORT_MERGING__*/ $$RSC_SERVER_ACTION_0 = async function deleteItem($$ACTION_CLOSURE_BOUND) { +export const $$RSC_SERVER_ACTION_0 = async function deleteItem($$ACTION_CLOSURE_BOUND) { var [$$ACTION_ARG_0, $$ACTION_ARG_1] = await decryptActionBoundArgs("406a88810ecce4a4e8b59d53b8327d7e98bbf251d7", $$ACTION_CLOSURE_BOUND); await deleteFromDb($$ACTION_ARG_0); await deleteFromDb($$ACTION_ARG_1); @@ -11,7 +11,7 @@ export function Item({ id1, id2 }) { var deleteItem = registerServerReference($$RSC_SERVER_ACTION_0, "406a88810ecce4a4e8b59d53b8327d7e98bbf251d7", null).bind(null, encryptActionBoundArgs("406a88810ecce4a4e8b59d53b8327d7e98bbf251d7", id1, id2)); return ; } -export const /*#__TURBOPACK_DISABLE_EXPORT_MERGING__*/ $$RSC_SERVER_ACTION_1 = async function action($$ACTION_CLOSURE_BOUND) { +export const $$RSC_SERVER_ACTION_1 = async function action($$ACTION_CLOSURE_BOUND) { var [$$ACTION_ARG_0, $$ACTION_ARG_1] = await decryptActionBoundArgs("4090b5db271335765a4b0eab01f044b381b5ebd5cd", $$ACTION_CLOSURE_BOUND); console.log($$ACTION_ARG_0); console.log($$ACTION_ARG_1); diff --git a/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/10/output.js b/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/10/output.js index a378d4e65e5ff..51d06ea1032a0 100644 --- a/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/10/output.js +++ b/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/10/output.js @@ -1,6 +1,6 @@ /* __next_internal_action_entry_do_not_use__ {"00c18c215a6b7cdc64bf709f3a714ffdef1bf9651d":"default"} */ import { registerServerReference } from "private-next-rsc-server-reference"; import { encryptActionBoundArgs, decryptActionBoundArgs } from "private-next-rsc-action-encryption"; -export default async function /*#__TURBOPACK_DISABLE_EXPORT_MERGING__*/ foo() {} +export default async function foo() {} import { ensureServerEntryExports } from "private-next-rsc-action-validate"; ensureServerEntryExports([ foo diff --git a/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/11/output.js b/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/11/output.js index 512dd8d45f6ed..359e0f3a3975f 100644 --- a/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/11/output.js +++ b/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/11/output.js @@ -1,6 +1,6 @@ /* __next_internal_action_entry_do_not_use__ {"00c18c215a6b7cdc64bf709f3a714ffdef1bf9651d":"default"} */ import { registerServerReference } from "private-next-rsc-server-reference"; import { encryptActionBoundArgs, decryptActionBoundArgs } from "private-next-rsc-action-encryption"; -export default /*#__TURBOPACK_DISABLE_EXPORT_MERGING__*/ async function $$RSC_SERVER_ACTION_0() {} +export default async function $$RSC_SERVER_ACTION_0() {} Object["defineProperty"]($$RSC_SERVER_ACTION_0, "name", { value: "default", writable: false diff --git a/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/12/output.js b/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/12/output.js index e67c5f1da765f..0d49affe971e2 100644 --- a/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/12/output.js +++ b/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/12/output.js @@ -1,7 +1,7 @@ /* __next_internal_action_entry_do_not_use__ {"7fc18c215a6b7cdc64bf709f3a714ffdef1bf9651d":"default"} */ import { registerServerReference } from "private-next-rsc-server-reference"; import { encryptActionBoundArgs, decryptActionBoundArgs } from "private-next-rsc-action-encryption"; async function foo() {} -export default /*#__TURBOPACK_DISABLE_EXPORT_MERGING__*/ foo; +export default foo; import { ensureServerEntryExports } from "private-next-rsc-action-validate"; ensureServerEntryExports([ foo diff --git a/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/13/output.js b/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/13/output.js index e46cd59c7e470..607bb18b65e2c 100644 --- a/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/13/output.js +++ b/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/13/output.js @@ -1,9 +1,9 @@ /* __next_internal_action_entry_do_not_use__ {"7fac840dcaf5e8197cb02b7f3a43c119b7a770b272":"bar","7fc18c215a6b7cdc64bf709f3a714ffdef1bf9651d":"default"} */ import { registerServerReference } from "private-next-rsc-server-reference"; import { encryptActionBoundArgs, decryptActionBoundArgs } from "private-next-rsc-action-encryption"; const foo = async function() {}; -export default /*#__TURBOPACK_DISABLE_EXPORT_MERGING__*/ foo; +export default foo; const bar = async function() {}; -export { /*#__TURBOPACK_DISABLE_EXPORT_MERGING__*/ bar }; +export { bar }; import { ensureServerEntryExports } from "private-next-rsc-action-validate"; ensureServerEntryExports([ foo, diff --git a/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/14/output.js b/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/14/output.js index 0a8f704baac5e..36bc1df43d2c5 100644 --- a/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/14/output.js +++ b/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/14/output.js @@ -1,6 +1,6 @@ /* __next_internal_action_entry_do_not_use__ {"00ab21efdafbe611287bc25c0462b1e0510d13e48b":"foo"} */ import { registerServerReference } from "private-next-rsc-server-reference"; import { encryptActionBoundArgs, decryptActionBoundArgs } from "private-next-rsc-action-encryption"; -export async function /*#__TURBOPACK_DISABLE_EXPORT_MERGING__*/ foo() { +export async function foo() { async function bar() {} } import { ensureServerEntryExports } from "private-next-rsc-action-validate"; diff --git a/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/15/output.js b/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/15/output.js index 1af6e0cd74911..a15e857f2c051 100644 --- a/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/15/output.js +++ b/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/15/output.js @@ -1,6 +1,6 @@ /* __next_internal_action_entry_do_not_use__ {"60c18c215a6b7cdc64bf709f3a714ffdef1bf9651d":"default"} */ import { registerServerReference } from "private-next-rsc-server-reference"; import { encryptActionBoundArgs, decryptActionBoundArgs } from "private-next-rsc-action-encryption"; -export default /*#__TURBOPACK_DISABLE_EXPORT_MERGING__*/ $$RSC_SERVER_ACTION_0 = async (a, b)=>{ +export default $$RSC_SERVER_ACTION_0 = async (a, b)=>{ console.log(a, b); }; var $$RSC_SERVER_ACTION_0; diff --git a/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/16/output.js b/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/16/output.js index 567695387450d..f045a7d19f5bf 100644 --- a/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/16/output.js +++ b/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/16/output.js @@ -3,7 +3,7 @@ import { encryptActionBoundArgs, decryptActionBoundArgs } from "private-next-rsc import { Button } from 'components'; import deleteFromDb from 'db'; const v1 = 'v1'; -export const /*#__TURBOPACK_DISABLE_EXPORT_MERGING__*/ $$RSC_SERVER_ACTION_0 = async function deleteItem($$ACTION_CLOSURE_BOUND) { +export const $$RSC_SERVER_ACTION_0 = async function deleteItem($$ACTION_CLOSURE_BOUND) { var [$$ACTION_ARG_0, $$ACTION_ARG_1] = await decryptActionBoundArgs("406a88810ecce4a4e8b59d53b8327d7e98bbf251d7", $$ACTION_CLOSURE_BOUND); await deleteFromDb($$ACTION_ARG_0); await deleteFromDb(v1); @@ -14,14 +14,14 @@ export function Item({ id1, id2 }) { const deleteItem = registerServerReference($$RSC_SERVER_ACTION_0, "406a88810ecce4a4e8b59d53b8327d7e98bbf251d7", null).bind(null, encryptActionBoundArgs("406a88810ecce4a4e8b59d53b8327d7e98bbf251d7", id1, v2)); return ; } -export const /*#__TURBOPACK_DISABLE_EXPORT_MERGING__*/ $$RSC_SERVER_ACTION_1 = async function g($$ACTION_CLOSURE_BOUND, y, ...z) { +export const $$RSC_SERVER_ACTION_1 = async function g($$ACTION_CLOSURE_BOUND, y, ...z) { var [$$ACTION_ARG_0] = await decryptActionBoundArgs("7f90b5db271335765a4b0eab01f044b381b5ebd5cd", $$ACTION_CLOSURE_BOUND); return $$ACTION_ARG_0 + y + z[0]; }; let f = (x)=>{ var g = registerServerReference($$RSC_SERVER_ACTION_1, "7f90b5db271335765a4b0eab01f044b381b5ebd5cd", null).bind(null, encryptActionBoundArgs("7f90b5db271335765a4b0eab01f044b381b5ebd5cd", x)); }; -export const /*#__TURBOPACK_DISABLE_EXPORT_MERGING__*/ $$RSC_SERVER_ACTION_2 = async function f($$ACTION_CLOSURE_BOUND, y, ...z) { +export const $$RSC_SERVER_ACTION_2 = async function f($$ACTION_CLOSURE_BOUND, y, ...z) { var [$$ACTION_ARG_0] = await decryptActionBoundArgs("7f1c36b06e398c97abe5d5d7ae8c672bfddf4e1b91", $$ACTION_CLOSURE_BOUND); return $$ACTION_ARG_0 + y + // can't be a `ts-expect-error` because the type of `z` changes to `any` in the output // and it stops being an error diff --git a/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/17/output.js b/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/17/output.js index fd049806dbe37..de20684b09f56 100644 --- a/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/17/output.js +++ b/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/17/output.js @@ -1,8 +1,8 @@ /* __next_internal_action_entry_do_not_use__ {"7fab21efdafbe611287bc25c0462b1e0510d13e48b":"foo","7fac840dcaf5e8197cb02b7f3a43c119b7a770b272":"bar"} */ import { registerServerReference } from "private-next-rsc-server-reference"; import { encryptActionBoundArgs, decryptActionBoundArgs } from "private-next-rsc-action-encryption"; -export const /*#__TURBOPACK_DISABLE_EXPORT_MERGING__*/ foo = async ()=>{}; +export const foo = async ()=>{}; const bar = async ()=>{}; -export { /*#__TURBOPACK_DISABLE_EXPORT_MERGING__*/ bar }; +export { bar }; import { ensureServerEntryExports } from "private-next-rsc-action-validate"; ensureServerEntryExports([ foo, diff --git a/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/18/output.js b/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/18/output.js index f0f339b1965c7..e513f7cbe7a2a 100644 --- a/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/18/output.js +++ b/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/18/output.js @@ -3,13 +3,13 @@ import { encryptActionBoundArgs, decryptActionBoundArgs } from "private-next-rsc import { Button } from 'components'; import deleteFromDb from 'db'; const v1 = 'v1'; -export const /*#__TURBOPACK_DISABLE_EXPORT_MERGING__*/ $$RSC_SERVER_ACTION_0 = async function action($$ACTION_CLOSURE_BOUND) { +export const $$RSC_SERVER_ACTION_0 = async function action($$ACTION_CLOSURE_BOUND) { var [$$ACTION_ARG_0, $$ACTION_ARG_1] = await decryptActionBoundArgs("406a88810ecce4a4e8b59d53b8327d7e98bbf251d7", $$ACTION_CLOSURE_BOUND); await deleteFromDb($$ACTION_ARG_0); await deleteFromDb(v1); await deleteFromDb($$ACTION_ARG_1); }; -export const /*#__TURBOPACK_DISABLE_EXPORT_MERGING__*/ $$RSC_SERVER_ACTION_1 = async function action($$ACTION_CLOSURE_BOUND) { +export const $$RSC_SERVER_ACTION_1 = async function action($$ACTION_CLOSURE_BOUND) { var [$$ACTION_ARG_0, $$ACTION_ARG_1] = await decryptActionBoundArgs("4090b5db271335765a4b0eab01f044b381b5ebd5cd", $$ACTION_CLOSURE_BOUND); await deleteFromDb($$ACTION_ARG_0); await deleteFromDb(v1); diff --git a/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/19/output.js b/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/19/output.js index ce714b76a7d15..32f758bcf9a50 100644 --- a/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/19/output.js +++ b/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/19/output.js @@ -1,7 +1,7 @@ /* __next_internal_action_entry_do_not_use__ {"606a88810ecce4a4e8b59d53b8327d7e98bbf251d7":"$$RSC_SERVER_ACTION_0"} */ import { registerServerReference } from "private-next-rsc-server-reference"; import { encryptActionBoundArgs, decryptActionBoundArgs } from "private-next-rsc-action-encryption"; import { Button } from 'components'; -export const /*#__TURBOPACK_DISABLE_EXPORT_MERGING__*/ $$RSC_SERVER_ACTION_0 = async function action($$ACTION_CLOSURE_BOUND, value2) { +export const $$RSC_SERVER_ACTION_0 = async function action($$ACTION_CLOSURE_BOUND, value2) { var [$$ACTION_ARG_0] = await decryptActionBoundArgs("606a88810ecce4a4e8b59d53b8327d7e98bbf251d7", $$ACTION_CLOSURE_BOUND); return $$ACTION_ARG_0 * value2; }; diff --git a/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/2/output.js b/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/2/output.js index cccb541e0af51..cf11766429e9c 100644 --- a/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/2/output.js +++ b/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/2/output.js @@ -2,13 +2,13 @@ import { encryptActionBoundArgs, decryptActionBoundArgs } from "private-next-rsc-action-encryption"; import { validator } from 'auth'; import { Button } from 'components'; -export const /*#__TURBOPACK_DISABLE_EXPORT_MERGING__*/ $$RSC_SERVER_ACTION_0 = async function myAction(a, b, c) { +export const $$RSC_SERVER_ACTION_0 = async function myAction(a, b, c) { console.log('a'); }; var myAction = registerServerReference($$RSC_SERVER_ACTION_0, "706a88810ecce4a4e8b59d53b8327d7e98bbf251d7", null); export default function Page() { return ; } -export const /*#__TURBOPACK_DISABLE_EXPORT_MERGING__*/ $$RSC_SERVER_ACTION_1 = async function() {}; +export const $$RSC_SERVER_ACTION_1 = async function() {}; // TODO: should use `action` as function name? export const action = validator(registerServerReference($$RSC_SERVER_ACTION_1, "0090b5db271335765a4b0eab01f044b381b5ebd5cd", null)); diff --git a/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/20/output.js b/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/20/output.js index 0af02ee3a4c1a..8a0eff9cccd32 100644 --- a/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/20/output.js +++ b/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/20/output.js @@ -3,7 +3,7 @@ import { encryptActionBoundArgs, decryptActionBoundArgs } from "private-next-rsc /** @type {[any]} */ const [foo] = [ null ]; -export default /*#__TURBOPACK_DISABLE_EXPORT_MERGING__*/ foo; +export default foo; import { ensureServerEntryExports } from "private-next-rsc-action-validate"; ensureServerEntryExports([ foo diff --git a/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/21/output.js b/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/21/output.js index 85139085f8091..9e7ded83cc3eb 100644 --- a/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/21/output.js +++ b/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/21/output.js @@ -3,7 +3,7 @@ import { encryptActionBoundArgs, decryptActionBoundArgs } from "private-next-rsc import { validator, another } from 'auth'; import { Button } from 'components'; const x = 1; -export const /*#__TURBOPACK_DISABLE_EXPORT_MERGING__*/ $$RSC_SERVER_ACTION_0 = async function($$ACTION_CLOSURE_BOUND, z) { +export const $$RSC_SERVER_ACTION_0 = async function($$ACTION_CLOSURE_BOUND, z) { var [$$ACTION_ARG_0] = await decryptActionBoundArgs("606a88810ecce4a4e8b59d53b8327d7e98bbf251d7", $$ACTION_CLOSURE_BOUND); return x + $$ACTION_ARG_0 + z; }; @@ -12,7 +12,7 @@ export default function Page() { return ; } -export const /*#__TURBOPACK_DISABLE_EXPORT_MERGING__*/ $$RSC_SERVER_ACTION_1 = async function deleteItem2($$ACTION_CLOSURE_BOUND) { +export const $$RSC_SERVER_ACTION_1 = async function deleteItem2($$ACTION_CLOSURE_BOUND) { var [$$ACTION_ARG_0, $$ACTION_ARG_1, $$ACTION_ARG_2] = await decryptActionBoundArgs("4090b5db271335765a4b0eab01f044b381b5ebd5cd", $$ACTION_CLOSURE_BOUND); await deleteFromDb($$ACTION_ARG_0.id, $$ACTION_ARG_0?.foo, $$ACTION_ARG_0.bar.baz, $$ACTION_ARG_0[// @ts-expect-error: deliberate useless comma $$ACTION_ARG_1, $$ACTION_ARG_2]); @@ -20,7 +20,7 @@ export function Item2(product, foo, bar) { var deleteItem2 = registerServerReference($$RSC_SERVER_ACTION_1, "4090b5db271335765a4b0eab01f044b381b5ebd5cd", null).bind(null, encryptActionBoundArgs("4090b5db271335765a4b0eab01f044b381b5ebd5cd", product, foo, bar)); return ; } -export const /*#__TURBOPACK_DISABLE_EXPORT_MERGING__*/ $$RSC_SERVER_ACTION_2 = async function deleteItem3($$ACTION_CLOSURE_BOUND) { +export const $$RSC_SERVER_ACTION_2 = async function deleteItem3($$ACTION_CLOSURE_BOUND) { var [$$ACTION_ARG_0, $$ACTION_ARG_1, $$ACTION_ARG_2] = await decryptActionBoundArgs("401c36b06e398c97abe5d5d7ae8c672bfddf4e1b91", $$ACTION_CLOSURE_BOUND); await deleteFromDb($$ACTION_ARG_0.id, $$ACTION_ARG_0?.foo, $$ACTION_ARG_0.bar.baz, $$ACTION_ARG_0[// @ts-expect-error: deliberate useless comma $$ACTION_ARG_1, $$ACTION_ARG_2]); @@ -29,7 +29,7 @@ export function Item3(product, foo, bar) { const deleteItem3 = registerServerReference($$RSC_SERVER_ACTION_2, "401c36b06e398c97abe5d5d7ae8c672bfddf4e1b91", null).bind(null, encryptActionBoundArgs("401c36b06e398c97abe5d5d7ae8c672bfddf4e1b91", product, foo, bar)); return ; } -export const /*#__TURBOPACK_DISABLE_EXPORT_MERGING__*/ $$RSC_SERVER_ACTION_3 = async function deleteItem4($$ACTION_CLOSURE_BOUND) { +export const $$RSC_SERVER_ACTION_3 = async function deleteItem4($$ACTION_CLOSURE_BOUND) { var [$$ACTION_ARG_0, $$ACTION_ARG_1, $$ACTION_ARG_2] = await decryptActionBoundArgs("409ed0cc47abc4e1c64320cf42b74ae60b58c40f00", $$ACTION_CLOSURE_BOUND); await deleteFromDb($$ACTION_ARG_0.id, $$ACTION_ARG_0?.foo, $$ACTION_ARG_0.bar.baz, $$ACTION_ARG_0[// @ts-expect-error: deliberate useless comma $$ACTION_ARG_1, $$ACTION_ARG_2]); diff --git a/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/8/output.js b/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/8/output.js index 0c7c1093d87bc..08b4dfab2eee2 100644 --- a/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/8/output.js +++ b/crates/next-custom-transforms/tests/fixture/server-actions/server-graph/8/output.js @@ -1,7 +1,7 @@ /* __next_internal_action_entry_do_not_use__ {"706a88810ecce4a4e8b59d53b8327d7e98bbf251d7":"$$RSC_SERVER_ACTION_0"} */ import { registerServerReference } from "private-next-rsc-server-reference"; import { encryptActionBoundArgs, decryptActionBoundArgs } from "private-next-rsc-action-encryption"; import { Button } from 'components'; -export const /*#__TURBOPACK_DISABLE_EXPORT_MERGING__*/ $$RSC_SERVER_ACTION_0 = async function myAction(a, b, c) { +export const $$RSC_SERVER_ACTION_0 = async function myAction(a, b, c) { // comment 'use strict'; console.log('a'); diff --git a/crates/next-custom-transforms/tests/fixture/source-maps/server-graph/use-cache/1/output.js b/crates/next-custom-transforms/tests/fixture/source-maps/server-graph/use-cache/1/output.js index 1cc448e784ad9..de904a61178ac 100644 --- a/crates/next-custom-transforms/tests/fixture/source-maps/server-graph/use-cache/1/output.js +++ b/crates/next-custom-transforms/tests/fixture/source-maps/server-graph/use-cache/1/output.js @@ -1,13 +1,13 @@ /* __next_internal_action_entry_do_not_use__ {"803128060c414d59f8552e4788b846c0d2b7f74743":"$$RSC_SERVER_CACHE_0","80951c375b4a6a6e89d67b743ec5808127cfde405d":"$$RSC_SERVER_CACHE_1"} */ import { registerServerReference } from "private-next-rsc-server-reference"; import { encryptActionBoundArgs, decryptActionBoundArgs } from "private-next-rsc-action-encryption"; import { cache as $$cache__ } from "private-next-rsc-cache-wrapper"; -export var /*#__TURBOPACK_DISABLE_EXPORT_MERGING__*/ $$RSC_SERVER_CACHE_0 = $$cache__("default", "803128060c414d59f8552e4788b846c0d2b7f74743", 0, async function() {}); +export var $$RSC_SERVER_CACHE_0 = $$cache__("default", "803128060c414d59f8552e4788b846c0d2b7f74743", 0, async function() {}); Object["defineProperty"]($$RSC_SERVER_CACHE_0, "name", { value: "foo", writable: false }); const foo = registerServerReference($$RSC_SERVER_CACHE_0, "803128060c414d59f8552e4788b846c0d2b7f74743", null); -export var /*#__TURBOPACK_DISABLE_EXPORT_MERGING__*/ $$RSC_SERVER_CACHE_1 = $$cache__("default", "80951c375b4a6a6e89d67b743ec5808127cfde405d", 0, async function bar() { +export var $$RSC_SERVER_CACHE_1 = $$cache__("default", "80951c375b4a6a6e89d67b743ec5808127cfde405d", 0, async function bar() { return foo(); }); Object["defineProperty"]($$RSC_SERVER_CACHE_1, "name", { diff --git a/crates/next-custom-transforms/tests/fixture/source-maps/server-graph/use-cache/1/output.map b/crates/next-custom-transforms/tests/fixture/source-maps/server-graph/use-cache/1/output.map index 6b4af9c731604..5079c6ff2ecb0 100644 --- a/crates/next-custom-transforms/tests/fixture/source-maps/server-graph/use-cache/1/output.map +++ b/crates/next-custom-transforms/tests/fixture/source-maps/server-graph/use-cache/1/output.map @@ -1 +1 @@ -{"version":3,"sources":["input.js"],"sourcesContent":["'use cache'\n\nconst foo = async () => {\n 'use cache'\n}\n\nexport async function bar() {\n return foo()\n}\n"],"names":[],"mappings":";;;WAEY,yJAEZ;;;;;AAFA,MAAM,MAAM;WAIL,uIAAA,eAAe;IACpB,OAAO;AACT;;;;;AAFA,WAAsB,MAAf"} +{"version":3,"sources":["input.js"],"sourcesContent":["'use cache'\n\nconst foo = async () => {\n 'use cache'\n}\n\nexport async function bar() {\n return foo()\n}\n"],"names":[],"mappings":";;;WAEY,+GAEZ;;;;;AAFA,MAAM,MAAM;WAIL,6FAAA,eAAe;IACpB,OAAO;AACT;;;;;AAFA,WAAsB,MAAf"} diff --git a/turbopack/crates/turbopack-ecmascript/src/tree_shake/graph.rs b/turbopack/crates/turbopack-ecmascript/src/tree_shake/graph.rs index d1643f0489a7c..646ff45569330 100644 --- a/turbopack/crates/turbopack-ecmascript/src/tree_shake/graph.rs +++ b/turbopack/crates/turbopack-ecmascript/src/tree_shake/graph.rs @@ -34,7 +34,6 @@ use super::{ }; use crate::{magic_identifier, tree_shake::optimizations::GraphOptimizer}; -const FLAG_DISABLE_EXPORT_MERGING: &str = "TURBOPACK_DISABLE_EXPORT_MERGING"; /// The id of an item #[derive(Clone, PartialEq, Eq, PartialOrd, Ord, Hash)] pub(crate) enum ItemId { @@ -130,9 +129,6 @@ pub(crate) struct ItemData { /// test case. pub explicit_deps: Vec, - /// Server actions breaks when we merge exports. - pub disable_export_merging: bool, - pub is_module_evaluation: bool, } @@ -149,7 +145,6 @@ impl fmt::Debug for ItemData { .field("side_effects", &self.side_effects) .field("export", &self.export) .field("explicit_deps", &self.explicit_deps) - .field("disable_export_merging", &self.disable_export_merging) .field("is_module_evaluation", &self.is_module_evaluation) .finish() } @@ -170,7 +165,6 @@ impl Default for ItemData { export: Default::default(), binding_source: Default::default(), explicit_deps: Default::default(), - disable_export_merging: Default::default(), is_module_evaluation: Default::default(), } } @@ -748,13 +742,11 @@ impl DepGraph { let optimizer = GraphOptimizer { graph_ix: &self.g.graph_ix, - data, }; - loop { - if !optimizer.merge_single_incoming_nodes(&mut condensed) { - break; - } - } + + while optimizer.merge_single_incoming_nodes(&mut condensed) + || optimizer.merge_nodes_with_same_starting_point(&mut condensed) + {} let mut new_graph = InternedGraph::default(); @@ -837,23 +829,13 @@ impl DepGraph { match item { ModuleDecl::ExportDecl(item) => match &item.decl { Decl::Fn(FnDecl { ident, .. }) | Decl::Class(ClassDecl { ident, .. }) => { - exports.push(( - ident.to_id(), - ident.sym.clone(), - comments.has_flag(ident.span().lo, FLAG_DISABLE_EXPORT_MERGING), - )); + exports.push((ident.to_id(), ident.sym.clone())); } Decl::Var(v) => { for decl in &v.decls { - let disable_export_merging = comments - .has_flag(decl.name.span().lo, FLAG_DISABLE_EXPORT_MERGING) - || decl.init.as_deref().is_some_and(|e| { - comments.has_flag(e.span().lo, FLAG_DISABLE_EXPORT_MERGING) - }); - let ids: Vec = find_pat_ids(&decl.name); for id in ids { - exports.push((id.clone(), id.0, disable_export_merging)); + exports.push((id.clone(), id.0)); } } } @@ -924,7 +906,7 @@ impl DepGraph { local = local.into_private(); } - exports.push((local.to_id(), exported.atom().clone(), false)); + exports.push((local.to_id(), exported.atom().clone())); if let Some(src) = &item.src { let id = ItemId::Item { @@ -1041,7 +1023,7 @@ impl DepGraph { items.insert(id, data); } - exports.push((default_var.to_id(), "default".into(), false)); + exports.push((default_var.to_id(), "default".into())); } ModuleDecl::ExportDefaultExpr(export) => { let default_var = @@ -1100,7 +1082,7 @@ impl DepGraph { { // For export default __TURBOPACK__default__export__ - exports.push((default_var.to_id(), "default".into(), false)); + exports.push((default_var.to_id(), "default".into())); } } @@ -1407,7 +1389,7 @@ impl DepGraph { } } - for (local, export_name, disable_export_merging) in exports { + for (local, export_name) in exports { let id = ItemId::Group(ItemIdGroupKind::Export(local.clone(), export_name.clone())); ids.push(id.clone()); items.insert( @@ -1431,7 +1413,6 @@ impl DepGraph { })), read_vars: [local.clone()].into_iter().collect(), export: Some(export_name), - disable_export_merging, ..Default::default() }, ); diff --git a/turbopack/crates/turbopack-ecmascript/src/tree_shake/optimizations.rs b/turbopack/crates/turbopack-ecmascript/src/tree_shake/optimizations.rs index 72b5cbb5b3381..ec90cc8f951be 100644 --- a/turbopack/crates/turbopack-ecmascript/src/tree_shake/optimizations.rs +++ b/turbopack/crates/turbopack-ecmascript/src/tree_shake/optimizations.rs @@ -1,14 +1,13 @@ use std::ops::Index; use petgraph::{visit::EdgeRef, Direction, Graph}; -use rustc_hash::FxHashMap; +use rustc_hash::{FxHashMap, FxHashSet}; use turbo_tasks::FxIndexSet; -use crate::tree_shake::graph::{Dependency, ItemData, ItemId, ItemIdGroupKind, ItemIdItemKind}; +use crate::tree_shake::graph::{Dependency, ItemId, ItemIdItemKind}; pub(super) struct GraphOptimizer<'a> { pub graph_ix: &'a FxIndexSet, - pub data: &'a FxHashMap, } impl Index for GraphOptimizer<'_> { @@ -33,14 +32,13 @@ impl GraphOptimizer<'_> { // imports for import bindings so the static code analysis pass can detect imports like // 'next/dynamic'. - (matches!( + matches!( item_id, ItemId::Item { kind: ItemIdItemKind::ImportBinding(..), .. } - )) || (matches!(item_id, ItemId::Group(ItemIdGroupKind::Export(..))) - && self.data[item_id].disable_export_merging) + ) } fn should_not_merge_iter(&self, items: &[N]) -> bool @@ -124,4 +122,132 @@ impl GraphOptimizer<'_> { did_work } + + /// This function merges nodes that can only be reached from a single starting point. + /// Example: + /// If we have a graph with edges: A->B, B->C, A->C, B->E, D->E + /// Then B and C can only be reached from A, so they will be merged into A. + /// The resulting graph would have edges like: (A,B,C)->E, D->E + pub(super) fn merge_nodes_with_same_starting_point( + &self, + g: &mut Graph, Dependency>, + ) -> bool + where + N: Copy, + Self: Index, + { + let mut did_work = false; + let mut reachability: FxHashMap<_, FxHashSet<_>> = FxHashMap::default(); + + // Step 1: Build a reverse reachability map (which starting nodes can reach each node) + // We consider a "starting node" as one with no incoming edges + let starting_nodes: Vec<_> = g + .node_indices() + .filter(|&node| g.edges_directed(node, Direction::Incoming).count() == 0) + .collect(); + + // For each starting node, find all nodes reachable from it + for &start in &starting_nodes { + let mut visited = FxHashSet::default(); + let mut queue = vec![start]; + + while let Some(node) = queue.pop() { + if !visited.insert(node) { + continue; + } + + // For each outgoing edge, add the target to queue + for edge in g.edges_directed(node, Direction::Outgoing) { + let target = edge.target(); + queue.push(target); + + // Add this starting node to the set of starting nodes that can reach target + reachability.entry(target).or_default().insert(start); + } + } + } + + // Step 2: Find nodes that are reachable from exactly one starting node + // and group them by that starting node + let mut merge_groups: FxHashMap<_, Vec<_>> = FxHashMap::default(); + + for node in g.node_indices() { + // Skip starting nodes + if starting_nodes.contains(&node) { + continue; + } + + // Skip nodes that should not be merged + if self.should_not_merge_iter(g.node_weight(node).expect("Node should exist")) { + continue; + } + + // If this node is reachable from exactly one starting node, add it to that group + if let Some(reachable_from) = reachability.get(&node) { + if reachable_from.len() == 1 { + let start = *reachable_from.iter().next().unwrap(); + + // Don't merge if the starting node should not be merged + if self.should_not_merge_iter(g.node_weight(start).expect("Node should exist")) + { + continue; + } + + merge_groups.entry(start).or_default().push(node); + } + } + } + + // Step 3: Merge nodes into their starting points + for (start, nodes_to_merge) in merge_groups { + if nodes_to_merge.is_empty() { + continue; + } + + let mut nodes_to_remove = Vec::new(); + + for node in nodes_to_merge { + // Move outgoing edges from node to start + let outgoing_edges: Vec<_> = g + .edges_directed(node, Direction::Outgoing) + .map(|e| (e.target(), *e.weight())) + .collect(); + + for (target, weight) in outgoing_edges { + // If there's already an edge from start to target, only update if necessary + let existing_edge = g.find_edge(start, target); + match existing_edge { + Some(e) => { + let edge_weight = g.edge_weight_mut(e).unwrap(); + // Only upgrade from weak to strong dependency + if matches!(edge_weight, Dependency::Weak) + && !matches!(weight, Dependency::Weak) + { + *edge_weight = weight; + } + } + None => { + // Add a new edge + g.add_edge(start, target, weight); + } + } + } + + // Move items from this node to the starting node + let items = g.node_weight(node).expect("Node should exist").clone(); + g.node_weight_mut(start).unwrap().extend(items); + + nodes_to_remove.push(node); + } + + // Remove merged nodes (in reverse order to preserve indices) + nodes_to_remove.sort(); + for node in nodes_to_remove.into_iter().rev() { + g.remove_node(node); + did_work = true; + } + } + + did_work + } } diff --git a/turbopack/crates/turbopack-ecmascript/tests/tree-shaker/analyzer/dce/output.md b/turbopack/crates/turbopack-ecmascript/tests/tree-shaker/analyzer/dce/output.md index eb1781438aa9d..fd84075b664aa 100644 --- a/turbopack/crates/turbopack-ecmascript/tests/tree-shaker/analyzer/dce/output.md +++ b/turbopack/crates/turbopack-ecmascript/tests/tree-shaker/analyzer/dce/output.md @@ -71,19 +71,16 @@ graph TD # Final ```mermaid graph TD - N0["Items: [ItemId(0, ImportOfModule)]"]; + N0["Items: [ItemId(0, ImportOfModule), ItemId(1, Normal)]"]; N1["Items: [ItemId(0, ImportBinding(0))]"]; - N2["Items: [ItemId(1, Normal)]"]; - N2 --> N1; - N2 --> N0; - N1 --> N0; + N0 --> N1; ``` # Entrypoints ``` { - ModuleEvaluation: 2, - Exports: 3, + ModuleEvaluation: 0, + Exports: 2, } ``` @@ -91,7 +88,12 @@ graph TD # Modules (dev) ## Part 0 ```js +import { baz } from './module'; import './module'; +if (1 + 1 == 3) { + baz(); +} +export { }; ``` ## Part 1 @@ -107,29 +109,12 @@ export { baz as a } from "__TURBOPACK_VAR__" assert { ``` ## Part 2 ```js -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 0 -}; -import { baz } from './module'; -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 0 -}; -if (1 + 1 == 3) { - baz(); -} -export { }; - -``` -## Part 3 -```js ``` ## Merged (module eval) ```js -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 0 -}; import { baz } from './module'; +import './module'; if (1 + 1 == 3) { baz(); } @@ -140,8 +125,8 @@ export { }; ``` { - ModuleEvaluation: 2, - Exports: 3, + ModuleEvaluation: 0, + Exports: 2, } ``` @@ -149,7 +134,12 @@ export { }; # Modules (prod) ## Part 0 ```js +import { baz } from './module'; import './module'; +if (1 + 1 == 3) { + baz(); +} +export { }; ``` ## Part 1 @@ -165,29 +155,12 @@ export { baz as a } from "__TURBOPACK_VAR__" assert { ``` ## Part 2 ```js -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 0 -}; -import { baz } from './module'; -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 0 -}; -if (1 + 1 == 3) { - baz(); -} -export { }; - -``` -## Part 3 -```js ``` ## Merged (module eval) ```js -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 0 -}; import { baz } from './module'; +import './module'; if (1 + 1 == 3) { baz(); } diff --git a/turbopack/crates/turbopack-ecmascript/tests/tree-shaker/analyzer/export-named/output.md b/turbopack/crates/turbopack-ecmascript/tests/tree-shaker/analyzer/export-named/output.md index 1b89af52e955c..fd59b987671af 100644 --- a/turbopack/crates/turbopack-ecmascript/tests/tree-shaker/analyzer/export-named/output.md +++ b/turbopack/crates/turbopack-ecmascript/tests/tree-shaker/analyzer/export-named/output.md @@ -60,11 +60,9 @@ graph TD # Final ```mermaid graph TD - N0["Items: [ItemId(0, ImportOfModule)]"]; + N0["Items: [ItemId(0, ImportOfModule), ItemId(Export(("__TURBOPACK__reexport__cat__", #3), "fakeCat"))]"]; N1["Items: [ItemId(0, ImportBinding(0))]"]; - N2["Items: [ItemId(Export(("__TURBOPACK__reexport__cat__", #3), "fakeCat"))]"]; - N2 --> N1; - N1 --> N0; + N0 --> N1; ``` # Entrypoints @@ -73,8 +71,8 @@ graph TD ModuleEvaluation: 0, Export( "fakeCat", - ): 2, - Exports: 3, + ): 0, + Exports: 2, } ``` @@ -82,7 +80,11 @@ graph TD # Modules (dev) ## Part 0 ```js +import { a as __TURBOPACK__reexport__cat__ } from "__TURBOPACK_PART__" assert { + __turbopack_part__: -1 +}; import "./lib"; +export { __TURBOPACK__reexport__cat__ as fakeCat }; export { }; ``` @@ -99,14 +101,6 @@ export { __TURBOPACK__reexport__cat__ as a } from "__TURBOPACK_VAR__" assert { ``` ## Part 2 ```js -import { a as __TURBOPACK__reexport__cat__ } from "__TURBOPACK_PART__" assert { - __turbopack_part__: -1 -}; -export { __TURBOPACK__reexport__cat__ as fakeCat }; - -``` -## Part 3 -```js export { fakeCat } from "__TURBOPACK_PART__" assert { __turbopack_part__: "export fakeCat" }; @@ -114,7 +108,11 @@ export { fakeCat } from "__TURBOPACK_PART__" assert { ``` ## Merged (module eval) ```js +import { a as __TURBOPACK__reexport__cat__ } from "__TURBOPACK_PART__" assert { + __turbopack_part__: -1 +}; import "./lib"; +export { __TURBOPACK__reexport__cat__ as fakeCat }; export { }; ``` @@ -125,8 +123,8 @@ export { }; ModuleEvaluation: 0, Export( "fakeCat", - ): 2, - Exports: 3, + ): 0, + Exports: 2, } ``` @@ -134,7 +132,11 @@ export { }; # Modules (prod) ## Part 0 ```js +import { a as __TURBOPACK__reexport__cat__ } from "__TURBOPACK_PART__" assert { + __turbopack_part__: -1 +}; import "./lib"; +export { __TURBOPACK__reexport__cat__ as fakeCat }; export { }; ``` @@ -151,14 +153,6 @@ export { __TURBOPACK__reexport__cat__ as a } from "__TURBOPACK_VAR__" assert { ``` ## Part 2 ```js -import { a as __TURBOPACK__reexport__cat__ } from "__TURBOPACK_PART__" assert { - __turbopack_part__: -1 -}; -export { __TURBOPACK__reexport__cat__ as fakeCat }; - -``` -## Part 3 -```js export { fakeCat } from "__TURBOPACK_PART__" assert { __turbopack_part__: "export fakeCat" }; @@ -166,7 +160,11 @@ export { fakeCat } from "__TURBOPACK_PART__" assert { ``` ## Merged (module eval) ```js +import { a as __TURBOPACK__reexport__cat__ } from "__TURBOPACK_PART__" assert { + __turbopack_part__: -1 +}; import "./lib"; +export { __TURBOPACK__reexport__cat__ as fakeCat }; export { }; ``` diff --git a/turbopack/crates/turbopack-ecmascript/tests/tree-shaker/analyzer/next-response/output.md b/turbopack/crates/turbopack-ecmascript/tests/tree-shaker/analyzer/next-response/output.md index 6c49eab549123..de19be8b36db7 100644 --- a/turbopack/crates/turbopack-ecmascript/tests/tree-shaker/analyzer/next-response/output.md +++ b/turbopack/crates/turbopack-ecmascript/tests/tree-shaker/analyzer/next-response/output.md @@ -401,45 +401,29 @@ graph TD # Final ```mermaid graph TD - N0["Items: [ItemId(0, ImportOfModule)]"]; + N0["Items: [ItemId(0, ImportOfModule), ItemId(1, ImportOfModule), ItemId(2, ImportOfModule), ItemId(3, ImportOfModule), ItemId(4, ImportOfModule), ItemId(5, VarDeclarator(0)), ItemId(6, VarDeclarator(0)), ItemId(7, Normal), ItemId(8, Normal), ItemId(Export(("NextResponse", #2), "NextResponse"))]"]; N1["Items: [ItemId(0, ImportBinding(0))]"]; - N2["Items: [ItemId(1, ImportOfModule)]"]; - N3["Items: [ItemId(1, ImportBinding(0))]"]; - N4["Items: [ItemId(2, ImportOfModule)]"]; - N5["Items: [ItemId(2, ImportBinding(0))]"]; - N6["Items: [ItemId(2, ImportBinding(1))]"]; - N7["Items: [ItemId(3, ImportOfModule)]"]; - N8["Items: [ItemId(3, ImportBinding(0))]"]; - N9["Items: [ItemId(4, ImportOfModule)]"]; - N10["Items: [ItemId(4, ImportBinding(0))]"]; - N11["Items: [ItemId(5, VarDeclarator(0)), ItemId(6, VarDeclarator(0)), ItemId(7, Normal), ItemId(8, Normal), ItemId(Export(("NextResponse", #2), "NextResponse"))]"]; - N2 --> N0; - N4 --> N2; - N7 --> N4; - N9 --> N7; - N11 --> N9; - N8 --> N7; - N11 --> N6; - N6 --> N4; - N11 --> N5; - N11 --> N3; - N3 --> N2; - N11 --> N8; - N5 --> N4; - N11 --> N1; - N11 --> N10; - N10 --> N9; - N1 --> N0; + N2["Items: [ItemId(1, ImportBinding(0))]"]; + N3["Items: [ItemId(2, ImportBinding(0))]"]; + N4["Items: [ItemId(2, ImportBinding(1))]"]; + N5["Items: [ItemId(3, ImportBinding(0))]"]; + N6["Items: [ItemId(4, ImportBinding(0))]"]; + N0 --> N3; + N0 --> N6; + N0 --> N5; + N0 --> N4; + N0 --> N1; + N0 --> N2; ``` # Entrypoints ``` { - ModuleEvaluation: 11, + ModuleEvaluation: 0, Export( "NextResponse", - ): 11, - Exports: 12, + ): 0, + Exports: 7, } ``` @@ -447,136 +431,17 @@ graph TD # Modules (dev) ## Part 0 ```js -import '../../web/spec-extension/cookies'; - -``` -## Part 1 -```js -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 0 -}; -import { stringifyCookie } from '../../web/spec-extension/cookies'; -export { stringifyCookie as a } from "__TURBOPACK_VAR__" assert { - __turbopack_var__: true -}; - -``` -## Part 2 -```js -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 0 -}; -import '../next-url'; - -``` -## Part 3 -```js -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 2 -}; -import { NextURL } from '../next-url'; -export { NextURL as b } from "__TURBOPACK_VAR__" assert { - __turbopack_var__: true -}; - -``` -## Part 4 -```js -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 2 -}; -import '../utils'; - -``` -## Part 5 -```js -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 4 -}; -import { toNodeOutgoingHttpHeaders } from '../utils'; -export { toNodeOutgoingHttpHeaders as c } from "__TURBOPACK_VAR__" assert { - __turbopack_var__: true -}; - -``` -## Part 6 -```js -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 4 -}; -import { validateURL } from '../utils'; -export { validateURL as d } from "__TURBOPACK_VAR__" assert { - __turbopack_var__: true -}; - -``` -## Part 7 -```js -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 4 -}; -import './adapters/reflect'; - -``` -## Part 8 -```js -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 7 -}; -import { ReflectAdapter } from './adapters/reflect'; -export { ReflectAdapter as e } from "__TURBOPACK_VAR__" assert { - __turbopack_var__: true -}; - -``` -## Part 9 -```js -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 7 -}; -import './cookies'; - -``` -## Part 10 -```js -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 9 -}; -import { ResponseCookies } from './cookies'; -export { ResponseCookies as f } from "__TURBOPACK_VAR__" assert { - __turbopack_var__: true -}; - -``` -## Part 11 -```js -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 4 -}; import { validateURL } from '../utils'; -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 2 -}; import { NextURL } from '../next-url'; -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 4 -}; import { toNodeOutgoingHttpHeaders } from '../utils'; -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 9 -}; import { ResponseCookies } from './cookies'; -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 0 -}; import { stringifyCookie } from '../../web/spec-extension/cookies'; -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 7 -}; import { ReflectAdapter } from './adapters/reflect'; -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 9 -}; +import '../../web/spec-extension/cookies'; +import '../next-url'; +import '../utils'; +import './adapters/reflect'; +import './cookies'; const INTERNALS = Symbol('internal response'); const REDIRECTS = new Set([ 301, @@ -688,51 +553,107 @@ class NextResponse extends Response { } } export { NextResponse }; -export { INTERNALS as g } from "__TURBOPACK_VAR__" assert { +export { INTERNALS as a } from "__TURBOPACK_VAR__" assert { __turbopack_var__: true }; -export { REDIRECTS as h } from "__TURBOPACK_VAR__" assert { +export { REDIRECTS as b } from "__TURBOPACK_VAR__" assert { __turbopack_var__: true }; -export { handleMiddlewareField as i } from "__TURBOPACK_VAR__" assert { +export { handleMiddlewareField as c } from "__TURBOPACK_VAR__" assert { __turbopack_var__: true }; -export { NextResponse as j } from "__TURBOPACK_VAR__" assert { +export { NextResponse as d } from "__TURBOPACK_VAR__" assert { __turbopack_var__: true }; export { }; ``` -## Part 12 +## Part 1 ```js -export { NextResponse } from "__TURBOPACK_PART__" assert { - __turbopack_part__: "export NextResponse" +import "__TURBOPACK_PART__" assert { + __turbopack_part__: 0 +}; +import { stringifyCookie } from '../../web/spec-extension/cookies'; +export { stringifyCookie as e } from "__TURBOPACK_VAR__" assert { + __turbopack_var__: true }; ``` -## Merged (module eval) +## Part 2 ```js import "__TURBOPACK_PART__" assert { - __turbopack_part__: 4 + __turbopack_part__: 0 }; -import { validateURL } from '../utils'; +import { NextURL } from '../next-url'; +export { NextURL as f } from "__TURBOPACK_VAR__" assert { + __turbopack_var__: true +}; + +``` +## Part 3 +```js import "__TURBOPACK_PART__" assert { - __turbopack_part__: 2 + __turbopack_part__: 0 }; -import { NextURL } from '../next-url'; import { toNodeOutgoingHttpHeaders } from '../utils'; +export { toNodeOutgoingHttpHeaders as g } from "__TURBOPACK_VAR__" assert { + __turbopack_var__: true +}; + +``` +## Part 4 +```js import "__TURBOPACK_PART__" assert { - __turbopack_part__: 9 + __turbopack_part__: 0 }; -import { ResponseCookies } from './cookies'; +import { validateURL } from '../utils'; +export { validateURL as h } from "__TURBOPACK_VAR__" assert { + __turbopack_var__: true +}; + +``` +## Part 5 +```js import "__TURBOPACK_PART__" assert { __turbopack_part__: 0 }; -import { stringifyCookie } from '../../web/spec-extension/cookies'; +import { ReflectAdapter } from './adapters/reflect'; +export { ReflectAdapter as i } from "__TURBOPACK_VAR__" assert { + __turbopack_var__: true +}; + +``` +## Part 6 +```js import "__TURBOPACK_PART__" assert { - __turbopack_part__: 7 + __turbopack_part__: 0 +}; +import { ResponseCookies } from './cookies'; +export { ResponseCookies as j } from "__TURBOPACK_VAR__" assert { + __turbopack_var__: true }; + +``` +## Part 7 +```js +export { NextResponse } from "__TURBOPACK_PART__" assert { + __turbopack_part__: "export NextResponse" +}; + +``` +## Merged (module eval) +```js +import { validateURL } from '../utils'; +import { NextURL } from '../next-url'; +import { toNodeOutgoingHttpHeaders } from '../utils'; +import { ResponseCookies } from './cookies'; +import { stringifyCookie } from '../../web/spec-extension/cookies'; import { ReflectAdapter } from './adapters/reflect'; +import '../../web/spec-extension/cookies'; +import '../next-url'; +import '../utils'; +import './adapters/reflect'; +import './cookies'; const INTERNALS = Symbol('internal response'); const REDIRECTS = new Set([ 301, @@ -844,16 +765,16 @@ class NextResponse extends Response { } } export { NextResponse }; -export { INTERNALS as g } from "__TURBOPACK_VAR__" assert { +export { INTERNALS as a } from "__TURBOPACK_VAR__" assert { __turbopack_var__: true }; -export { REDIRECTS as h } from "__TURBOPACK_VAR__" assert { +export { REDIRECTS as b } from "__TURBOPACK_VAR__" assert { __turbopack_var__: true }; -export { handleMiddlewareField as i } from "__TURBOPACK_VAR__" assert { +export { handleMiddlewareField as c } from "__TURBOPACK_VAR__" assert { __turbopack_var__: true }; -export { NextResponse as j } from "__TURBOPACK_VAR__" assert { +export { NextResponse as d } from "__TURBOPACK_VAR__" assert { __turbopack_var__: true }; export { }; @@ -863,11 +784,11 @@ export { }; ``` { - ModuleEvaluation: 11, + ModuleEvaluation: 0, Export( "NextResponse", - ): 11, - Exports: 12, + ): 0, + Exports: 7, } ``` @@ -875,136 +796,17 @@ export { }; # Modules (prod) ## Part 0 ```js -import '../../web/spec-extension/cookies'; - -``` -## Part 1 -```js -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 0 -}; -import { stringifyCookie } from '../../web/spec-extension/cookies'; -export { stringifyCookie as a } from "__TURBOPACK_VAR__" assert { - __turbopack_var__: true -}; - -``` -## Part 2 -```js -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 0 -}; -import '../next-url'; - -``` -## Part 3 -```js -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 2 -}; -import { NextURL } from '../next-url'; -export { NextURL as b } from "__TURBOPACK_VAR__" assert { - __turbopack_var__: true -}; - -``` -## Part 4 -```js -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 2 -}; -import '../utils'; - -``` -## Part 5 -```js -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 4 -}; -import { toNodeOutgoingHttpHeaders } from '../utils'; -export { toNodeOutgoingHttpHeaders as c } from "__TURBOPACK_VAR__" assert { - __turbopack_var__: true -}; - -``` -## Part 6 -```js -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 4 -}; -import { validateURL } from '../utils'; -export { validateURL as d } from "__TURBOPACK_VAR__" assert { - __turbopack_var__: true -}; - -``` -## Part 7 -```js -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 4 -}; -import './adapters/reflect'; - -``` -## Part 8 -```js -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 7 -}; -import { ReflectAdapter } from './adapters/reflect'; -export { ReflectAdapter as e } from "__TURBOPACK_VAR__" assert { - __turbopack_var__: true -}; - -``` -## Part 9 -```js -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 7 -}; -import './cookies'; - -``` -## Part 10 -```js -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 9 -}; -import { ResponseCookies } from './cookies'; -export { ResponseCookies as f } from "__TURBOPACK_VAR__" assert { - __turbopack_var__: true -}; - -``` -## Part 11 -```js -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 4 -}; import { validateURL } from '../utils'; -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 2 -}; import { NextURL } from '../next-url'; -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 4 -}; import { toNodeOutgoingHttpHeaders } from '../utils'; -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 9 -}; import { ResponseCookies } from './cookies'; -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 0 -}; import { stringifyCookie } from '../../web/spec-extension/cookies'; -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 7 -}; import { ReflectAdapter } from './adapters/reflect'; -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 9 -}; +import '../../web/spec-extension/cookies'; +import '../next-url'; +import '../utils'; +import './adapters/reflect'; +import './cookies'; const INTERNALS = Symbol('internal response'); const REDIRECTS = new Set([ 301, @@ -1116,51 +918,107 @@ class NextResponse extends Response { } } export { NextResponse }; -export { INTERNALS as g } from "__TURBOPACK_VAR__" assert { +export { INTERNALS as a } from "__TURBOPACK_VAR__" assert { __turbopack_var__: true }; -export { REDIRECTS as h } from "__TURBOPACK_VAR__" assert { +export { REDIRECTS as b } from "__TURBOPACK_VAR__" assert { __turbopack_var__: true }; -export { handleMiddlewareField as i } from "__TURBOPACK_VAR__" assert { +export { handleMiddlewareField as c } from "__TURBOPACK_VAR__" assert { __turbopack_var__: true }; -export { NextResponse as j } from "__TURBOPACK_VAR__" assert { +export { NextResponse as d } from "__TURBOPACK_VAR__" assert { __turbopack_var__: true }; export { }; ``` -## Part 12 +## Part 1 ```js -export { NextResponse } from "__TURBOPACK_PART__" assert { - __turbopack_part__: "export NextResponse" +import "__TURBOPACK_PART__" assert { + __turbopack_part__: 0 +}; +import { stringifyCookie } from '../../web/spec-extension/cookies'; +export { stringifyCookie as e } from "__TURBOPACK_VAR__" assert { + __turbopack_var__: true }; ``` -## Merged (module eval) +## Part 2 ```js import "__TURBOPACK_PART__" assert { - __turbopack_part__: 4 + __turbopack_part__: 0 }; -import { validateURL } from '../utils'; +import { NextURL } from '../next-url'; +export { NextURL as f } from "__TURBOPACK_VAR__" assert { + __turbopack_var__: true +}; + +``` +## Part 3 +```js import "__TURBOPACK_PART__" assert { - __turbopack_part__: 2 + __turbopack_part__: 0 }; -import { NextURL } from '../next-url'; import { toNodeOutgoingHttpHeaders } from '../utils'; +export { toNodeOutgoingHttpHeaders as g } from "__TURBOPACK_VAR__" assert { + __turbopack_var__: true +}; + +``` +## Part 4 +```js import "__TURBOPACK_PART__" assert { - __turbopack_part__: 9 + __turbopack_part__: 0 }; -import { ResponseCookies } from './cookies'; +import { validateURL } from '../utils'; +export { validateURL as h } from "__TURBOPACK_VAR__" assert { + __turbopack_var__: true +}; + +``` +## Part 5 +```js import "__TURBOPACK_PART__" assert { __turbopack_part__: 0 }; -import { stringifyCookie } from '../../web/spec-extension/cookies'; +import { ReflectAdapter } from './adapters/reflect'; +export { ReflectAdapter as i } from "__TURBOPACK_VAR__" assert { + __turbopack_var__: true +}; + +``` +## Part 6 +```js import "__TURBOPACK_PART__" assert { - __turbopack_part__: 7 + __turbopack_part__: 0 +}; +import { ResponseCookies } from './cookies'; +export { ResponseCookies as j } from "__TURBOPACK_VAR__" assert { + __turbopack_var__: true }; + +``` +## Part 7 +```js +export { NextResponse } from "__TURBOPACK_PART__" assert { + __turbopack_part__: "export NextResponse" +}; + +``` +## Merged (module eval) +```js +import { validateURL } from '../utils'; +import { NextURL } from '../next-url'; +import { toNodeOutgoingHttpHeaders } from '../utils'; +import { ResponseCookies } from './cookies'; +import { stringifyCookie } from '../../web/spec-extension/cookies'; import { ReflectAdapter } from './adapters/reflect'; +import '../../web/spec-extension/cookies'; +import '../next-url'; +import '../utils'; +import './adapters/reflect'; +import './cookies'; const INTERNALS = Symbol('internal response'); const REDIRECTS = new Set([ 301, @@ -1272,16 +1130,16 @@ class NextResponse extends Response { } } export { NextResponse }; -export { INTERNALS as g } from "__TURBOPACK_VAR__" assert { +export { INTERNALS as a } from "__TURBOPACK_VAR__" assert { __turbopack_var__: true }; -export { REDIRECTS as h } from "__TURBOPACK_VAR__" assert { +export { REDIRECTS as b } from "__TURBOPACK_VAR__" assert { __turbopack_var__: true }; -export { handleMiddlewareField as i } from "__TURBOPACK_VAR__" assert { +export { handleMiddlewareField as c } from "__TURBOPACK_VAR__" assert { __turbopack_var__: true }; -export { NextResponse as j } from "__TURBOPACK_VAR__" assert { +export { NextResponse as d } from "__TURBOPACK_VAR__" assert { __turbopack_var__: true }; export { }; diff --git a/turbopack/crates/turbopack-ecmascript/tests/tree-shaker/analyzer/route-handler/output.md b/turbopack/crates/turbopack-ecmascript/tests/tree-shaker/analyzer/route-handler/output.md index a8c1be181341e..5abcf8e20296b 100644 --- a/turbopack/crates/turbopack-ecmascript/tests/tree-shaker/analyzer/route-handler/output.md +++ b/turbopack/crates/turbopack-ecmascript/tests/tree-shaker/analyzer/route-handler/output.md @@ -107,12 +107,10 @@ graph TD # Final ```mermaid graph TD - N0["Items: [ItemId(0, ImportOfModule)]"]; + N0["Items: [ItemId(0, ImportOfModule), ItemId(1, VarDeclarator(0)), ItemId(Export(("GET", #2), "GET"))]"]; N1["Items: [ItemId(0, ImportBinding(0))]"]; - N2["Items: [ItemId(1, VarDeclarator(0)), ItemId(Export(("GET", #2), "GET"))]"]; - N3["Items: [ItemId(2, VarDeclarator(0)), ItemId(Export(("runtime", #2), "runtime"))]"]; - N2 --> N1; - N1 --> N0; + N2["Items: [ItemId(2, VarDeclarator(0)), ItemId(Export(("runtime", #2), "runtime"))]"]; + N0 --> N1; ``` # Entrypoints @@ -121,11 +119,11 @@ graph TD ModuleEvaluation: 0, Export( "GET", - ): 2, + ): 0, Export( "runtime", - ): 3, - Exports: 4, + ): 2, + Exports: 3, } ``` @@ -133,39 +131,32 @@ graph TD # Modules (dev) ## Part 0 ```js +import { NextResponse } from "next/server"; import "next/server"; -export { }; - -``` -## Part 1 -```js -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 0 +const GET = (req)=>{ + return NextResponse.json({ + pathname: req.nextUrl.pathname + }); }; -import { NextResponse } from "next/server"; -export { NextResponse as a } from "__TURBOPACK_VAR__" assert { +export { GET }; +export { GET as a } from "__TURBOPACK_VAR__" assert { __turbopack_var__: true }; +export { }; ``` -## Part 2 +## Part 1 ```js import "__TURBOPACK_PART__" assert { __turbopack_part__: 0 }; import { NextResponse } from "next/server"; -const GET = (req)=>{ - return NextResponse.json({ - pathname: req.nextUrl.pathname - }); -}; -export { GET }; -export { GET as b } from "__TURBOPACK_VAR__" assert { +export { NextResponse as b } from "__TURBOPACK_VAR__" assert { __turbopack_var__: true }; ``` -## Part 3 +## Part 2 ```js const runtime = "edge"; export { runtime }; @@ -174,7 +165,7 @@ export { runtime as c } from "__TURBOPACK_VAR__" assert { }; ``` -## Part 4 +## Part 3 ```js export { GET } from "__TURBOPACK_PART__" assert { __turbopack_part__: "export GET" @@ -186,7 +177,17 @@ export { runtime } from "__TURBOPACK_PART__" assert { ``` ## Merged (module eval) ```js +import { NextResponse } from "next/server"; import "next/server"; +const GET = (req)=>{ + return NextResponse.json({ + pathname: req.nextUrl.pathname + }); +}; +export { GET }; +export { GET as a } from "__TURBOPACK_VAR__" assert { + __turbopack_var__: true +}; export { }; ``` @@ -197,11 +198,11 @@ export { }; ModuleEvaluation: 0, Export( "GET", - ): 2, + ): 0, Export( "runtime", - ): 3, - Exports: 4, + ): 2, + Exports: 3, } ``` @@ -209,39 +210,32 @@ export { }; # Modules (prod) ## Part 0 ```js +import { NextResponse } from "next/server"; import "next/server"; -export { }; - -``` -## Part 1 -```js -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 0 +const GET = (req)=>{ + return NextResponse.json({ + pathname: req.nextUrl.pathname + }); }; -import { NextResponse } from "next/server"; -export { NextResponse as a } from "__TURBOPACK_VAR__" assert { +export { GET }; +export { GET as a } from "__TURBOPACK_VAR__" assert { __turbopack_var__: true }; +export { }; ``` -## Part 2 +## Part 1 ```js import "__TURBOPACK_PART__" assert { __turbopack_part__: 0 }; import { NextResponse } from "next/server"; -const GET = (req)=>{ - return NextResponse.json({ - pathname: req.nextUrl.pathname - }); -}; -export { GET }; -export { GET as b } from "__TURBOPACK_VAR__" assert { +export { NextResponse as b } from "__TURBOPACK_VAR__" assert { __turbopack_var__: true }; ``` -## Part 3 +## Part 2 ```js const runtime = "edge"; export { runtime }; @@ -250,7 +244,7 @@ export { runtime as c } from "__TURBOPACK_VAR__" assert { }; ``` -## Part 4 +## Part 3 ```js export { GET } from "__TURBOPACK_PART__" assert { __turbopack_part__: "export GET" @@ -262,7 +256,17 @@ export { runtime } from "__TURBOPACK_PART__" assert { ``` ## Merged (module eval) ```js +import { NextResponse } from "next/server"; import "next/server"; +const GET = (req)=>{ + return NextResponse.json({ + pathname: req.nextUrl.pathname + }); +}; +export { GET }; +export { GET as a } from "__TURBOPACK_VAR__" assert { + __turbopack_var__: true +}; export { }; ``` diff --git a/turbopack/crates/turbopack-ecmascript/tests/tree-shaker/analyzer/typeof-1/output.md b/turbopack/crates/turbopack-ecmascript/tests/tree-shaker/analyzer/typeof-1/output.md index 0b081987e3c6d..a5fa118606784 100644 --- a/turbopack/crates/turbopack-ecmascript/tests/tree-shaker/analyzer/typeof-1/output.md +++ b/turbopack/crates/turbopack-ecmascript/tests/tree-shaker/analyzer/typeof-1/output.md @@ -152,31 +152,23 @@ graph TD # Final ```mermaid graph TD - N0["Items: [ItemId(0, ImportOfModule)]"]; + N0["Items: [ItemId(0, ImportOfModule), ItemId(1, ImportOfModule), ItemId(2, ImportOfModule), ItemId(3, Normal), ItemId(Export(("GET", #2), "GET"))]"]; N1["Items: [ItemId(0, ImportBinding(0))]"]; - N2["Items: [ItemId(1, ImportOfModule)]"]; - N3["Items: [ItemId(1, ImportBinding(0))]"]; - N4["Items: [ItemId(2, ImportOfModule)]"]; - N5["Items: [ItemId(2, ImportBinding(0))]"]; - N6["Items: [ItemId(3, Normal), ItemId(Export(("GET", #2), "GET"))]"]; - N2 --> N0; - N4 --> N2; - N5 --> N4; - N6 --> N5; - N6 --> N3; - N6 --> N1; - N1 --> N0; - N3 --> N2; + N2["Items: [ItemId(1, ImportBinding(0))]"]; + N3["Items: [ItemId(2, ImportBinding(0))]"]; + N0 --> N1; + N0 --> N3; + N0 --> N2; ``` # Entrypoints ``` { - ModuleEvaluation: 4, + ModuleEvaluation: 0, Export( "GET", - ): 6, - Exports: 7, + ): 0, + Exports: 4, } ``` @@ -184,7 +176,23 @@ graph TD # Modules (dev) ## Part 0 ```js +import { MyModuleClientComponent } from 'my-module/MyModuleClientComponent'; +import { NextResponse } from 'next/server'; +import { ClientComponent } from '../../ClientComponent'; import 'next/server'; +import '../../ClientComponent'; +import 'my-module/MyModuleClientComponent'; +function GET() { + return NextResponse.json({ + clientComponent: typeof ClientComponent, + myModuleClientComponent: typeof MyModuleClientComponent + }); +} +export { GET }; +export { GET as a } from "__TURBOPACK_VAR__" assert { + __turbopack_var__: true +}; +export { }; ``` ## Part 1 @@ -193,7 +201,7 @@ import "__TURBOPACK_PART__" assert { __turbopack_part__: 0 }; import { NextResponse } from 'next/server'; -export { NextResponse as a } from "__TURBOPACK_VAR__" assert { +export { NextResponse as b } from "__TURBOPACK_VAR__" assert { __turbopack_var__: true }; @@ -203,54 +211,38 @@ export { NextResponse as a } from "__TURBOPACK_VAR__" assert { import "__TURBOPACK_PART__" assert { __turbopack_part__: 0 }; -import '../../ClientComponent'; +import { ClientComponent } from '../../ClientComponent'; +export { ClientComponent as c } from "__TURBOPACK_VAR__" assert { + __turbopack_var__: true +}; ``` ## Part 3 ```js import "__TURBOPACK_PART__" assert { - __turbopack_part__: 2 + __turbopack_part__: 0 }; -import { ClientComponent } from '../../ClientComponent'; -export { ClientComponent as b } from "__TURBOPACK_VAR__" assert { +import { MyModuleClientComponent } from 'my-module/MyModuleClientComponent'; +export { MyModuleClientComponent as d } from "__TURBOPACK_VAR__" assert { __turbopack_var__: true }; ``` ## Part 4 ```js -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 2 -}; -import 'my-module/MyModuleClientComponent'; -export { }; - -``` -## Part 5 -```js -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 4 -}; -import { MyModuleClientComponent } from 'my-module/MyModuleClientComponent'; -export { MyModuleClientComponent as c } from "__TURBOPACK_VAR__" assert { - __turbopack_var__: true +export { GET } from "__TURBOPACK_PART__" assert { + __turbopack_part__: "export GET" }; ``` -## Part 6 +## Merged (module eval) ```js -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 4 -}; import { MyModuleClientComponent } from 'my-module/MyModuleClientComponent'; -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 0 -}; import { NextResponse } from 'next/server'; -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 2 -}; import { ClientComponent } from '../../ClientComponent'; +import 'next/server'; +import '../../ClientComponent'; +import 'my-module/MyModuleClientComponent'; function GET() { return NextResponse.json({ clientComponent: typeof ClientComponent, @@ -258,24 +250,9 @@ function GET() { }); } export { GET }; -export { GET as d } from "__TURBOPACK_VAR__" assert { +export { GET as a } from "__TURBOPACK_VAR__" assert { __turbopack_var__: true }; - -``` -## Part 7 -```js -export { GET } from "__TURBOPACK_PART__" assert { - __turbopack_part__: "export GET" -}; - -``` -## Merged (module eval) -```js -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 2 -}; -import 'my-module/MyModuleClientComponent'; export { }; ``` @@ -283,11 +260,11 @@ export { }; ``` { - ModuleEvaluation: 4, + ModuleEvaluation: 0, Export( "GET", - ): 6, - Exports: 7, + ): 0, + Exports: 4, } ``` @@ -295,7 +272,23 @@ export { }; # Modules (prod) ## Part 0 ```js +import { MyModuleClientComponent } from 'my-module/MyModuleClientComponent'; +import { NextResponse } from 'next/server'; +import { ClientComponent } from '../../ClientComponent'; import 'next/server'; +import '../../ClientComponent'; +import 'my-module/MyModuleClientComponent'; +function GET() { + return NextResponse.json({ + clientComponent: typeof ClientComponent, + myModuleClientComponent: typeof MyModuleClientComponent + }); +} +export { GET }; +export { GET as a } from "__TURBOPACK_VAR__" assert { + __turbopack_var__: true +}; +export { }; ``` ## Part 1 @@ -304,7 +297,7 @@ import "__TURBOPACK_PART__" assert { __turbopack_part__: 0 }; import { NextResponse } from 'next/server'; -export { NextResponse as a } from "__TURBOPACK_VAR__" assert { +export { NextResponse as b } from "__TURBOPACK_VAR__" assert { __turbopack_var__: true }; @@ -314,54 +307,38 @@ export { NextResponse as a } from "__TURBOPACK_VAR__" assert { import "__TURBOPACK_PART__" assert { __turbopack_part__: 0 }; -import '../../ClientComponent'; +import { ClientComponent } from '../../ClientComponent'; +export { ClientComponent as c } from "__TURBOPACK_VAR__" assert { + __turbopack_var__: true +}; ``` ## Part 3 ```js import "__TURBOPACK_PART__" assert { - __turbopack_part__: 2 + __turbopack_part__: 0 }; -import { ClientComponent } from '../../ClientComponent'; -export { ClientComponent as b } from "__TURBOPACK_VAR__" assert { +import { MyModuleClientComponent } from 'my-module/MyModuleClientComponent'; +export { MyModuleClientComponent as d } from "__TURBOPACK_VAR__" assert { __turbopack_var__: true }; ``` ## Part 4 ```js -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 2 -}; -import 'my-module/MyModuleClientComponent'; -export { }; - -``` -## Part 5 -```js -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 4 -}; -import { MyModuleClientComponent } from 'my-module/MyModuleClientComponent'; -export { MyModuleClientComponent as c } from "__TURBOPACK_VAR__" assert { - __turbopack_var__: true +export { GET } from "__TURBOPACK_PART__" assert { + __turbopack_part__: "export GET" }; ``` -## Part 6 +## Merged (module eval) ```js -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 4 -}; import { MyModuleClientComponent } from 'my-module/MyModuleClientComponent'; -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 0 -}; import { NextResponse } from 'next/server'; -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 2 -}; import { ClientComponent } from '../../ClientComponent'; +import 'next/server'; +import '../../ClientComponent'; +import 'my-module/MyModuleClientComponent'; function GET() { return NextResponse.json({ clientComponent: typeof ClientComponent, @@ -369,24 +346,9 @@ function GET() { }); } export { GET }; -export { GET as d } from "__TURBOPACK_VAR__" assert { +export { GET as a } from "__TURBOPACK_VAR__" assert { __turbopack_var__: true }; - -``` -## Part 7 -```js -export { GET } from "__TURBOPACK_PART__" assert { - __turbopack_part__: "export GET" -}; - -``` -## Merged (module eval) -```js -import "__TURBOPACK_PART__" assert { - __turbopack_part__: 2 -}; -import 'my-module/MyModuleClientComponent'; export { }; ``` diff --git a/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-named/output/4c35f_tests_snapshot_basic-tree-shake_export-named_input_index_3fbfd0b0.js b/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-named/output/4c35f_tests_snapshot_basic-tree-shake_export-named_input_index_1e072b0e.js similarity index 79% rename from turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-named/output/4c35f_tests_snapshot_basic-tree-shake_export-named_input_index_3fbfd0b0.js rename to turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-named/output/4c35f_tests_snapshot_basic-tree-shake_export-named_input_index_1e072b0e.js index 04d1bb2c58fae..1ffb55e085d1d 100644 --- a/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-named/output/4c35f_tests_snapshot_basic-tree-shake_export-named_input_index_3fbfd0b0.js +++ b/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-named/output/4c35f_tests_snapshot_basic-tree-shake_export-named_input_index_1e072b0e.js @@ -1,6 +1,6 @@ (globalThis.TURBOPACK = globalThis.TURBOPACK || []).push([ - "output/4c35f_tests_snapshot_basic-tree-shake_export-named_input_index_3fbfd0b0.js", + "output/4c35f_tests_snapshot_basic-tree-shake_export-named_input_index_1e072b0e.js", {}, - {"otherChunks":["output/b1abf_turbopack-tests_tests_snapshot_basic-tree-shake_export-named_input_3703679a._.js"],"runtimeModuleIds":["[project]/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-named/input/index.js [test] (ecmascript)"]} + {"otherChunks":["output/b1abf_turbopack-tests_tests_snapshot_basic-tree-shake_export-named_input_a51e2a1a._.js"],"runtimeModuleIds":["[project]/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-named/input/index.js [test] (ecmascript)"]} ]); // Dummy runtime \ No newline at end of file diff --git a/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-named/output/4c35f_tests_snapshot_basic-tree-shake_export-named_input_index_3fbfd0b0.js.map b/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-named/output/4c35f_tests_snapshot_basic-tree-shake_export-named_input_index_1e072b0e.js.map similarity index 100% rename from turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-named/output/4c35f_tests_snapshot_basic-tree-shake_export-named_input_index_3fbfd0b0.js.map rename to turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-named/output/4c35f_tests_snapshot_basic-tree-shake_export-named_input_index_1e072b0e.js.map diff --git a/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-named/output/b1abf_turbopack-tests_tests_snapshot_basic-tree-shake_export-named_input_3703679a._.js b/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-named/output/b1abf_turbopack-tests_tests_snapshot_basic-tree-shake_export-named_input_a51e2a1a._.js similarity index 87% rename from turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-named/output/b1abf_turbopack-tests_tests_snapshot_basic-tree-shake_export-named_input_3703679a._.js rename to turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-named/output/b1abf_turbopack-tests_tests_snapshot_basic-tree-shake_export-named_input_a51e2a1a._.js index d5ec0caba0f4e..908652ec10c1f 100644 --- a/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-named/output/b1abf_turbopack-tests_tests_snapshot_basic-tree-shake_export-named_input_3703679a._.js +++ b/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-named/output/b1abf_turbopack-tests_tests_snapshot_basic-tree-shake_export-named_input_a51e2a1a._.js @@ -1,4 +1,4 @@ -(globalThis.TURBOPACK = globalThis.TURBOPACK || []).push(["output/b1abf_turbopack-tests_tests_snapshot_basic-tree-shake_export-named_input_3703679a._.js", { +(globalThis.TURBOPACK = globalThis.TURBOPACK || []).push(["output/b1abf_turbopack-tests_tests_snapshot_basic-tree-shake_export-named_input_a51e2a1a._.js", { "[project]/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-named/input/lib.js [test] (ecmascript) ": ((__turbopack_context__) => { "use strict"; @@ -59,18 +59,13 @@ console.log(__TURBOPACK__imported__module__$5b$project$5d2f$turbopack$2f$crates$ var { g: global, __dirname } = __turbopack_context__; { -__turbopack_context__.s({}); +__turbopack_context__.s({ + "fakeCat": (()=>__TURBOPACK__imported__module__$5b$project$5d2f$turbopack$2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$basic$2d$tree$2d$shake$2f$export$2d$named$2f$input$2f$module$2e$js__$5b$test$5d$__$28$ecmascript$29$__$3c$internal__part__1$3e$__["a"]) +}); +var __TURBOPACK__imported__module__$5b$project$5d2f$turbopack$2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$basic$2d$tree$2d$shake$2f$export$2d$named$2f$input$2f$module$2e$js__$5b$test$5d$__$28$ecmascript$29$__$3c$internal__part__1$3e$__ = __turbopack_context__.i("[project]/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-named/input/module.js [test] (ecmascript) "); var __TURBOPACK__imported__module__$5b$project$5d2f$turbopack$2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$basic$2d$tree$2d$shake$2f$export$2d$named$2f$input$2f$lib$2e$js__$5b$test$5d$__$28$ecmascript$29$__$3c$internal__part__2$3e$__ = __turbopack_context__.i("[project]/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-named/input/lib.js [test] (ecmascript) "); ; ; -}}), -"[project]/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-named/input/module.js [test] (ecmascript) ": ((__turbopack_context__) => { -"use strict"; - -var { g: global, __dirname } = __turbopack_context__; -{ -__turbopack_context__.s({}); -var __TURBOPACK__imported__module__$5b$project$5d2f$turbopack$2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$basic$2d$tree$2d$shake$2f$export$2d$named$2f$input$2f$lib$2e$js__$5b$test$5d$__$28$ecmascript$29$__$3c$internal__part__2$3e$__ = __turbopack_context__.i("[project]/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-named/input/lib.js [test] (ecmascript) "); ; ; }}), @@ -118,7 +113,22 @@ var __TURBOPACK__imported__module__$5b$project$5d2f$turbopack$2f$crates$2f$turbo ; ; }}), -"[project]/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-named/input/module.js [test] (ecmascript) ": ((__turbopack_context__) => { +"[project]/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-named/input/module.js [test] (ecmascript) ": ((__turbopack_context__) => { +"use strict"; + +var { g: global, __dirname } = __turbopack_context__; +{ +__turbopack_context__.s({ + "fakeCat": (()=>__TURBOPACK__imported__module__$5b$project$5d2f$turbopack$2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$basic$2d$tree$2d$shake$2f$export$2d$named$2f$input$2f$module$2e$js__$5b$test$5d$__$28$ecmascript$29$__$3c$internal__part__1$3e$__["a"]) +}); +var __TURBOPACK__imported__module__$5b$project$5d2f$turbopack$2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$basic$2d$tree$2d$shake$2f$export$2d$named$2f$input$2f$module$2e$js__$5b$test$5d$__$28$ecmascript$29$__$3c$internal__part__1$3e$__ = __turbopack_context__.i("[project]/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-named/input/module.js [test] (ecmascript) "); +var __TURBOPACK__imported__module__$5b$project$5d2f$turbopack$2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$basic$2d$tree$2d$shake$2f$export$2d$named$2f$input$2f$lib$2e$js__$5b$test$5d$__$28$ecmascript$29$__$3c$internal__part__2$3e$__ = __turbopack_context__.i("[project]/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-named/input/lib.js [test] (ecmascript) "); +; +; +; +; +}}), +"[project]/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-named/input/module.js [test] (ecmascript) ": ((__turbopack_context__) => { "use strict"; var { g: global, __dirname } = __turbopack_context__; @@ -127,6 +137,9 @@ __turbopack_context__.s({ "fakeCat": (()=>__TURBOPACK__imported__module__$5b$project$5d2f$turbopack$2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$basic$2d$tree$2d$shake$2f$export$2d$named$2f$input$2f$module$2e$js__$5b$test$5d$__$28$ecmascript$29$__$3c$internal__part__1$3e$__["a"]) }); var __TURBOPACK__imported__module__$5b$project$5d2f$turbopack$2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$basic$2d$tree$2d$shake$2f$export$2d$named$2f$input$2f$module$2e$js__$5b$test$5d$__$28$ecmascript$29$__$3c$internal__part__1$3e$__ = __turbopack_context__.i("[project]/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-named/input/module.js [test] (ecmascript) "); +var __TURBOPACK__imported__module__$5b$project$5d2f$turbopack$2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$basic$2d$tree$2d$shake$2f$export$2d$named$2f$input$2f$lib$2e$js__$5b$test$5d$__$28$ecmascript$29$__$3c$internal__part__2$3e$__ = __turbopack_context__.i("[project]/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-named/input/lib.js [test] (ecmascript) "); +; +; ; ; }}), @@ -137,10 +150,9 @@ var { g: global, __dirname } = __turbopack_context__; { __turbopack_context__.s({}); var __TURBOPACK__imported__module__$5b$project$5d2f$turbopack$2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$basic$2d$tree$2d$shake$2f$export$2d$named$2f$input$2f$module$2e$js__$5b$test$5d$__$28$ecmascript$29$__$3c$internal__part__0$3e$__ = __turbopack_context__.i("[project]/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-named/input/module.js [test] (ecmascript) "); -var __TURBOPACK__imported__module__$5b$project$5d2f$turbopack$2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$basic$2d$tree$2d$shake$2f$export$2d$named$2f$input$2f$module$2e$js__$5b$test$5d$__$28$ecmascript$29$__$3c$internal__part__2$3e$__ = __turbopack_context__.i("[project]/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-named/input/module.js [test] (ecmascript) "); ; -console.log(__TURBOPACK__imported__module__$5b$project$5d2f$turbopack$2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$basic$2d$tree$2d$shake$2f$export$2d$named$2f$input$2f$module$2e$js__$5b$test$5d$__$28$ecmascript$29$__$3c$internal__part__2$3e$__["fakeCat"]); +console.log(__TURBOPACK__imported__module__$5b$project$5d2f$turbopack$2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$basic$2d$tree$2d$shake$2f$export$2d$named$2f$input$2f$module$2e$js__$5b$test$5d$__$28$ecmascript$29$__$3c$internal__part__0$3e$__["fakeCat"]); }}), }]); -//# sourceMappingURL=b1abf_turbopack-tests_tests_snapshot_basic-tree-shake_export-named_input_3703679a._.js.map \ No newline at end of file +//# sourceMappingURL=b1abf_turbopack-tests_tests_snapshot_basic-tree-shake_export-named_input_a51e2a1a._.js.map \ No newline at end of file diff --git a/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-named/output/b1abf_turbopack-tests_tests_snapshot_basic-tree-shake_export-named_input_3703679a._.js.map b/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-named/output/b1abf_turbopack-tests_tests_snapshot_basic-tree-shake_export-named_input_a51e2a1a._.js.map similarity index 88% rename from turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-named/output/b1abf_turbopack-tests_tests_snapshot_basic-tree-shake_export-named_input_3703679a._.js.map rename to turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-named/output/b1abf_turbopack-tests_tests_snapshot_basic-tree-shake_export-named_input_a51e2a1a._.js.map index feb8b1a033593..0c803898a578a 100644 --- a/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-named/output/b1abf_turbopack-tests_tests_snapshot_basic-tree-shake_export-named_input_3703679a._.js.map +++ b/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-named/output/b1abf_turbopack-tests_tests_snapshot_basic-tree-shake_export-named_input_a51e2a1a._.js.map @@ -7,10 +7,10 @@ {"offset": {"line": 32, "column": 0}, "map": {"version":3,"sources":["turbopack:///[project]/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-named/input/lib.js"],"sourcesContent":["let dog = \"dog\";\n\ndog += \"!\";\n\nconsole.log(dog);\n\nfunction getDog() {\n return dog;\n}\n\ndog += \"!\";\n\nconsole.log(dog);\n\nfunction setDog(newDog) {\n dog = newDog;\n}\n\ndog += \"!\";\n\nconsole.log(dog);\n\nexport const dogRef = {\n initial: dog,\n get: getDog,\n set: setDog,\n};\n\nexport let cat = \"cat\";\n\nexport const initialCat = cat;\n\nexport function getChimera() {\n return cat + dog;\n}\n"],"names":[],"mappings":";;;;;AAkBA,gPAAA,CAAA,IAAG,IAAI"}}, {"offset": {"line": 44, "column": 0}, "map": {"version":3,"sources":["turbopack:///[project]/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-named/input/lib.js"],"sourcesContent":["let dog = \"dog\";\n\ndog += \"!\";\n\nconsole.log(dog);\n\nfunction getDog() {\n return dog;\n}\n\ndog += \"!\";\n\nconsole.log(dog);\n\nfunction setDog(newDog) {\n dog = newDog;\n}\n\ndog += \"!\";\n\nconsole.log(dog);\n\nexport const dogRef = {\n initial: dog,\n get: getDog,\n set: setDog,\n};\n\nexport let cat = \"cat\";\n\nexport const initialCat = cat;\n\nexport function getChimera() {\n return cat + dog;\n}\n"],"names":[],"mappings":";;;;;;;AAIA,QAAQ,GAAG,CAAC,gPAAA,CAAA,IAAG;AAQf,QAAQ,GAAG,CAAC,gPAAA,CAAA,IAAG;AAQf,QAAQ,GAAG,CAAC,gPAAA,CAAA,IAAG"}}, {"offset": {"line": 61, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":""}}, - {"offset": {"line": 71, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":""}}, - {"offset": {"line": 81, "column": 0}, "map": {"version":3,"sources":["turbopack:///[project]/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-named/input/lib.js"],"sourcesContent":["let dog = \"dog\";\n\ndog += \"!\";\n\nconsole.log(dog);\n\nfunction getDog() {\n return dog;\n}\n\ndog += \"!\";\n\nconsole.log(dog);\n\nfunction setDog(newDog) {\n dog = newDog;\n}\n\ndog += \"!\";\n\nconsole.log(dog);\n\nexport const dogRef = {\n initial: dog,\n get: getDog,\n set: setDog,\n};\n\nexport let cat = \"cat\";\n\nexport const initialCat = cat;\n\nexport function getChimera() {\n return cat + dog;\n}\n"],"names":[],"mappings":";;;;;;AA4BO,IAAI,MAAM"}}, - {"offset": {"line": 95, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":""}}, - {"offset": {"line": 107, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":""}}, - {"offset": {"line": 125, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":""}}, - {"offset": {"line": 137, "column": 0}, "map": {"version":3,"sources":["turbopack:///[project]/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-named/input/index.js"],"sourcesContent":["import { fakeCat } from \"./module\";\n\n\nconsole.log(fakeCat)\n"],"names":[],"mappings":";AAAA;AAAA;;AAGA,QAAQ,GAAG,CAAC,mPAAA,CAAA,UAAO"}}] + {"offset": {"line": 76, "column": 0}, "map": {"version":3,"sources":["turbopack:///[project]/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-named/input/lib.js"],"sourcesContent":["let dog = \"dog\";\n\ndog += \"!\";\n\nconsole.log(dog);\n\nfunction getDog() {\n return dog;\n}\n\ndog += \"!\";\n\nconsole.log(dog);\n\nfunction setDog(newDog) {\n dog = newDog;\n}\n\ndog += \"!\";\n\nconsole.log(dog);\n\nexport const dogRef = {\n initial: dog,\n get: getDog,\n set: setDog,\n};\n\nexport let cat = \"cat\";\n\nexport const initialCat = cat;\n\nexport function getChimera() {\n return cat + dog;\n}\n"],"names":[],"mappings":";;;;;;AA4BO,IAAI,MAAM"}}, + {"offset": {"line": 90, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":""}}, + {"offset": {"line": 102, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":""}}, + {"offset": {"line": 120, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":""}}, + {"offset": {"line": 135, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":""}}, + {"offset": {"line": 150, "column": 0}, "map": {"version":3,"sources":["turbopack:///[project]/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-named/input/index.js"],"sourcesContent":["import { fakeCat } from \"./module\";\n\n\nconsole.log(fakeCat)\n"],"names":[],"mappings":";AAAA;;AAGA,QAAQ,GAAG,CAAC,mPAAA,CAAA,UAAO"}}] } \ No newline at end of file diff --git a/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-namespace/output/4c35f_tests_snapshot_basic-tree-shake_export-namespace_input_index_1f26d7d9.js b/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-namespace/output/4c35f_tests_snapshot_basic-tree-shake_export-namespace_input_index_c361a992.js similarity index 79% rename from turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-namespace/output/4c35f_tests_snapshot_basic-tree-shake_export-namespace_input_index_1f26d7d9.js rename to turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-namespace/output/4c35f_tests_snapshot_basic-tree-shake_export-namespace_input_index_c361a992.js index 41eec603e8499..0db56adebf10c 100644 --- a/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-namespace/output/4c35f_tests_snapshot_basic-tree-shake_export-namespace_input_index_1f26d7d9.js +++ b/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-namespace/output/4c35f_tests_snapshot_basic-tree-shake_export-namespace_input_index_c361a992.js @@ -1,6 +1,6 @@ (globalThis.TURBOPACK = globalThis.TURBOPACK || []).push([ - "output/4c35f_tests_snapshot_basic-tree-shake_export-namespace_input_index_1f26d7d9.js", + "output/4c35f_tests_snapshot_basic-tree-shake_export-namespace_input_index_c361a992.js", {}, - {"otherChunks":["output/b1abf_turbopack-tests_tests_snapshot_basic-tree-shake_export-namespace_input_b8f1ec03._.js"],"runtimeModuleIds":["[project]/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-namespace/input/index.js [test] (ecmascript)"]} + {"otherChunks":["output/b1abf_turbopack-tests_tests_snapshot_basic-tree-shake_export-namespace_input_d8c5d2b0._.js"],"runtimeModuleIds":["[project]/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-namespace/input/index.js [test] (ecmascript)"]} ]); // Dummy runtime \ No newline at end of file diff --git a/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-namespace/output/4c35f_tests_snapshot_basic-tree-shake_export-namespace_input_index_1f26d7d9.js.map b/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-namespace/output/4c35f_tests_snapshot_basic-tree-shake_export-namespace_input_index_c361a992.js.map similarity index 100% rename from turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-namespace/output/4c35f_tests_snapshot_basic-tree-shake_export-namespace_input_index_1f26d7d9.js.map rename to turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-namespace/output/4c35f_tests_snapshot_basic-tree-shake_export-namespace_input_index_c361a992.js.map diff --git a/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-namespace/output/b1abf_turbopack-tests_tests_snapshot_basic-tree-shake_export-namespace_input_b8f1ec03._.js b/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-namespace/output/b1abf_turbopack-tests_tests_snapshot_basic-tree-shake_export-namespace_input_d8c5d2b0._.js similarity index 92% rename from turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-namespace/output/b1abf_turbopack-tests_tests_snapshot_basic-tree-shake_export-namespace_input_b8f1ec03._.js rename to turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-namespace/output/b1abf_turbopack-tests_tests_snapshot_basic-tree-shake_export-namespace_input_d8c5d2b0._.js index 7d4eb71627576..8e6113a90ad8c 100644 --- a/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-namespace/output/b1abf_turbopack-tests_tests_snapshot_basic-tree-shake_export-namespace_input_b8f1ec03._.js +++ b/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-namespace/output/b1abf_turbopack-tests_tests_snapshot_basic-tree-shake_export-namespace_input_d8c5d2b0._.js @@ -1,4 +1,4 @@ -(globalThis.TURBOPACK = globalThis.TURBOPACK || []).push(["output/b1abf_turbopack-tests_tests_snapshot_basic-tree-shake_export-namespace_input_b8f1ec03._.js", { +(globalThis.TURBOPACK = globalThis.TURBOPACK || []).push(["output/b1abf_turbopack-tests_tests_snapshot_basic-tree-shake_export-namespace_input_d8c5d2b0._.js", { "[project]/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-namespace/input/lib.js [test] (ecmascript) ": ((__turbopack_context__) => { "use strict"; @@ -59,18 +59,13 @@ console.log(__TURBOPACK__imported__module__$5b$project$5d2f$turbopack$2f$crates$ var { g: global, __dirname } = __turbopack_context__; { -__turbopack_context__.s({}); +__turbopack_context__.s({ + "lib": (()=>__TURBOPACK__imported__module__$5b$project$5d2f$turbopack$2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$basic$2d$tree$2d$shake$2f$export$2d$namespace$2f$input$2f$module$2e$js__$5b$test$5d$__$28$ecmascript$29$__$3c$internal__part__1$3e$__["a"]) +}); +var __TURBOPACK__imported__module__$5b$project$5d2f$turbopack$2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$basic$2d$tree$2d$shake$2f$export$2d$namespace$2f$input$2f$module$2e$js__$5b$test$5d$__$28$ecmascript$29$__$3c$internal__part__1$3e$__ = __turbopack_context__.i("[project]/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-namespace/input/module.js [test] (ecmascript) "); var __TURBOPACK__imported__module__$5b$project$5d2f$turbopack$2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$basic$2d$tree$2d$shake$2f$export$2d$namespace$2f$input$2f$lib$2e$js__$5b$test$5d$__$28$ecmascript$29$__$3c$internal__part__2$3e$__ = __turbopack_context__.i("[project]/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-namespace/input/lib.js [test] (ecmascript) "); ; ; -}}), -"[project]/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-namespace/input/module.js [test] (ecmascript) ": ((__turbopack_context__) => { -"use strict"; - -var { g: global, __dirname } = __turbopack_context__; -{ -__turbopack_context__.s({}); -var __TURBOPACK__imported__module__$5b$project$5d2f$turbopack$2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$basic$2d$tree$2d$shake$2f$export$2d$namespace$2f$input$2f$lib$2e$js__$5b$test$5d$__$28$ecmascript$29$__$3c$internal__part__2$3e$__ = __turbopack_context__.i("[project]/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-namespace/input/lib.js [test] (ecmascript) "); ; ; }}), @@ -217,7 +212,22 @@ var __TURBOPACK__imported__module__$5b$project$5d2f$turbopack$2f$crates$2f$turbo ; ; }}), -"[project]/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-namespace/input/module.js [test] (ecmascript) ": ((__turbopack_context__) => { +"[project]/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-namespace/input/module.js [test] (ecmascript) ": ((__turbopack_context__) => { +"use strict"; + +var { g: global, __dirname } = __turbopack_context__; +{ +__turbopack_context__.s({ + "lib": (()=>__TURBOPACK__imported__module__$5b$project$5d2f$turbopack$2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$basic$2d$tree$2d$shake$2f$export$2d$namespace$2f$input$2f$module$2e$js__$5b$test$5d$__$28$ecmascript$29$__$3c$internal__part__1$3e$__["a"]) +}); +var __TURBOPACK__imported__module__$5b$project$5d2f$turbopack$2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$basic$2d$tree$2d$shake$2f$export$2d$namespace$2f$input$2f$module$2e$js__$5b$test$5d$__$28$ecmascript$29$__$3c$internal__part__1$3e$__ = __turbopack_context__.i("[project]/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-namespace/input/module.js [test] (ecmascript) "); +var __TURBOPACK__imported__module__$5b$project$5d2f$turbopack$2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$basic$2d$tree$2d$shake$2f$export$2d$namespace$2f$input$2f$lib$2e$js__$5b$test$5d$__$28$ecmascript$29$__$3c$internal__part__2$3e$__ = __turbopack_context__.i("[project]/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-namespace/input/lib.js [test] (ecmascript) "); +; +; +; +; +}}), +"[project]/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-namespace/input/module.js [test] (ecmascript) ": ((__turbopack_context__) => { "use strict"; var { g: global, __dirname } = __turbopack_context__; @@ -226,6 +236,9 @@ __turbopack_context__.s({ "lib": (()=>__TURBOPACK__imported__module__$5b$project$5d2f$turbopack$2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$basic$2d$tree$2d$shake$2f$export$2d$namespace$2f$input$2f$module$2e$js__$5b$test$5d$__$28$ecmascript$29$__$3c$internal__part__1$3e$__["a"]) }); var __TURBOPACK__imported__module__$5b$project$5d2f$turbopack$2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$basic$2d$tree$2d$shake$2f$export$2d$namespace$2f$input$2f$module$2e$js__$5b$test$5d$__$28$ecmascript$29$__$3c$internal__part__1$3e$__ = __turbopack_context__.i("[project]/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-namespace/input/module.js [test] (ecmascript) "); +var __TURBOPACK__imported__module__$5b$project$5d2f$turbopack$2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$basic$2d$tree$2d$shake$2f$export$2d$namespace$2f$input$2f$lib$2e$js__$5b$test$5d$__$28$ecmascript$29$__$3c$internal__part__2$3e$__ = __turbopack_context__.i("[project]/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-namespace/input/lib.js [test] (ecmascript) "); +; +; ; ; }}), @@ -236,10 +249,9 @@ var { g: global, __dirname } = __turbopack_context__; { __turbopack_context__.s({}); var __TURBOPACK__imported__module__$5b$project$5d2f$turbopack$2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$basic$2d$tree$2d$shake$2f$export$2d$namespace$2f$input$2f$module$2e$js__$5b$test$5d$__$28$ecmascript$29$__$3c$internal__part__0$3e$__ = __turbopack_context__.i("[project]/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-namespace/input/module.js [test] (ecmascript) "); -var __TURBOPACK__imported__module__$5b$project$5d2f$turbopack$2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$basic$2d$tree$2d$shake$2f$export$2d$namespace$2f$input$2f$module$2e$js__$5b$test$5d$__$28$ecmascript$29$__$3c$internal__part__2$3e$__ = __turbopack_context__.i("[project]/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-namespace/input/module.js [test] (ecmascript) "); ; -console.log(__TURBOPACK__imported__module__$5b$project$5d2f$turbopack$2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$basic$2d$tree$2d$shake$2f$export$2d$namespace$2f$input$2f$module$2e$js__$5b$test$5d$__$28$ecmascript$29$__$3c$internal__part__2$3e$__["lib"].cat); +console.log(__TURBOPACK__imported__module__$5b$project$5d2f$turbopack$2f$crates$2f$turbopack$2d$tests$2f$tests$2f$snapshot$2f$basic$2d$tree$2d$shake$2f$export$2d$namespace$2f$input$2f$module$2e$js__$5b$test$5d$__$28$ecmascript$29$__$3c$internal__part__0$3e$__["lib"].cat); }}), }]); -//# sourceMappingURL=b1abf_turbopack-tests_tests_snapshot_basic-tree-shake_export-namespace_input_b8f1ec03._.js.map \ No newline at end of file +//# sourceMappingURL=b1abf_turbopack-tests_tests_snapshot_basic-tree-shake_export-namespace_input_d8c5d2b0._.js.map \ No newline at end of file diff --git a/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-namespace/output/b1abf_turbopack-tests_tests_snapshot_basic-tree-shake_export-namespace_input_b8f1ec03._.js.map b/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-namespace/output/b1abf_turbopack-tests_tests_snapshot_basic-tree-shake_export-namespace_input_d8c5d2b0._.js.map similarity index 88% rename from turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-namespace/output/b1abf_turbopack-tests_tests_snapshot_basic-tree-shake_export-namespace_input_b8f1ec03._.js.map rename to turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-namespace/output/b1abf_turbopack-tests_tests_snapshot_basic-tree-shake_export-namespace_input_d8c5d2b0._.js.map index 48f23b12dc34c..91fe2d5786575 100644 --- a/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-namespace/output/b1abf_turbopack-tests_tests_snapshot_basic-tree-shake_export-namespace_input_b8f1ec03._.js.map +++ b/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-namespace/output/b1abf_turbopack-tests_tests_snapshot_basic-tree-shake_export-namespace_input_d8c5d2b0._.js.map @@ -7,14 +7,14 @@ {"offset": {"line": 32, "column": 0}, "map": {"version":3,"sources":["turbopack:///[project]/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-namespace/input/lib.js"],"sourcesContent":["let dog = \"dog\";\n\ndog += \"!\";\n\nconsole.log(dog);\n\nfunction getDog() {\n return dog;\n}\n\ndog += \"!\";\n\nconsole.log(dog);\n\nfunction setDog(newDog) {\n dog = newDog;\n}\n\ndog += \"!\";\n\nconsole.log(dog);\n\nexport const dogRef = {\n initial: dog,\n get: getDog,\n set: setDog,\n};\n\nexport let cat = \"cat\";\n\nexport const initialCat = cat;\n\nexport function getChimera() {\n return cat + dog;\n}\n"],"names":[],"mappings":";;;;;AAkBA,oPAAA,CAAA,IAAG,IAAI"}}, {"offset": {"line": 44, "column": 0}, "map": {"version":3,"sources":["turbopack:///[project]/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-namespace/input/lib.js"],"sourcesContent":["let dog = \"dog\";\n\ndog += \"!\";\n\nconsole.log(dog);\n\nfunction getDog() {\n return dog;\n}\n\ndog += \"!\";\n\nconsole.log(dog);\n\nfunction setDog(newDog) {\n dog = newDog;\n}\n\ndog += \"!\";\n\nconsole.log(dog);\n\nexport const dogRef = {\n initial: dog,\n get: getDog,\n set: setDog,\n};\n\nexport let cat = \"cat\";\n\nexport const initialCat = cat;\n\nexport function getChimera() {\n return cat + dog;\n}\n"],"names":[],"mappings":";;;;;;;AAIA,QAAQ,GAAG,CAAC,oPAAA,CAAA,IAAG;AAQf,QAAQ,GAAG,CAAC,oPAAA,CAAA,IAAG;AAQf,QAAQ,GAAG,CAAC,oPAAA,CAAA,IAAG"}}, {"offset": {"line": 61, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":""}}, - {"offset": {"line": 71, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":""}}, - {"offset": {"line": 81, "column": 0}, "map": {"version":3,"sources":["turbopack:///[project]/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-namespace/input/lib.js"],"sourcesContent":["let dog = \"dog\";\n\ndog += \"!\";\n\nconsole.log(dog);\n\nfunction getDog() {\n return dog;\n}\n\ndog += \"!\";\n\nconsole.log(dog);\n\nfunction setDog(newDog) {\n dog = newDog;\n}\n\ndog += \"!\";\n\nconsole.log(dog);\n\nexport const dogRef = {\n initial: dog,\n get: getDog,\n set: setDog,\n};\n\nexport let cat = \"cat\";\n\nexport const initialCat = cat;\n\nexport function getChimera() {\n return cat + dog;\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAMA,SAAS;IACP,OAAO,oPAAA,CAAA,IAAG;AACZ;AAMA,SAAS,OAAO,MAAM;IACpB,oPAAA,CAAA,IAAG,GAAG;AACR;AAMO,MAAM,SAAS;IACpB,SAAS,oPAAA,CAAA,IAAG;IACZ,KAAK;IACL,KAAK;AACP"}}, - {"offset": {"line": 121, "column": 0}, "map": {"version":3,"sources":["turbopack:///[project]/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-namespace/input/lib.js"],"sourcesContent":["let dog = \"dog\";\n\ndog += \"!\";\n\nconsole.log(dog);\n\nfunction getDog() {\n return dog;\n}\n\ndog += \"!\";\n\nconsole.log(dog);\n\nfunction setDog(newDog) {\n dog = newDog;\n}\n\ndog += \"!\";\n\nconsole.log(dog);\n\nexport const dogRef = {\n initial: dog,\n get: getDog,\n set: setDog,\n};\n\nexport let cat = \"cat\";\n\nexport const initialCat = cat;\n\nexport function getChimera() {\n return cat + dog;\n}\n"],"names":[],"mappings":";;;;;;AA4BO,IAAI,MAAM"}}, - {"offset": {"line": 135, "column": 0}, "map": {"version":3,"sources":["turbopack:///[project]/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-namespace/input/lib.js"],"sourcesContent":["let dog = \"dog\";\n\ndog += \"!\";\n\nconsole.log(dog);\n\nfunction getDog() {\n return dog;\n}\n\ndog += \"!\";\n\nconsole.log(dog);\n\nfunction setDog(newDog) {\n dog = newDog;\n}\n\ndog += \"!\";\n\nconsole.log(dog);\n\nexport const dogRef = {\n initial: dog,\n get: getDog,\n set: setDog,\n};\n\nexport let cat = \"cat\";\n\nexport const initialCat = cat;\n\nexport function getChimera() {\n return cat + dog;\n}\n"],"names":[],"mappings":";;;;;;;;;AA8BO,MAAM,aAAa,oPAAA,CAAA,IAAG"}}, - {"offset": {"line": 153, "column": 0}, "map": {"version":3,"sources":["turbopack:///[project]/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-namespace/input/lib.js"],"sourcesContent":["let dog = \"dog\";\n\ndog += \"!\";\n\nconsole.log(dog);\n\nfunction getDog() {\n return dog;\n}\n\ndog += \"!\";\n\nconsole.log(dog);\n\nfunction setDog(newDog) {\n dog = newDog;\n}\n\ndog += \"!\";\n\nconsole.log(dog);\n\nexport const dogRef = {\n initial: dog,\n get: getDog,\n set: setDog,\n};\n\nexport let cat = \"cat\";\n\nexport const initialCat = cat;\n\nexport function getChimera() {\n return cat + dog;\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;AAgCO,SAAS;IACd,OAAO,oPAAA,CAAA,IAAG,GAAG,oPAAA,CAAA,IAAG;AAClB"}}, - {"offset": {"line": 177, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":""}}, - {"offset": {"line": 189, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":""}}, - {"offset": {"line": 209, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":""}}, - {"offset": {"line": 224, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":""}}, - {"offset": {"line": 236, "column": 0}, "map": {"version":3,"sources":["turbopack:///[project]/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-namespace/input/index.js"],"sourcesContent":["import {lib} from './module'\n\nconsole.log(lib.cat)\n"],"names":[],"mappings":";AAAA;AAAA;;AAEA,QAAQ,GAAG,CAAC,uPAAA,CAAA,MAAG,CAAC,GAAG"}}] + {"offset": {"line": 76, "column": 0}, "map": {"version":3,"sources":["turbopack:///[project]/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-namespace/input/lib.js"],"sourcesContent":["let dog = \"dog\";\n\ndog += \"!\";\n\nconsole.log(dog);\n\nfunction getDog() {\n return dog;\n}\n\ndog += \"!\";\n\nconsole.log(dog);\n\nfunction setDog(newDog) {\n dog = newDog;\n}\n\ndog += \"!\";\n\nconsole.log(dog);\n\nexport const dogRef = {\n initial: dog,\n get: getDog,\n set: setDog,\n};\n\nexport let cat = \"cat\";\n\nexport const initialCat = cat;\n\nexport function getChimera() {\n return cat + dog;\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAMA,SAAS;IACP,OAAO,oPAAA,CAAA,IAAG;AACZ;AAMA,SAAS,OAAO,MAAM;IACpB,oPAAA,CAAA,IAAG,GAAG;AACR;AAMO,MAAM,SAAS;IACpB,SAAS,oPAAA,CAAA,IAAG;IACZ,KAAK;IACL,KAAK;AACP"}}, + {"offset": {"line": 116, "column": 0}, "map": {"version":3,"sources":["turbopack:///[project]/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-namespace/input/lib.js"],"sourcesContent":["let dog = \"dog\";\n\ndog += \"!\";\n\nconsole.log(dog);\n\nfunction getDog() {\n return dog;\n}\n\ndog += \"!\";\n\nconsole.log(dog);\n\nfunction setDog(newDog) {\n dog = newDog;\n}\n\ndog += \"!\";\n\nconsole.log(dog);\n\nexport const dogRef = {\n initial: dog,\n get: getDog,\n set: setDog,\n};\n\nexport let cat = \"cat\";\n\nexport const initialCat = cat;\n\nexport function getChimera() {\n return cat + dog;\n}\n"],"names":[],"mappings":";;;;;;AA4BO,IAAI,MAAM"}}, + {"offset": {"line": 130, "column": 0}, "map": {"version":3,"sources":["turbopack:///[project]/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-namespace/input/lib.js"],"sourcesContent":["let dog = \"dog\";\n\ndog += \"!\";\n\nconsole.log(dog);\n\nfunction getDog() {\n return dog;\n}\n\ndog += \"!\";\n\nconsole.log(dog);\n\nfunction setDog(newDog) {\n dog = newDog;\n}\n\ndog += \"!\";\n\nconsole.log(dog);\n\nexport const dogRef = {\n initial: dog,\n get: getDog,\n set: setDog,\n};\n\nexport let cat = \"cat\";\n\nexport const initialCat = cat;\n\nexport function getChimera() {\n return cat + dog;\n}\n"],"names":[],"mappings":";;;;;;;;;AA8BO,MAAM,aAAa,oPAAA,CAAA,IAAG"}}, + {"offset": {"line": 148, "column": 0}, "map": {"version":3,"sources":["turbopack:///[project]/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-namespace/input/lib.js"],"sourcesContent":["let dog = \"dog\";\n\ndog += \"!\";\n\nconsole.log(dog);\n\nfunction getDog() {\n return dog;\n}\n\ndog += \"!\";\n\nconsole.log(dog);\n\nfunction setDog(newDog) {\n dog = newDog;\n}\n\ndog += \"!\";\n\nconsole.log(dog);\n\nexport const dogRef = {\n initial: dog,\n get: getDog,\n set: setDog,\n};\n\nexport let cat = \"cat\";\n\nexport const initialCat = cat;\n\nexport function getChimera() {\n return cat + dog;\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;AAgCO,SAAS;IACd,OAAO,oPAAA,CAAA,IAAG,GAAG,oPAAA,CAAA,IAAG;AAClB"}}, + {"offset": {"line": 172, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":""}}, + {"offset": {"line": 184, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":""}}, + {"offset": {"line": 204, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":""}}, + {"offset": {"line": 219, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":""}}, + {"offset": {"line": 234, "column": 0}, "map": {"version":3,"sources":[],"names":[],"mappings":""}}, + {"offset": {"line": 249, "column": 0}, "map": {"version":3,"sources":["turbopack:///[project]/turbopack/crates/turbopack-tests/tests/snapshot/basic-tree-shake/export-namespace/input/index.js"],"sourcesContent":["import {lib} from './module'\n\nconsole.log(lib.cat)\n"],"names":[],"mappings":";AAAA;;AAEA,QAAQ,GAAG,CAAC,uPAAA,CAAA,MAAG,CAAC,GAAG"}}] } \ No newline at end of file