diff --git a/.github/actions/frontend-build/action.yml b/.github/actions/frontend-build/action.yml
index a6819f1ea6..8ad7d0f826 100644
--- a/.github/actions/frontend-build/action.yml
+++ b/.github/actions/frontend-build/action.yml
@@ -15,8 +15,7 @@ inputs:
default: 'false'
node-version:
description: 'Node.js version to use'
- required: false
- default: '23'
+ required: true
runs:
using: 'composite'
diff --git a/.github/actions/load-versions/action.yml b/.github/actions/load-versions/action.yml
index 08421ba565..a1c00d4101 100644
--- a/.github/actions/load-versions/action.yml
+++ b/.github/actions/load-versions/action.yml
@@ -11,6 +11,9 @@ outputs:
ocaml-version:
description: "OCaml version"
value: ${{ steps.load.outputs.ocaml-version }}
+ node-version:
+ description: "Node.js version"
+ value: ${{ steps.load.outputs.node-version }}
runs:
using: composite
@@ -25,18 +28,33 @@ runs:
RUST_STABLE=$(yq eval '.rust.stable' "$VERSIONS_FILE")
RUST_NIGHTLY=$(yq eval '.rust.nightly' "$VERSIONS_FILE")
OCAML_VERSION=$(yq eval '.ocaml.version' "$VERSIONS_FILE")
+ NODE_VERSION_YAML=$(yq eval '.node.version' "$VERSIONS_FILE")
+
+ # Read node version from .nvmrc
+ NODE_VERSION_NVMRC=$(cat .nvmrc)
+
+ # Verify that the versions match
+ if [ "$NODE_VERSION_YAML" != "$NODE_VERSION_NVMRC" ]; then
+ echo "Error: Node.js version mismatch!"
+ echo " .github/config/versions.yaml: $NODE_VERSION_YAML"
+ echo " .nvmrc: $NODE_VERSION_NVMRC"
+ exit 1
+ fi
# Set outputs
echo "rust-stable=$RUST_STABLE" >> $GITHUB_OUTPUT
echo "rust-nightly=$RUST_NIGHTLY" >> $GITHUB_OUTPUT
echo "ocaml-version=$OCAML_VERSION" >> $GITHUB_OUTPUT
+ echo "node-version=$NODE_VERSION_YAML" >> $GITHUB_OUTPUT
# Also set as environment variables for convenience
echo "RUST_STABLE_VERSION=$RUST_STABLE" >> $GITHUB_ENV
echo "RUST_NIGHTLY_VERSION=$RUST_NIGHTLY" >> $GITHUB_ENV
echo "OCAML_VERSION=$OCAML_VERSION" >> $GITHUB_ENV
+ echo "NODE_VERSION=$NODE_VERSION_YAML" >> $GITHUB_ENV
echo "Loaded versions:"
echo " Rust stable: $RUST_STABLE"
echo " Rust nightly: $RUST_NIGHTLY"
echo " OCaml: $OCAML_VERSION"
+ echo " Node.js: $NODE_VERSION_YAML"
diff --git a/.github/config/versions.yaml b/.github/config/versions.yaml
index 5ed3f43716..e8d3045133 100644
--- a/.github/config/versions.yaml
+++ b/.github/config/versions.yaml
@@ -15,3 +15,6 @@ rust:
ocaml:
version: "4.14.2"
+
+node:
+ version: "24.11.0"
diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml
index ea077b74a7..6290527e61 100644
--- a/.github/workflows/docs.yaml
+++ b/.github/workflows/docs.yaml
@@ -9,9 +9,6 @@ on:
pull_request:
workflow_dispatch:
-env:
- NODE_VERSION: '20'
-
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
@@ -25,10 +22,13 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v5
+ - id: versions
+ uses: ./.github/actions/load-versions
+
- name: Setup Node.js
uses: actions/setup-node@v6
with:
- node-version: ${{ env.NODE_VERSION }}
+ node-version: ${{ steps.versions.outputs.node-version }}
cache: 'npm'
cache-dependency-path: website/package-lock.json
@@ -109,10 +109,13 @@ jobs:
- name: Setup Pages
uses: actions/configure-pages@v5
+ - id: versions
+ uses: ./.github/actions/load-versions
+
- name: Setup Node.js
uses: actions/setup-node@v6
with:
- node-version: ${{ env.NODE_VERSION }}
+ node-version: ${{ steps.versions.outputs.node-version }}
cache: 'npm'
cache-dependency-path: website/package-lock.json
@@ -158,10 +161,13 @@ jobs:
with:
fetch-depth: 0
+ - id: versions
+ uses: ./.github/actions/load-versions
+
- name: Setup Node.js
uses: actions/setup-node@v6
with:
- node-version: ${{ env.NODE_VERSION }}
+ node-version: ${{ steps.versions.outputs.node-version }}
cache: 'npm'
cache-dependency-path: website/package-lock.json
diff --git a/.github/workflows/frontend-macos-13.yaml b/.github/workflows/frontend-macos-13.yaml
index d1aa6784ba..282d46e4e4 100644
--- a/.github/workflows/frontend-macos-13.yaml
+++ b/.github/workflows/frontend-macos-13.yaml
@@ -16,7 +16,11 @@ jobs:
- name: Git checkout
uses: actions/checkout@v5
+ - id: versions
+ uses: ./.github/actions/load-versions
+
- name: Frontend build
uses: ./.github/actions/frontend-build
with:
+ node-version: ${{ steps.versions.outputs.node-version }}
test-build-commands: 'true'
\ No newline at end of file
diff --git a/.github/workflows/frontend-macos-14.yaml b/.github/workflows/frontend-macos-14.yaml
index ce4f180cba..b782a0a9fa 100644
--- a/.github/workflows/frontend-macos-14.yaml
+++ b/.github/workflows/frontend-macos-14.yaml
@@ -16,7 +16,11 @@ jobs:
- name: Git checkout
uses: actions/checkout@v5
+ - id: versions
+ uses: ./.github/actions/load-versions
+
- name: Frontend build
uses: ./.github/actions/frontend-build
with:
+ node-version: ${{ steps.versions.outputs.node-version }}
test-build-commands: 'true'
\ No newline at end of file
diff --git a/.github/workflows/frontend-macos-15.yaml b/.github/workflows/frontend-macos-15.yaml
index 64b6b5a637..bb174fc303 100644
--- a/.github/workflows/frontend-macos-15.yaml
+++ b/.github/workflows/frontend-macos-15.yaml
@@ -16,7 +16,11 @@ jobs:
- name: Git checkout
uses: actions/checkout@v5
+ - id: versions
+ uses: ./.github/actions/load-versions
+
- name: Frontend build
uses: ./.github/actions/frontend-build
with:
+ node-version: ${{ steps.versions.outputs.node-version }}
test-build-commands: 'true'
\ No newline at end of file
diff --git a/.github/workflows/frontend-macos-latest.yaml b/.github/workflows/frontend-macos-latest.yaml
index 69deada6c3..f6c81898aa 100644
--- a/.github/workflows/frontend-macos-latest.yaml
+++ b/.github/workflows/frontend-macos-latest.yaml
@@ -16,7 +16,11 @@ jobs:
- name: Git checkout
uses: actions/checkout@v5
+ - id: versions
+ uses: ./.github/actions/load-versions
+
- name: Frontend build
uses: ./.github/actions/frontend-build
with:
+ node-version: ${{ steps.versions.outputs.node-version }}
test-build-commands: 'true'
\ No newline at end of file
diff --git a/.github/workflows/frontend-ubuntu-22-04.yaml b/.github/workflows/frontend-ubuntu-22-04.yaml
index e0b0f9c518..37fd3e9d61 100644
--- a/.github/workflows/frontend-ubuntu-22-04.yaml
+++ b/.github/workflows/frontend-ubuntu-22-04.yaml
@@ -16,7 +16,11 @@ jobs:
- name: Git checkout
uses: actions/checkout@v5
+ - id: versions
+ uses: ./.github/actions/load-versions
+
- name: Frontend build
uses: ./.github/actions/frontend-build
with:
+ node-version: ${{ steps.versions.outputs.node-version }}
test-build-commands: 'true'
\ No newline at end of file
diff --git a/.github/workflows/frontend-ubuntu-24-04-arm.yaml b/.github/workflows/frontend-ubuntu-24-04-arm.yaml
index d406fd2246..c16f791cd8 100644
--- a/.github/workflows/frontend-ubuntu-24-04-arm.yaml
+++ b/.github/workflows/frontend-ubuntu-24-04-arm.yaml
@@ -16,7 +16,11 @@ jobs:
- name: Git checkout
uses: actions/checkout@v5
+ - id: versions
+ uses: ./.github/actions/load-versions
+
- name: Frontend build
uses: ./.github/actions/frontend-build
with:
+ node-version: ${{ steps.versions.outputs.node-version }}
test-build-commands: 'true'
\ No newline at end of file
diff --git a/.github/workflows/frontend.yaml b/.github/workflows/frontend.yaml
index 1dac8ec7fd..787172027b 100644
--- a/.github/workflows/frontend.yaml
+++ b/.github/workflows/frontend.yaml
@@ -16,9 +16,13 @@ jobs:
- name: Git checkout
uses: actions/checkout@v5
+ - id: versions
+ uses: ./.github/actions/load-versions
+
- name: Frontend build and test
uses: ./.github/actions/frontend-build
with:
+ node-version: ${{ steps.versions.outputs.node-version }}
run-prettier-check: 'true'
run-tests: 'true'
test-build-commands: 'false'
diff --git a/.github/workflows/test-docs-scripts-frontend.yaml b/.github/workflows/test-docs-scripts-frontend.yaml
index 196f0fafed..25abd296ca 100644
--- a/.github/workflows/test-docs-scripts-frontend.yaml
+++ b/.github/workflows/test-docs-scripts-frontend.yaml
@@ -34,24 +34,19 @@ jobs:
run: |
chmod +x website/docs/developers/scripts/frontend/*.sh
- - name: Install Node.js on Linux
- if: runner.os == 'Linux'
- run: |
- bash website/docs/developers/scripts/frontend/install-nodejs-linux.sh
- # Set up nvm environment for future steps
- echo "NVM_DIR=$HOME/.nvm" >> $GITHUB_ENV
+ - name: Load versions
+ id: versions
+ uses: ./.github/actions/load-versions
- - name: Install Node.js on macOS
- if: runner.os == 'macOS'
- run: |
- bash website/docs/developers/scripts/frontend/install-nodejs-macos.sh
+ - name: Setup Node.js
+ uses: actions/setup-node@v6
+ with:
+ node-version: ${{ steps.versions.outputs.node-version }}
+ cache: 'npm'
+ cache-dependency-path: website/package-lock.json
- name: Install Angular CLI using documentation script
run: |
- # Source nvm if available (Linux)
- if [ -n "$NVM_DIR" ] && [ -s "$NVM_DIR/nvm.sh" ]; then
- \. "$NVM_DIR/nvm.sh"
- fi
bash website/docs/developers/scripts/frontend/install-angular-cli.sh
- name: Install gtimeout on macOS
@@ -63,42 +58,22 @@ jobs:
- name: Test install dependencies script
run: |
- # Source nvm if available (Linux)
- if [ -n "$NVM_DIR" ] && [ -s "$NVM_DIR/nvm.sh" ]; then
- \. "$NVM_DIR/nvm.sh"
- fi
bash website/docs/developers/scripts/frontend/install-dependencies.sh
- name: Test build production script
run: |
- # Source nvm if available (Linux)
- if [ -n "$NVM_DIR" ] && [ -s "$NVM_DIR/nvm.sh" ]; then
- \. "$NVM_DIR/nvm.sh"
- fi
bash website/docs/developers/scripts/frontend/build-production.sh
- name: Test format code script
run: |
- # Source nvm if available (Linux)
- if [ -n "$NVM_DIR" ] && [ -s "$NVM_DIR/nvm.sh" ]; then
- \. "$NVM_DIR/nvm.sh"
- fi
bash website/docs/developers/scripts/frontend/format-code.sh
- name: Test build leaderboard script
run: |
- # Source nvm if available (Linux)
- if [ -n "$NVM_DIR" ] && [ -s "$NVM_DIR/nvm.sh" ]; then
- \. "$NVM_DIR/nvm.sh"
- fi
bash website/docs/developers/scripts/frontend/build-leaderboard.sh
- name: Test build webnode script
run: |
- # Source nvm if available (Linux)
- if [ -n "$NVM_DIR" ] && [ -s "$NVM_DIR/nvm.sh" ]; then
- \. "$NVM_DIR/nvm.sh"
- fi
bash website/docs/developers/scripts/frontend/build-webnode.sh
- name: Prepare for Cypress tests (Ubuntu 22.04)
diff --git a/.nvmrc b/.nvmrc
new file mode 100644
index 0000000000..0a492611a0
--- /dev/null
+++ b/.nvmrc
@@ -0,0 +1 @@
+24.11.0
diff --git a/Makefile b/Makefile
index 34c1d0cc7d..fb86b1ba9c 100644
--- a/Makefile
+++ b/Makefile
@@ -7,6 +7,7 @@
# - ./github/workflows/fmt.yaml
# - ./github/workflows/lint.yaml
NIGHTLY_RUST_VERSION = "nightly"
+NODE_VERSION := $(shell cat .nvmrc)
# WebAssembly
WASM_BINDGEN_CLI_VERSION = "0.2.99"
@@ -394,6 +395,7 @@ docker-build-frontend: ## Build frontend Docker image
esac; \
echo "Building for platform: $$PLATFORM"; \
docker buildx build \
+ --build-arg NODE_VERSION=$(NODE_VERSION) \
--platform $$PLATFORM \
--tag $(DOCKER_ORG)/mina-rust-frontend:$(GIT_COMMIT) \
--file ./frontend/Dockerfile \
diff --git a/frontend/Dockerfile b/frontend/Dockerfile
index 8ef4151304..1514151359 100644
--- a/frontend/Dockerfile
+++ b/frontend/Dockerfile
@@ -88,6 +88,10 @@ COPY --from=build_wasm /workspace/pkg ./
# Final stage - Apache with source code and build capability
FROM httpd:2.4 AS final
+# Set environment variables for Node.js version
+ARG NODE_VERSION
+ENV NODE_VERSION=${NODE_VERSION}
+
# Install system dependencies required for Node.js and build tools
# hadolint ignore=DL3008
RUN apt-get update && \
@@ -96,18 +100,28 @@ RUN apt-get update && \
ca-certificates \
gnupg \
make \
+ xz-utils \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
-# Copy documentation scripts for Node.js setup
-COPY ./website/docs/developers/scripts/frontend/install-nodejs-linux.sh ./scripts/install-nodejs-linux.sh
-COPY ./website/docs/developers/scripts/frontend/install-angular-cli.sh ./scripts/install-angular-cli.sh
+# Add NodeSource GPG key and repository and install Node.js
+RUN bash -c " \
+ export NODE_MAJOR=$(echo ${NODE_VERSION} | cut -d. -f1); \
+ mkdir -p /etc/apt/keyrings; \
+ curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg; \
+ echo \"deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$${NODE_MAJOR}.x nodistro main\" | tee /etc/apt/sources.list.d/nodesource.list; \
+ apt-get update; \
+ apt-get install -y nodejs; \
+ "
-# Install Node.js and Angular CLI using documentation scripts
-RUN chmod +x ./scripts/*.sh && \
- bash ./scripts/install-nodejs-linux.sh && \
- bash -c 'source "$HOME/.nvm/nvm.sh" && bash ./scripts/install-angular-cli.sh'
+# Add Node.js to PATH
+ENV PATH="/usr/local/bin:${PATH}"
+
+# Install Angular CLI
+COPY ./website/docs/developers/scripts/frontend/install-angular-cli.sh ./scripts/install-angular-cli.sh
+RUN chmod +x ./scripts/install-angular-cli.sh && \
+ ./scripts/install-angular-cli.sh
# Copy entire frontend source code and Makefile
COPY frontend/ ./frontend/
@@ -130,7 +144,7 @@ RUN chmod +x /usr/local/bin/startup.sh && \
# Install frontend dependencies using Makefile
WORKDIR /app/frontend
-RUN bash -c 'source "$HOME/.nvm/nvm.sh" && make install-deps'
+RUN make install-deps
WORKDIR /app
diff --git a/frontend/package.json b/frontend/package.json
index 3ae7213010..82abb4882d 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -28,6 +28,9 @@
"tests:headless": "make test-headless"
},
"private": true,
+ "engines": {
+ "node": "^24.0.0"
+ },
"dependencies": {
"@angular/animations": "^19.2.14",
"@angular/cdk": "^19.2.19",
diff --git a/website/docs/developers/frontend/index.mdx b/website/docs/developers/frontend/index.mdx
index 1e0a8fc94b..6b4fc5a700 100644
--- a/website/docs/developers/frontend/index.mdx
+++ b/website/docs/developers/frontend/index.mdx
@@ -7,8 +7,7 @@ sidebar_position: 1
import CodeBlock from "@theme/CodeBlock";
import Tabs from "@theme/Tabs";
import TabItem from "@theme/TabItem";
-import InstallNodejsLinux from "!!raw-loader!../scripts/frontend/install-nodejs-linux.sh";
-import InstallNodejsMacos from "!!raw-loader!../scripts/frontend/install-nodejs-macos.sh";
+
import InstallAngularCli from "!!raw-loader!../scripts/frontend/install-angular-cli.sh";
import InstallCypressUbuntu2204 from "!!raw-loader!../scripts/frontend/install-cypress-deps-ubuntu-22-04.sh";
import InstallCypressUbuntu2404 from "!!raw-loader!../scripts/frontend/install-cypress-deps-ubuntu-24-04.sh";
@@ -58,22 +57,12 @@ These instructions are tested and compatible with:
### Install Node.js
-
-
-
-
- {InstallNodejsLinux}
-
-
-
-
+We recommend using the latest Node.js version specified in the `.nvmrc` file at
+the root of the repository. You can use a Node.js version manager like `nvm` to
+easily switch to the correct version.
-
- {InstallNodejsMacos}
-
-
-
-
+For more information on how to install Node.js, please refer to the
+[official Node.js documentation](https://nodejs.org/en/download/package-manager/).
### Install Angular CLI
diff --git a/website/docs/developers/getting-started.mdx b/website/docs/developers/getting-started.mdx
index 7fd3b572dc..e18d8a620e 100644
--- a/website/docs/developers/getting-started.mdx
+++ b/website/docs/developers/getting-started.mdx
@@ -10,8 +10,7 @@ import TabItem from "@theme/TabItem";
import InstallRustSh from "!!raw-loader!./scripts/setup/install-rust.sh";
import InstallSystemDepsSh from "!!raw-loader!./scripts/setup/install-system-deps.sh";
import InstallSystemDepsMacOSSh from "!!raw-loader!./scripts/setup/install-system-deps-macos.sh";
-import InstallNodejsSh from "!!raw-loader!./scripts/setup/install-nodejs.sh";
-import InstallNodejsMacOSSh from "!!raw-loader!./scripts/setup/install-nodejs-macos.sh";
+
import InstallDockerSh from "!!raw-loader!./scripts/setup/install-docker.sh";
import InstallDockerMacOSSh from "!!raw-loader!./scripts/setup/install-docker-macos.sh";
import InstallWasmToolsSh from "!!raw-loader!./scripts/setup/install-wasm-tools.sh";
@@ -81,18 +80,12 @@ This installs:
**Node.js (for documentation and frontend):**
-
-
-
-{InstallNodejsSh}
-
-
-
-
-{InstallNodejsMacOSSh}
+We recommend using the latest Node.js version specified in the `.nvmrc` file at
+the root of the repository. You can use a Node.js version manager like `nvm` to
+easily switch to the correct version.
-
-
+For more information on how to install Node.js, please refer to the
+[official Node.js documentation](https://nodejs.org/en/download/package-manager/).
**Docker (optional, for containerized builds):**
diff --git a/website/docs/developers/scripts/frontend/install-nodejs-linux.sh b/website/docs/developers/scripts/frontend/install-nodejs-linux.sh
deleted file mode 100755
index e422fcbbfb..0000000000
--- a/website/docs/developers/scripts/frontend/install-nodejs-linux.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-# Install nvm (if not already installed)
-curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
-
-# Source nvm
-export NVM_DIR="$HOME/.nvm"
-[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
-
-# Install Node.js
-nvm install 23.1.0
-nvm use 23.1.0
-nvm alias default 23.1.0
-
-# Verify installation
-echo "Node.js version: $(node --version)"
-echo "npm version: $(npm --version)"
-
-echo "Node.js installation complete!"
diff --git a/website/docs/developers/scripts/frontend/install-nodejs-macos.sh b/website/docs/developers/scripts/frontend/install-nodejs-macos.sh
deleted file mode 100755
index bc146ef0e1..0000000000
--- a/website/docs/developers/scripts/frontend/install-nodejs-macos.sh
+++ /dev/null
@@ -1,11 +0,0 @@
-# Install Node.js
-brew install node@23
-
-# Link the installed version
-brew link --overwrite node@23
-
-# Verify installation
-echo "Node.js version: $(node --version)"
-echo "npm version: $(npm --version)"
-
-echo "Node.js installation complete!"
diff --git a/website/docs/developers/scripts/setup/install-nodejs-macos.sh b/website/docs/developers/scripts/setup/install-nodejs-macos.sh
deleted file mode 100755
index fa90997089..0000000000
--- a/website/docs/developers/scripts/setup/install-nodejs-macos.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-# Install Node.js (version 18+ recommended) via Homebrew
-brew install node@18
-
-# Link Node.js if needed
-brew link node@18
\ No newline at end of file
diff --git a/website/docs/developers/scripts/setup/install-nodejs.sh b/website/docs/developers/scripts/setup/install-nodejs.sh
deleted file mode 100755
index 2c277e7b3d..0000000000
--- a/website/docs/developers/scripts/setup/install-nodejs.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-# Install Node.js (version 18+ recommended)
-curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
-sudo apt-get install -y nodejs
diff --git a/website/package-lock.json b/website/package-lock.json
index b9016e8544..4f49e2adeb 100644
--- a/website/package-lock.json
+++ b/website/package-lock.json
@@ -25,7 +25,7 @@
"typescript": "~5.6.2"
},
"engines": {
- "node": ">=18.0"
+ "node": "^24.0.0"
}
},
"node_modules/@ai-sdk/gateway": {
@@ -234,6 +234,7 @@
"resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.42.0.tgz",
"integrity": "sha512-NZR7yyHj2WzK6D5X8gn+/KOxPdzYEXOqVdSaK/biU8QfYUpUuEA0sCWg/XlO05tPVEcJelF/oLrrNY3UjRbOww==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"@algolia/client-common": "5.42.0",
"@algolia/requester-browser-xhr": "5.42.0",
@@ -359,6 +360,7 @@
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.5.tgz",
"integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"@babel/code-frame": "^7.27.1",
"@babel/generator": "^7.28.5",
@@ -2148,6 +2150,7 @@
}
],
"license": "MIT",
+ "peer": true,
"engines": {
"node": ">=18"
},
@@ -2170,6 +2173,7 @@
}
],
"license": "MIT",
+ "peer": true,
"engines": {
"node": ">=18"
}
@@ -2279,6 +2283,7 @@
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz",
"integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"cssesc": "^3.0.0",
"util-deprecate": "^1.0.2"
@@ -2700,6 +2705,7 @@
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz",
"integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"cssesc": "^3.0.0",
"util-deprecate": "^1.0.2"
@@ -3563,6 +3569,7 @@
"resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.9.2.tgz",
"integrity": "sha512-C5wZsGuKTY8jEYsqdxhhFOe1ZDjH0uIYJ9T/jebHwkyxqnr4wW0jTkB72OMqNjsoQRcb0JN3PcSeTwFlVgzCZg==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"@docusaurus/core": "3.9.2",
"@docusaurus/logger": "3.9.2",
@@ -4264,6 +4271,7 @@
"resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.1.0.tgz",
"integrity": "sha512-QjHtSaoameoalGnKDT3FoIl4+9RwyTmo9ZJGBdLOks/YOiWHoRDI3PUwEzOE7kEmGcV3AFcp9K6dYu9rEuKLAQ==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"@types/mdx": "^2.0.0"
},
@@ -4582,6 +4590,7 @@
"resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz",
"integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"@babel/core": "^7.21.3",
"@svgr/babel-preset": "8.1.0",
@@ -4953,6 +4962,7 @@
"resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.8.tgz",
"integrity": "sha512-AwAfQ2Wa5bCx9WP8nZL2uMZWod7J7/JSplxbTmBQ5ms6QpqNYm672H0Vu9ZVKVngQ+ii4R/byguVEUZQyeg44g==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"csstype": "^3.0.2"
}
@@ -5303,6 +5313,7 @@
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
"integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
"license": "MIT",
+ "peer": true,
"bin": {
"acorn": "bin/acorn"
},
@@ -5388,6 +5399,7 @@
"resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
"integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"fast-deep-equal": "^3.1.3",
"fast-uri": "^3.0.1",
@@ -5433,6 +5445,7 @@
"resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.42.0.tgz",
"integrity": "sha512-X5+PtWc9EJIPafT/cj8ZG+6IU3cjRRnlHGtqMHK/9gsiupQbAyYlH5y7qt/FtsAhfX5AICHffZy69ZAsVrxWkQ==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"@algolia/abtesting": "1.8.0",
"@algolia/client-abtesting": "5.42.0",
@@ -5896,6 +5909,7 @@
}
],
"license": "MIT",
+ "peer": true,
"dependencies": {
"baseline-browser-mapping": "^2.8.9",
"caniuse-lite": "^1.0.30001746",
@@ -6852,6 +6866,7 @@
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz",
"integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"cssesc": "^3.0.0",
"util-deprecate": "^1.0.2"
@@ -8234,6 +8249,7 @@
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
@@ -8446,6 +8462,20 @@
"node": ">=14.14"
}
},
+ "node_modules/fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "hasInstallScript": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
"node_modules/function-bind": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
@@ -12677,6 +12707,7 @@
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
@@ -13192,6 +13223,7 @@
}
],
"license": "MIT",
+ "peer": true,
"dependencies": {
"nanoid": "^3.3.11",
"picocolors": "^1.1.1",
@@ -14095,6 +14127,7 @@
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz",
"integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"cssesc": "^3.0.0",
"util-deprecate": "^1.0.2"
@@ -14881,6 +14914,7 @@
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
"dev": true,
"license": "MIT",
+ "peer": true,
"dependencies": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
@@ -14963,6 +14997,7 @@
"resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz",
"integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==",
"license": "MIT",
+ "peer": true,
"engines": {
"node": ">=0.10.0"
}
@@ -14972,6 +15007,7 @@
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz",
"integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"scheduler": "^0.26.0"
},
@@ -15027,6 +15063,7 @@
"resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-6.0.0.tgz",
"integrity": "sha512-YMMxTUQV/QFSnbgrP3tjDzLHRg7vsbMn8e9HAa8o/1iXoiomo48b7sk/kkmWEuWNDPJVlKSJRB6Y2fHqdJk+SQ==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"@types/react": "*"
},
@@ -15055,6 +15092,7 @@
"resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz",
"integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"@babel/runtime": "^7.12.13",
"history": "^4.9.0",
@@ -16820,7 +16858,8 @@
"version": "2.8.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
"integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
- "license": "0BSD"
+ "license": "0BSD",
+ "peer": true
},
"node_modules/type-fest": {
"version": "2.19.0",
@@ -16883,6 +16922,7 @@
"integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==",
"devOptional": true,
"license": "Apache-2.0",
+ "peer": true,
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
@@ -17224,6 +17264,7 @@
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
@@ -17431,6 +17472,7 @@
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.100.2.tgz",
"integrity": "sha512-QaNKAvGCDRh3wW1dsDjeMdDXwZm2vqq3zn6Pvq4rHOEOGSaUMgOOjG2Y9ZbIGzpfkJk9ZYTHpDqgDfeBDcnLaw==",
"license": "MIT",
+ "peer": true,
"dependencies": {
"@types/eslint-scope": "^3.7.7",
"@types/estree": "^1.0.8",
@@ -18017,6 +18059,7 @@
"resolved": "https://registry.npmjs.org/zod/-/zod-4.1.12.tgz",
"integrity": "sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ==",
"license": "MIT",
+ "peer": true,
"funding": {
"url": "https://github.com/sponsors/colinhacks"
}
diff --git a/website/package.json b/website/package.json
index 4a2b5b1d16..e3f3f37036 100644
--- a/website/package.json
+++ b/website/package.json
@@ -44,6 +44,6 @@
]
},
"engines": {
- "node": ">=18.0"
+ "node": "^24.0.0"
}
}