diff --git a/Dockerfile.emscripten b/Dockerfile.emscripten
index a5717f603b79c1bd544cfab8d494b18269b307a5..13082f05dbb08cb6aa2f921c0ee2c2cd98dd4fd4 100644
--- a/Dockerfile.emscripten
+++ b/Dockerfile.emscripten
@@ -5,8 +5,8 @@ FROM emscripten/emsdk:${EMSCRIPTEN_VERSION} AS pure_emscripten_sdk
 
 FROM pure_emscripten_sdk AS supplemented_emscripten_sdk
 
-ARG PNPM_VERSION=9.1.1
-ENV PNPM_VERSION=9.1.1
+ARG PNPM_VERSION=10.0.0
+ENV PNPM_VERSION=${PNPM_VERSION}
 
 USER root
 
@@ -18,12 +18,14 @@ RUN apt-get update && \
     ninja-build \
     autoconf \
     libtool \
-    protobuf-compiler && \
+    protobuf-compiler \
+    zopfli \
+    && \
     apt-get clean && rm -r /var/lib/apt/lists/*
 
 FROM supplemented_emscripten_sdk AS supplemented_node_sdk
 
-ARG NODEJS_VERSION=v20.18.1
+ARG NODEJS_VERSION=v20.18.3
 ENV NODEJS_VERSION=${NODEJS_VERSION}
 
 USER emscripten
@@ -41,25 +43,26 @@ ENV PATH="${PNPM_HOME}:${NVM_DIR}:${PATH}"
 ENV PLAYWRIGHT_BROWSERS_PATH="${HOME}/pw-browsers"
 
 RUN source "${EMSDK}/emsdk_env.sh" && \
-    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash && \
+    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash && \
     [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
     nvm install "${NODEJS_VERSION}" && \
     nvm use "${NODEJS_VERSION}" && \
     corepack enable pnpm && \
-    corepack install -g pnpm@9.15.4 && \
+    corepack install -g pnpm@${PNPM_VERSION} && \
     pnpm config set store-dir ${PNPM_HOME}/preinstalled-store --global && \
     pnpm config set global-dir ${PNPM_HOME}/preinstalled-store-g --global && \
     pnpm env use --global "${NODEJS_VERSION}" && \
     pnpm add -g \
-      playwright@~1.49.1 \
-      @playwright/test@~1.49.1 \
-      ts-proto@~1.158.0 \
+      playwright@1.50.1 \
+      @playwright/test@1.50.1 \
+      ts-proto@1.172.0 \
       tslib@~2.8.1 \
       typescript@~5.7.3 \
-      rollup@~4.22.0 \
-      rollup/plugin-node-resolve@~15.2.3 \
-      rollup/plugin-commonjs@~25.0.7 \
+      rollup@4.24.0 \
+      rollup/plugin-node-resolve@15.3.1 \
+      rollup/plugin-commonjs@27.0.0 \
       rollup-plugin-typescript2@~0.36.0 \
+      @rollup/plugin-replace@6.0.2 \
       types/node@~22.10.6 \
       typedoc@~0.27.6 \
       typedoc-plugin-markdown@~4.4.1 \
diff --git a/docker-bake.hcl b/docker-bake.hcl
index af7f56cd201f4c09b152a6cc694d14a75d8f5e9b..6be5818c5d4508733ba80a5bc6be904cbbd06654 100644
--- a/docker-bake.hcl
+++ b/docker-bake.hcl
@@ -83,7 +83,7 @@ target "tox-test-runner" {
 
 target "emsdk" {
   dockerfile = "Dockerfile.emscripten"
-  tags = generate-tags("emsdk", "${EMSCRIPTEN_VERSION}-1")
+  tags = generate-tags("emsdk", "${EMSCRIPTEN_VERSION}-2")
   cache-from = generate-cache-from("emsdk", "${EMSCRIPTEN_VERSION}")
   cache-to = generate-cache-to("emsdk", "${EMSCRIPTEN_VERSION}")
   args = {
diff --git a/pnpm-config/pnpm-workspace.yaml b/pnpm-config/pnpm-workspace.yaml
index ebf88f11620eb297aaa1f2d2328bf16f562b9b65..1c0ec4ad43afb927ab0778a8b2726ad29b94e2b6 100644
--- a/pnpm-config/pnpm-workspace.yaml
+++ b/pnpm-config/pnpm-workspace.yaml
@@ -4,12 +4,12 @@ packages:
 catalogs:
   # Can be referenced through "catalog:rollup-toolset"
   rollup-toolset:
-    rollup: ^4.22.4
+    rollup: 4.24.0
     rollup-plugin-copy: ^3.5.0
     rollup-plugin-dts: ^6.1.1
     "@rollup/plugin-commonjs": ^27.0.0
-    "@rollup/plugin-node-resolve": ^15.3.0
-    "@rollup/plugin-replace": ^6.0.1
+    "@rollup/plugin-node-resolve": ^15.3.1
+    "@rollup/plugin-replace": ^6.0.2
 
   typedoc-toolset:
     "typedoc": "0.27.3"
@@ -26,8 +26,8 @@ catalogs:
     ts-proto: ^1.172.0
 
   playwright-toolset:
-    "@playwright/test": ^1.49.1
-    playwright: 1.49.1
+    "@playwright/test": ^1.50.1
+    playwright: ^1.50.1
     http-server: ^14.1.1
 
   husky:
diff --git a/scripts/bash/build_emscripten_image.sh b/scripts/bash/build_emscripten_image.sh
index 60386fe89320757643ea0ea33017e56fcb4c7ac6..abb3eb3ea24e18b9eb6c4ce7ce45606c56cb8437 100755
--- a/scripts/bash/build_emscripten_image.sh
+++ b/scripts/bash/build_emscripten_image.sh
@@ -11,5 +11,5 @@ export DOCKER_BUILDKIT=1
 
 docker build --target=supplemented_emscripten_builder \
   --build-arg "EMSCRIPTEN_VERSION=${EMSDK_VERSION}" \
-  --tag "${REGISTRY}emsdk:${EMSDK_VERSION}-1" \
+  --tag "${REGISTRY}emsdk:${EMSDK_VERSION}-2" \
   --file "${SRCDIR}/Dockerfile.emscripten" "${SRCDIR}"
diff --git a/scripts/bash/npm-helpers/npm_publish.sh b/scripts/bash/npm-helpers/npm_publish.sh
index e1a8bef26865dd45e8db70a9a0c80375589876e8..68e6175783ff6aefab6f1934778ed2094f0487d0 100755
--- a/scripts/bash/npm-helpers/npm_publish.sh
+++ b/scripts/bash/npm-helpers/npm_publish.sh
@@ -40,7 +40,7 @@ else
   set -e
   echo "Publishing ${NAME}@${VERSION} to tag ${PACKAGE_DIST_TAG}"
   # We are going to repack the tarball as there are registry-dependent data in each job for package.json
-  pnpm publish --access=public --tag "${PACKAGE_DIST_TAG}"
+  pnpm publish --no-git-checks --access=public --tag "${PACKAGE_DIST_TAG}"
 fi
 
 popd
diff --git a/templates/npm_projects.gitlab-ci.yml b/templates/npm_projects.gitlab-ci.yml
index 07dab021202dbbb59c9984bd1d7c8981515269a4..ac05cca020890848f70aed194a07f4851a56dd84 100644
--- a/templates/npm_projects.gitlab-ci.yml
+++ b/templates/npm_projects.gitlab-ci.yml
@@ -2,8 +2,8 @@ include:
   - local: templates/base.gitlab-ci.yml
 
 variables:
-  # uses registry.gitlab.syncad.com/hive/common-ci-configuration/emsdk:4.0.1-1
-  EMSCRIPTEN_IMAGE_TAG: "4.0.1-1@sha256:2212741aa9c6647ece43a9ac222c677589f18b27cc8e39921636f125705155dd"
+  # uses registry.gitlab.syncad.com/hive/common-ci-configuration/emsdk:4.0.1-2
+  EMSCRIPTEN_IMAGE_TAG: "4.0.1-2@sha256:20c7e44736ce12c9ddb29e1c5c73dd9f0e73704669889212e611069eecb7c5a8"
   EMSCRIPTEN_IMAGE: "registry.gitlab.syncad.com/hive/common-ci-configuration/emsdk:$EMSCRIPTEN_IMAGE_TAG"
 
 .node_based_job_base: