Update swc_core to v0.83.28 (#56134)

### What?

 - Use better implementation for `react-remove-properties` and `remove-conosle`.

### Why?


I concluded `react-remove-properties` and `remove-conosle` deserve official plugins, so I promoted them.

 - https://github.com/swc-project/plugins/pull/213
 - https://github.com/swc-project/plugins/pull/215


### How?



 - Closes WEB-1638
 - Closes WEB-1633
 - Closes NEXT-1657
 - Closes #55679

---

# Turbopack changes


* https://github.com/vercel/turbo/pull/6003
This commit is contained in:
Donny/강동윤 2023-09-29 22:08:26 +09:00 committed by GitHub
parent af3205637d
commit bf35b47bb4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
19 changed files with 134 additions and 617 deletions

197
Cargo.lock generated
View file

@ -321,7 +321,7 @@ dependencies = [
[[package]]
name = "auto-hash-map"
version = "0.1.0"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.1#d2138ed75469ef1dd72b80d83fe7e98d21272374"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.3#794f33f14b4e5e8bb082381e9c5801529fe27152"
dependencies = [
"serde",
"smallvec",
@ -521,9 +521,9 @@ dependencies = [
[[package]]
name = "binding_macros"
version = "0.57.10"
version = "0.57.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "61acaf6fac14755e101ed1fb231eeaf785c1a0a2c60c80e0070957b214320318"
checksum = "0b6caf54b6448f05c25096a528c2a3b292e38fb59298c118edcf9da45ff05515"
dependencies = [
"anyhow",
"console_error_panic_hook",
@ -2952,9 +2952,9 @@ dependencies = [
[[package]]
name = "markdown"
version = "1.0.0-alpha.13"
version = "1.0.0-alpha.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "92e9ce98969bb1391c8d6fdac320897ea7e86c4d356e8f220a5abd28b142e512"
checksum = "d2a51befc5a2b4a052c473ffbc9ad462e358de59dcc2fde4997fd2a16403dcbd"
dependencies = [
"unicode-id",
]
@ -3007,9 +3007,9 @@ dependencies = [
[[package]]
name = "mdxjs"
version = "0.1.16"
version = "0.1.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4c5f502ce56278409815ddb3ac1490095746fc8cc6f88517450c7806e33d3381"
checksum = "c73de74452171e35ed9d82961e403b8b197dcf752b45a51072d83e4813d42d53"
dependencies = [
"markdown",
"serde",
@ -3206,9 +3206,9 @@ dependencies = [
[[package]]
name = "modularize_imports"
version = "0.45.0"
version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f2f4c10c90a90a3ebbcbeafcd9881b094f7c7ba49bbb32ba1698de0070dfa000"
checksum = "0e1070d9027b5d1eb4e54d81c86dfd26fd1e1370916ce5881c498361799e9a14"
dependencies = [
"convert_case 0.5.0",
"handlebars",
@ -3440,7 +3440,9 @@ dependencies = [
"next-transform-font",
"once_cell",
"pathdiff",
"react_remove_properties",
"regex",
"remove_console",
"rustc-hash",
"serde",
"serde_json",
@ -3511,7 +3513,7 @@ dependencies = [
[[package]]
name = "node-file-trace"
version = "0.1.0"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.1#d2138ed75469ef1dd72b80d83fe7e98d21272374"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.3#794f33f14b4e5e8bb082381e9c5801529fe27152"
dependencies = [
"anyhow",
"serde",
@ -4423,6 +4425,20 @@ dependencies = [
"num_cpus",
]
[[package]]
name = "react_remove_properties"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9dc14dca06a6d0f4796dde331bf9ae17fcb93b9f2d8c8fca8bdc0bd28ff2bd07"
dependencies = [
"serde",
"swc_atoms",
"swc_cached",
"swc_common",
"swc_ecma_ast",
"swc_ecma_visit",
]
[[package]]
name = "redox_syscall"
version = "0.1.57"
@ -4552,6 +4568,20 @@ version = "1.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c707298afce11da2efef2f600116fa93ffa7a032b5d7b628aa17711ec81383ca"
[[package]]
name = "remove_console"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "61b0da70a7bee5f2d9cdb94977225dac1d64946ec65aa2b30386a0a1f5bc5006"
dependencies = [
"serde",
"swc_atoms",
"swc_cached",
"swc_common",
"swc_ecma_ast",
"swc_ecma_visit",
]
[[package]]
name = "rend"
version = "0.4.0"
@ -5530,9 +5560,9 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
[[package]]
name = "styled_components"
version = "0.72.0"
version = "0.75.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e9b017573078eed07792b404714c8686cf472f6f8f5b08c81ef13c6bd0ed2c4e"
checksum = "d93b77bf37c113d7401b11d87ec48d264b6200c8167e647c9f2bf5f7368d2abf"
dependencies = [
"Inflector",
"once_cell",
@ -5548,9 +5578,9 @@ dependencies = [
[[package]]
name = "styled_jsx"
version = "0.49.0"
version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0390065d279e650a8c39d5cd8a3c21e17091310f488bab4f0658af299f21cd75"
checksum = "786d784207110496555ca76ee3a29bfea8fd24c2e8a7669ae1796bddd7f50e2b"
dependencies = [
"easy-error",
"lightningcss",
@ -5608,9 +5638,9 @@ dependencies = [
[[package]]
name = "swc"
version = "0.266.10"
version = "0.266.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a92afb6ff917b0e441c3316902f5934d28df1de6d37aa7fa16875b15de54b104"
checksum = "518128b65105b48a58bf81e718a915ad60daebb89ccdf966d11cc616bfd0fd28"
dependencies = [
"anyhow",
"base64 0.13.1",
@ -5675,9 +5705,9 @@ dependencies = [
[[package]]
name = "swc_bundler"
version = "0.220.8"
version = "0.220.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8d5abf3447a6fa02fad8942fbe2a891ce5f37b9352df4a058507feb783bd8adc"
checksum = "1c1ddf4d7fc3c4da744561ca2a984f537888fe65ce9e8d2d207372e054c351e2"
dependencies = [
"anyhow",
"crc",
@ -5780,9 +5810,9 @@ dependencies = [
[[package]]
name = "swc_core"
version = "0.83.12"
version = "0.83.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e81555309ae4e8e0ad4562e1a9105bb2e4a08721a543e3a1bbb85e6cfe57b6e5"
checksum = "8e826020b0481212a0ba4f20d5c74bbe71b6cee6949583896788ca8d98039851"
dependencies = [
"binding_macros",
"swc",
@ -5989,9 +6019,9 @@ dependencies = [
[[package]]
name = "swc_ecma_codegen"
version = "0.145.2"
version = "0.145.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "815ffa630baae41acb9cae372684b772e65e7395954f20162ba4e9ea238f4d16"
checksum = "547ed57b827ea4df3e2c27cea153482f8b2ce2d271ae30c456fbb2d5a5ecc19d"
dependencies = [
"memchr",
"num-bigint",
@ -6035,9 +6065,9 @@ dependencies = [
[[package]]
name = "swc_ecma_lints"
version = "0.88.2"
version = "0.88.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "036241d56880c4b0e1d5f1299071ec03e2ea334edf527336e391d7d501ee99c3"
checksum = "300ae29c0fc98ed0364aa2fd4aa7702d6dc67d411dd4894e7e60d40e99c4ef19"
dependencies = [
"auto_impl",
"dashmap",
@ -6076,9 +6106,9 @@ dependencies = [
[[package]]
name = "swc_ecma_minifier"
version = "0.187.8"
version = "0.187.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f9a37d741274a102e24c9ab5ca0b6294ee23b4a80825aa198428e7014e9f0aa5"
checksum = "8458b755f90a0152a8cbb48b299956ce388eb6d96aa333f9efe243776fefb9c9"
dependencies = [
"arrayvec",
"indexmap 1.9.3",
@ -6131,9 +6161,9 @@ dependencies = [
[[package]]
name = "swc_ecma_preset_env"
version = "0.201.9"
version = "0.201.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "815c3d4601b5cf8403b29e9edfaf9bbfbf2e528a67bc43e391a70b91a9b657f5"
checksum = "7aac45044af56b9be44aed5664238b6c1076c5a1c0bf4fd17ae83826f4b19ff1"
dependencies = [
"anyhow",
"dashmap",
@ -6187,9 +6217,9 @@ dependencies = [
[[package]]
name = "swc_ecma_transforms"
version = "0.224.8"
version = "0.224.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fbd9002b451fd64bc04869a7b0848851440f9d2ccfe0546bfd74fd42b827c300"
checksum = "66f893871042dbe3eb3f9cb4fb878d24163fd0e568896d68f02a8952d2c9d9a5"
dependencies = [
"swc_atoms",
"swc_common",
@ -6207,9 +6237,9 @@ dependencies = [
[[package]]
name = "swc_ecma_transforms_base"
version = "0.133.2"
version = "0.133.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bd570349c3be938eff1214bba74f2d4d8dafc2e433eedb69e8ae220d425569d7"
checksum = "496e3957e19c22e61cd7ff020a87e1fe94c9334f4fa11267f08614fd5f85ba67"
dependencies = [
"better_scoped_tls",
"bitflags 2.4.0",
@ -6231,9 +6261,9 @@ dependencies = [
[[package]]
name = "swc_ecma_transforms_classes"
version = "0.122.2"
version = "0.122.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "04d7d4c89d164b8721e54eade3fbd3bcf60e479ca8adace0cbf8a1be693d8b94"
checksum = "519ffccc874b8bb39db0fceec06c172b1d7a6e812ac6f4b0a000e5d3c295e495"
dependencies = [
"swc_atoms",
"swc_common",
@ -6245,9 +6275,9 @@ dependencies = [
[[package]]
name = "swc_ecma_transforms_compat"
version = "0.159.5"
version = "0.159.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ac438b5cf8958038731f10ce4b8349b402a01d08192ddacdf73b3d1bdc9ec120"
checksum = "83bf11f8c486856ea9c8d24d84e5e8629afbd49919be519fddda67d3d440a9be"
dependencies = [
"arrayvec",
"indexmap 1.9.3",
@ -6284,9 +6314,9 @@ dependencies = [
[[package]]
name = "swc_ecma_transforms_module"
version = "0.176.8"
version = "0.176.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "85b65556a3e53d03ea163cfa5e650629ace85fa23f24cd1861dfeed968ab7663"
checksum = "5239cdd86eb8a99d04473dfaceb778ec080be9644ae9d53bc92b6967a3eea60b"
dependencies = [
"Inflector",
"anyhow",
@ -6311,9 +6341,9 @@ dependencies = [
[[package]]
name = "swc_ecma_transforms_optimization"
version = "0.193.8"
version = "0.193.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3cb2e920fe64368d45f7f7c97a22c8ad8b3bada94fcd2d852059df434bb3c49d"
checksum = "47028d59dbb4635f4881393f19644bc3f3808536c901551a73ed0a454160d077"
dependencies = [
"dashmap",
"indexmap 1.9.3",
@ -6336,9 +6366,9 @@ dependencies = [
[[package]]
name = "swc_ecma_transforms_proposal"
version = "0.167.6"
version = "0.167.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4c6b9112a170b3aced968cb33fc4a6581d00565ac2e2dd04a362df893b08fc9a"
checksum = "2e896e6d01b1618f4f2061c6ab4c5f74e98b47d93f80bd81731243e880aa721a"
dependencies = [
"either",
"rustc-hash",
@ -6356,9 +6386,9 @@ dependencies = [
[[package]]
name = "swc_ecma_transforms_react"
version = "0.179.8"
version = "0.179.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "db082cb6f34bebcacbe7a044feabd0d753510be594bba3ddd529f18a470d695a"
checksum = "f0eff59ce7151b51e5eaf0c961cf3a264258f179abe5ca1de6d0c5843020784d"
dependencies = [
"base64 0.13.1",
"dashmap",
@ -6381,9 +6411,9 @@ dependencies = [
[[package]]
name = "swc_ecma_transforms_testing"
version = "0.136.2"
version = "0.136.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "03348a53dcfa46d3dae52691affc1538eaddb19036dd0b448fe08f69a25db18d"
checksum = "ef0636ec69f3de36ed0155a05e338b6ee294b115fafa15e13996f1ca7f2af6c3"
dependencies = [
"ansi_term",
"anyhow",
@ -6407,10 +6437,11 @@ dependencies = [
[[package]]
name = "swc_ecma_transforms_typescript"
version = "0.183.8"
version = "0.183.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "96475940e7677260d05c9ad20762ca11d576586b74ea9f929ae46a646ef43a50"
checksum = "705566ab5897223937008a759556d562044a195f2ee8597fa0d9b2af4ca32495"
dependencies = [
"ryu-js",
"serde",
"swc_atoms",
"swc_common",
@ -6474,9 +6505,9 @@ dependencies = [
[[package]]
name = "swc_emotion"
version = "0.48.0"
version = "0.51.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ce0716c6622a1fd174f2c090dc06d5a860f0530bdd0b4a6e62a10f2d7f59339d"
checksum = "1d1a13c3241b2812f15e751687924b0458b55ca7c3576a752b939e954cb4b0ba"
dependencies = [
"base64 0.13.1",
"byteorder",
@ -6634,9 +6665,9 @@ dependencies = [
[[package]]
name = "swc_relay"
version = "0.20.0"
version = "0.23.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "08242ad95d08026d0e92cb068de8c03ae12822be82da6a25411d4538f3ddab1d"
checksum = "5b74826cb88703713c9c081f5968324490eed925217813ffa1de22da711a80a9"
dependencies = [
"once_cell",
"regex",
@ -7335,7 +7366,7 @@ dependencies = [
[[package]]
name = "turbo-tasks"
version = "0.1.0"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.1#d2138ed75469ef1dd72b80d83fe7e98d21272374"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.3#794f33f14b4e5e8bb082381e9c5801529fe27152"
dependencies = [
"anyhow",
"async-trait",
@ -7367,7 +7398,7 @@ dependencies = [
[[package]]
name = "turbo-tasks-build"
version = "0.1.0"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.1#d2138ed75469ef1dd72b80d83fe7e98d21272374"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.3#794f33f14b4e5e8bb082381e9c5801529fe27152"
dependencies = [
"anyhow",
"cargo-lock",
@ -7379,7 +7410,7 @@ dependencies = [
[[package]]
name = "turbo-tasks-bytes"
version = "0.1.0"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.1#d2138ed75469ef1dd72b80d83fe7e98d21272374"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.3#794f33f14b4e5e8bb082381e9c5801529fe27152"
dependencies = [
"anyhow",
"bytes",
@ -7394,7 +7425,7 @@ dependencies = [
[[package]]
name = "turbo-tasks-env"
version = "0.1.0"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.1#d2138ed75469ef1dd72b80d83fe7e98d21272374"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.3#794f33f14b4e5e8bb082381e9c5801529fe27152"
dependencies = [
"anyhow",
"dotenvs",
@ -7408,7 +7439,7 @@ dependencies = [
[[package]]
name = "turbo-tasks-fetch"
version = "0.1.0"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.1#d2138ed75469ef1dd72b80d83fe7e98d21272374"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.3#794f33f14b4e5e8bb082381e9c5801529fe27152"
dependencies = [
"anyhow",
"indexmap 1.9.3",
@ -7425,7 +7456,7 @@ dependencies = [
[[package]]
name = "turbo-tasks-fs"
version = "0.1.0"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.1#d2138ed75469ef1dd72b80d83fe7e98d21272374"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.3#794f33f14b4e5e8bb082381e9c5801529fe27152"
dependencies = [
"anyhow",
"auto-hash-map",
@ -7455,7 +7486,7 @@ dependencies = [
[[package]]
name = "turbo-tasks-hash"
version = "0.1.0"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.1#d2138ed75469ef1dd72b80d83fe7e98d21272374"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.3#794f33f14b4e5e8bb082381e9c5801529fe27152"
dependencies = [
"base16",
"hex",
@ -7467,7 +7498,7 @@ dependencies = [
[[package]]
name = "turbo-tasks-macros"
version = "0.1.0"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.1#d2138ed75469ef1dd72b80d83fe7e98d21272374"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.3#794f33f14b4e5e8bb082381e9c5801529fe27152"
dependencies = [
"anyhow",
"convert_case 0.6.0",
@ -7481,7 +7512,7 @@ dependencies = [
[[package]]
name = "turbo-tasks-macros-shared"
version = "0.1.0"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.1#d2138ed75469ef1dd72b80d83fe7e98d21272374"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.3#794f33f14b4e5e8bb082381e9c5801529fe27152"
dependencies = [
"proc-macro2",
"quote",
@ -7491,7 +7522,7 @@ dependencies = [
[[package]]
name = "turbo-tasks-malloc"
version = "0.1.0"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.1#d2138ed75469ef1dd72b80d83fe7e98d21272374"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.3#794f33f14b4e5e8bb082381e9c5801529fe27152"
dependencies = [
"mimalloc",
]
@ -7499,7 +7530,7 @@ dependencies = [
[[package]]
name = "turbo-tasks-memory"
version = "0.1.0"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.1#d2138ed75469ef1dd72b80d83fe7e98d21272374"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.3#794f33f14b4e5e8bb082381e9c5801529fe27152"
dependencies = [
"anyhow",
"auto-hash-map",
@ -7524,7 +7555,7 @@ dependencies = [
[[package]]
name = "turbopack"
version = "0.1.0"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.1#d2138ed75469ef1dd72b80d83fe7e98d21272374"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.3#794f33f14b4e5e8bb082381e9c5801529fe27152"
dependencies = [
"anyhow",
"async-recursion",
@ -7555,7 +7586,7 @@ dependencies = [
[[package]]
name = "turbopack-binding"
version = "0.1.0"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.1#d2138ed75469ef1dd72b80d83fe7e98d21272374"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.3#794f33f14b4e5e8bb082381e9c5801529fe27152"
dependencies = [
"auto-hash-map",
"mdxjs",
@ -7595,7 +7626,7 @@ dependencies = [
[[package]]
name = "turbopack-build"
version = "0.1.0"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.1#d2138ed75469ef1dd72b80d83fe7e98d21272374"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.3#794f33f14b4e5e8bb082381e9c5801529fe27152"
dependencies = [
"anyhow",
"indexmap 1.9.3",
@ -7617,7 +7648,7 @@ dependencies = [
[[package]]
name = "turbopack-cli-utils"
version = "0.1.0"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.1#d2138ed75469ef1dd72b80d83fe7e98d21272374"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.3#794f33f14b4e5e8bb082381e9c5801529fe27152"
dependencies = [
"anyhow",
"clap 4.4.2",
@ -7641,7 +7672,7 @@ dependencies = [
[[package]]
name = "turbopack-core"
version = "0.1.0"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.1#d2138ed75469ef1dd72b80d83fe7e98d21272374"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.3#794f33f14b4e5e8bb082381e9c5801529fe27152"
dependencies = [
"anyhow",
"async-recursion",
@ -7670,7 +7701,7 @@ dependencies = [
[[package]]
name = "turbopack-css"
version = "0.1.0"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.1#d2138ed75469ef1dd72b80d83fe7e98d21272374"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.3#794f33f14b4e5e8bb082381e9c5801529fe27152"
dependencies = [
"anyhow",
"async-trait",
@ -7692,7 +7723,7 @@ dependencies = [
[[package]]
name = "turbopack-dev"
version = "0.1.0"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.1#d2138ed75469ef1dd72b80d83fe7e98d21272374"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.3#794f33f14b4e5e8bb082381e9c5801529fe27152"
dependencies = [
"anyhow",
"indexmap 1.9.3",
@ -7716,7 +7747,7 @@ dependencies = [
[[package]]
name = "turbopack-dev-server"
version = "0.1.0"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.1#d2138ed75469ef1dd72b80d83fe7e98d21272374"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.3#794f33f14b4e5e8bb082381e9c5801529fe27152"
dependencies = [
"anyhow",
"async-compression",
@ -7753,7 +7784,7 @@ dependencies = [
[[package]]
name = "turbopack-ecmascript"
version = "0.1.0"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.1#d2138ed75469ef1dd72b80d83fe7e98d21272374"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.3#794f33f14b4e5e8bb082381e9c5801529fe27152"
dependencies = [
"anyhow",
"async-trait",
@ -7787,7 +7818,7 @@ dependencies = [
[[package]]
name = "turbopack-ecmascript-hmr-protocol"
version = "0.1.0"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.1#d2138ed75469ef1dd72b80d83fe7e98d21272374"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.3#794f33f14b4e5e8bb082381e9c5801529fe27152"
dependencies = [
"serde",
"serde_json",
@ -7798,7 +7829,7 @@ dependencies = [
[[package]]
name = "turbopack-ecmascript-plugins"
version = "0.1.0"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.1#d2138ed75469ef1dd72b80d83fe7e98d21272374"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.3#794f33f14b4e5e8bb082381e9c5801529fe27152"
dependencies = [
"anyhow",
"async-trait",
@ -7821,7 +7852,7 @@ dependencies = [
[[package]]
name = "turbopack-ecmascript-runtime"
version = "0.1.0"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.1#d2138ed75469ef1dd72b80d83fe7e98d21272374"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.3#794f33f14b4e5e8bb082381e9c5801529fe27152"
dependencies = [
"anyhow",
"indoc",
@ -7838,7 +7869,7 @@ dependencies = [
[[package]]
name = "turbopack-env"
version = "0.1.0"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.1#d2138ed75469ef1dd72b80d83fe7e98d21272374"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.3#794f33f14b4e5e8bb082381e9c5801529fe27152"
dependencies = [
"anyhow",
"indexmap 1.9.3",
@ -7854,7 +7885,7 @@ dependencies = [
[[package]]
name = "turbopack-image"
version = "0.1.0"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.1#d2138ed75469ef1dd72b80d83fe7e98d21272374"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.3#794f33f14b4e5e8bb082381e9c5801529fe27152"
dependencies = [
"anyhow",
"base64 0.21.4",
@ -7874,7 +7905,7 @@ dependencies = [
[[package]]
name = "turbopack-json"
version = "0.1.0"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.1#d2138ed75469ef1dd72b80d83fe7e98d21272374"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.3#794f33f14b4e5e8bb082381e9c5801529fe27152"
dependencies = [
"anyhow",
"serde",
@ -7889,7 +7920,7 @@ dependencies = [
[[package]]
name = "turbopack-mdx"
version = "0.1.0"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.1#d2138ed75469ef1dd72b80d83fe7e98d21272374"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.3#794f33f14b4e5e8bb082381e9c5801529fe27152"
dependencies = [
"anyhow",
"mdxjs",
@ -7904,7 +7935,7 @@ dependencies = [
[[package]]
name = "turbopack-node"
version = "0.1.0"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.1#d2138ed75469ef1dd72b80d83fe7e98d21272374"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.3#794f33f14b4e5e8bb082381e9c5801529fe27152"
dependencies = [
"anyhow",
"async-stream",
@ -7939,7 +7970,7 @@ dependencies = [
[[package]]
name = "turbopack-static"
version = "0.1.0"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.1#d2138ed75469ef1dd72b80d83fe7e98d21272374"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.3#794f33f14b4e5e8bb082381e9c5801529fe27152"
dependencies = [
"anyhow",
"serde",
@ -7955,7 +7986,7 @@ dependencies = [
[[package]]
name = "turbopack-swc-utils"
version = "0.1.0"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.1#d2138ed75469ef1dd72b80d83fe7e98d21272374"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.3#794f33f14b4e5e8bb082381e9c5801529fe27152"
dependencies = [
"swc_core",
"turbo-tasks",
@ -7966,7 +7997,7 @@ dependencies = [
[[package]]
name = "turbopack-wasm"
version = "0.1.0"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.1#d2138ed75469ef1dd72b80d83fe7e98d21272374"
source = "git+https://github.com/vercel/turbo.git?tag=turbopack-230929.3#794f33f14b4e5e8bb082381e9c5801529fe27152"
dependencies = [
"anyhow",
"indexmap 1.9.3",

View file

@ -32,18 +32,18 @@ next-transform-dynamic = { path = "packages/next-swc/crates/next-transform-dynam
next-transform-strip-page-exports = { path = "packages/next-swc/crates/next-transform-strip-page-exports" }
# SWC crates
swc_core = { version = "0.83.12", features = [
swc_core = { version = "0.83.28", features = [
"ecma_loader_lru",
"ecma_loader_parking_lot",
] }
testing = { version = "0.34.1" }
# Turbo crates
turbopack-binding = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230929.1" }
turbopack-binding = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230929.3" }
# [TODO]: need to refactor embed_directory! macro usages, as well as resolving turbo_tasks::function, macros..
turbo-tasks = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230929.1" }
turbo-tasks = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230929.3" }
# [TODO]: need to refactor embed_directory! macro usage in next-core
turbo-tasks-fs = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230929.1" }
turbo-tasks-fs = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-230929.3" }
# General Deps

View file

@ -33,6 +33,8 @@ turbopack-binding = { workspace = true, features = [
"__swc_transform_modularize_imports",
"__swc_transform_relay",
] }
react_remove_properties = "0.3.0"
remove_console = "0.4.0"
[dev-dependencies]
turbopack-binding = { workspace = true, features = [

View file

@ -63,12 +63,9 @@ pub mod next_ssg;
pub mod optimize_barrel;
pub mod optimize_server_react;
pub mod page_config;
pub mod react_remove_properties;
pub mod react_server_components;
pub mod remove_console;
pub mod server_actions;
pub mod shake_exports;
mod top_level_binding_collector;
#[derive(Clone, Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
@ -251,12 +248,15 @@ where
relay_plugin,
match &opts.remove_console {
Some(config) if config.truthy() =>
Either::Left(remove_console::remove_console(config.clone())),
Either::Left(remove_console::remove_console(
config.clone(),
SyntaxContext::empty().apply_mark(unresolved_mark)
)),
_ => Either::Right(noop()),
},
match &opts.react_remove_properties {
Some(config) if config.truthy() =>
Either::Left(react_remove_properties::remove_properties(config.clone())),
Either::Left(react_remove_properties::react_remove_properties(config.clone())),
_ => Either::Right(noop()),
},
match &opts.shake_exports {

View file

@ -1,72 +0,0 @@
use regex::Regex;
use serde::Deserialize;
use turbopack_binding::swc::core::ecma::{
ast::*,
visit::{noop_fold_type, Fold, FoldWith},
};
#[derive(Clone, Debug, Deserialize)]
#[serde(untagged)]
pub enum Config {
All(bool),
WithOptions(Options),
}
impl Config {
pub fn truthy(&self) -> bool {
match self {
Config::All(b) => *b,
Config::WithOptions(_) => true,
}
}
}
#[derive(Clone, Debug, Deserialize)]
pub struct Options {
#[serde(default)]
pub properties: Vec<String>,
}
struct RemoveProperties {
properties: Vec<Regex>,
}
impl RemoveProperties {
fn should_remove_property(&self, name: &str) -> bool {
self.properties.iter().any(|p| p.is_match(name))
}
}
impl Fold for RemoveProperties {
noop_fold_type!();
fn fold_jsx_opening_element(&mut self, mut el: JSXOpeningElement) -> JSXOpeningElement {
el.attrs.retain(|attr| {
!matches!(attr, JSXAttrOrSpread::JSXAttr(JSXAttr {
name: JSXAttrName::Ident(ident),
..
}) if self.should_remove_property(ident.sym.as_ref()))
});
el.fold_children_with(self)
}
}
pub fn remove_properties(config: Config) -> impl Fold {
let mut properties: Vec<Regex> = match config {
Config::WithOptions(x) => x
.properties
.iter()
.map(|pattern| {
Regex::new(pattern).unwrap_or_else(|e| {
panic!("error compiling property regex `{}`: {}", pattern, e);
})
})
.collect(),
_ => vec![],
};
if properties.is_empty() {
// Keep the default regex identical to `babel-plugin-react-remove-properties`.
properties.push(Regex::new(r"^data-test").unwrap());
}
RemoveProperties { properties }
}

View file

@ -1,131 +0,0 @@
use serde::Deserialize;
use turbopack_binding::swc::core::{
common::{collections::AHashSet, DUMMY_SP},
ecma::{
ast::*,
atoms::JsWord,
visit::{noop_fold_type, Fold, FoldWith},
},
};
use crate::top_level_binding_collector::collect_top_level_decls;
#[derive(Clone, Debug, Deserialize)]
#[serde(untagged)]
pub enum Config {
All(bool),
WithOptions(Options),
}
impl Config {
pub fn truthy(&self) -> bool {
match self {
Config::All(b) => *b,
Config::WithOptions(_) => true,
}
}
}
#[derive(Clone, Debug, Deserialize)]
pub struct Options {
#[serde(default)]
pub exclude: Vec<JsWord>,
}
struct RemoveConsole {
exclude: Vec<JsWord>,
bindings: Vec<AHashSet<Id>>,
}
impl RemoveConsole {
fn is_global_console(&self, ident: &Ident) -> bool {
&ident.sym == "console" && !self.bindings.iter().any(|x| x.contains(&ident.to_id()))
}
fn should_remove_call(&mut self, n: &CallExpr) -> bool {
let callee = &n.callee;
let member_expr = match callee {
Callee::Expr(e) => match &**e {
Expr::Member(m) => m,
_ => return false,
},
_ => return false,
};
// Don't attempt to evaluate computed properties.
if matches!(&member_expr.prop, MemberProp::Computed(..)) {
return false;
}
// Only proceed if the object is the global `console` object.
match &*member_expr.obj {
Expr::Ident(i) if self.is_global_console(i) => {}
_ => return false,
}
// Check if the property is requested to be excluded.
// Here we do an O(n) search on the list of excluded properties because the size
// should be small.
match &member_expr.prop {
MemberProp::Ident(i) if !self.exclude.iter().any(|x| *x == i.sym) => {}
_ => return false,
}
true
}
}
impl Fold for RemoveConsole {
noop_fold_type!();
fn fold_stmt(&mut self, stmt: Stmt) -> Stmt {
if let Stmt::Expr(e) = &stmt {
if let Expr::Call(c) = &*e.expr {
if self.should_remove_call(c) {
return Stmt::Empty(EmptyStmt { span: DUMMY_SP });
}
}
}
stmt.fold_children_with(self)
}
fn fold_function(&mut self, mut func: Function) -> Function {
let mut new_params: AHashSet<Id> = AHashSet::default();
for param in &func.params {
new_params.extend(collect_top_level_decls(param));
}
self.bindings.push(new_params);
self.bindings.push(collect_top_level_decls(&func));
func.body = func.body.fold_with(self);
self.bindings.pop().unwrap();
self.bindings.pop().unwrap();
func
}
fn fold_module(&mut self, module: Module) -> Module {
self.bindings.push(collect_top_level_decls(&module));
let m = module.fold_children_with(self);
self.bindings.pop().unwrap();
m
}
fn fold_script(&mut self, script: Script) -> Script {
self.bindings.push(collect_top_level_decls(&script));
let s = script.fold_with(self);
self.bindings.pop().unwrap();
s
}
}
pub fn remove_console(config: Config) -> impl Fold {
let exclude = match config {
Config::WithOptions(x) => x.exclude,
_ => vec![],
};
RemoveConsole {
exclude,
bindings: Default::default(),
}
}

View file

@ -1,131 +0,0 @@
use std::hash::Hash;
use turbopack_binding::swc::core::{
common::{collections::AHashSet, SyntaxContext},
ecma::{
ast::{
ClassDecl, FnDecl, Ident, ImportDefaultSpecifier, ImportNamedSpecifier,
ImportStarAsSpecifier, ModuleItem, ObjectPatProp, Param, Pat, Stmt, VarDeclarator,
},
utils::ident::IdentLike,
visit::{noop_visit_type, Visit, VisitWith},
},
};
// Modified from swc_ecma_utils/src/lib.rs:BindingCollector.
pub struct TopLevelBindingCollector<I>
where
I: IdentLike + Eq + Hash + Send + Sync,
{
only: Option<SyntaxContext>,
bindings: AHashSet<I>,
is_pat_decl: bool,
}
impl<I> TopLevelBindingCollector<I>
where
I: IdentLike + Eq + Hash + Send + Sync,
{
fn add(&mut self, i: &Ident) {
if let Some(only) = self.only {
if only != i.span.ctxt {
return;
}
}
self.bindings.insert(I::from_ident(i));
}
}
impl<I> Visit for TopLevelBindingCollector<I>
where
I: IdentLike + Eq + Hash + Send + Sync,
{
noop_visit_type!();
fn visit_class_decl(&mut self, node: &ClassDecl) {
self.add(&node.ident);
}
fn visit_fn_decl(&mut self, node: &FnDecl) {
self.add(&node.ident);
}
fn visit_pat(&mut self, node: &Pat) {
if self.is_pat_decl {
match node {
Pat::Ident(i) => self.add(&i.id),
Pat::Object(o) => {
for prop in o.props.iter() {
match prop {
ObjectPatProp::Assign(a) => self.add(&a.key),
ObjectPatProp::KeyValue(k) => k.value.visit_with(self),
ObjectPatProp::Rest(_) => {}
}
}
}
Pat::Array(a) => {
for elem in a.elems.iter() {
elem.visit_with(self);
}
}
_ => {}
}
}
}
fn visit_param(&mut self, node: &Param) {
let old = self.is_pat_decl;
self.is_pat_decl = true;
node.visit_children_with(self);
self.is_pat_decl = old;
}
fn visit_import_default_specifier(&mut self, node: &ImportDefaultSpecifier) {
self.add(&node.local);
}
fn visit_import_named_specifier(&mut self, node: &ImportNamedSpecifier) {
self.add(&node.local);
}
fn visit_import_star_as_specifier(&mut self, node: &ImportStarAsSpecifier) {
self.add(&node.local);
}
fn visit_module_items(&mut self, nodes: &[ModuleItem]) {
for node in nodes {
node.visit_children_with(self)
}
}
fn visit_stmts(&mut self, nodes: &[Stmt]) {
for node in nodes {
node.visit_children_with(self)
}
}
fn visit_var_declarator(&mut self, node: &VarDeclarator) {
let old = self.is_pat_decl;
self.is_pat_decl = true;
node.name.visit_with(self);
self.is_pat_decl = false;
node.init.visit_with(self);
self.is_pat_decl = old;
}
}
pub fn collect_top_level_decls<I, N>(n: &N) -> AHashSet<I>
where
I: IdentLike + Eq + Hash + Send + Sync,
N: VisitWith<TopLevelBindingCollector<I>>,
{
let mut v = TopLevelBindingCollector {
only: None,
bindings: Default::default(),
is_pat_decl: false,
};
n.visit_with(&mut v);
v.bindings
}

View file

@ -9,9 +9,7 @@ use next_swc::{
optimize_barrel::optimize_barrel,
optimize_server_react::optimize_server_react,
page_config::page_config_test,
react_remove_properties::remove_properties,
react_server_components::server_components,
remove_console::remove_console,
server_actions::{
server_actions, {self},
},
@ -232,48 +230,6 @@ fn relay_no_artifact_dir_fixture(input: PathBuf) {
);
}
#[fixture("tests/fixture/remove-console/**/input.js")]
fn remove_console_fixture(input: PathBuf) {
let output = input.parent().unwrap().join("output.js");
test_fixture(
syntax(),
&|_tr| remove_console(next_swc::remove_console::Config::All(true)),
&input,
&output,
Default::default(),
);
}
#[fixture("tests/fixture/react-remove-properties/default/**/input.js")]
fn react_remove_properties_default_fixture(input: PathBuf) {
let output = input.parent().unwrap().join("output.js");
test_fixture(
syntax(),
&|_tr| remove_properties(next_swc::react_remove_properties::Config::All(true)),
&input,
&output,
Default::default(),
);
}
#[fixture("tests/fixture/react-remove-properties/custom/**/input.js")]
fn react_remove_properties_custom_fixture(input: PathBuf) {
let output = input.parent().unwrap().join("output.js");
test_fixture(
syntax(),
&|_tr| {
remove_properties(next_swc::react_remove_properties::Config::WithOptions(
next_swc::react_remove_properties::Options {
properties: vec!["^data-custom$".into()],
},
))
},
&input,
&output,
Default::default(),
);
}
#[fixture("tests/fixture/shake-exports/most-usecases/input.js")]
fn shake_exports_fixture(input: PathBuf) {
let output = input.parent().unwrap().join("output.js");

View file

@ -1,9 +0,0 @@
export default function Home() {
return (
<div data-test-id="1" data-custom="1a">
<div data-custom="2">
<h1 data-testid="3">Hello World!</h1>
</div>
</div>
)
}

View file

@ -1,11 +0,0 @@
export default function Home() {
return <div data-test-id="1">
<div>
<h1 data-testid="3">Hello World!</h1>
</div>
</div>;
}

View file

@ -1,11 +0,0 @@
export default function Home() {
return (
<div data-test-id="1" data-custom="1a">
<div data-custom="2">
<h1 data-testid="3" nested={() => <div data-testid="4">nested</div>}>
Hello World!
</h1>
</div>
</div>
)
}

View file

@ -1,15 +0,0 @@
export default function Home() {
return <div data-custom="1a">
<div data-custom="2">
<h1 nested={()=><div>nested</div>}>
Hello World!
</h1>
</div>
</div>;
}

View file

@ -1,42 +0,0 @@
console.log('remove console test at top level')
export function shouldRemove() {
console.log('remove console test in function')
console.error('remove console test in function / error')
}
export function locallyDefinedConsole() {
let console = {
log: () => {},
}
console.log()
}
export function capturedConsole() {
let console = {
log: () => {},
}
function innerFunc() {
console.log()
}
}
export function overrideInParam(console) {
console.log('')
}
export function overrideInParamObjectPatPropAssign({ console }) {
console.log('')
}
export function overrideInParamObjectPatPropKeyValue({ c: console }) {
console.log('')
}
export function overrideInParamObjectPatPropKeyValueNested({ c: { console } }) {
console.log('')
}
export function overrideInParamArray([console]) {
console.log('')
}

View file

@ -1,34 +0,0 @@
;
export function shouldRemove() {
;
;
}
export function locallyDefinedConsole() {
let console = {
log: ()=>{}
};
console.log();
}
export function capturedConsole() {
let console = {
log: ()=>{}
};
function innerFunc() {
console.log();
}
}
export function overrideInParam(console) {
console.log('');
}
export function overrideInParamObjectPatPropAssign({ console }) {
console.log('');
}
export function overrideInParamObjectPatPropKeyValue({ c: console }) {
console.log('');
}
export function overrideInParamObjectPatPropKeyValueNested({ c: { console } }) {
console.log('');
}
export function overrideInParamArray([console]) {
console.log('');
}

View file

@ -1,9 +0,0 @@
let console = {
log: (msg) => {},
}
function func1() {
console.log('remove console test in function')
}
console.log('remove console test at top level')

View file

@ -1,7 +0,0 @@
let console = {
log: (msg)=>{}
};
function func1() {
console.log('remove console test in function');
}
console.log('remove console test at top level');

View file

@ -192,7 +192,7 @@
"@types/ws": "8.2.0",
"@vercel/ncc": "0.34.0",
"@vercel/nft": "0.22.6",
"@vercel/turbopack-ecmascript-runtime": "https://gitpkg-fork.vercel.sh/vercel/turbo/crates/turbopack-ecmascript-runtime/js?turbopack-230929.1",
"@vercel/turbopack-ecmascript-runtime": "https://gitpkg-fork.vercel.sh/vercel/turbo/crates/turbopack-ecmascript-runtime/js?turbopack-230929.3",
"acorn": "8.5.0",
"ajv": "8.11.0",
"amphtml-validator": "1.0.35",

View file

@ -128,11 +128,11 @@ export class TerserPlugin {
}
if (debugMinify && debugMinify === '1') {
console.dir(
{
console.log(
JSON.stringify({
name,
source: source.source().toString(),
},
}),
{
breakLength: Infinity,
maxStringLength: Infinity,

View file

@ -1055,8 +1055,8 @@ importers:
specifier: 0.22.6
version: 0.22.6
'@vercel/turbopack-ecmascript-runtime':
specifier: https://gitpkg-fork.vercel.sh/vercel/turbo/crates/turbopack-ecmascript-runtime/js?turbopack-230929.1
version: '@gitpkg-fork.vercel.sh/vercel/turbo/crates/turbopack-ecmascript-runtime/js?turbopack-230929.1(react-refresh@0.12.0)(webpack@5.86.0)'
specifier: https://gitpkg-fork.vercel.sh/vercel/turbo/crates/turbopack-ecmascript-runtime/js?turbopack-230929.3
version: '@gitpkg-fork.vercel.sh/vercel/turbo/crates/turbopack-ecmascript-runtime/js?turbopack-230929.3(react-refresh@0.12.0)(webpack@5.86.0)'
acorn:
specifier: 8.5.0
version: 8.5.0
@ -26991,9 +26991,9 @@ packages:
/zwitch@2.0.4:
resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
'@gitpkg-fork.vercel.sh/vercel/turbo/crates/turbopack-ecmascript-runtime/js?turbopack-230929.1(react-refresh@0.12.0)(webpack@5.86.0)':
resolution: {tarball: https://gitpkg-fork.vercel.sh/vercel/turbo/crates/turbopack-ecmascript-runtime/js?turbopack-230929.1}
id: '@gitpkg-fork.vercel.sh/vercel/turbo/crates/turbopack-ecmascript-runtime/js?turbopack-230929.1'
'@gitpkg-fork.vercel.sh/vercel/turbo/crates/turbopack-ecmascript-runtime/js?turbopack-230929.3(react-refresh@0.12.0)(webpack@5.86.0)':
resolution: {tarball: https://gitpkg-fork.vercel.sh/vercel/turbo/crates/turbopack-ecmascript-runtime/js?turbopack-230929.3}
id: '@gitpkg-fork.vercel.sh/vercel/turbo/crates/turbopack-ecmascript-runtime/js?turbopack-230929.3'
name: '@vercel/turbopack-ecmascript-runtime'
version: 0.0.0
dependencies: