diff --git a/Cargo.lock b/Cargo.lock index 2ea4583..04f6d18 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -44,12 +44,6 @@ version = "1.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" -[[package]] -name = "arrayvec" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" - [[package]] name = "ascii" version = "1.1.0" @@ -58,9 +52,20 @@ checksum = "d92bec98840b8f03a5ff5413de5293bfcd8bf96467cf5452609f939ec6f5de16" [[package]] name = "ast_node" -version = "3.0.3" +version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1e2cddd48eafd883890770673b1971faceaf80a185445671abc3ea0c00593ee" +checksum = "0a184645bcc6f52d69d8e7639720699c6a99efb711f886e251ed1d16db8dd90e" +dependencies = [ + "quote", + "swc_macros_common", + "syn", +] + +[[package]] +name = "ast_node" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2eb025ef00a6da925cf40870b9c8d008526b6004ece399cb0974209720f0b194" dependencies = [ "quote", "swc_macros_common", @@ -229,6 +234,12 @@ dependencies = [ "rustversion", ] +[[package]] +name = "cbor4ii" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faed1a83001dc2c9201451030cc317e35bef36c84d3781d7c5bb9f343c397da8" + [[package]] name = "cc" version = "1.2.26" @@ -393,14 +404,14 @@ dependencies = [ [[package]] name = "effector-swc-plugin" -version = "0.8.1" +version = "0.9.0" dependencies = [ "ahash", "radix_fmt", "serde", "serde_json", "swc_core", - "testing", + "testing 15.0.0", ] [[package]] @@ -456,6 +467,16 @@ dependencies = [ "syn", ] +[[package]] +name = "from_variant" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5ff35a391aef949120a0340d690269b3d9f63460a6106e99bd07b961f345ea9" +dependencies = [ + "swc_macros_common", + "syn", +] + [[package]] name = "funty" version = "2.0.0" @@ -526,9 +547,9 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "hstr" -version = "2.0.1" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ced1416104790052518d199e753d49a7d8130d476c664bc9e53f40cfecb8e615" +checksum = "31f11d91d7befd2ffd9d216e9e5ea1fae6174b20a2a1b67a688138003d2f4122" dependencies = [ "hashbrown 0.14.5", "new_debug_unreachable", @@ -537,6 +558,20 @@ dependencies = [ "triomphe", ] +[[package]] +name = "hstr" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faa57007c3c9dab34df2fa4c1fb52fe9c34ec5a27ed9d8edea53254b50cd7887" +dependencies = [ + "hashbrown 0.14.5", + "new_debug_unreachable", + "once_cell", + "rustc-hash", + "serde", + "triomphe", +] + [[package]] name = "icu_collections" version = "2.0.0" @@ -736,11 +771,11 @@ checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" [[package]] name = "matchers" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" dependencies = [ - "regex-automata 0.1.10", + "regex-automata", ] [[package]] @@ -801,12 +836,11 @@ checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" [[package]] name = "nu-ansi-term" -version = "0.46.0" +version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [ - "overload", - "winapi", + "windows-sys", ] [[package]] @@ -860,12 +894,6 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a80800c0488c3a21695ea981a54918fbb37abf04f4d0720c453632255e2ff0e" -[[package]] -name = "overload" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" - [[package]] name = "owo-colors" version = "4.2.1" @@ -1083,17 +1111,8 @@ checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.9", - "regex-syntax 0.8.5", -] - -[[package]] -name = "regex-automata" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" -dependencies = [ - "regex-syntax 0.6.29", + "regex-automata", + "regex-syntax", ] [[package]] @@ -1104,15 +1123,9 @@ checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.5", + "regex-syntax", ] -[[package]] -name = "regex-syntax" -version = "0.6.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" - [[package]] name = "regex-syntax" version = "0.8.5" @@ -1230,18 +1243,28 @@ checksum = "1bc711410fbe7399f390ca1c3b60ad0f53f80e95c5eb935e52268a0e2cd49acc" [[package]] name = "serde" -version = "1.0.219" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde_core" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.219" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", @@ -1380,9 +1403,21 @@ name = "swc_atoms" version = "7.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3500dcf04c84606b38464561edc5e46f5132201cb3e23cf9613ed4033d6b1bb2" +dependencies = [ + "hstr 2.1.0", + "once_cell", + "serde", +] + +[[package]] +name = "swc_atoms" +version = "9.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4ccbe2ecad10ad7432100f878a107b1d972a8aee83ca53184d00c23a078bb8a" dependencies = [ "bytecheck", - "hstr", + "cbor4ii", + "hstr 3.0.4", "once_cell", "rancor", "rkyv", @@ -1391,45 +1426,73 @@ dependencies = [ [[package]] name = "swc_common" -version = "14.0.3" +version = "14.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63fdb58d278e7cd625f671e5371b3e6c0eab56c6e2a995a6f70dd0f7725255d4" +checksum = "c2bb772b3a26b8b71d4e8c112ced5b5867be2266364b58517407a270328a2696" dependencies = [ "anyhow", - "ast_node", + "ast_node 3.0.4", "better_scoped_tls", - "bytecheck", "bytes-str", "either", - "from_variant", + "from_variant 2.0.2", "new_debug_unreachable", "num-bigint", "once_cell", "parking_lot", + "rustc-hash", + "serde", + "siphasher 0.3.11", + "swc_atoms 7.0.0", + "swc_eq_ignore_macros", + "swc_visit", + "termcolor", + "tracing", + "unicode-width 0.1.14", + "url", +] + +[[package]] +name = "swc_common" +version = "18.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1c06698254e9b47daaf9bbb062af489a350bd8d10dfaab0cabbd32d46cec69d" +dependencies = [ + "anyhow", + "ast_node 5.0.0", + "better_scoped_tls", + "bytecheck", + "bytes-str", + "cbor4ii", + "either", + "from_variant 3.0.0", + "num-bigint", + "once_cell", + "parking_lot", "rancor", "rkyv", "rustc-hash", "serde", "siphasher 0.3.11", - "swc_atoms", + "swc_atoms 9.0.0", "swc_eq_ignore_macros", "swc_sourcemap", "swc_visit", "termcolor", "tracing", - "unicode-width 0.1.14", + "unicode-width 0.2.1", "url", ] [[package]] name = "swc_core" -version = "39.0.0" +version = "50.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4d7c1029aeb69995d8a8babb64a8359846023d7237985cd0693d2d3c3964b3e" +checksum = "76a4addc76896d859a57855961fd351486a900021aade516f7623969ed28958f" dependencies = [ "swc_allocator", - "swc_atoms", - "swc_common", + "swc_atoms 9.0.0", + "swc_common 18.0.1", "swc_ecma_ast", "swc_ecma_parser", "swc_ecma_quote_macros", @@ -1446,31 +1509,29 @@ dependencies = [ [[package]] name = "swc_ecma_ast" -version = "15.0.0" +version = "19.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65c25af97d53cf8aab66a6c68f3418663313fc969ad267fc2a4d19402c329be1" +checksum = "724195600825cbdd2a899d5473d2ce1f24ae418bff1231f160ecf38a3bc81f46" dependencies = [ "bitflags", - "bytecheck", + "cbor4ii", "is-macro", "num-bigint", "once_cell", "phf", - "rancor", - "rkyv", "rustc-hash", "string_enum", - "swc_atoms", - "swc_common", + "swc_atoms 9.0.0", + "swc_common 18.0.1", "swc_visit", "unicode-id-start", ] [[package]] name = "swc_ecma_codegen" -version = "17.0.0" +version = "21.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b91da8222bd2e868a6977ef402b3ca5c29a41d18cd84772441d9e06ec95ded1f" +checksum = "5c77d9d21345ca986ae3b5ff1a4fa3607b15b07ed397506e6dba32e867cf40fd" dependencies = [ "ascii", "compact_str", @@ -1482,8 +1543,8 @@ dependencies = [ "ryu-js", "serde", "swc_allocator", - "swc_atoms", - "swc_common", + "swc_atoms 9.0.0", + "swc_common 18.0.1", "swc_ecma_ast", "swc_ecma_codegen_macros", "swc_sourcemap", @@ -1502,12 +1563,11 @@ dependencies = [ ] [[package]] -name = "swc_ecma_lexer" -version = "23.0.1" +name = "swc_ecma_parser" +version = "29.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67c3bd958a5a67e2cc3f74abdd41fda688e54e7a25b866569260ef7018b67972" +checksum = "e63984b544fe1d8f66e9ce616e57429bb878572fcf1504851ef9d9f4f5260e2b" dependencies = [ - "arrayvec", "bitflags", "either", "num-bigint", @@ -1515,43 +1575,26 @@ dependencies = [ "rustc-hash", "seq-macro", "serde", - "smallvec", "smartstring", "stacker", - "swc_atoms", - "swc_common", - "swc_ecma_ast", - "tracing", -] - -[[package]] -name = "swc_ecma_parser" -version = "24.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37c0b41d7e86acb8abc1e75b39163a1dffd88f75b69d8f89a199dfc416bb46d6" -dependencies = [ - "either", - "num-bigint", - "serde", - "swc_atoms", - "swc_common", + "swc_atoms 9.0.0", + "swc_common 18.0.1", "swc_ecma_ast", - "swc_ecma_lexer", "tracing", ] [[package]] name = "swc_ecma_quote_macros" -version = "24.0.0" +version = "29.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c8c018ebafab9285b7e3dfd757f28c40345e2dfade4566cf3cd3da81fbd2963" +checksum = "596dbb78166e8a0984f422fe3f635ef7f3dd94606af4cd4ad5d5cb0473b48025" dependencies = [ "anyhow", "proc-macro2", "quote", "rustc-hash", - "swc_atoms", - "swc_common", + "swc_atoms 9.0.0", + "swc_common 18.0.1", "swc_ecma_ast", "swc_ecma_parser", "swc_macros_common", @@ -1560,22 +1603,22 @@ dependencies = [ [[package]] name = "swc_ecma_testing" -version = "15.0.0" +version = "19.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd297865d417cf7e99bf36f4f29928e89ccf3446b56440e110b2f488f6d8d2d0" +checksum = "177244625cdecd268a07534c3b087f7f263604dd40f3ec7c7a984ca95351b632" dependencies = [ "anyhow", "hex", "sha2", - "testing", + "testing 19.0.0", "tracing", ] [[package]] name = "swc_ecma_transforms_base" -version = "26.0.0" +version = "32.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6db893332e61360b330063c0d0e67d61b777832ece3980096fa8ad05c0101bd" +checksum = "499486ed875ba49af2f36d0d809f61ce6e42943a3aa1d97f592d96f10fe734cc" dependencies = [ "better_scoped_tls", "indexmap", @@ -1584,8 +1627,8 @@ dependencies = [ "phf", "rustc-hash", "serde", - "swc_atoms", - "swc_common", + "swc_atoms 9.0.0", + "swc_common 18.0.1", "swc_ecma_ast", "swc_ecma_parser", "swc_ecma_utils", @@ -1595,9 +1638,9 @@ dependencies = [ [[package]] name = "swc_ecma_transforms_testing" -version = "29.0.0" +version = "35.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b394293ee1a70c986aac9282d606cfb05d0ee81f7f48958e3975e33886bd8745" +checksum = "29ec7851260522b2864983caa3fc7004ebb080842f49ee49a5461b779277378d" dependencies = [ "ansi_term", "anyhow", @@ -1606,7 +1649,7 @@ dependencies = [ "serde", "serde_json", "sha2", - "swc_common", + "swc_common 18.0.1", "swc_ecma_ast", "swc_ecma_codegen", "swc_ecma_parser", @@ -1616,14 +1659,14 @@ dependencies = [ "swc_ecma_visit", "swc_sourcemap", "tempfile", - "testing", + "testing 19.0.0", ] [[package]] name = "swc_ecma_utils" -version = "21.0.0" +version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83259addd99ed4022aa9fc4d39428c008d3d42533769e1a005529da18cde4568" +checksum = "2dd5ee449d21110a271e73d0a9f7640a8854a62cb0e2cb0c9db3445383598e21" dependencies = [ "indexmap", "num_cpus", @@ -1631,8 +1674,8 @@ dependencies = [ "par-core", "rustc-hash", "ryu-js", - "swc_atoms", - "swc_common", + "swc_atoms 9.0.0", + "swc_common 18.0.1", "swc_ecma_ast", "swc_ecma_visit", "tracing", @@ -1640,14 +1683,14 @@ dependencies = [ [[package]] name = "swc_ecma_visit" -version = "15.0.0" +version = "19.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75a579aa8f9e212af521588df720ccead079c09fe5c8f61007cf724324aed3a0" +checksum = "a69d63f7f704a2ec937edef90a3eba1f64602eceb60c8deb260c01131f680e8b" dependencies = [ "new_debug_unreachable", "num-bigint", - "swc_atoms", - "swc_common", + "swc_atoms 9.0.0", + "swc_common 18.0.1", "swc_ecma_ast", "swc_visit", "tracing", @@ -1674,7 +1717,20 @@ dependencies = [ "miette", "once_cell", "serde", - "swc_common", + "swc_common 14.0.4", +] + +[[package]] +name = "swc_error_reporters" +version = "20.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbbc236f3f44337cbc13f49c7e25e92082e59279c268cbd928c3568f339d3fe0" +dependencies = [ + "anyhow", + "miette", + "once_cell", + "serde", + "swc_common 18.0.1", ] [[package]] @@ -1710,16 +1766,14 @@ dependencies = [ [[package]] name = "swc_plugin_proxy" -version = "15.0.0" +version = "19.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79e78029030baf942203f11eae0ea47c07367d167060ba4c55a202a1341366c5" +checksum = "8f976dc63cd8b1916f265ee7d2647c28a85b433640099a5bf07153346dedffda" dependencies = [ "better_scoped_tls", - "bytecheck", - "rancor", - "rkyv", + "cbor4ii", "rustc-hash", - "swc_common", + "swc_common 18.0.1", "swc_ecma_ast", "swc_trace_macro", "tracing", @@ -1727,9 +1781,9 @@ dependencies = [ [[package]] name = "swc_sourcemap" -version = "9.3.2" +version = "9.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9755c673c6a83c461e98fa018f681adb8394a3f44f89a06f27e80fd4fe4fa1e4" +checksum = "de08ef00f816acdd1a58ee8a81c0e1a59eefef2093aefe5611f256fa6b64c4d7" dependencies = [ "base64-simd", "bitvec", @@ -1756,14 +1810,14 @@ dependencies = [ [[package]] name = "swc_transform_common" -version = "8.0.0" +version = "12.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca33f282df60eefee05511c9aaf557696d2f9f0e22f4a5abca318da10c22f1cc" +checksum = "6cc4a0e2aa9fac44d383127e01327710416dda5b637b0d134b7b8cf2ba6bde8e" dependencies = [ "better_scoped_tls", "rustc-hash", "serde", - "swc_common", + "swc_common 18.0.1", ] [[package]] @@ -1840,8 +1894,29 @@ dependencies = [ "rustc-hash", "serde", "serde_json", - "swc_common", - "swc_error_reporters", + "swc_common 14.0.4", + "swc_error_reporters 16.0.1", + "testing_macros", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "testing" +version = "19.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad1506c602222ebab5d96100180f8d3c015b2394eceb00a46d20c25b8b1e5100" +dependencies = [ + "cargo_metadata 0.18.1", + "difference", + "once_cell", + "pretty_assertions", + "regex", + "rustc-hash", + "serde", + "serde_json", + "swc_common 18.0.1", + "swc_error_reporters 20.0.0", "testing_macros", "tracing", "tracing-subscriber", @@ -1950,9 +2025,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tracing" -version = "0.1.41" +version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" +checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" dependencies = [ "pin-project-lite", "tracing-attributes", @@ -1961,9 +2036,9 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.29" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b1ffbcf9c6f6b99d386e7444eb608ba646ae452a36b39737deb9663b610f662" +checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", @@ -1972,9 +2047,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.34" +version = "0.1.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" +checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" dependencies = [ "once_cell", "valuable", @@ -1993,14 +2068,14 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.19" +version = "0.3.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" +checksum = "2f30143827ddab0d256fd843b7a66d164e9f271cfa0dde49142c5ca0ca291f1e" dependencies = [ "matchers", "nu-ansi-term", "once_cell", - "regex", + "regex-automata", "sharded-slab", "smallvec", "thread_local", diff --git a/Cargo.toml b/Cargo.toml index 09628ef..0c1cbb2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "effector-swc-plugin" -version = "0.8.1" +version = "0.9.0" authors = ["Kireev Mikhail"] description = "SWC Plugin for Effector" @@ -20,7 +20,7 @@ ahash = { version = "0.8.12", features = ["std"], default-features = false } radix_fmt = "1.0.0" serde = "1.0.219" serde_json = "1.0.140" -swc_core = { version = "39.0.0", features = [ +swc_core = { version = "50.2.3", features = [ "ecma_plugin_transform", "ecma_quote", "ecma_utils", @@ -33,7 +33,8 @@ testing = "15.0.0" [features] packing = [] "plugin_compat_v1.4.0" = ['plugin_compat_v1.7.0'] -"plugin_compat_v1.7.0" = [] +"plugin_compat_v1.7.0" = ['plugin_compat_v1.12.0'] +"plugin_compat_v1.12.0" = [] [lib] crate-type = ["cdylib", "rlib"] diff --git a/package.json b/package.json index 1eaa4a9..a2b5ebc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@effector/swc-plugin", - "version": "0.8.1", + "version": "0.9.0", "description": "SWC Plugin for Effector", "keywords": [ "swc-plugin", diff --git a/src/utils/import.rs b/src/utils/import.rs index 22f5ead..5b4de05 100644 --- a/src/utils/import.rs +++ b/src/utils/import.rs @@ -1,10 +1,23 @@ use swc_core::ecma::ast::*; +#[cfg(not(feature = "plugin_compat_v1.12.0"))] +use {std::borrow::Cow, swc_core::atoms::Atom}; pub(crate) trait Imported { + #[cfg(not(feature = "plugin_compat_v1.12.0"))] + fn as_known<'a>(&'a self) -> Cow<'a, Atom>; + #[cfg(feature = "plugin_compat_v1.12.0")] fn as_known(&self) -> &str; } impl Imported for ImportNamedSpecifier { + #[cfg(not(feature = "plugin_compat_v1.12.0"))] + fn as_known<'a>(&'a self) -> Cow<'a, Atom> { + self.imported + .as_ref() + .map(|export| export.atom()) + .unwrap_or(Cow::Borrowed(&self.local.sym)) + } + #[cfg(feature = "plugin_compat_v1.12.0")] fn as_known(&self) -> &str { self.imported .as_ref() diff --git a/src/utils/keyof.rs b/src/utils/keyof.rs index 116f3b0..3f41212 100644 --- a/src/utils/keyof.rs +++ b/src/utils/keyof.rs @@ -8,6 +8,11 @@ impl TryKeyOf for KeyValueProp { fn try_key(&self) -> Option { match self { KeyValueProp { key: PropName::Ident(id), .. } => Some(id.sym.to_owned()), + #[cfg(not(feature = "plugin_compat_v1.12.0"))] + KeyValueProp { key: PropName::Str(str), .. } => { + Some(str.value.to_atom_lossy().into_owned()) + } + #[cfg(feature = "plugin_compat_v1.12.0")] KeyValueProp { key: PropName::Str(str), .. } => Some(str.value.to_owned()), _ => None, } diff --git a/src/visitors/analyzer.rs b/src/visitors/analyzer.rs index b14afac..e51f18e 100644 --- a/src/visitors/analyzer.rs +++ b/src/visitors/analyzer.rs @@ -24,7 +24,7 @@ pub(crate) fn analyzer(meta: &VisitorMeta) -> impl VisitMut + use<> { } impl Analyzer { - fn is_factory(&self, import: &String) -> bool { + fn is_factory(&self, import: &str) -> bool { let is_relative = import.starts_with("./") || import.starts_with("../"); if is_relative { @@ -72,7 +72,11 @@ impl Analyzer { match specifier { ImportSpecifier::Named(import) => { - if let Some(method) = to_method(import.as_known()) { + #[cfg(not(feature = "plugin_compat_v1.12.0"))] + let method = to_method(import.as_known().as_str()); + #[cfg(feature = "plugin_compat_v1.12.0")] + let method = to_method(import.as_known()); + if let Some(method) = method { state.aliases.insert(import.local.to_id(), method); } } @@ -96,7 +100,10 @@ impl Analyzer { impl VisitMut for Analyzer { fn visit_mut_import_decl(&mut self, node: &mut ImportDecl) { - let import = node.src.value.to_string(); + #[cfg(not(feature = "plugin_compat_v1.12.0"))] + let import = node.src.value.to_atom_lossy(); + #[cfg(feature = "plugin_compat_v1.12.0")] + let import = &node.src.value; if INTERNAL.tracked.contains(&import.as_str()) { node.specifiers diff --git a/version-map.json b/version-map.json index 469855b..08dfeb0 100644 --- a/version-map.json +++ b/version-map.json @@ -1,34 +1,60 @@ { "0.96.9": { "tag": "1.6.0", - "features": ["plugin_compat_v1.4.0"] + "features": ["plugin_compat_v1.4.0"], + "override": { + "serde": "=1.0.219" + } }, "0.106.0": { "tag": "1.7.0", - "features": ["plugin_compat_v1.7.0"] + "features": ["plugin_compat_v1.7.0"], + "override": { + "serde": "=1.0.219" + } }, "4.0.3": { "tag": "1.8.0", - "features": [], - "override": { "swc_plugin_macro": "=1.0.0" } + "features": ["plugin_compat_v1.12.0"], + "override": { + "serde": "=1.0.219", + "swc_plugin_macro": "=1.0.0" + } }, "6.0.2": { "tag": "1.9.0", - "features": [], - "override": { "swc_plugin_macro": "=1.0.0" } + "features": ["plugin_compat_v1.12.0"], + "override": { + "serde": "=1.0.219", + "swc_plugin_macro": "=1.0.0" + } }, "14.1.0": { "tag": "1.10.0", - "features": [], - "override": { "swc_plugin_macro": "=1.0.0" } + "features": ["plugin_compat_v1.12.0"], + "override": { + "serde": "=1.0.219", + "swc_plugin_macro": "=1.0.0" + } }, "16.4.1": { "tag": "1.11.0", - "features": [], - "override": { "swc_plugin_macro": "=1.0.0", "swc_common": "=8.0.1" } + "features": ["plugin_compat_v1.12.0"], + "override": { + "serde": "=1.0.219", + "swc_plugin_macro": "=1.0.0", + "swc_common": "=8.0.1" + } }, "38.0.1": { "tag": "1.12.0", + "features": ["plugin_compat_v1.12.0"], + "override": { + "serde": "=1.0.219" + } + }, + "50.2.3": { + "tag": "1.13.0", "features": [] } }