diff --git a/Cargo.lock b/Cargo.lock index a114f8bf51efe..1e69fb171a5b4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -549,7 +549,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "996ce95bbdb0203e5b91d4a0c9b81c0d67d11c80f884482a0c1ea19e732e3530" dependencies = [ "crossbeam", - "itertools", + "itertools 0.10.5", "lab", "num-traits", "rayon", @@ -565,7 +565,7 @@ checksum = "6f6ca6f0c18c02c2fbfc119df551b8aeb8a385f6d5980f1475ba0255f1e97f1e" dependencies = [ "anyhow", "arrayvec 0.7.4", - "itertools", + "itertools 0.10.5", "log 0.4.20", "nom", "num-rational", @@ -806,9 +806,9 @@ dependencies = [ [[package]] name = "binding_macros" -version = "0.61.18" +version = "0.61.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f223044d1a486a04e27ae0012400169aeb9f6fba2e86f72537c1e827a2f8c1c" +checksum = "a5ccc161009146c42b3c0d5a3f1d66666b0ea16301d89b0292bc61ee4d3a0039" dependencies = [ "anyhow", "console_error_panic_hook", @@ -1120,15 +1120,15 @@ dependencies = [ [[package]] name = "browserslist-rs" -version = "0.13.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e33066f72a558361eeb1077b0aff0f1dce1ac75bdc20b38a642f155f767b2824" +checksum = "4f2557836820eed97f79071bb3294b2640e71e0bc4301336a210a1b8b4947c15" dependencies = [ "ahash 0.8.6", "anyhow", "chrono", "either", - "itertools", + "itertools 0.12.0", "nom", "once_cell", "quote", @@ -1475,9 +1475,9 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.30" +version = "0.4.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "defd4e7873dbddba6c7c91e199c7fcb946abc4a6a4ac3195400bcfb01b5de877" +checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" dependencies = [ "android-tzdata", "iana-time-zone", @@ -2061,7 +2061,7 @@ dependencies = [ "clap 3.2.23", "criterion-plot", "futures 0.3.28", - "itertools", + "itertools 0.10.5", "lazy_static", "num-traits", "oorandom", @@ -2083,7 +2083,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1" dependencies = [ "cast", - "itertools", + "itertools 0.10.5", ] [[package]] @@ -2693,12 +2693,6 @@ version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68b0cf012f1230e43cd00ebb729c6bb58707ecfa8ad08b52ef3a4ccd2697fc30" -[[package]] -name = "easy-error" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04cc9717c61d2908f50d16ebb5677c7e82ea2bdf7cb52f66b30fe079f3212e16" - [[package]] name = "either" version = "1.9.0" @@ -3354,7 +3348,7 @@ name = "globwalk" version = "0.1.0" dependencies = [ "camino", - "itertools", + "itertools 0.10.5", "path-clean 1.0.1", "path-slash", "regex", @@ -3373,7 +3367,7 @@ version = "0.1.0" dependencies = [ "camino", "futures 0.3.28", - "itertools", + "itertools 0.10.5", "merge-streams", "notify 5.1.0", "notify-debouncer-mini", @@ -4076,7 +4070,7 @@ checksum = "334e04b4d781f436dc315cb1e7515bd96826426345d498149e4bde36b67f8ee9" dependencies = [ "async-channel", "castaway", - "crossbeam-utils 0.7.2", + "crossbeam-utils 0.8.16", "curl", "curl-sys", "encoding_rs", @@ -4104,6 +4098,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.9" @@ -4486,7 +4489,7 @@ dependencies = [ "cssparser-color", "dashmap", "data-encoding", - "itertools", + "itertools 0.10.5", "lazy_static", "lightningcss-derive", "parcel_selectors", @@ -4955,9 +4958,9 @@ dependencies = [ [[package]] name = "modularize_imports" -version = "0.63.0" +version = "0.66.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ae13302a671df594637d7a97c0c17132f0e312ccceec599971c9a003d05d8c7" +checksum = "03ba62fb8ab2a603ee6e85470f5dd9563a4809dc0b6f749c721b5c0ef313c83f" dependencies = [ "convert_case 0.5.0", "handlebars", @@ -5415,9 +5418,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.18.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "oorandom" @@ -6074,7 +6077,7 @@ checksum = "09963355b9f467184c04017ced4a2ba2d75cbcb4e7462690d388233253d4b1a9" dependencies = [ "anstyle", "difflib", - "itertools", + "itertools 0.10.5", "predicates-core", ] @@ -6096,9 +6099,9 @@ dependencies = [ [[package]] name = "preset_env_base" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff96707a8ddcf6230b2249554d5dc78bbe93cfe28af5ef880174a0f2e63d0d53" +checksum = "d4e9bedef66806cb32828719aa5cad298e363ad50d190538db40b5631b89d456" dependencies = [ "ahash 0.8.6", "anyhow", @@ -6219,7 +6222,7 @@ checksum = "2c828f93f5ca4826f97fedcbd3f9a536c16b12cff3dbbb4a007f932bbad95b12" dependencies = [ "bytes 1.5.0", "heck 0.4.1", - "itertools", + "itertools 0.10.5", "lazy_static", "log 0.4.20", "multimap", @@ -6240,7 +6243,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ea9b0f8cbe5e15a8a042d030bd96668db28ecb567ec37d691971ff5731d2b1b" dependencies = [ "anyhow", - "itertools", + "itertools 0.10.5", "proc-macro2", "quote", "syn 1.0.109", @@ -6501,7 +6504,7 @@ dependencies = [ "const_fn_assert", "fern", "interpolate_name", - "itertools", + "itertools 0.10.5", "ivf", "libc", "libfuzzer-sys", @@ -7894,9 +7897,9 @@ checksum = "e9426b2a0c03e6cc2ea8dbc0168dbbf943f88755e409fb91bcb8f6a268305f4a" [[package]] name = "styled_components" -version = "0.91.0" +version = "0.94.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70839c116ea418685475d63254fbbbfa84805a29be9643bd4c0ff853df933165" +checksum = "36c5c51bb8528cceebba8f28b82dcdbc811ba2f8934e85c519e815c6756206a8" dependencies = [ "Inflector", "once_cell", @@ -7912,11 +7915,11 @@ dependencies = [ [[package]] name = "styled_jsx" -version = "0.68.0" +version = "0.68.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf86552e4835ca26343bbbdd26fa56ac3954e390b8f9dd4b3f7f159ec354f42b" +checksum = "b8ba4b5878a8de959cc40fdbcbe2b4e74b206db55dbb71b17f07fcd8007e26bb" dependencies = [ - "easy-error", + "anyhow", "lightningcss", "parcel_selectors", "preset_env_base", @@ -8014,9 +8017,9 @@ dependencies = [ [[package]] name = "swc" -version = "0.270.18" +version = "0.270.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a27aa57c85cbd942540fe5e50f5d665723a1666305506f0cf0daf423903e2a9" +checksum = "722794f5f68ffaba34e0ef7e0c0fc04208d7e1c284f4df2f827890cdd20d0ca7" dependencies = [ "anyhow", "base64 0.21.4", @@ -8091,9 +8094,9 @@ dependencies = [ [[package]] name = "swc_bundler" -version = "0.223.15" +version = "0.223.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e912d8387fc8592465c081b2e6b8df89443117ae4ca5160f21e08d47d7d58d7a" +checksum = "fefa09161d201f04a2d6c553c4b726819ec44dcfff6e40dc1a68342803b8cd12" dependencies = [ "anyhow", "crc", @@ -8170,9 +8173,9 @@ dependencies = [ [[package]] name = "swc_compiler_base" -version = "0.4.16" +version = "0.4.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b8a76c7c388f1db934d10ba7fd293ea69e6ed8bd031855b579e4794aff5af85" +checksum = "b68297972f09d21dea054f1ba5ee611faaf43d6ff3903ba34a52bfa00342d7d7" dependencies = [ "anyhow", "base64 0.21.4", @@ -8218,9 +8221,9 @@ dependencies = [ [[package]] name = "swc_core" -version = "0.87.19" +version = "0.87.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "455c32b15bcdf8cddd87ce4c5d51f89bc16dfb3e6e58959e1cead7634ab2e828" +checksum = "8b3e389aed344d9d738f7e0901a1778a8402f10e459556c6d3a7a5b4501bf4cf" dependencies = [ "binding_macros", "swc", @@ -8426,9 +8429,9 @@ dependencies = [ [[package]] name = "swc_ecma_codegen" -version = "0.146.54" +version = "0.146.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99b61ca275e3663238b71c4b5da8e6fb745bde9989ef37d94984dfc81fc6d009" +checksum = "aa20d5c61563c5ec9ba469a7701512f4d6bc29790718cd198f43e61148e8aff2" dependencies = [ "memchr", "num-bigint", @@ -8457,9 +8460,9 @@ dependencies = [ [[package]] name = "swc_ecma_compat_bugfixes" -version = "0.2.14" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a69ac870b965a458340c6a5a31059f8473093595a1f9efb169002f23bc05261" +checksum = "b51b895bd387f4c1e3aa5de21936d12a02a4de7d2b88b8efea0949ac0220c2a2" dependencies = [ "swc_atoms", "swc_common", @@ -8487,9 +8490,9 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es2015" -version = "0.2.14" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6189b89270bca5d3b103818a49c8decca0f9a63b4507f4f5301b052b0fb42d51" +checksum = "b85ca741acb73cbc79d5bf7716dfd502fd43a035a1f3509cc5ddfff1995477a4" dependencies = [ "arrayvec 0.7.4", "indexmap 2.0.0", @@ -8513,9 +8516,9 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es2016" -version = "0.2.10" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0708c1ae05f82d4e19da2f02a5b093e4e50d581e9bfac527f4aa7693bd791cf7" +checksum = "c60d1e68eed4bce1ac480a95694b200fc1482d98adb22dcd8aa174472df8eb42" dependencies = [ "swc_atoms", "swc_common", @@ -8530,9 +8533,9 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es2017" -version = "0.2.11" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3701ee2c0321f79258a2acc3633b875af7770cd0173e17a0615d9e707ba32ac" +checksum = "ad96684e095c793c44989c63d7195f309ac4bfed66d4fa8ab3b1e2a79d641bc2" dependencies = [ "serde", "swc_atoms", @@ -8548,9 +8551,9 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es2018" -version = "0.2.12" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "def1e23336a20ca46d297685c2f5c60703eb2d7aea0b8996fefa577be3fad508" +checksum = "3c25b188098603928dd3f310ea029b5ca3e52cb0f7b20698cf9328ea6fab3425" dependencies = [ "serde", "swc_atoms", @@ -8567,9 +8570,9 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es2019" -version = "0.2.11" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72dd4288e3dfbba53a72410daf190d84d7601f91300e6c524ddea1f0708f2495" +checksum = "d2689f136599fddd7be1f4e2f665ecce539d7f9bd04c314fa2ad4304f63ed965" dependencies = [ "swc_atoms", "swc_common", @@ -8583,9 +8586,9 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es2020" -version = "0.2.12" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f654fe803d73320c723ba25e88b4b561fd1d53ad59ad8622f209fe03f6849b3b" +checksum = "6388c05a061570b00f453be00fcf9703e5b7d5f33b8d8457ea3b20d134ff50a3" dependencies = [ "serde", "swc_atoms", @@ -8601,9 +8604,9 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es2021" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a33089b3b121acadc052ca636905c1dd465db3cc94fa456c26eacc65d5074db" +checksum = "5752c00c792e92c8ce56b2a656058d554a104599e9f4b5c3675b02223f217ee0" dependencies = [ "swc_atoms", "swc_common", @@ -8617,9 +8620,9 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es2022" -version = "0.2.12" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebe2a334c1ed213b0a58adb09518c63c63229afad705e5ab027e2fd0f3ff20bd" +checksum = "0169d78892b5185d0b3195326a65b34b306a9f802c978deba660227675fb4004" dependencies = [ "swc_atoms", "swc_common", @@ -8636,9 +8639,9 @@ dependencies = [ [[package]] name = "swc_ecma_compat_es3" -version = "0.2.10" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b2f3ac54636b7690f17adc9430318d83bf8423635ca848bbb9f9c045e01e377" +checksum = "76988033af2b8b94629d60a1a86d9463e3cd0298820dd54bccda57c1d9e40a46" dependencies = [ "swc_common", "swc_ecma_ast", @@ -8665,9 +8668,9 @@ dependencies = [ [[package]] name = "swc_ecma_lints" -version = "0.90.10" +version = "0.90.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5afe579c82fe80a24e8c815fa19e7f1126c8114db0985f211c985d5b4db4137e" +checksum = "22e407eb2703a200d6eed65ad4444afb029bf6979fda6c99007ca0a638a99696" dependencies = [ "auto_impl", "dashmap", @@ -8706,9 +8709,9 @@ dependencies = [ [[package]] name = "swc_ecma_minifier" -version = "0.190.15" +version = "0.190.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdd196fa7d01ddd4eaa935f0ddd12854df57db21243aebde9169882d22d381f3" +checksum = "5efcbaa6db6fb13d485139e2e8b831326b99055a61dd0c1b3c4e9c94e5439c4d" dependencies = [ "arrayvec 0.7.4", "indexmap 2.0.0", @@ -8763,9 +8766,9 @@ dependencies = [ [[package]] name = "swc_ecma_preset_env" -version = "0.204.15" +version = "0.204.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94556b1404aa1c8e9f22312fe83a11b5c882b0122557daae1187826575162627" +checksum = "9a9037704b83704a517d6c6b88f0b4f519d77cd6acaa25fe3db97fc4ca77d784" dependencies = [ "anyhow", "dashmap", @@ -8818,9 +8821,9 @@ dependencies = [ [[package]] name = "swc_ecma_transforms" -version = "0.227.15" +version = "0.227.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b319ba24f6311afa72c5d7e81f06f52b1cd9ad4debf0524eac599b7640b9039a" +checksum = "03f5ad7385ba6664106fc60c8b147d2c7ea2f2630d62ccb4a29a6d86f9fa1e4e" dependencies = [ "swc_atoms", "swc_common", @@ -8838,9 +8841,9 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_base" -version = "0.135.11" +version = "0.135.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d4ab26ec124b03e47f54d4daade8e9a9dcd66d3a4ca3cd47045f138d267a60e" +checksum = "f6f0efec63cc56f3f2b93d1367d16e684d1c6f4a6cb85436db2c91448867df2b" dependencies = [ "better_scoped_tls", "bitflags 2.4.0", @@ -8862,9 +8865,9 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_classes" -version = "0.124.11" +version = "0.124.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fe4376c024fa04394cafb8faecafb4623722b92dbbe46532258cc0a6b569d9c" +checksum = "65a3a39bc56f271afba7e48be14f43a071226c27890da2fabaefa822cc89e3f2" dependencies = [ "swc_atoms", "swc_common", @@ -8876,9 +8879,9 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_compat" -version = "0.161.14" +version = "0.161.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93a7192ebd94fa4454114ff79513000260ac583d3b80067d9037daa119f318df" +checksum = "26bfa9040b0ff31ff2b50b47b72ff02f4cd3e090a156e587e43fdc08ce1a7d36" dependencies = [ "arrayvec 0.7.4", "indexmap 2.0.0", @@ -8925,9 +8928,9 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_module" -version = "0.178.15" +version = "0.178.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc1ba85cf4620c7690eb67f00bf2b1efa0d88265bbbf8cea60dfc7aec59c3e99" +checksum = "684e80a3e847ae41c79c2c4af005c464ff9b0b0bb636009f588f64d14070ca35" dependencies = [ "Inflector", "anyhow", @@ -8952,9 +8955,9 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_optimization" -version = "0.196.14" +version = "0.196.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eefef9f5a80afdbd4b517401dc053825d1ac0d95bb63f3ae92d2b335d8d7d4f8" +checksum = "f2b3b63a290c20600a3844fe3f842cad19eddc3e05b58752a9cd967978d54574" dependencies = [ "dashmap", "indexmap 2.0.0", @@ -8977,9 +8980,9 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_proposal" -version = "0.169.14" +version = "0.169.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86de99757fc31d8977f47c02a26e5c9a243cb63b03fe8aa8b36d79924b8fa29c" +checksum = "23d71a5d911918e4d7698df9f08925071e6993179e5e9331932051ff4e6ecf93" dependencies = [ "either", "rustc-hash", @@ -8997,9 +9000,9 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_react" -version = "0.181.15" +version = "0.181.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9918e22caf1ea4a71085f5d818d6c0bf5c19d669cfb9d38f9fdc3da0496abdc7" +checksum = "f0c6f16101c8eda9420435b62fc50f127e15fb58ae73ce99df293609d23fb9b7" dependencies = [ "base64 0.21.4", "dashmap", @@ -9022,9 +9025,9 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_testing" -version = "0.138.10" +version = "0.138.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9def5b4509c1764173a5cfce81d46d3d64ae479fbc7f1975ba3758dda4abc79" +checksum = "ecfd5d3bdcb529c4db2ac27fac59a9e1ce66975543d34f9ce60e7ee2cbc73f78" dependencies = [ "ansi_term", "anyhow", @@ -9048,9 +9051,9 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_typescript" -version = "0.186.14" +version = "0.186.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1d1495c969ffdc224384f1fb73646b9c1b170779f20fdb984518deb054aa522" +checksum = "e951251870f036f549145c8eb6226d5b6bf7dac83b68b959cf2cca6b511f4b3f" dependencies = [ "ryu-js", "serde", @@ -9116,9 +9119,9 @@ dependencies = [ [[package]] name = "swc_emotion" -version = "0.67.0" +version = "0.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30e429f66f612c42bef6b202419a79ccbe7317a09da00107a56c24dbc3dbaf0d" +checksum = "3e10ea9a961413be44879c2b16d04b6bb8f8d9f9ca09ef2772c363d81dee0fe6" dependencies = [ "base64 0.13.1", "byteorder", @@ -9284,9 +9287,9 @@ dependencies = [ [[package]] name = "swc_relay" -version = "0.39.0" +version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "168aaf1e1477292379be03b713a4a9c8bf7969551d90c6dcad2e44b936d3e86b" +checksum = "08b37cd8b8acc422343aae385f29a51a59a22d1bb0087c7ea3ee05ea51b87088" dependencies = [ "once_cell", "regex", @@ -10430,7 +10433,7 @@ dependencies = [ "command-group", "dunce", "human-panic", - "itertools", + "itertools 0.10.5", "pretty_assertions", "serde", "serde_json", @@ -10888,7 +10891,7 @@ dependencies = [ "futures 0.3.28", "indexmap 1.9.3", "intervaltree", - "itertools", + "itertools 0.10.5", "owo-colors", "postcard", "serde", @@ -11081,7 +11084,9 @@ dependencies = [ "anyhow", "async-trait", "indexmap 1.9.3", + "lightningcss", "modularize_imports", + "parcel_selectors", "serde", "serde_json", "styled_components", @@ -11290,7 +11295,7 @@ dependencies = [ "futures 0.3.28", "indexmap 1.9.3", "intervaltree", - "itertools", + "itertools 0.10.5", "owo-colors", "postcard", "serde", @@ -11516,7 +11521,7 @@ dependencies = [ "dashmap", "fsevent-sys 4.1.0", "futures 0.3.28", - "itertools", + "itertools 0.10.5", "libc", "notify 6.1.1", "tempfile", @@ -11547,7 +11552,7 @@ name = "turborepo-graph-utils" version = "0.1.0" dependencies = [ "futures 0.3.28", - "itertools", + "itertools 0.10.5", "log 0.4.20", "petgraph", "thiserror", @@ -11595,7 +11600,7 @@ dependencies = [ "humantime", "indicatif", "is-terminal", - "itertools", + "itertools 0.10.5", "json_comments", "jsonc-parser 0.21.0", "lazy-regex", @@ -11701,7 +11706,7 @@ version = "0.1.0" dependencies = [ "crop", "futures 0.3.28", - "itertools", + "itertools 0.10.5", "jsonc-parser 0.23.0", "pidlock", "serde_json", @@ -11738,7 +11743,7 @@ version = "0.1.0" dependencies = [ "anyhow", "globwalk", - "itertools", + "itertools 0.10.5", "lazy-regex", "node-semver", "petgraph", @@ -11859,7 +11864,7 @@ version = "1.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" dependencies = [ - "cfg-if 0.1.10", + "cfg-if 1.0.0", "rand 0.8.5", "static_assertions", ] @@ -12776,7 +12781,7 @@ dependencies = [ "build-fs-tree", "const_format", "dunce", - "itertools", + "itertools 0.10.5", "miette 5.10.0", "nom", "pori", diff --git a/Cargo.toml b/Cargo.toml index 4d36fddaaf13a..d5654143151c9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -82,18 +82,18 @@ lto = "off" [workspace.dependencies] async-recursion = "1.0.2" # Keep consistent with preset_env_base through swc_core -browserslist-rs = { version = "0.13.0" } +browserslist-rs = { version = "0.14.0" } miette = { version = "5.10.0", features = ["fancy"] } mdxjs = "0.1.21" -modularize_imports = { version = "0.63.0" } -styled_components = { version = "0.91.0" } -styled_jsx = { version = "0.68.0" } -swc_core = { version = "0.87.16", features = [ +modularize_imports = { version = "0.66.0" } +styled_components = { version = "0.94.0" } +styled_jsx = { version = "0.68.1" } +swc_core = { version = "0.87.28", features = [ "ecma_loader_lru", "ecma_loader_parking_lot", ] } -swc_emotion = { version = "0.67.0" } -swc_relay = { version = "0.39.0" } +swc_emotion = { version = "0.70.1" } +swc_relay = { version = "0.42.0" } testing = { version = "0.35.14" } auto-hash-map = { path = "crates/turbo-tasks-auto-hash-map" } @@ -211,10 +211,16 @@ indicatif = "0.17.3" indoc = "2.0.0" itertools = "0.10.5" lazy_static = "1.4.0" +lightningcss = { version = "1.0.0-alpha.50", features = [ + "serde", + "visitor", + "into_owned", +] } mime = "0.3.16" nohash-hasher = "0.2.0" once_cell = "1.17.1" owo-colors = "3.5.0" +parcel_selectors = "0.26.0" parking_lot = "0.12.1" path-clean = "1.0.1" pathdiff = "0.2.1" diff --git a/crates/turbopack-binding/Cargo.toml b/crates/turbopack-binding/Cargo.toml index 533073786cfa3..26e6c67ff5d13 100644 --- a/crates/turbopack-binding/Cargo.toml +++ b/crates/turbopack-binding/Cargo.toml @@ -20,6 +20,7 @@ __swc_core_next_core = [ "swc_core/ecma_loader_lru", "swc_core/ecma_utils", "swc_core/ecma_minifier", + "swc_core/ecma_preset_env", "swc_core/ecma_transforms", "swc_core/ecma_transforms_react", "swc_core/ecma_transforms_typescript", @@ -170,7 +171,12 @@ __swc_transform_styled_components = [ "__swc_custom_transform", "styled_components", ] -__swc_transform_styled_jsx = ["__swc", "__swc_custom_transform", "styled_jsx"] +__swc_transform_styled_jsx = [ + "__swc", + "__swc_custom_transform", + "swc_core/ecma_preset_env", + "styled_jsx", +] __swc_transform_emotion = ["__swc", "__swc_custom_transform", "swc_emotion"] __swc_transform_relay = ["__swc", "__swc_custom_transform", "swc_relay"] __swc_transform_modularize_imports = [ diff --git a/crates/turbopack-cli/src/contexts.rs b/crates/turbopack-cli/src/contexts.rs index fbefcef7c3a98..a0e56d813d863 100644 --- a/crates/turbopack-cli/src/contexts.rs +++ b/crates/turbopack-cli/src/contexts.rs @@ -121,6 +121,8 @@ async fn get_client_module_options_context( .cell(), ); + let versions = *env.runtime_versions().await?; + let custom_ecma_transform_plugins = Some(CustomEcmascriptTransformPlugins::cell( CustomEcmascriptTransformPlugins { source_transforms: vec![ @@ -133,6 +135,7 @@ async fn get_client_module_options_context( )) as _), Vc::cell(Box::new(StyledJsxTransformer::new( module_options_context.use_lightningcss, + versions, )) as _), ], output_transforms: vec![], diff --git a/crates/turbopack-css/Cargo.toml b/crates/turbopack-css/Cargo.toml index 84c64dae6d1dd..d4ad4b0b7fb53 100644 --- a/crates/turbopack-css/Cargo.toml +++ b/crates/turbopack-css/Cargo.toml @@ -17,13 +17,9 @@ anyhow = { workspace = true } async-trait = { workspace = true } indexmap = { workspace = true } indoc = { workspace = true } -lightningcss = { version = "1.0.0-alpha.50", features = [ - "serde", - "visitor", - "into_owned", -] } +lightningcss = { workspace = true } once_cell = { workspace = true } -parcel_selectors = "0.26.0" +parcel_selectors = { workspace = true } regex = { workspace = true } serde = { workspace = true } tracing = { workspace = true } diff --git a/crates/turbopack-ecmascript-plugins/Cargo.toml b/crates/turbopack-ecmascript-plugins/Cargo.toml index d299be1d5bb19..dccd8a3664c4d 100644 --- a/crates/turbopack-ecmascript-plugins/Cargo.toml +++ b/crates/turbopack-ecmascript-plugins/Cargo.toml @@ -25,6 +25,8 @@ workspace = true anyhow = { workspace = true } async-trait = { workspace = true } indexmap = { workspace = true } +lightningcss = { workspace = true } +parcel_selectors = { workspace = true } serde = { workspace = true } serde_json = { workspace = true } diff --git a/crates/turbopack-ecmascript-plugins/src/transform/styled_jsx.rs b/crates/turbopack-ecmascript-plugins/src/transform/styled_jsx.rs index 382d7262a932e..0716cebf0701c 100644 --- a/crates/turbopack-ecmascript-plugins/src/transform/styled_jsx.rs +++ b/crates/turbopack-ecmascript-plugins/src/transform/styled_jsx.rs @@ -1,9 +1,14 @@ -use anyhow::Result; +use anyhow::{bail, Result}; use async_trait::async_trait; +use lightningcss::{ + stylesheet::{PrinterOptions, StyleSheet}, + targets::{Browsers, Targets}, +}; use swc_core::{ common::{util::take::Take, FileName}, ecma::{ ast::{Module, Program}, + preset_env::{Version, Versions}, visit::FoldWith, }, }; @@ -12,11 +17,15 @@ use turbopack_ecmascript::{CustomTransformer, TransformContext}; #[derive(Debug)] pub struct StyledJsxTransformer { use_lightningcss: bool, + target_browsers: Versions, } impl StyledJsxTransformer { - pub fn new(use_lightningcss: bool) -> Self { - Self { use_lightningcss } + pub fn new(use_lightningcss: bool, target_browsers: Versions) -> Self { + Self { + use_lightningcss, + target_browsers, + } } } @@ -30,10 +39,59 @@ impl CustomTransformer for StyledJsxTransformer { FileName::Anon, styled_jsx::visitor::Config { use_lightningcss: self.use_lightningcss, - ..Default::default() + browsers: self.target_browsers, + }, + styled_jsx::visitor::NativeConfig { + process_css: if self.use_lightningcss || self.target_browsers.is_any_target() { + None + } else { + let targets = Targets { + browsers: Some(convert_browsers(&self.target_browsers)), + ..Default::default() + }; + + Some(Box::new(move |css| { + let ss = StyleSheet::parse(css, Default::default()); + + let ss = match ss { + Ok(v) => v, + Err(err) => { + bail!("failed to parse css: {}", err) + } + }; + + let output = ss.to_css(PrinterOptions { + minify: true, + source_map: None, + project_root: None, + targets, + analyze_dependencies: None, + pseudo_classes: None, + })?; + Ok(output.code) + })) + }, }, )); Ok(()) } } + +fn convert_browsers(browsers: &Versions) -> Browsers { + fn convert(v: Option) -> Option { + v.map(|v| v.major << 16 | v.minor << 8 | v.patch) + } + + Browsers { + android: convert(browsers.android), + chrome: convert(browsers.chrome), + edge: convert(browsers.edge), + firefox: convert(browsers.firefox), + ie: convert(browsers.ie), + ios_saf: convert(browsers.ios), + opera: convert(browsers.opera), + safari: convert(browsers.safari), + samsung: convert(browsers.samsung), + } +}