From c4a3f3681c4b126effd5df333f97ee1621927284 Mon Sep 17 00:00:00 2001 From: owjs3901 Date: Fri, 23 Jan 2026 00:38:08 +0900 Subject: [PATCH] Update rust --- .../changepack_log_DwcHiYk3wpAP2DlYL-oEJ.json | 1 + Cargo.lock | 163 +++++++++--------- bindings/devup-ui-wasm/Cargo.toml | 8 +- libs/extractor/Cargo.toml | 20 +-- libs/sheet/Cargo.toml | 2 +- package.json | 2 +- 6 files changed, 101 insertions(+), 95 deletions(-) create mode 100644 .changepacks/changepack_log_DwcHiYk3wpAP2DlYL-oEJ.json diff --git a/.changepacks/changepack_log_DwcHiYk3wpAP2DlYL-oEJ.json b/.changepacks/changepack_log_DwcHiYk3wpAP2DlYL-oEJ.json new file mode 100644 index 00000000..1106c370 --- /dev/null +++ b/.changepacks/changepack_log_DwcHiYk3wpAP2DlYL-oEJ.json @@ -0,0 +1 @@ +{"changes":{"bindings/devup-ui-wasm/package.json":"Patch"},"note":"Update rust","date":"2026-01-22T15:38:02.902529700Z"} \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock index 82750ac5..7acb467d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -262,9 +262,6 @@ name = "bumpalo" version = "3.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510" -dependencies = [ - "allocator-api2", -] [[package]] name = "bytemuck" @@ -303,9 +300,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.52" +version = "1.2.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd4932aefd12402b36c60956a4fe0035421f544799057659ff86f923657aada3" +checksum = "755d2fce177175ffca841e9a06afdb2c4ab0f593d53b4dee48147dfaade85932" dependencies = [ "find-msvc-tools", "shlex", @@ -594,9 +591,9 @@ dependencies = [ [[package]] name = "dragonbox_ecma" -version = "0.0.5" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d742b56656e8b14d63e7ea9806597b1849ae25412584c8adf78c0f67bd985e66" +checksum = "6a5577f010d4e1bb3f3c4d6081e05718eb6992cf20119cab4d3abadff198b5ae" [[package]] name = "dynify" @@ -716,9 +713,9 @@ checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "find-msvc-tools" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f449e6c6c08c865631d4890cfacf252b3d396c9bcc83adb6623cdb02a8336c41" +checksum = "8591b0bcc8a98a64310a2fae1bb3e9b8564dd10e381e6e28010fde8e8e8568db" [[package]] name = "fixedbitset" @@ -1012,9 +1009,9 @@ dependencies = [ [[package]] name = "insta" -version = "1.46.0" +version = "1.46.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b66886d14d18d420ab5052cbff544fc5d34d0b2cdd35eb5976aaa10a4a472e5" +checksum = "248b42847813a1550dafd15296fd9748c651d0c32194559dbc05d804d54b21e8" dependencies = [ "console", "once_cell", @@ -1057,9 +1054,9 @@ checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" [[package]] name = "js-sys" -version = "0.3.83" +version = "0.3.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "464a3709c7f55f1f721e5389aa6ea4e3bc6aba669353300af094b29ffbdde1d8" +checksum = "8c942ebf8e95485ca0d52d97da7c5a2c387d0e7f0ba4c35e93bfcaee045955b3" dependencies = [ "once_cell", "wasm-bindgen", @@ -1304,12 +1301,11 @@ dependencies = [ [[package]] name = "oxc_allocator" -version = "0.108.0" +version = "0.110.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78958640bcae9b5b42f9eaafe4995b5460195e961439c236095547bb78952f8d" +checksum = "2174c7c8f77137b1bd1c653d7a5a531ae41f3b8fec1dd0251c801689784e7a2e" dependencies = [ "allocator-api2", - "bumpalo", "hashbrown 0.16.1", "oxc_data_structures", "rustc-hash", @@ -1317,9 +1313,9 @@ dependencies = [ [[package]] name = "oxc_ast" -version = "0.108.0" +version = "0.110.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0d1a3c841ad6204dcdba2e584efbff30ec7a5a2c88851108dd39a2ed4be3af3" +checksum = "62f1902f97a5cac8767b76a1d8a1b3124e9db80c176ebbc98f75143dcc124a15" dependencies = [ "bitflags", "oxc_allocator", @@ -1334,9 +1330,9 @@ dependencies = [ [[package]] name = "oxc_ast_macros" -version = "0.108.0" +version = "0.110.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fc4d7eb802fc2bfc49fdc004e875a4009c17657f53372af111eb9d98dc4a15f" +checksum = "c5a31bd55516a98a35b2d99fa5813a3d3a5b798bad3262c819dfe7344bc6f390" dependencies = [ "phf", "proc-macro2", @@ -1346,9 +1342,9 @@ dependencies = [ [[package]] name = "oxc_ast_visit" -version = "0.108.0" +version = "0.110.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "561ace6525ddc90b36103764a959eb261ff7f92a76172a34ac2d24d579f1260d" +checksum = "e2c520a488c04ba5267223edd0bb245fb7f10e2358e8955802a5d962bb95b50a" dependencies = [ "oxc_allocator", "oxc_ast", @@ -1358,9 +1354,9 @@ dependencies = [ [[package]] name = "oxc_codegen" -version = "0.108.0" +version = "0.110.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a075130a060ebc4bcf09a55fcf521243527a820937dccda4af92524d4c3def2" +checksum = "abfd3d146e6e0d340c183aa0e98f29ab1bba876c282350e5e06ab9d6f536eacd" dependencies = [ "bitflags", "cow-utils", @@ -1379,9 +1375,9 @@ dependencies = [ [[package]] name = "oxc_compat" -version = "0.108.0" +version = "0.110.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4df14ee33385dff8fc347c6ddb62b8c7168c4abf6957deec8415575e0f0f2e3" +checksum = "7319f12eb8d4a05737a7f71642d7a97aee210488dc4041a7a452352a31ac0fe6" dependencies = [ "cow-utils", "oxc-browserslist", @@ -1392,18 +1388,18 @@ dependencies = [ [[package]] name = "oxc_data_structures" -version = "0.108.0" +version = "0.110.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "397842ac155f7c3f707232cc8758c0e67919ac7f75ec3bc34680ae176aca8b61" +checksum = "a42840ce8d83a08a92823dda6189e4d97359feca24a4fa732f3256c4614bb5a4" dependencies = [ "ropey", ] [[package]] name = "oxc_diagnostics" -version = "0.108.0" +version = "0.110.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2739661b22eb7abe3966ebbe1eb236337f940eed7e9598bdb089c3353aa2c15f" +checksum = "b4f7b09c1563a67ede53af131f717b31ba89a992959ebad188b5158c21d4dc0a" dependencies = [ "cow-utils", "oxc-miette", @@ -1412,24 +1408,25 @@ dependencies = [ [[package]] name = "oxc_ecmascript" -version = "0.108.0" +version = "0.110.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef913bdaae2ed48335b500a25ecc6a9f186ca855968b5edfc6d1ebad4d0b2124" +checksum = "4813b352bd5b0b05badf0c9e6c5ec7ea58a6a7ab49bec8d18ead262624c6ef8d" dependencies = [ "cow-utils", "num-bigint", "num-traits", "oxc_allocator", "oxc_ast", + "oxc_regular_expression", "oxc_span", "oxc_syntax", ] [[package]] name = "oxc_estree" -version = "0.108.0" +version = "0.110.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a61584ac8cd52d6b6c05a7a5d4b883d5666ea4612ddfe3429f28f7bcd1e93a14" +checksum = "e54fb3effe995e6538d68070bf0a450b5ffd11dd41b62f11a4d01efa1f40e278" [[package]] name = "oxc_index" @@ -1443,9 +1440,9 @@ dependencies = [ [[package]] name = "oxc_parser" -version = "0.108.0" +version = "0.110.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06898c992b263f8e4dfcc338528445492a8d61292ad78a0ad7863a265e7beda2" +checksum = "5592bf8b64743944eb46528f9eabdde2b2435c8293cd502f5c183f9dff644e16" dependencies = [ "bitflags", "cow-utils", @@ -1466,9 +1463,9 @@ dependencies = [ [[package]] name = "oxc_regular_expression" -version = "0.108.0" +version = "0.110.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c658b8d107d9534816312d1fd4b77311df648d07ac8af0417355a8cbb09749b" +checksum = "09de7f7e0fb82f54750e3a95346a828fd354b9aeac00f131719008733e66a18d" dependencies = [ "bitflags", "oxc_allocator", @@ -1482,9 +1479,9 @@ dependencies = [ [[package]] name = "oxc_semantic" -version = "0.108.0" +version = "0.110.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef9534d21d00ac38ca4eab91e7b7f4fa0f1c7f0279d07865074c05357366d5c" +checksum = "8c2269186b4f1510a76daf02914cb70e82a78549de451b8276bba0a419c62ac3" dependencies = [ "itertools 0.14.0", "memchr", @@ -1517,9 +1514,9 @@ dependencies = [ [[package]] name = "oxc_span" -version = "0.108.0" +version = "0.110.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3416e347dd4837cdfbffc49bd2ef106ba592133268a962381cc82d24e8593e40" +checksum = "2a42c0759b745eca0fe776890af46ce12e79e61796995e51a8eb9dcdf5516ab0" dependencies = [ "compact_str", "oxc-miette", @@ -1530,9 +1527,9 @@ dependencies = [ [[package]] name = "oxc_syntax" -version = "0.108.0" +version = "0.110.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c44aa646ecb431595b3255b6eee2a7f9f292422b76cf5c156a825bd042073453" +checksum = "b63eac2e04a75a10c5714aeb753cdfa06b1abc66bbaa748b7994700f52c9b184" dependencies = [ "bitflags", "cow-utils", @@ -1550,9 +1547,9 @@ dependencies = [ [[package]] name = "oxc_transformer" -version = "0.108.0" +version = "0.110.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "118d7149205362a9ab9de91112f36c13e4192db5036d5cad7cc083a849146450" +checksum = "0e394bc5221c9e228fc06f54b7f7a3e2d63ed135a50b8678e8485b5b49222bb5" dependencies = [ "base64", "compact_str", @@ -1579,9 +1576,9 @@ dependencies = [ [[package]] name = "oxc_traverse" -version = "0.108.0" +version = "0.110.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b0c8dc012307ff62260d1f9f3073d4933c5f7e0a01e479f52f6ddd2a487154b" +checksum = "4473bf963b351d5b744b75aee9ff6aa41d62f8ca662012b03dc315cac9f1f2e5" dependencies = [ "itoa", "oxc_allocator", @@ -1802,9 +1799,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.105" +version = "1.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "535d180e0ecab6268a3e718bb9fd44db66bbbc256257165fc699dadf70d16fe7" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" dependencies = [ "unicode-ident", ] @@ -2346,18 +2343,18 @@ checksum = "144f754d318415ac792f9d69fc87abbbfc043ce2ef041c60f16ad828f638717d" [[package]] name = "thiserror" -version = "2.0.17" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" +checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "2.0.17" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" +checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" dependencies = [ "proc-macro2", "quote", @@ -2366,9 +2363,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.44" +version = "0.3.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d" +checksum = "f9e442fc33d7fdb45aa9bfeb312c095964abdf596f7567261062b2a7107aaabd" dependencies = [ "deranged", "itoa", @@ -2377,22 +2374,22 @@ dependencies = [ "num-conv", "num_threads", "powerfmt", - "serde", + "serde_core", "time-core", "time-macros", ] [[package]] name = "time-core" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" +checksum = "8b36ee98fd31ec7426d599183e8fe26932a8dc1fb76ddb6214d05493377d34ca" [[package]] name = "time-macros" -version = "0.2.24" +version = "0.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3" +checksum = "71e552d1249bf61ac2a52db88179fd0673def1e1ad8243a00d9ec9ed71fee3dd" dependencies = [ "num-conv", "time-core", @@ -2524,9 +2521,9 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.106" +version = "0.2.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d759f433fa64a2d763d1340820e46e111a7a5ab75f993d1852d70b03dbb80fd" +checksum = "64024a30ec1e37399cf85a7ffefebdb72205ca1c972291c51512360d90bd8566" dependencies = [ "cfg-if", "once_cell", @@ -2537,11 +2534,12 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.56" +version = "0.4.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "836d9622d604feee9e5de25ac10e3ea5f2d65b41eac0d9ce72eb5deae707ce7c" +checksum = "70a6e77fd0ae8029c9ea0063f87c46fde723e7d887703d74ad2616d792e51e6f" dependencies = [ "cfg-if", + "futures-util", "js-sys", "once_cell", "wasm-bindgen", @@ -2550,9 +2548,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.106" +version = "0.2.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48cb0d2638f8baedbc542ed444afc0644a29166f1595371af4fecf8ce1e7eeb3" +checksum = "008b239d9c740232e71bd39e8ef6429d27097518b6b30bdf9086833bd5b6d608" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2560,9 +2558,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.106" +version = "0.2.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cefb59d5cd5f92d9dcf80e4683949f15ca4b511f4ac0a6e14d4e1ac60c6ecd40" +checksum = "5256bae2d58f54820e6490f9839c49780dff84c65aeab9e772f15d5f0e913a55" dependencies = [ "bumpalo", "proc-macro2", @@ -2573,18 +2571,18 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.106" +version = "0.2.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbc538057e648b67f72a982e708d485b2efa771e1ac05fec311f9f63e5800db4" +checksum = "1f01b580c9ac74c8d8f0c0e4afb04eeef2acf145458e52c03845ee9cd23e3d12" dependencies = [ "unicode-ident", ] [[package]] name = "wasm-bindgen-test" -version = "0.3.56" +version = "0.3.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25e90e66d265d3a1efc0e72a54809ab90b9c0c515915c67cdf658689d2c22c6c" +checksum = "45649196a53b0b7a15101d845d44d2dda7374fc1b5b5e2bbf58b7577ff4b346d" dependencies = [ "async-trait", "cast", @@ -2599,24 +2597,31 @@ dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "wasm-bindgen-test-macro", + "wasm-bindgen-test-shared", ] [[package]] name = "wasm-bindgen-test-macro" -version = "0.3.56" +version = "0.3.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7150335716dce6028bead2b848e72f47b45e7b9422f64cccdc23bedca89affc1" +checksum = "f579cdd0123ac74b94e1a4a72bd963cf30ebac343f2df347da0b8df24cdebed2" dependencies = [ "proc-macro2", "quote", "syn", ] +[[package]] +name = "wasm-bindgen-test-shared" +version = "0.2.108" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8145dd1593bf0fb137dbfa85b8be79ec560a447298955877804640e40c2d6ea" + [[package]] name = "web-sys" -version = "0.3.83" +version = "0.3.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b32828d774c412041098d182a8b38b16ea816958e07cf40eec2bc080ae137ac" +checksum = "312e32e551d92129218ea9a2452120f4aabc03529ef03e4d0d82fb2780608598" dependencies = [ "js-sys", "wasm-bindgen", @@ -2874,6 +2879,6 @@ dependencies = [ [[package]] name = "zmij" -version = "1.0.13" +version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac93432f5b761b22864c774aac244fa5c0fd877678a4c37ebf6cf42208f9c9ec" +checksum = "dfcd145825aace48cff44a8844de64bf75feec3080e0aa5cdbde72961ae51a65" diff --git a/bindings/devup-ui-wasm/Cargo.toml b/bindings/devup-ui-wasm/Cargo.toml index 960b5310..28eed685 100644 --- a/bindings/devup-ui-wasm/Cargo.toml +++ b/bindings/devup-ui-wasm/Cargo.toml @@ -15,7 +15,7 @@ crate-type = ["cdylib", "rlib"] default = ["console_error_panic_hook"] [dependencies] -wasm-bindgen = "0.2.106" +wasm-bindgen = "0.2.108" extractor = { path = "../../libs/extractor" } sheet = { path = "../../libs/sheet" } css = { path = "../../libs/css" } @@ -26,16 +26,16 @@ css = { path = "../../libs/css" } # code size when deploying. console_error_panic_hook = { version = "0.1.7", optional = true } once_cell = "1.21.3" -js-sys = "0.3.83" +js-sys = "0.3.85" serde_json = "1.0.149" serde-wasm-bindgen = "0.6.5" bimap = { version = "0.6.3", features = ["serde"] } getrandom = { version = "0.3", features = ["wasm_js"] } [dev-dependencies] -wasm-bindgen-test = "0.3.56" +wasm-bindgen-test = "0.3.58" serial_test = "3.3.1" -insta = "1.46.0" +insta = "1.46.1" rstest = "0.26.1" [package.metadata.wasm-pack.profile.release] diff --git a/libs/extractor/Cargo.toml b/libs/extractor/Cargo.toml index 55487d3f..9a55a78e 100644 --- a/libs/extractor/Cargo.toml +++ b/libs/extractor/Cargo.toml @@ -4,15 +4,15 @@ version = "0.1.0" edition = "2024" [dependencies] -oxc_parser = "0.108.0" -oxc_syntax = "0.108.0" -oxc_span = "0.108.0" -oxc_allocator = "0.108.0" -oxc_ast = "0.108.0" -oxc_ast_visit = "0.108.0" -oxc_codegen = "0.108.0" -oxc_transformer = "0.108.0" -oxc_semantic = "0.108.0" +oxc_parser = "0.110.0" +oxc_syntax = "0.110.0" +oxc_span = "0.110.0" +oxc_allocator = "0.110.0" +oxc_ast = "0.110.0" +oxc_ast_visit = "0.110.0" +oxc_codegen = "0.110.0" +oxc_transformer = "0.110.0" +oxc_semantic = "0.110.0" css = { path = "../css" } phf = "0.13" strum = "0.27.2" @@ -21,6 +21,6 @@ serde_json = "1.0" boa_engine = "0.21" [dev-dependencies] -insta = "1.46.0" +insta = "1.46.1" serial_test = "3.3.1" rstest = "0.26.1" diff --git a/libs/sheet/Cargo.toml b/libs/sheet/Cargo.toml index ed34f00a..2d6af371 100644 --- a/libs/sheet/Cargo.toml +++ b/libs/sheet/Cargo.toml @@ -12,7 +12,7 @@ once_cell = "1.21.3" extractor = { path = "../extractor" } [dev-dependencies] -insta = "1.46.0" +insta = "1.46.1" criterion = { version = "0.8", features = ["html_reports"] } rstest = "0.26.1" diff --git a/package.json b/package.json index 43e003dc..00485caa 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "lint": "cargo fmt --all -- --check && cargo clippy --all-targets --all-features -- -D warnings && eslint", "lint:fix": "eslint --fix", "pretest": "bun run --filter @devup-ui/vite-plugin build", - "test": "cargo tarpaulin --out xml --out stdout --out html --all-targets && bun test", + "test": "cargo tarpaulin --out xml --out stdout --out html --all-targets --engine llvm && bun test", "build": "bun run --filter @devup-ui/wasm --filter @devup-ui/plugin-utils build && bun run --filter @devup-ui/react --filter @devup-ui/webpack-plugin build && bun run --filter @devup-ui/eslint-plugin --filter @devup-ui/vite-plugin --filter @devup-ui/next-plugin --filter @devup-ui/rsbuild-plugin --filter @devup-ui/bun-plugin --filter @devup-ui/components --filter @devup-ui/reset-css build", "dev": "bun run --filter '*' dev", "benchmark": "bun benchmark.js",