From 8d6ef302e9d1f4b369995137da6e3452c4844e31 Mon Sep 17 00:00:00 2001 From: Dmitry Dygalo Date: Sat, 1 Nov 2025 23:58:45 +0100 Subject: [PATCH] chore(javascript): Update `napi` to `3` Signed-off-by: Dmitry Dygalo --- .github/workflows/build.yml | 24 +- bindings/javascript/.cargo/config.toml | 3 + bindings/javascript/CHANGELOG.md | 3 + bindings/javascript/Cargo.toml | 8 +- bindings/javascript/js-binding.d.ts | 21 +- bindings/javascript/js-binding.js | 751 ++-- bindings/javascript/package.json | 26 +- bindings/javascript/yarn.lock | 4633 +++++++++++++++--------- 8 files changed, 3548 insertions(+), 1921 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 504d8f7d..56d71c0b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -241,21 +241,28 @@ jobs: docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian build: |- set -e && - rustup toolchain install 1.83 && - rustup default 1.83 && + npm install -g n && n 22 && + rustup toolchain install stable && + rustup default stable && yarn build --target x86_64-unknown-linux-gnu && strip *.node - host: ubuntu-22.04 target: x86_64-unknown-linux-musl docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine - build: set -e && yarn build && strip *.node + build: |- + set -e && + wget -qO- https://unofficial-builds.nodejs.org/download/release/v22.16.0/node-v22.16.0-linux-x64-musl.tar.gz | tar -xz -C /usr/local --strip-components=1 && + rustup toolchain install stable && + rustup default stable && + yarn build && strip *.node - host: ubuntu-22.04 target: aarch64-unknown-linux-gnu docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian-aarch64 build: |- set -e && - rustup toolchain install 1.83 && - rustup default 1.83 && + npm install -g n && n 22 && + rustup toolchain install stable && + rustup default stable && rustup target add aarch64-unknown-linux-gnu && yarn build --target aarch64-unknown-linux-gnu && aarch64-unknown-linux-gnu-strip *.node @@ -272,6 +279,9 @@ jobs: docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine build: |- set -e && + wget -qO- https://unofficial-builds.nodejs.org/download/release/v22.16.0/node-v22.16.0-linux-x64-musl.tar.gz | tar -xz -C /usr/local --strip-components=1 && + rustup toolchain install stable && + rustup default stable && rustup target add aarch64-unknown-linux-musl && yarn build --target aarch64-unknown-linux-musl && /aarch64-linux-musl-cross/bin/aarch64-linux-musl-strip *.node @@ -286,8 +296,8 @@ jobs: yarn build --target armv7-linux-androideabi ${ANDROID_NDK_LATEST_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip *.node node: - - "18" - "20" + - "22" name: NodeJS ${{ matrix.node }} on ${{ matrix.settings.target }} runs-on: ${{ matrix.settings.host }} @@ -456,7 +466,7 @@ jobs: if: matrix.settings.target == 'armv7-unknown-linux-gnueabihf' uses: addnab/docker-run-action@v3 with: - image: node:${{ matrix.node }}-bullseye-slim + image: node:${{ matrix.node }}-bookworm-slim options: "--platform linux/arm/v7 --network host -v ${{ github.workspace }}:/build -w /build/bindings/javascript" run: | set -e diff --git a/bindings/javascript/.cargo/config.toml b/bindings/javascript/.cargo/config.toml index 60d3c186..0a0b9325 100644 --- a/bindings/javascript/.cargo/config.toml +++ b/bindings/javascript/.cargo/config.toml @@ -2,5 +2,8 @@ linker = "aarch64-linux-musl-gcc" rustflags = ["-C", "target-feature=-crt-static"] +[target.armv7-unknown-linux-gnueabihf] +linker = "arm-linux-gnueabihf-gcc" + [target.wasm32-unknown-unknown] rustflags = ["--cfg", "getrandom_backend=\"wasm_js\""] diff --git a/bindings/javascript/CHANGELOG.md b/bindings/javascript/CHANGELOG.md index fc8d4348..7e56f191 100644 --- a/bindings/javascript/CHANGELOG.md +++ b/bindings/javascript/CHANGELOG.md @@ -4,9 +4,12 @@ ### Changed +- Update `napi` to `3`. - Update `cssparser` to `0.36`. - Update `html5ever` to `0.36`. - Update `selectors` to `0.33`. +- Bump MSRV to `1.88`. +- Drop Node.js 18 support. ### Performance diff --git a/bindings/javascript/Cargo.toml b/bindings/javascript/Cargo.toml index 1770a1c5..1e6fec50 100644 --- a/bindings/javascript/Cargo.toml +++ b/bindings/javascript/Cargo.toml @@ -9,7 +9,7 @@ repository = "https://github.com/Stranger6667/css-inline" keywords = ["css", "html", "email", "stylesheet", "inlining"] categories = ["web-programming"] license = "MIT" -rust-version = "1.80" +rust-version = "1.88" include = ["src/*.rs", "LICENSE", "README.md", "CHANGELOG.md"] [lib] @@ -22,8 +22,8 @@ mimalloc = "0.1" mimalloc = { version = "0.1", features = ["local_dynamic_tls"] } [target.'cfg(not(target_arch = "wasm32"))'.dependencies] -napi = { version = "2.16.0", default-features = false, features = ["napi4"] } -napi-derive = "2.16.0" +napi = { version = "3", default-features = false, features = ["napi4"] } +napi-derive = "3" [target.'cfg(target_arch = "wasm32")'.dependencies] wasm-bindgen = "=0.2.106" @@ -43,7 +43,7 @@ version = "*" default-features = false [build-dependencies] -napi-build = ">=2.1.0, <2.3" +napi-build = "2" [profile.release] lto = true diff --git a/bindings/javascript/js-binding.d.ts b/bindings/javascript/js-binding.d.ts index 07f838b8..91598f33 100644 --- a/bindings/javascript/js-binding.d.ts +++ b/bindings/javascript/js-binding.d.ts @@ -1,12 +1,11 @@ -/* tslint:disable */ +/* auto-generated by NAPI-RS */ /* eslint-disable */ +/** Inline CSS styles from