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:
parent
af3205637d
commit
bf35b47bb4
19 changed files with 134 additions and 617 deletions
197
Cargo.lock
generated
197
Cargo.lock
generated
|
@ -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",
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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 }
|
||||
}
|
|
@ -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(),
|
||||
}
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -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");
|
||||
|
|
|
@ -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>
|
||||
)
|
||||
}
|
|
@ -1,11 +0,0 @@
|
|||
export default function Home() {
|
||||
return <div data-test-id="1">
|
||||
|
||||
<div>
|
||||
|
||||
<h1 data-testid="3">Hello World!</h1>
|
||||
|
||||
</div>
|
||||
|
||||
</div>;
|
||||
}
|
|
@ -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>
|
||||
)
|
||||
}
|
|
@ -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>;
|
||||
}
|
|
@ -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('')
|
||||
}
|
|
@ -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('');
|
||||
}
|
|
@ -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')
|
|
@ -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');
|
|
@ -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",
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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:
|
||||
|
|
Loading…
Reference in a new issue