diff --git a/Cargo.lock b/Cargo.lock index c7e98b7..0044a31 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -7,10 +7,6 @@ name = "Inflector" version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" -dependencies = [ - "lazy_static", - "regex", -] [[package]] name = "ahash" @@ -23,6 +19,18 @@ dependencies = [ "version_check", ] +[[package]] +name = "ahash" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", + "zerocopy", +] + [[package]] name = "aho-corasick" version = "1.0.1" @@ -32,6 +40,12 @@ dependencies = [ "memchr", ] +[[package]] +name = "allocator-api2" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" + [[package]] name = "ansi_term" version = "0.12.1" @@ -59,17 +73,6 @@ dependencies = [ "syn 2.0.60", ] -[[package]] -name = "atty" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" -dependencies = [ - "hermit-abi 0.1.19", - "libc", - "winapi", -] - [[package]] name = "autocfg" version = "1.1.0" @@ -133,6 +136,15 @@ dependencies = [ "generic-array", ] +[[package]] +name = "bumpalo" +version = "3.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" +dependencies = [ + "allocator-api2", +] + [[package]] name = "bytecheck" version = "0.6.11" @@ -181,9 +193,9 @@ dependencies = [ [[package]] name = "cargo_metadata" -version = "0.15.4" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eee4243f1f26fc7a42710e7439c149e2b10b05472f88090acce52632f231a73a" +checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" dependencies = [ "camino", "cargo-platform", @@ -373,14 +385,18 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" dependencies = [ - "ahash", + "ahash 0.7.6", ] [[package]] name = "hashbrown" -version = "0.14.3" +version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +dependencies = [ + "ahash 0.8.11", + "allocator-api2", +] [[package]] name = "hermit-abi" @@ -409,7 +425,7 @@ version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96274be293b8877e61974a607105d09c84caebe9620b47774aa8a6b942042dd4" dependencies = [ - "hashbrown 0.14.3", + "hashbrown 0.14.5", "new_debug_unreachable", "once_cell", "phf", @@ -440,7 +456,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "824b2ae422412366ba479e8111fd301f7b5faece8149317bb81925979a53f520" dependencies = [ "equivalent", - "hashbrown 0.14.3", + "hashbrown 0.14.5", ] [[package]] @@ -1111,9 +1127,9 @@ checksum = "f67ad224767faa3c7d8b6d91985b78e70a1324408abcb1cfcc2be4c06bc06043" [[package]] name = "sourcemap" -version = "8.0.1" +version = "9.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "208d40b9e8cad9f93613778ea295ed8f3c2b1824217c6cfc7219d3f6f45b96d4" +checksum = "dab08a862c70980b8e23698b507e272317ae52a608a164a844111f5372374f1f" dependencies = [ "base64-simd", "bitvec", @@ -1165,6 +1181,19 @@ dependencies = [ "syn 2.0.60", ] +[[package]] +name = "swc_allocator" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adc8bd3075d1c6964010333fae9ddcd91ad422a4f8eb8b3206a9b2b6afb4209e" +dependencies = [ + "bumpalo", + "hashbrown 0.14.5", + "ptr_meta", + "rustc-hash", + "triomphe", +] + [[package]] name = "swc_atoms" version = "0.6.7" @@ -1181,13 +1210,12 @@ dependencies = [ [[package]] name = "swc_common" -version = "0.34.4" +version = "0.37.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9087befec6b63911f9d2f239e4f91c9b21589c169b86ed2d616944d23cf4a243" +checksum = "12d0a8eaaf1606c9207077d75828008cb2dfb51b095a766bd2b72ef893576e31" dependencies = [ "anyhow", "ast_node", - "atty", "better_scoped_tls", "bytecheck", "cfg-if", @@ -1202,6 +1230,7 @@ dependencies = [ "serde", "siphasher", "sourcemap", + "swc_allocator", "swc_atoms", "swc_eq_ignore_macros", "swc_visit", @@ -1213,11 +1242,12 @@ dependencies = [ [[package]] name = "swc_core" -version = "0.96.9" +version = "0.101.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de60918c09a10e55b659b4e70029d283da815e3107b22f79ec9fac280d4d8843" +checksum = "24fd64b47f1da39ff3c229b7a3f4fb4d9542e21b245ac77220a4b2ad1f455065" dependencies = [ "once_cell", + "swc_allocator", "swc_atoms", "swc_common", "swc_ecma_ast", @@ -1234,9 +1264,9 @@ dependencies = [ [[package]] name = "swc_ecma_ast" -version = "0.115.1" +version = "0.118.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7be1306930c235435a892104c00c2b5e16231043c085d5a10bd3e7537b15659b" +checksum = "a6f866d12e4d519052b92a0a86d1ac7ff17570da1272ca0c89b3d6f802cd79df" dependencies = [ "bitflags 2.5.0", "bytecheck", @@ -1253,16 +1283,16 @@ dependencies = [ [[package]] name = "swc_ecma_codegen" -version = "0.151.1" +version = "0.155.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5141a8cb4eb69e090e6aea5d49061b46919be5210f3d084f9d9ad63d30f5cff" +checksum = "cc7641608ef117cfbef9581a99d02059b522fcca75e5244fa0cbbd8606689c6f" dependencies = [ "memchr", "num-bigint", "once_cell", - "rustc-hash", "serde", "sourcemap", + "swc_allocator", "swc_atoms", "swc_common", "swc_ecma_ast", @@ -1284,9 +1314,9 @@ dependencies = [ [[package]] name = "swc_ecma_parser" -version = "0.146.12" +version = "0.149.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a4e0c2e85f12c63b85c805e923079b04d1fb3e25edd069d638eed5f2098de74" +checksum = "683dada14722714588b56481399c699378b35b2ba4deb5c4db2fb627a97fb54b" dependencies = [ "either", "new_debug_unreachable", @@ -1306,9 +1336,9 @@ dependencies = [ [[package]] name = "swc_ecma_testing" -version = "0.23.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f495dae76f1ef3f5be46993b050c3c7f9bf534bcdacf1e40789d32255040776" +checksum = "945faa325af9833b2541d3b0b4e614812677480c2b763c6c6e8c2a42a133b906" dependencies = [ "anyhow", "hex", @@ -1319,9 +1349,9 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_base" -version = "0.140.3" +version = "0.144.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d37dc505c92af56d0f77cf6f31a6ccd37ac40cad1e01ff77277e0b1c70e8f8ff" +checksum = "7c0a71579d030e12fd3cfbfc8712c4ce21afc526f2a759903c77d8df61950f5e" dependencies = [ "better_scoped_tls", "bitflags 2.5.0", @@ -1342,9 +1372,9 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_testing" -version = "0.143.2" +version = "0.147.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20932deae5f94d2c2d722ed2ed70a140e1e9f19d105414c02572bd49e83fb29a" +checksum = "b262ae285569998385b80ba0457a5cacce0208e6e7a3d7ee7dabc939231b0842" dependencies = [ "ansi_term", "anyhow", @@ -1368,9 +1398,9 @@ dependencies = [ [[package]] name = "swc_ecma_utils" -version = "0.130.3" +version = "0.134.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13e62b199454a576c5fdbd7e1bef8ab88a395427456d8a713d994b7d469833aa" +checksum = "029eec7dd485923a75b5a45befd04510288870250270292fc2c1b3a9e7547408" dependencies = [ "indexmap", "num_cpus", @@ -1387,10 +1417,11 @@ dependencies = [ [[package]] name = "swc_ecma_visit" -version = "0.101.0" +version = "0.104.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce0d997f0c9b4e181225f603d161f6757c2a97022258170982cfe005ec69ec92" +checksum = "5b1c6802e68e51f336e8bc9644e9ff9da75d7da9c1a6247d532f2e908aa33e81" dependencies = [ + "new_debug_unreachable", "num-bigint", "swc_atoms", "swc_common", @@ -1412,9 +1443,9 @@ dependencies = [ [[package]] name = "swc_error_reporters" -version = "0.18.1" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4689d9bb6092b5e6a0b79c0152336a8bd7f0acaf70dcf4133f86deb01775baa0" +checksum = "0d049e9256abf29d9fc66d3db3ea44b6815a64ad565ce31e117a74ee96478bb3" dependencies = [ "anyhow", "miette", @@ -1456,9 +1487,9 @@ dependencies = [ [[package]] name = "swc_plugin_proxy" -version = "0.44.2" +version = "0.47.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d5460f8f89905a6d698d8d9a965f6c99888c8ebcbb5a0266556d06ad39f09f7" +checksum = "07548e19126fbc58b16237e2c8b0075f037774dfdd691fe4c558ba898cfe784b" dependencies = [ "better_scoped_tls", "rkyv", @@ -1481,25 +1512,12 @@ dependencies = [ [[package]] name = "swc_visit" -version = "0.5.14" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "043d11fe683dcb934583ead49405c0896a5af5face522e4682c16971ef7871b9" +checksum = "1ceb044142ba2719ef9eb3b6b454fce61ab849eb696c34d190f04651955c613d" dependencies = [ "either", - "swc_visit_macros", -] - -[[package]] -name = "swc_visit_macros" -version = "0.5.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92807d840959f39c60ce8a774a3f83e8193c658068e6d270dbe0a05e40e90b41" -dependencies = [ - "Inflector", - "proc-macro2", - "quote", - "swc_macros_common", - "syn 2.0.60", + "new_debug_unreachable", ] [[package]] @@ -1555,9 +1573,9 @@ dependencies = [ [[package]] name = "testing" -version = "0.36.0" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27d395aa823f3ad1ad845ed74b96188f493b469794cfbe9ef82f03196064086f" +checksum = "3105e9569b7f674d1107d19494c993aafd19ea51f7a558b96b267b49c9b5f2bf" dependencies = [ "ansi_term", "cargo_metadata", @@ -1708,9 +1726,9 @@ dependencies = [ [[package]] name = "triomphe" -version = "0.1.11" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "859eb650cfee7434994602c3a68b25d77ad9e68c8a6cd491616ef86661382eb3" +checksum = "e6631e42e10b40c0690bf92f404ebcfe6e1fdb480391d15f17cc8e96eeed5369" dependencies = [ "serde", "stable_deref_trait", @@ -1742,9 +1760,9 @@ checksum = "d70b6494226b36008c8366c288d77190b3fad2eb4c10533139c1c1f461127f1a" [[package]] name = "unicode-id-start" -version = "1.0.4" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02aebfa694eccbbbffdd92922c7de136b9fe764396d2f10e21bce1681477cfc1" +checksum = "bc3882f69607a2ac8cc4de3ee7993d8f68bb06f2974271195065b3bd07f2edea" [[package]] name = "unicode-ident" @@ -1990,3 +2008,23 @@ name = "yansi" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" + +[[package]] +name = "zerocopy" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.60", +] diff --git a/Cargo.toml b/Cargo.toml index f46af18..1e3d8da 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -22,7 +22,7 @@ serde = "1.0.207" serde_json = "1.0.125" regex = "1.10.6" once_cell = "1.19.0" -swc_core = { version = "0.96.9", features = [ +swc_core = { version = "0.101.4", features = [ "ecma_plugin_transform", "ecma_utils", "ecma_visit", diff --git a/src/ast_utils.rs b/src/ast_utils.rs index b5e4be5..41840e3 100644 --- a/src/ast_utils.rs +++ b/src/ast_utils.rs @@ -80,11 +80,7 @@ pub fn pick_jsx_attrs(mut attrs: Vec, names: HashSet<&str>) -> pub fn create_jsx_attribute(name: &str, exp: Box) -> JSXAttrOrSpread { JSXAttrOrSpread::JSXAttr(JSXAttr { span: DUMMY_SP, - name: JSXAttrName::Ident(Ident { - span: DUMMY_SP, - sym: name.into(), - optional: false, - }), + name: JSXAttrName::Ident(IdentName::new(name.into(), DUMMY_SP)), value: Some(JSXAttrValue::JSXExprContainer(JSXExprContainer { span: DUMMY_SP, expr: JSXExpr::Expr(exp), @@ -127,7 +123,7 @@ pub fn get_object_prop<'a>(props: &'a Vec, name: &str) -> Option<& pub fn get_prop_key(prop: &KeyValueProp) -> Option<&JsWord> { match &prop.key { - PropName::Ident(Ident { sym, .. }) + PropName::Ident(IdentName { sym, .. }) | PropName::Str(Str { value: sym, .. }) => { Some(sym) } diff --git a/src/builder.rs b/src/builder.rs index 3b85b00..aac1d4a 100644 --- a/src/builder.rs +++ b/src/builder.rs @@ -26,7 +26,7 @@ pub struct ValueWithPlaceholder { impl ValueWithPlaceholder { pub fn to_prop(self) -> PropOrSpread { - let ident = Ident::new(self.placeholder.into(), DUMMY_SP); + let ident = IdentName::new(self.placeholder.into(), DUMMY_SP); PropOrSpread::Prop(Box::new( Prop::KeyValue(KeyValueProp { diff --git a/src/js_macro_folder.rs b/src/js_macro_folder.rs index 75fbbdf..ddc45c3 100644 --- a/src/js_macro_folder.rs +++ b/src/js_macro_folder.rs @@ -6,6 +6,7 @@ use swc_core::{ visit::{Fold, FoldWith}, }, }; +use swc_core::common::SyntaxContext; use crate::ast_utils::{*}; use crate::builder::MessageBuilder; use crate::macro_utils::{*}; @@ -65,12 +66,13 @@ impl<'a> JsMacroFolder<'a> { self.ctx.should_add_18n_import = true; let (_, i18n_export) = &self.ctx.options.runtime_modules.i18n; - return Box::new(Ident::new(i18n_export.clone().into(), DUMMY_SP).into()); + return Box::new(IdentName::new(i18n_export.clone().into(), DUMMY_SP).into()); }), - prop: MemberProp::Ident(Ident::new("_".into(), DUMMY_SP)), + prop: MemberProp::Ident(IdentName::new("_".into(), DUMMY_SP)), }).as_callee(), args, type_args: None, + ctxt: SyntaxContext::empty(), } } diff --git a/src/lib.rs b/src/lib.rs index a5958fe..583b915 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -116,7 +116,7 @@ impl LinguiMacroFolder { self_closing: true, span: el.opening.span, name: JSXElementName::Ident( - Ident::new(trans_export.into(), el.opening.span) + Ident::new_no_ctxt(trans_export.into(), el.opening.span) ), type_args: None, attrs, @@ -170,11 +170,11 @@ impl<'a> Fold for LinguiMacroFolder { n = n.fold_children_with(self); if !has_i18n_import && self.ctx.should_add_18n_import { - n.insert(insert_index, create_import(i18n_source.into(), quote_ident!(i18n_export[..]))); + n.insert(insert_index, create_import(i18n_source.into(), quote_ident!(i18n_export[..]).into())); } if !has_trans_import && self.ctx.should_add_trans_import { - n.insert(insert_index, create_import(trans_source.into(), quote_ident!(trans_export[..]))); + n.insert(insert_index, create_import(trans_source.into(), quote_ident!(trans_export[..]).into())); } n diff --git a/src/macro_utils.rs b/src/macro_utils.rs index 0ae65f0..0a495c8 100644 --- a/src/macro_utils.rs +++ b/src/macro_utils.rs @@ -189,7 +189,7 @@ impl MacroCtx { pub fn get_js_choice_case_key(&self, prop: &KeyValueProp) -> Option { match &prop.key { // {one: ""} - PropName::Ident(Ident { sym, .. }) + PropName::Ident(IdentName { sym, .. }) // {"one": ""} | PropName::Str(Str { value: sym, .. }) => { Some(sym.clone())