diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3b1fb98..aed83bc 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,17 @@
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+## [8.0.0](https://github.com/jantimon/css-variable/compare/v7.0.0...v8.0.0) (2025-11-04)
+
+
+### ⚠ BREAKING CHANGES
+
+* requires swc_core 45.x
+
+### Features
+
+* add support for Next.js 16.0.1
+
## [7.0.0](https://github.com/jantimon/css-variable/compare/v6.0.0...v7.0.0) (2025-07-16)
diff --git a/examples/styled-components/next-env.d.ts b/examples/styled-components/next-env.d.ts
index 52e831b..1970904 100644
--- a/examples/styled-components/next-env.d.ts
+++ b/examples/styled-components/next-env.d.ts
@@ -1,5 +1,6 @@
///
///
+import "./.next/types/routes.d.ts";
// NOTE: This file should not be edited
// see https://nextjs.org/docs/pages/api-reference/config/typescript for more information.
diff --git a/examples/styled-components/package.json b/examples/styled-components/package.json
index 77f9adb..4d0d1fa 100644
--- a/examples/styled-components/package.json
+++ b/examples/styled-components/package.json
@@ -13,7 +13,7 @@
"@types/styled-components": "5.1.14",
"babel-plugin-styled-components": "^1.13.2",
"css-variable": "file:../../",
- "next": "^15.4.1",
+ "next": "^16.0.1",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"styled-components": "^6.1.11",
diff --git a/examples/styled-components/tsconfig.json b/examples/styled-components/tsconfig.json
index 5bee8c4..265ea94 100644
--- a/examples/styled-components/tsconfig.json
+++ b/examples/styled-components/tsconfig.json
@@ -16,7 +16,7 @@
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
- "jsx": "preserve",
+ "jsx": "react-jsx",
"incremental": true
},
"include": [
diff --git a/package.json b/package.json
index 84a2976..07b0870 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "css-variable",
- "version": "7.0.0",
+ "version": "8.0.0",
"description": "define CSS custom properties (variables) in JS",
"main": "./dist/index.cjs",
"module": "./dist/index.mjs",
diff --git a/swc/Cargo.lock b/swc/Cargo.lock
index 9ddfc3e..d3f86f6 100644
--- a/swc/Cargo.lock
+++ b/swc/Cargo.lock
@@ -70,9 +70,9 @@ checksum = "d92bec98840b8f03a5ff5413de5293bfcd8bf96467cf5452609f939ec6f5de16"
[[package]]
name = "ast_node"
-version = "3.0.3"
+version = "4.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1e2cddd48eafd883890770673b1971faceaf80a185445671abc3ea0c00593ee"
+checksum = "c4902c7f39335a2390500ee791d6cb1778e742c7b97952497ec81449a5bfa3a7"
dependencies = [
"quote",
"swc_macros_common",
@@ -643,9 +643,9 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
[[package]]
name = "hstr"
-version = "1.1.6"
+version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b85186bc48d3c611ead052cc3f907748e40b63d73a99e4ed34d18063e2baaf1b"
+checksum = "31f11d91d7befd2ffd9d216e9e5ea1fae6174b20a2a1b67a688138003d2f4122"
dependencies = [
"hashbrown 0.14.5",
"new_debug_unreachable",
@@ -873,11 +873,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]]
@@ -938,12 +938,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 0.60.2",
]
[[package]]
@@ -1003,12 +1002,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.2"
@@ -1017,23 +1010,13 @@ checksum = "48dd4f4a2c8405440fd0462561f0e5806bd0f77e86f51c761481bdd4018b545e"
[[package]]
name = "par-core"
-version = "1.0.4"
+version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "757892557993c69e82f9de0f9051e87144278aa342f03bf53617bbf044554484"
+checksum = "e96cbd21255b7fb29a5d51ef38a779b517a91abd59e2756c039583f43ef4c90f"
dependencies = [
"once_cell",
]
-[[package]]
-name = "par-iter"
-version = "1.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a5b20f31e9ba82bfcbbb54a67aa40be6cebec9f668ba5753be138f9523c531a"
-dependencies = [
- "either",
- "par-core",
-]
-
[[package]]
name = "parking_lot"
version = "0.12.4"
@@ -1236,17 +1219,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]]
@@ -1257,15 +1231,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"
@@ -1384,20 +1352,36 @@ dependencies = [
"serde",
]
+[[package]]
+name = "seq-macro"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+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",
@@ -1545,31 +1529,29 @@ dependencies = [
[[package]]
name = "swc_atoms"
-version = "5.0.0"
+version = "7.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d7077ba879f95406459bc0c81f3141c529b34580bc64d7ab7bd15e7118a0391"
+checksum = "3500dcf04c84606b38464561edc5e46f5132201cb3e23cf9613ed4033d6b1bb2"
dependencies = [
"bytecheck",
"hstr",
"once_cell",
"rancor",
"rkyv",
- "rustc-hash",
"serde",
]
[[package]]
name = "swc_common"
-version = "12.0.1"
+version = "15.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd2adffdd9f42af6cfefa16b1aaa8a0984a21854637ef9d89332dd29420d4b23"
+checksum = "13be0317490fc330a53ee9e64b26891503c35336b509eb69c4fc1dc4e0119ff9"
dependencies = [
"anyhow",
"ast_node",
"better_scoped_tls",
"bytecheck",
"bytes-str",
- "cfg-if",
"either",
"from_variant",
"new_debug_unreachable",
@@ -1581,7 +1563,6 @@ dependencies = [
"rustc-hash",
"serde",
"siphasher 0.3.11",
- "swc_allocator",
"swc_atoms",
"swc_eq_ignore_macros",
"swc_sourcemap",
@@ -1594,11 +1575,10 @@ dependencies = [
[[package]]
name = "swc_core"
-version = "27.0.6"
+version = "45.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b047b6c583f238704fda957aa88d379100216c742a79d4d8f90ef85f0bf5ea38"
+checksum = "54e3f7a14efb82fd970b90afb1fc1afe34d969ad4b2adc4a63803cfc95249f08"
dependencies = [
- "once_cell",
"swc_allocator",
"swc_atoms",
"swc_common",
@@ -1616,9 +1596,9 @@ dependencies = [
[[package]]
name = "swc_ecma_ast"
-version = "12.0.0"
+version = "16.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "82007a7a4fb30198baf82f79244aca929d9845e16fcf897179773e4ebfed20f5"
+checksum = "add9298e06af471f29aea2f8d1b6232885bd2a634521d0e95dc9d5bde3d39d3d"
dependencies = [
"bitflags",
"bytecheck",
@@ -1629,7 +1609,6 @@ dependencies = [
"rancor",
"rkyv",
"rustc-hash",
- "scoped-tls",
"string_enum",
"swc_atoms",
"swc_common",
@@ -1639,9 +1618,9 @@ dependencies = [
[[package]]
name = "swc_ecma_codegen"
-version = "14.0.0"
+version = "18.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af054998dc8a578e8232b94ef046fe06f470b6d8f7f3cbe5c37e7f71dd0e48db"
+checksum = "c70760095f23e70a295bc86dd52d454f5de4050621c9e27681ae26d166b77be4"
dependencies = [
"ascii",
"compact_str",
@@ -1674,18 +1653,17 @@ dependencies = [
[[package]]
name = "swc_ecma_lexer"
-version = "15.0.2"
+version = "24.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0e1f330dc2c4b381232b00f32b5de2c7178e2cdb5249f4c41ec9e13d45c66a5"
+checksum = "d64b5db3b7cdba77d4063f7a0747333685cfb843fa2260d0c0765eff4bc82d0b"
dependencies = [
"arrayvec",
"bitflags",
"either",
- "new_debug_unreachable",
"num-bigint",
- "num-traits",
"phf",
"rustc-hash",
+ "seq-macro",
"serde",
"smallvec",
"smartstring",
@@ -1694,40 +1672,29 @@ dependencies = [
"swc_common",
"swc_ecma_ast",
"tracing",
- "typed-arena",
]
[[package]]
name = "swc_ecma_parser"
-version = "15.0.2"
+version = "25.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f78a70fc7b448889412e42a730f1e34f2850b1fd49af424e39248135ada747b"
+checksum = "c8a43a89976cdbb42f152cfbd89a430b1fb693a9e0f2b5e2b1959466a88c3de0"
dependencies = [
- "arrayvec",
- "bitflags",
"either",
- "new_debug_unreachable",
"num-bigint",
- "num-traits",
- "phf",
- "rustc-hash",
"serde",
- "smallvec",
- "smartstring",
- "stacker",
"swc_atoms",
"swc_common",
"swc_ecma_ast",
"swc_ecma_lexer",
"tracing",
- "typed-arena",
]
[[package]]
name = "swc_ecma_testing"
-version = "13.0.0"
+version = "16.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "07366b063e9ae158868ff28a867ff6e295dc373bc2eb3b704070041baf968f0a"
+checksum = "464be50bb5a907f43cf3559ccecec38bd69f91b580bcdbda9a65a35d8627b7f3"
dependencies = [
"anyhow",
"hex",
@@ -1738,19 +1705,17 @@ dependencies = [
[[package]]
name = "swc_ecma_transforms_base"
-version = "16.0.0"
+version = "28.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "47c511aff4fabb634c1799a6d6fa2a5057a4f0f482e097e31aeb43939b0ad601"
+checksum = "f892bb70d780486b86485493a3c7f4df8d84d5caba7e1d83e2e700836c29d613"
dependencies = [
"better_scoped_tls",
- "bitflags",
"indexmap",
"once_cell",
"par-core",
"phf",
"rustc-hash",
"serde",
- "smallvec",
"swc_atoms",
"swc_common",
"swc_ecma_ast",
@@ -1762,9 +1727,9 @@ dependencies = [
[[package]]
name = "swc_ecma_transforms_testing"
-version = "19.0.0"
+version = "31.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e2f31fd1f0f220445f432038fc9592c8df3bb5e9e63f921e38de1077dc942e1"
+checksum = "ba723011d5a35faa99e61ca0de21f6c61c3449423b3709d7dce52b7ac4d10aa4"
dependencies = [
"ansi_term",
"anyhow",
@@ -1773,7 +1738,6 @@ dependencies = [
"serde",
"serde_json",
"sha2",
- "swc_allocator",
"swc_common",
"swc_ecma_ast",
"swc_ecma_codegen",
@@ -1789,15 +1753,14 @@ dependencies = [
[[package]]
name = "swc_ecma_utils"
-version = "16.0.0"
+version = "22.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a8afc858d9cd7aa2b480d55174ff9c7ee02de003ac5f9e140398206af566b0f"
+checksum = "110befba503dcec034023f4ad3559b84991c7a4be977287300db9562955bda1d"
dependencies = [
"indexmap",
"num_cpus",
"once_cell",
"par-core",
- "par-iter",
"rustc-hash",
"ryu-js",
"swc_atoms",
@@ -1805,14 +1768,13 @@ dependencies = [
"swc_ecma_ast",
"swc_ecma_visit",
"tracing",
- "unicode-id",
]
[[package]]
name = "swc_ecma_visit"
-version = "12.0.0"
+version = "16.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0698960f28169c5eaa01127273aca31999bbbb6b1d3f2576ee5400daaa295d0a"
+checksum = "e8763b91f52a54d5836c1f922dd393b157d47c121c7aab87308f582daf345f77"
dependencies = [
"new_debug_unreachable",
"num-bigint",
@@ -1836,17 +1798,14 @@ dependencies = [
[[package]]
name = "swc_error_reporters"
-version = "14.0.0"
+version = "17.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "863dea960d5c8646125462d5b283b03a8b709879729c6713c14e413b0c7a3f8f"
+checksum = "61f991c703dea8982ebfb955a0b1c35fdfe551b24d8d13039c5a0b66e381edbd"
dependencies = [
"anyhow",
"miette",
"once_cell",
- "parking_lot",
"serde",
- "serde_derive",
- "serde_json",
"swc_common",
]
@@ -1883,9 +1842,9 @@ dependencies = [
[[package]]
name = "swc_plugin_proxy"
-version = "12.0.0"
+version = "16.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e55c2e46b9cc32e206a6f041621468717bbc5748d3321f2e99648340843d16ce"
+checksum = "ef02609fd5dc946a13448833f8443173f45ff1477eb7e3683c0abb03018cdf20"
dependencies = [
"better_scoped_tls",
"bytecheck",
@@ -1929,15 +1888,13 @@ dependencies = [
[[package]]
name = "swc_transform_common"
-version = "6.0.0"
+version = "9.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "51d2564e80c5c664914f327640288f5637b0f0acf6a340b92e0082655e558f51"
+checksum = "2b0ccbb3fe8a93a2bbe6df94c205a0ca909bb8786705031d355904efbb89a2a3"
dependencies = [
"better_scoped_tls",
- "once_cell",
"rustc-hash",
"serde",
- "serde_json",
"swc_common",
]
@@ -2003,11 +1960,10 @@ dependencies = [
[[package]]
name = "testing"
-version = "13.0.0"
+version = "16.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6995a7c9eaf999e15d3c367e6d8443323c35965a424beb224cdb98dd6a35af83"
+checksum = "59f0f5f27bd9f0c9429a9330a223bc654804dcd9797f3414a491ac5190bf3cbc"
dependencies = [
- "ansi_term",
"cargo_metadata 0.18.1",
"difference",
"once_cell",
@@ -2178,14 +2134,14 @@ dependencies = [
[[package]]
name = "tracing-subscriber"
-version = "0.3.19"
+version = "0.3.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008"
+checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5"
dependencies = [
"matchers",
"nu-ansi-term",
"once_cell",
- "regex",
+ "regex-automata",
"sharded-slab",
"smallvec",
"thread_local",
@@ -2215,24 +2171,12 @@ dependencies = [
"stable_deref_trait",
]
-[[package]]
-name = "typed-arena"
-version = "2.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6af6ae20167a9ece4bcb41af5b80f8a1f1df981f6391189ce00fd257af04126a"
-
[[package]]
name = "typenum"
version = "1.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f"
-[[package]]
-name = "unicode-id"
-version = "0.3.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "10103c57044730945224467c09f71a4db0071c123a0648cc3e818913bde6b561"
-
[[package]]
name = "unicode-id-start"
version = "1.3.1"
diff --git a/swc/swc-plugin-css-variable/Cargo.toml b/swc/swc-plugin-css-variable/Cargo.toml
index fa33c9c..51448c3 100644
--- a/swc/swc-plugin-css-variable/Cargo.toml
+++ b/swc/swc-plugin-css-variable/Cargo.toml
@@ -12,6 +12,6 @@ lazy_static = "1.4.0"
pathdiff = "0.2.1"
regex = "1.10.3"
serde_json = "1.0.111"
-swc_core = { version = "27.0.6", features = ["ecma_plugin_transform"] }
+swc_core = { version = "45.0.2", features = ["ecma_plugin_transform"] }
transform = { path = "../transform" }
diff --git a/swc/transform/Cargo.toml b/swc/transform/Cargo.toml
index c8736d0..aacca18 100644
--- a/swc/transform/Cargo.toml
+++ b/swc/transform/Cargo.toml
@@ -6,12 +6,12 @@ edition = "2021"
[dependencies]
base62 = "2.0.2"
serde = { version = "1.0.195", features = ["derive"] }
-swc_core = "27.0.6"
+swc_core = "45.0.2"
xxhash-rust = { version = "0.8.8", features = ["xxh32"] }
[dev-dependencies]
criterion = { version = "0.5.1", default-features = false }
-swc_core = { version = "27.0.6", features = ["ecma_parser", "ecma_plugin_transform"] }
+swc_core = { version = "45.0.2", features = ["ecma_parser", "ecma_plugin_transform"] }
[[bench]]
name = "bench_main"