Update Node to 22.15.0 (#24699)

* Run `bin/update_node 20.18.2 22.15.0`

* Remove expects on `fetchMock.callHistory.done()` to fix tests: are they necessary?

* Set node version to `22.x` in linked-url-proxy

* Increase test timeout to 30s in `github-sync`, Add waiting steps

* Define `navigator.onLine` in tests setup

GitOrigin-RevId: 75eb556e9f51b665e57497a0879b6915d14069ce
This commit is contained in:
Antoine Clausse
2025-05-15 13:20:16 +02:00
committed by Copybot
parent 2dd054d602
commit 67ab5a749a
87 changed files with 110 additions and 114 deletions

View File

@@ -1 +1 @@
20.18.2 22.15.0

View File

@@ -5,6 +5,6 @@ access-token-encryptor
--env-pass-through= --env-pass-through=
--esmock-loader=False --esmock-loader=False
--is-library=True --is-library=True
--node-version=20.18.2 --node-version=22.15.0
--public-repo=False --public-repo=False
--script-version=4.7.0 --script-version=4.7.0

View File

@@ -1 +1 @@
20.18.2 22.15.0

View File

@@ -5,6 +5,6 @@ fetch-utils
--env-pass-through= --env-pass-through=
--esmock-loader=False --esmock-loader=False
--is-library=True --is-library=True
--node-version=20.18.2 --node-version=22.15.0
--public-repo=False --public-repo=False
--script-version=4.7.0 --script-version=4.7.0

View File

@@ -1 +1 @@
20.18.2 22.15.0

View File

@@ -5,6 +5,6 @@ logger
--env-pass-through= --env-pass-through=
--esmock-loader=False --esmock-loader=False
--is-library=True --is-library=True
--node-version=20.18.2 --node-version=22.15.0
--public-repo=False --public-repo=False
--script-version=4.7.0 --script-version=4.7.0

View File

@@ -1 +1 @@
20.18.2 22.15.0

View File

@@ -5,6 +5,6 @@ metrics
--env-pass-through= --env-pass-through=
--esmock-loader=False --esmock-loader=False
--is-library=True --is-library=True
--node-version=20.18.2 --node-version=22.15.0
--public-repo=False --public-repo=False
--script-version=4.7.0 --script-version=4.7.0

View File

@@ -1 +1 @@
20.18.2 22.15.0

View File

@@ -5,6 +5,6 @@ mongo-utils
--env-pass-through= --env-pass-through=
--esmock-loader=False --esmock-loader=False
--is-library=True --is-library=True
--node-version=20.18.2 --node-version=22.15.0
--public-repo=False --public-repo=False
--script-version=4.7.0 --script-version=4.7.0

View File

@@ -1 +1 @@
20.18.2 22.15.0

View File

@@ -5,6 +5,6 @@ o-error
--env-pass-through= --env-pass-through=
--esmock-loader=False --esmock-loader=False
--is-library=True --is-library=True
--node-version=20.18.2 --node-version=22.15.0
--public-repo=False --public-repo=False
--script-version=4.7.0 --script-version=4.7.0

View File

@@ -1 +1 @@
20.18.2 22.15.0

View File

@@ -5,6 +5,6 @@ object-persistor
--env-pass-through= --env-pass-through=
--esmock-loader=False --esmock-loader=False
--is-library=True --is-library=True
--node-version=20.18.2 --node-version=22.15.0
--public-repo=False --public-repo=False
--script-version=4.7.0 --script-version=4.7.0

View File

@@ -1 +1 @@
20.18.2 22.15.0

View File

@@ -5,6 +5,6 @@ overleaf-editor-core
--env-pass-through= --env-pass-through=
--esmock-loader=False --esmock-loader=False
--is-library=True --is-library=True
--node-version=20.18.2 --node-version=22.15.0
--public-repo=False --public-repo=False
--script-version=4.7.0 --script-version=4.7.0

View File

@@ -1 +1 @@
20.18.2 22.15.0

View File

@@ -5,6 +5,6 @@ promise-utils
--env-pass-through= --env-pass-through=
--esmock-loader=False --esmock-loader=False
--is-library=True --is-library=True
--node-version=20.18.2 --node-version=22.15.0
--public-repo=False --public-repo=False
--script-version=4.7.0 --script-version=4.7.0

View File

@@ -1 +1 @@
20.18.2 22.15.0

View File

@@ -5,6 +5,6 @@ ranges-tracker
--env-pass-through= --env-pass-through=
--esmock-loader=False --esmock-loader=False
--is-library=True --is-library=True
--node-version=20.18.2 --node-version=22.15.0
--public-repo=False --public-repo=False
--script-version=4.7.0 --script-version=4.7.0

View File

@@ -1 +1 @@
20.18.2 22.15.0

View File

@@ -5,6 +5,6 @@ redis-wrapper
--env-pass-through= --env-pass-through=
--esmock-loader=False --esmock-loader=False
--is-library=True --is-library=True
--node-version=20.18.2 --node-version=22.15.0
--public-repo=False --public-repo=False
--script-version=4.7.0 --script-version=4.7.0

View File

@@ -1 +1 @@
20.18.2 22.15.0

View File

@@ -5,6 +5,6 @@ settings
--env-pass-through= --env-pass-through=
--esmock-loader=False --esmock-loader=False
--is-library=True --is-library=True
--node-version=20.18.2 --node-version=22.15.0
--public-repo=False --public-repo=False
--script-version=4.7.0 --script-version=4.7.0

View File

@@ -1 +1 @@
20.18.2 22.15.0

View File

@@ -5,6 +5,6 @@ stream-utils
--env-pass-through= --env-pass-through=
--esmock-loader=False --esmock-loader=False
--is-library=True --is-library=True
--node-version=20.18.2 --node-version=22.15.0
--public-repo=False --public-repo=False
--script-version=4.7.0 --script-version=4.7.0

View File

@@ -1,4 +1,4 @@
FROM node:20.18.2 FROM node:22.15.0
RUN curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add - \ RUN curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add - \
&& echo \ && echo \
"deb [arch=$(dpkg --print-architecture)] https://download.docker.com/linux/debian $(. /etc/os-release && echo "$VERSION_CODENAME") stable" \ "deb [arch=$(dpkg --print-architecture)] https://download.docker.com/linux/debian $(. /etc/os-release && echo "$VERSION_CODENAME") stable" \

View File

@@ -1 +1 @@
20.18.2 22.15.0

View File

@@ -2,7 +2,7 @@
# Instead run bin/update_build_scripts from # Instead run bin/update_build_scripts from
# https://github.com/overleaf/internal/ # https://github.com/overleaf/internal/
FROM node:20.18.2 AS base FROM node:22.15.0 AS base
WORKDIR /overleaf/services/chat WORKDIR /overleaf/services/chat

View File

@@ -32,12 +32,12 @@ HERE=$(shell pwd)
MONOREPO=$(shell cd ../../ && pwd) MONOREPO=$(shell cd ../../ && pwd)
# Run the linting commands in the scope of the monorepo. # Run the linting commands in the scope of the monorepo.
# Eslint and prettier (plus some configs) are on the root. # Eslint and prettier (plus some configs) are on the root.
RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) node:20.18.2 npm run --silent RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) node:22.15.0 npm run --silent
RUN_LINTING_CI = docker run --rm --volume $(MONOREPO)/.editorconfig:/overleaf/.editorconfig --volume $(MONOREPO)/.eslintignore:/overleaf/.eslintignore --volume $(MONOREPO)/.eslintrc:/overleaf/.eslintrc --volume $(MONOREPO)/.prettierignore:/overleaf/.prettierignore --volume $(MONOREPO)/.prettierrc:/overleaf/.prettierrc --volume $(MONOREPO)/tsconfig.backend.json:/overleaf/tsconfig.backend.json ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) npm run --silent RUN_LINTING_CI = docker run --rm --volume $(MONOREPO)/.editorconfig:/overleaf/.editorconfig --volume $(MONOREPO)/.eslintignore:/overleaf/.eslintignore --volume $(MONOREPO)/.eslintrc:/overleaf/.eslintrc --volume $(MONOREPO)/.prettierignore:/overleaf/.prettierignore --volume $(MONOREPO)/.prettierrc:/overleaf/.prettierrc --volume $(MONOREPO)/tsconfig.backend.json:/overleaf/tsconfig.backend.json ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) npm run --silent
# Same but from the top of the monorepo # Same but from the top of the monorepo
RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) node:20.18.2 npm run --silent RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) node:22.15.0 npm run --silent
SHELLCHECK_OPTS = \ SHELLCHECK_OPTS = \
--shell=bash \ --shell=bash \

View File

@@ -4,6 +4,6 @@ chat
--env-add= --env-add=
--env-pass-through= --env-pass-through=
--esmock-loader=False --esmock-loader=False
--node-version=20.18.2 --node-version=22.15.0
--public-repo=False --public-repo=False
--script-version=4.7.0 --script-version=4.7.0

View File

@@ -6,7 +6,7 @@ version: "2.3"
services: services:
test_unit: test_unit:
image: node:20.18.2 image: node:22.15.0
volumes: volumes:
- .:/overleaf/services/chat - .:/overleaf/services/chat
- ../../node_modules:/overleaf/node_modules - ../../node_modules:/overleaf/node_modules
@@ -21,7 +21,7 @@ services:
user: node user: node
test_acceptance: test_acceptance:
image: node:20.18.2 image: node:22.15.0
volumes: volumes:
- .:/overleaf/services/chat - .:/overleaf/services/chat
- ../../node_modules:/overleaf/node_modules - ../../node_modules:/overleaf/node_modules

View File

@@ -1 +1 @@
20.18.2 22.15.0

View File

@@ -2,7 +2,7 @@
# Instead run bin/update_build_scripts from # Instead run bin/update_build_scripts from
# https://github.com/overleaf/internal/ # https://github.com/overleaf/internal/
FROM node:20.18.2 AS base FROM node:22.15.0 AS base
WORKDIR /overleaf/services/clsi WORKDIR /overleaf/services/clsi
COPY services/clsi/install_deps.sh /overleaf/services/clsi/ COPY services/clsi/install_deps.sh /overleaf/services/clsi/

View File

@@ -32,12 +32,12 @@ HERE=$(shell pwd)
MONOREPO=$(shell cd ../../ && pwd) MONOREPO=$(shell cd ../../ && pwd)
# Run the linting commands in the scope of the monorepo. # Run the linting commands in the scope of the monorepo.
# Eslint and prettier (plus some configs) are on the root. # Eslint and prettier (plus some configs) are on the root.
RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) node:20.18.2 npm run --silent RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) node:22.15.0 npm run --silent
RUN_LINTING_CI = docker run --rm --volume $(MONOREPO)/.editorconfig:/overleaf/.editorconfig --volume $(MONOREPO)/.eslintignore:/overleaf/.eslintignore --volume $(MONOREPO)/.eslintrc:/overleaf/.eslintrc --volume $(MONOREPO)/.prettierignore:/overleaf/.prettierignore --volume $(MONOREPO)/.prettierrc:/overleaf/.prettierrc --volume $(MONOREPO)/tsconfig.backend.json:/overleaf/tsconfig.backend.json ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) npm run --silent RUN_LINTING_CI = docker run --rm --volume $(MONOREPO)/.editorconfig:/overleaf/.editorconfig --volume $(MONOREPO)/.eslintignore:/overleaf/.eslintignore --volume $(MONOREPO)/.eslintrc:/overleaf/.eslintrc --volume $(MONOREPO)/.prettierignore:/overleaf/.prettierignore --volume $(MONOREPO)/.prettierrc:/overleaf/.prettierrc --volume $(MONOREPO)/tsconfig.backend.json:/overleaf/tsconfig.backend.json ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) npm run --silent
# Same but from the top of the monorepo # Same but from the top of the monorepo
RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) node:20.18.2 npm run --silent RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) node:22.15.0 npm run --silent
SHELLCHECK_OPTS = \ SHELLCHECK_OPTS = \
--shell=bash \ --shell=bash \

View File

@@ -5,7 +5,7 @@ clsi
--env-add=ENABLE_PDF_CACHING="true",PDF_CACHING_ENABLE_WORKER_POOL="true",ALLOWED_IMAGES=quay.io/sharelatex/texlive-full:2017.1,TEXLIVE_IMAGE=quay.io/sharelatex/texlive-full:2017.1,TEX_LIVE_IMAGE_NAME_OVERRIDE=us-east1-docker.pkg.dev/overleaf-ops/ol-docker,TEXLIVE_IMAGE_USER="tex",DOCKER_RUNNER="true",COMPILES_HOST_DIR=$PWD/compiles,OUTPUT_HOST_DIR=$PWD/output --env-add=ENABLE_PDF_CACHING="true",PDF_CACHING_ENABLE_WORKER_POOL="true",ALLOWED_IMAGES=quay.io/sharelatex/texlive-full:2017.1,TEXLIVE_IMAGE=quay.io/sharelatex/texlive-full:2017.1,TEX_LIVE_IMAGE_NAME_OVERRIDE=us-east1-docker.pkg.dev/overleaf-ops/ol-docker,TEXLIVE_IMAGE_USER="tex",DOCKER_RUNNER="true",COMPILES_HOST_DIR=$PWD/compiles,OUTPUT_HOST_DIR=$PWD/output
--env-pass-through= --env-pass-through=
--esmock-loader=False --esmock-loader=False
--node-version=20.18.2 --node-version=22.15.0
--public-repo=True --public-repo=True
--script-version=4.7.0 --script-version=4.7.0
--use-large-ci-runner=True --use-large-ci-runner=True

View File

@@ -1 +1 @@
20.18.2 22.15.0

View File

@@ -2,7 +2,7 @@
# Instead run bin/update_build_scripts from # Instead run bin/update_build_scripts from
# https://github.com/overleaf/internal/ # https://github.com/overleaf/internal/
FROM node:20.18.2 AS base FROM node:22.15.0 AS base
WORKDIR /overleaf/services/contacts WORKDIR /overleaf/services/contacts

View File

@@ -32,12 +32,12 @@ HERE=$(shell pwd)
MONOREPO=$(shell cd ../../ && pwd) MONOREPO=$(shell cd ../../ && pwd)
# Run the linting commands in the scope of the monorepo. # Run the linting commands in the scope of the monorepo.
# Eslint and prettier (plus some configs) are on the root. # Eslint and prettier (plus some configs) are on the root.
RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) node:20.18.2 npm run --silent RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) node:22.15.0 npm run --silent
RUN_LINTING_CI = docker run --rm --volume $(MONOREPO)/.editorconfig:/overleaf/.editorconfig --volume $(MONOREPO)/.eslintignore:/overleaf/.eslintignore --volume $(MONOREPO)/.eslintrc:/overleaf/.eslintrc --volume $(MONOREPO)/.prettierignore:/overleaf/.prettierignore --volume $(MONOREPO)/.prettierrc:/overleaf/.prettierrc --volume $(MONOREPO)/tsconfig.backend.json:/overleaf/tsconfig.backend.json ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) npm run --silent RUN_LINTING_CI = docker run --rm --volume $(MONOREPO)/.editorconfig:/overleaf/.editorconfig --volume $(MONOREPO)/.eslintignore:/overleaf/.eslintignore --volume $(MONOREPO)/.eslintrc:/overleaf/.eslintrc --volume $(MONOREPO)/.prettierignore:/overleaf/.prettierignore --volume $(MONOREPO)/.prettierrc:/overleaf/.prettierrc --volume $(MONOREPO)/tsconfig.backend.json:/overleaf/tsconfig.backend.json ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) npm run --silent
# Same but from the top of the monorepo # Same but from the top of the monorepo
RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) node:20.18.2 npm run --silent RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) node:22.15.0 npm run --silent
SHELLCHECK_OPTS = \ SHELLCHECK_OPTS = \
--shell=bash \ --shell=bash \

View File

@@ -4,6 +4,6 @@ contacts
--env-add= --env-add=
--env-pass-through= --env-pass-through=
--esmock-loader=True --esmock-loader=True
--node-version=20.18.2 --node-version=22.15.0
--public-repo=False --public-repo=False
--script-version=4.7.0 --script-version=4.7.0

View File

@@ -6,7 +6,7 @@ version: "2.3"
services: services:
test_unit: test_unit:
image: node:20.18.2 image: node:22.15.0
volumes: volumes:
- .:/overleaf/services/contacts - .:/overleaf/services/contacts
- ../../node_modules:/overleaf/node_modules - ../../node_modules:/overleaf/node_modules
@@ -21,7 +21,7 @@ services:
user: node user: node
test_acceptance: test_acceptance:
image: node:20.18.2 image: node:22.15.0
volumes: volumes:
- .:/overleaf/services/contacts - .:/overleaf/services/contacts
- ../../node_modules:/overleaf/node_modules - ../../node_modules:/overleaf/node_modules

View File

@@ -1 +1 @@
20.18.2 22.15.0

View File

@@ -2,7 +2,7 @@
# Instead run bin/update_build_scripts from # Instead run bin/update_build_scripts from
# https://github.com/overleaf/internal/ # https://github.com/overleaf/internal/
FROM node:20.18.2 AS base FROM node:22.15.0 AS base
WORKDIR /overleaf/services/docstore WORKDIR /overleaf/services/docstore

View File

@@ -32,12 +32,12 @@ HERE=$(shell pwd)
MONOREPO=$(shell cd ../../ && pwd) MONOREPO=$(shell cd ../../ && pwd)
# Run the linting commands in the scope of the monorepo. # Run the linting commands in the scope of the monorepo.
# Eslint and prettier (plus some configs) are on the root. # Eslint and prettier (plus some configs) are on the root.
RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) node:20.18.2 npm run --silent RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) node:22.15.0 npm run --silent
RUN_LINTING_CI = docker run --rm --volume $(MONOREPO)/.editorconfig:/overleaf/.editorconfig --volume $(MONOREPO)/.eslintignore:/overleaf/.eslintignore --volume $(MONOREPO)/.eslintrc:/overleaf/.eslintrc --volume $(MONOREPO)/.prettierignore:/overleaf/.prettierignore --volume $(MONOREPO)/.prettierrc:/overleaf/.prettierrc --volume $(MONOREPO)/tsconfig.backend.json:/overleaf/tsconfig.backend.json ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) npm run --silent RUN_LINTING_CI = docker run --rm --volume $(MONOREPO)/.editorconfig:/overleaf/.editorconfig --volume $(MONOREPO)/.eslintignore:/overleaf/.eslintignore --volume $(MONOREPO)/.eslintrc:/overleaf/.eslintrc --volume $(MONOREPO)/.prettierignore:/overleaf/.prettierignore --volume $(MONOREPO)/.prettierrc:/overleaf/.prettierrc --volume $(MONOREPO)/tsconfig.backend.json:/overleaf/tsconfig.backend.json ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) npm run --silent
# Same but from the top of the monorepo # Same but from the top of the monorepo
RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) node:20.18.2 npm run --silent RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) node:22.15.0 npm run --silent
SHELLCHECK_OPTS = \ SHELLCHECK_OPTS = \
--shell=bash \ --shell=bash \

View File

@@ -4,6 +4,6 @@ docstore
--env-add= --env-add=
--env-pass-through= --env-pass-through=
--esmock-loader=False --esmock-loader=False
--node-version=20.18.2 --node-version=22.15.0
--public-repo=True --public-repo=True
--script-version=4.7.0 --script-version=4.7.0

View File

@@ -6,7 +6,7 @@ version: "2.3"
services: services:
test_unit: test_unit:
image: node:20.18.2 image: node:22.15.0
volumes: volumes:
- .:/overleaf/services/docstore - .:/overleaf/services/docstore
- ../../node_modules:/overleaf/node_modules - ../../node_modules:/overleaf/node_modules
@@ -21,7 +21,7 @@ services:
user: node user: node
test_acceptance: test_acceptance:
image: node:20.18.2 image: node:22.15.0
volumes: volumes:
- .:/overleaf/services/docstore - .:/overleaf/services/docstore
- ../../node_modules:/overleaf/node_modules - ../../node_modules:/overleaf/node_modules

View File

@@ -1 +1 @@
20.18.2 22.15.0

View File

@@ -2,7 +2,7 @@
# Instead run bin/update_build_scripts from # Instead run bin/update_build_scripts from
# https://github.com/overleaf/internal/ # https://github.com/overleaf/internal/
FROM node:20.18.2 AS base FROM node:22.15.0 AS base
WORKDIR /overleaf/services/document-updater WORKDIR /overleaf/services/document-updater

View File

@@ -32,12 +32,12 @@ HERE=$(shell pwd)
MONOREPO=$(shell cd ../../ && pwd) MONOREPO=$(shell cd ../../ && pwd)
# Run the linting commands in the scope of the monorepo. # Run the linting commands in the scope of the monorepo.
# Eslint and prettier (plus some configs) are on the root. # Eslint and prettier (plus some configs) are on the root.
RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) node:20.18.2 npm run --silent RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) node:22.15.0 npm run --silent
RUN_LINTING_CI = docker run --rm --volume $(MONOREPO)/.editorconfig:/overleaf/.editorconfig --volume $(MONOREPO)/.eslintignore:/overleaf/.eslintignore --volume $(MONOREPO)/.eslintrc:/overleaf/.eslintrc --volume $(MONOREPO)/.prettierignore:/overleaf/.prettierignore --volume $(MONOREPO)/.prettierrc:/overleaf/.prettierrc --volume $(MONOREPO)/tsconfig.backend.json:/overleaf/tsconfig.backend.json ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) npm run --silent RUN_LINTING_CI = docker run --rm --volume $(MONOREPO)/.editorconfig:/overleaf/.editorconfig --volume $(MONOREPO)/.eslintignore:/overleaf/.eslintignore --volume $(MONOREPO)/.eslintrc:/overleaf/.eslintrc --volume $(MONOREPO)/.prettierignore:/overleaf/.prettierignore --volume $(MONOREPO)/.prettierrc:/overleaf/.prettierrc --volume $(MONOREPO)/tsconfig.backend.json:/overleaf/tsconfig.backend.json ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) npm run --silent
# Same but from the top of the monorepo # Same but from the top of the monorepo
RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) node:20.18.2 npm run --silent RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) node:22.15.0 npm run --silent
SHELLCHECK_OPTS = \ SHELLCHECK_OPTS = \
--shell=bash \ --shell=bash \

View File

@@ -4,6 +4,6 @@ document-updater
--env-add= --env-add=
--env-pass-through= --env-pass-through=
--esmock-loader=False --esmock-loader=False
--node-version=20.18.2 --node-version=22.15.0
--public-repo=True --public-repo=True
--script-version=4.7.0 --script-version=4.7.0

View File

@@ -6,7 +6,7 @@ version: "2.3"
services: services:
test_unit: test_unit:
image: node:20.18.2 image: node:22.15.0
volumes: volumes:
- .:/overleaf/services/document-updater - .:/overleaf/services/document-updater
- ../../node_modules:/overleaf/node_modules - ../../node_modules:/overleaf/node_modules
@@ -21,7 +21,7 @@ services:
user: node user: node
test_acceptance: test_acceptance:
image: node:20.18.2 image: node:22.15.0
volumes: volumes:
- .:/overleaf/services/document-updater - .:/overleaf/services/document-updater
- ../../node_modules:/overleaf/node_modules - ../../node_modules:/overleaf/node_modules

View File

@@ -1 +1 @@
20.18.2 22.15.0

View File

@@ -2,7 +2,7 @@
# Instead run bin/update_build_scripts from # Instead run bin/update_build_scripts from
# https://github.com/overleaf/internal/ # https://github.com/overleaf/internal/
FROM node:20.18.2 AS base FROM node:22.15.0 AS base
WORKDIR /overleaf/services/filestore WORKDIR /overleaf/services/filestore
COPY services/filestore/install_deps.sh /overleaf/services/filestore/ COPY services/filestore/install_deps.sh /overleaf/services/filestore/

View File

@@ -32,12 +32,12 @@ HERE=$(shell pwd)
MONOREPO=$(shell cd ../../ && pwd) MONOREPO=$(shell cd ../../ && pwd)
# Run the linting commands in the scope of the monorepo. # Run the linting commands in the scope of the monorepo.
# Eslint and prettier (plus some configs) are on the root. # Eslint and prettier (plus some configs) are on the root.
RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) node:20.18.2 npm run --silent RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) node:22.15.0 npm run --silent
RUN_LINTING_CI = docker run --rm --volume $(MONOREPO)/.editorconfig:/overleaf/.editorconfig --volume $(MONOREPO)/.eslintignore:/overleaf/.eslintignore --volume $(MONOREPO)/.eslintrc:/overleaf/.eslintrc --volume $(MONOREPO)/.prettierignore:/overleaf/.prettierignore --volume $(MONOREPO)/.prettierrc:/overleaf/.prettierrc --volume $(MONOREPO)/tsconfig.backend.json:/overleaf/tsconfig.backend.json ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) npm run --silent RUN_LINTING_CI = docker run --rm --volume $(MONOREPO)/.editorconfig:/overleaf/.editorconfig --volume $(MONOREPO)/.eslintignore:/overleaf/.eslintignore --volume $(MONOREPO)/.eslintrc:/overleaf/.eslintrc --volume $(MONOREPO)/.prettierignore:/overleaf/.prettierignore --volume $(MONOREPO)/.prettierrc:/overleaf/.prettierrc --volume $(MONOREPO)/tsconfig.backend.json:/overleaf/tsconfig.backend.json ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) npm run --silent
# Same but from the top of the monorepo # Same but from the top of the monorepo
RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) node:20.18.2 npm run --silent RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) node:22.15.0 npm run --silent
SHELLCHECK_OPTS = \ SHELLCHECK_OPTS = \
--shell=bash \ --shell=bash \

View File

@@ -5,7 +5,7 @@ filestore
--env-add=ENABLE_CONVERSIONS="true",USE_PROM_METRICS="true",AWS_S3_USER_FILES_STORAGE_CLASS=REDUCED_REDUNDANCY,AWS_S3_USER_FILES_BUCKET_NAME=fake-user-files,AWS_S3_USER_FILES_DEK_BUCKET_NAME=fake-user-files-dek,AWS_S3_TEMPLATE_FILES_BUCKET_NAME=fake-template-files,GCS_USER_FILES_BUCKET_NAME=fake-gcs-user-files,GCS_TEMPLATE_FILES_BUCKET_NAME=fake-gcs-template-files --env-add=ENABLE_CONVERSIONS="true",USE_PROM_METRICS="true",AWS_S3_USER_FILES_STORAGE_CLASS=REDUCED_REDUNDANCY,AWS_S3_USER_FILES_BUCKET_NAME=fake-user-files,AWS_S3_USER_FILES_DEK_BUCKET_NAME=fake-user-files-dek,AWS_S3_TEMPLATE_FILES_BUCKET_NAME=fake-template-files,GCS_USER_FILES_BUCKET_NAME=fake-gcs-user-files,GCS_TEMPLATE_FILES_BUCKET_NAME=fake-gcs-template-files
--env-pass-through= --env-pass-through=
--esmock-loader=False --esmock-loader=False
--node-version=20.18.2 --node-version=22.15.0
--public-repo=True --public-repo=True
--script-version=4.7.0 --script-version=4.7.0
--test-acceptance-shards=SHARD_01_,SHARD_02_,SHARD_03_ --test-acceptance-shards=SHARD_01_,SHARD_02_,SHARD_03_

View File

@@ -64,7 +64,7 @@ services:
command: tar -czf /tmp/build/build.tar.gz --exclude=build.tar.gz --exclude-vcs . command: tar -czf /tmp/build/build.tar.gz --exclude=build.tar.gz --exclude-vcs .
user: root user: root
certs: certs:
image: node:20.18.2 image: node:22.15.0
volumes: volumes:
- ./test/acceptance/certs:/certs - ./test/acceptance/certs:/certs
working_dir: /certs working_dir: /certs

View File

@@ -72,7 +72,7 @@ services:
command: npm run --silent test:acceptance command: npm run --silent test:acceptance
certs: certs:
image: node:20.18.2 image: node:22.15.0
volumes: volumes:
- ./test/acceptance/certs:/certs - ./test/acceptance/certs:/certs
working_dir: /certs working_dir: /certs

View File

@@ -1 +1 @@
20.18.2 22.15.0

View File

@@ -2,7 +2,7 @@
# Instead run bin/update_build_scripts from # Instead run bin/update_build_scripts from
# https://github.com/overleaf/internal/ # https://github.com/overleaf/internal/
FROM node:20.18.2 AS base FROM node:22.15.0 AS base
WORKDIR /overleaf/services/history-v1 WORKDIR /overleaf/services/history-v1
COPY services/history-v1/install_deps.sh /overleaf/services/history-v1/ COPY services/history-v1/install_deps.sh /overleaf/services/history-v1/

View File

@@ -32,12 +32,12 @@ HERE=$(shell pwd)
MONOREPO=$(shell cd ../../ && pwd) MONOREPO=$(shell cd ../../ && pwd)
# Run the linting commands in the scope of the monorepo. # Run the linting commands in the scope of the monorepo.
# Eslint and prettier (plus some configs) are on the root. # Eslint and prettier (plus some configs) are on the root.
RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) node:20.18.2 npm run --silent RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) node:22.15.0 npm run --silent
RUN_LINTING_CI = docker run --rm --volume $(MONOREPO)/.editorconfig:/overleaf/.editorconfig --volume $(MONOREPO)/.eslintignore:/overleaf/.eslintignore --volume $(MONOREPO)/.eslintrc:/overleaf/.eslintrc --volume $(MONOREPO)/.prettierignore:/overleaf/.prettierignore --volume $(MONOREPO)/.prettierrc:/overleaf/.prettierrc --volume $(MONOREPO)/tsconfig.backend.json:/overleaf/tsconfig.backend.json ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) npm run --silent RUN_LINTING_CI = docker run --rm --volume $(MONOREPO)/.editorconfig:/overleaf/.editorconfig --volume $(MONOREPO)/.eslintignore:/overleaf/.eslintignore --volume $(MONOREPO)/.eslintrc:/overleaf/.eslintrc --volume $(MONOREPO)/.prettierignore:/overleaf/.prettierignore --volume $(MONOREPO)/.prettierrc:/overleaf/.prettierrc --volume $(MONOREPO)/tsconfig.backend.json:/overleaf/tsconfig.backend.json ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) npm run --silent
# Same but from the top of the monorepo # Same but from the top of the monorepo
RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) node:20.18.2 npm run --silent RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) node:22.15.0 npm run --silent
SHELLCHECK_OPTS = \ SHELLCHECK_OPTS = \
--shell=bash \ --shell=bash \

View File

@@ -4,7 +4,7 @@ history-v1
--env-add= --env-add=
--env-pass-through= --env-pass-through=
--esmock-loader=False --esmock-loader=False
--node-version=20.18.2 --node-version=22.15.0
--public-repo=False --public-repo=False
--script-version=4.7.0 --script-version=4.7.0
--tsconfig-extra-includes=backup-deletion-app.mjs,backup-verifier-app.mjs,backup-worker-app.mjs,api/**/*,migrations/**/*,storage/**/* --tsconfig-extra-includes=backup-deletion-app.mjs,backup-verifier-app.mjs,backup-worker-app.mjs,api/**/*,migrations/**/*,storage/**/*

View File

@@ -98,7 +98,7 @@ services:
retries: 20 retries: 20
certs: certs:
image: node:20.18.2 image: node:22.15.0
volumes: volumes:
- ./test/acceptance/certs:/certs - ./test/acceptance/certs:/certs
working_dir: /certs working_dir: /certs

View File

@@ -107,7 +107,7 @@ services:
retries: 20 retries: 20
certs: certs:
image: node:20.18.2 image: node:22.15.0
volumes: volumes:
- ./test/acceptance/certs:/certs - ./test/acceptance/certs:/certs
working_dir: /certs working_dir: /certs

View File

@@ -1 +1 @@
20.18.2 22.15.0

View File

@@ -2,7 +2,7 @@
# Instead run bin/update_build_scripts from # Instead run bin/update_build_scripts from
# https://github.com/overleaf/internal/ # https://github.com/overleaf/internal/
FROM node:20.18.2 AS base FROM node:22.15.0 AS base
WORKDIR /overleaf/services/notifications WORKDIR /overleaf/services/notifications

View File

@@ -32,12 +32,12 @@ HERE=$(shell pwd)
MONOREPO=$(shell cd ../../ && pwd) MONOREPO=$(shell cd ../../ && pwd)
# Run the linting commands in the scope of the monorepo. # Run the linting commands in the scope of the monorepo.
# Eslint and prettier (plus some configs) are on the root. # Eslint and prettier (plus some configs) are on the root.
RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) node:20.18.2 npm run --silent RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) node:22.15.0 npm run --silent
RUN_LINTING_CI = docker run --rm --volume $(MONOREPO)/.editorconfig:/overleaf/.editorconfig --volume $(MONOREPO)/.eslintignore:/overleaf/.eslintignore --volume $(MONOREPO)/.eslintrc:/overleaf/.eslintrc --volume $(MONOREPO)/.prettierignore:/overleaf/.prettierignore --volume $(MONOREPO)/.prettierrc:/overleaf/.prettierrc --volume $(MONOREPO)/tsconfig.backend.json:/overleaf/tsconfig.backend.json ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) npm run --silent RUN_LINTING_CI = docker run --rm --volume $(MONOREPO)/.editorconfig:/overleaf/.editorconfig --volume $(MONOREPO)/.eslintignore:/overleaf/.eslintignore --volume $(MONOREPO)/.eslintrc:/overleaf/.eslintrc --volume $(MONOREPO)/.prettierignore:/overleaf/.prettierignore --volume $(MONOREPO)/.prettierrc:/overleaf/.prettierrc --volume $(MONOREPO)/tsconfig.backend.json:/overleaf/tsconfig.backend.json ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) npm run --silent
# Same but from the top of the monorepo # Same but from the top of the monorepo
RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) node:20.18.2 npm run --silent RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) node:22.15.0 npm run --silent
SHELLCHECK_OPTS = \ SHELLCHECK_OPTS = \
--shell=bash \ --shell=bash \

View File

@@ -4,6 +4,6 @@ notifications
--env-add= --env-add=
--env-pass-through= --env-pass-through=
--esmock-loader=False --esmock-loader=False
--node-version=20.18.2 --node-version=22.15.0
--public-repo=True --public-repo=True
--script-version=4.7.0 --script-version=4.7.0

View File

@@ -6,7 +6,7 @@ version: "2.3"
services: services:
test_unit: test_unit:
image: node:20.18.2 image: node:22.15.0
volumes: volumes:
- .:/overleaf/services/notifications - .:/overleaf/services/notifications
- ../../node_modules:/overleaf/node_modules - ../../node_modules:/overleaf/node_modules
@@ -21,7 +21,7 @@ services:
user: node user: node
test_acceptance: test_acceptance:
image: node:20.18.2 image: node:22.15.0
volumes: volumes:
- .:/overleaf/services/notifications - .:/overleaf/services/notifications
- ../../node_modules:/overleaf/node_modules - ../../node_modules:/overleaf/node_modules

View File

@@ -1 +1 @@
20.18.2 22.15.0

View File

@@ -2,7 +2,7 @@
# Instead run bin/update_build_scripts from # Instead run bin/update_build_scripts from
# https://github.com/overleaf/internal/ # https://github.com/overleaf/internal/
FROM node:20.18.2 AS base FROM node:22.15.0 AS base
WORKDIR /overleaf/services/project-history WORKDIR /overleaf/services/project-history

View File

@@ -32,12 +32,12 @@ HERE=$(shell pwd)
MONOREPO=$(shell cd ../../ && pwd) MONOREPO=$(shell cd ../../ && pwd)
# Run the linting commands in the scope of the monorepo. # Run the linting commands in the scope of the monorepo.
# Eslint and prettier (plus some configs) are on the root. # Eslint and prettier (plus some configs) are on the root.
RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) node:20.18.2 npm run --silent RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) node:22.15.0 npm run --silent
RUN_LINTING_CI = docker run --rm --volume $(MONOREPO)/.editorconfig:/overleaf/.editorconfig --volume $(MONOREPO)/.eslintignore:/overleaf/.eslintignore --volume $(MONOREPO)/.eslintrc:/overleaf/.eslintrc --volume $(MONOREPO)/.prettierignore:/overleaf/.prettierignore --volume $(MONOREPO)/.prettierrc:/overleaf/.prettierrc --volume $(MONOREPO)/tsconfig.backend.json:/overleaf/tsconfig.backend.json --volume $(MONOREPO)/services/document-updater/app/js/types.ts:/overleaf/services/document-updater/app/js/types.ts ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) npm run --silent RUN_LINTING_CI = docker run --rm --volume $(MONOREPO)/.editorconfig:/overleaf/.editorconfig --volume $(MONOREPO)/.eslintignore:/overleaf/.eslintignore --volume $(MONOREPO)/.eslintrc:/overleaf/.eslintrc --volume $(MONOREPO)/.prettierignore:/overleaf/.prettierignore --volume $(MONOREPO)/.prettierrc:/overleaf/.prettierrc --volume $(MONOREPO)/tsconfig.backend.json:/overleaf/tsconfig.backend.json --volume $(MONOREPO)/services/document-updater/app/js/types.ts:/overleaf/services/document-updater/app/js/types.ts ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) npm run --silent
# Same but from the top of the monorepo # Same but from the top of the monorepo
RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) node:20.18.2 npm run --silent RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) node:22.15.0 npm run --silent
SHELLCHECK_OPTS = \ SHELLCHECK_OPTS = \
--shell=bash \ --shell=bash \

View File

@@ -4,6 +4,6 @@ project-history
--env-add= --env-add=
--env-pass-through= --env-pass-through=
--esmock-loader=True --esmock-loader=True
--node-version=20.18.2 --node-version=22.15.0
--public-repo=False --public-repo=False
--script-version=4.7.0 --script-version=4.7.0

View File

@@ -6,7 +6,7 @@ version: "2.3"
services: services:
test_unit: test_unit:
image: node:20.18.2 image: node:22.15.0
volumes: volumes:
- .:/overleaf/services/project-history - .:/overleaf/services/project-history
- ../../node_modules:/overleaf/node_modules - ../../node_modules:/overleaf/node_modules
@@ -21,7 +21,7 @@ services:
user: node user: node
test_acceptance: test_acceptance:
image: node:20.18.2 image: node:22.15.0
volumes: volumes:
- .:/overleaf/services/project-history - .:/overleaf/services/project-history
- ../../node_modules:/overleaf/node_modules - ../../node_modules:/overleaf/node_modules

View File

@@ -1 +1 @@
20.18.2 22.15.0

View File

@@ -2,7 +2,7 @@
# Instead run bin/update_build_scripts from # Instead run bin/update_build_scripts from
# https://github.com/overleaf/internal/ # https://github.com/overleaf/internal/
FROM node:20.18.2 AS base FROM node:22.15.0 AS base
WORKDIR /overleaf/services/real-time WORKDIR /overleaf/services/real-time

View File

@@ -32,12 +32,12 @@ HERE=$(shell pwd)
MONOREPO=$(shell cd ../../ && pwd) MONOREPO=$(shell cd ../../ && pwd)
# Run the linting commands in the scope of the monorepo. # Run the linting commands in the scope of the monorepo.
# Eslint and prettier (plus some configs) are on the root. # Eslint and prettier (plus some configs) are on the root.
RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) node:20.18.2 npm run --silent RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) node:22.15.0 npm run --silent
RUN_LINTING_CI = docker run --rm --volume $(MONOREPO)/.editorconfig:/overleaf/.editorconfig --volume $(MONOREPO)/.eslintignore:/overleaf/.eslintignore --volume $(MONOREPO)/.eslintrc:/overleaf/.eslintrc --volume $(MONOREPO)/.prettierignore:/overleaf/.prettierignore --volume $(MONOREPO)/.prettierrc:/overleaf/.prettierrc --volume $(MONOREPO)/tsconfig.backend.json:/overleaf/tsconfig.backend.json ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) npm run --silent RUN_LINTING_CI = docker run --rm --volume $(MONOREPO)/.editorconfig:/overleaf/.editorconfig --volume $(MONOREPO)/.eslintignore:/overleaf/.eslintignore --volume $(MONOREPO)/.eslintrc:/overleaf/.eslintrc --volume $(MONOREPO)/.prettierignore:/overleaf/.prettierignore --volume $(MONOREPO)/.prettierrc:/overleaf/.prettierrc --volume $(MONOREPO)/tsconfig.backend.json:/overleaf/tsconfig.backend.json ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) npm run --silent
# Same but from the top of the monorepo # Same but from the top of the monorepo
RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) node:20.18.2 npm run --silent RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) node:22.15.0 npm run --silent
SHELLCHECK_OPTS = \ SHELLCHECK_OPTS = \
--shell=bash \ --shell=bash \

View File

@@ -4,6 +4,6 @@ real-time
--env-add= --env-add=
--env-pass-through= --env-pass-through=
--esmock-loader=False --esmock-loader=False
--node-version=20.18.2 --node-version=22.15.0
--public-repo=False --public-repo=False
--script-version=4.7.0 --script-version=4.7.0

View File

@@ -6,7 +6,7 @@ version: "2.3"
services: services:
test_unit: test_unit:
image: node:20.18.2 image: node:22.15.0
volumes: volumes:
- .:/overleaf/services/real-time - .:/overleaf/services/real-time
- ../../node_modules:/overleaf/node_modules - ../../node_modules:/overleaf/node_modules
@@ -21,7 +21,7 @@ services:
user: node user: node
test_acceptance: test_acceptance:
image: node:20.18.2 image: node:22.15.0
volumes: volumes:
- .:/overleaf/services/real-time - .:/overleaf/services/real-time
- ../../node_modules:/overleaf/node_modules - ../../node_modules:/overleaf/node_modules

View File

@@ -1 +1 @@
20.18.2 22.15.0

View File

@@ -1,6 +1,6 @@
# the base image is suitable for running web with /overleaf/services/web bind # the base image is suitable for running web with /overleaf/services/web bind
# mounted # mounted
FROM node:20.18.2 AS base FROM node:22.15.0 AS base
WORKDIR /overleaf/services/web WORKDIR /overleaf/services/web

View File

@@ -1,4 +1,4 @@
FROM node:20.18.2 FROM node:22.15.0
# Install Google Chrome # Install Google Chrome
RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -

View File

@@ -1,13 +1,13 @@
steps: steps:
- id: npm_ci - id: npm_ci
name: "node:20.18.2" name: "node:22.15.0"
entrypoint: /bin/bash entrypoint: /bin/bash
args: args:
- '-c' - '-c'
- 'bin/npm_install_subset . libraries/* services/web' - 'bin/npm_install_subset . libraries/* services/web'
- id: build-storybook - id: build-storybook
name: 'node:20.18.2' name: 'node:22.15.0'
env: env:
- 'BRANCH_NAME=$BRANCH_NAME' - 'BRANCH_NAME=$BRANCH_NAME'
- 'BUILD_ID=$BUILD_ID' - 'BUILD_ID=$BUILD_ID'
@@ -49,7 +49,7 @@ steps:
- deploy-storybook - deploy-storybook
- id: create-storybook-index - id: create-storybook-index
name: 'node:20.18.2' name: 'node:22.15.0'
dir: services/web dir: services/web
env: env:
- 'BRANCH_NAME=$BRANCH_NAME' - 'BRANCH_NAME=$BRANCH_NAME'

View File

@@ -41,6 +41,6 @@ OVERLEAF_SAML_UPDATE_USER_DETAILS_ON_LOGIN=true
OVERLEAF_SAML_CERT=MIIDXTCCAkWgAwIBAgIJAOvOeQ4xFTzsMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNVBAYTAkdCMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwHhcNMTYxMTE1MTQxMjU5WhcNMjYxMTE1MTQxMjU5WjBFMQswCQYDVQQGEwJHQjETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxCT6MBe5G9VoLU8MfztOEbUhnwLp17ak8eFUqxqeXkkqtWB0b/cmIBU3xoQoO3dIF8PBzfqehqfYVhrNt/TFgcmDfmJnPJRL1RJWMW3VmiP5odJ3LwlkKbZpkeT3wZ8HEJIR1+zbpxiBNkbd2GbdR1iumcsHzMYX1A2CBj+ZMV5VijC+K4P0e9c05VsDEUtLmfeAasJAiumQoVVgAe/BpiXjICGGewa6EPFI7mKkifIRKOGxdRESwZZjxP30bI31oDN0cgKqIgSJtJ9nfCn9jgBMBkQHu42WMuaWD4jrGd7+vYdX+oIfArs9aKgAH5kUGhGdew2R9SpBefrhbNxG8QIDAQABo1AwTjAdBgNVHQ4EFgQU+aSojSyyLChP/IpZcafvSdhj7KkwHwYDVR0jBBgwFoAU+aSojSyyLChP/IpZcafvSdhj7KkwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEABl3+OOVLBWMKs6PjA8lPuloWDNzSr3v76oUcHqAb+cfbucjXrOVsS9RJ0X9yxvCQyfM9FfY43DbspnN3izYhdvbJD8kKLNf0LA5st+ZxLfy0ACyL2iyAwICaqndqxAjQYplFAHmpUiu1DiHckyBPekokDJd+ze95urHMOsaGS5RWPoKJVE0bkaAeZCmEu0NNpXRSBiuxXSTeSAJfv6kyE/rkdhzUKyUl/cGQFrsVYfAFQVA+W6CKOh74ErSEzSHQQYndl7nD33snD/YqdU1ROxV6aJzLKCg+sdj+wRXSP2u/UHnM4jW9TGJfhO42jzL6WVuEvr9q4l7zWzUQKKKhtQ== OVERLEAF_SAML_CERT=MIIDXTCCAkWgAwIBAgIJAOvOeQ4xFTzsMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNVBAYTAkdCMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwHhcNMTYxMTE1MTQxMjU5WhcNMjYxMTE1MTQxMjU5WjBFMQswCQYDVQQGEwJHQjETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxCT6MBe5G9VoLU8MfztOEbUhnwLp17ak8eFUqxqeXkkqtWB0b/cmIBU3xoQoO3dIF8PBzfqehqfYVhrNt/TFgcmDfmJnPJRL1RJWMW3VmiP5odJ3LwlkKbZpkeT3wZ8HEJIR1+zbpxiBNkbd2GbdR1iumcsHzMYX1A2CBj+ZMV5VijC+K4P0e9c05VsDEUtLmfeAasJAiumQoVVgAe/BpiXjICGGewa6EPFI7mKkifIRKOGxdRESwZZjxP30bI31oDN0cgKqIgSJtJ9nfCn9jgBMBkQHu42WMuaWD4jrGd7+vYdX+oIfArs9aKgAH5kUGhGdew2R9SpBefrhbNxG8QIDAQABo1AwTjAdBgNVHQ4EFgQU+aSojSyyLChP/IpZcafvSdhj7KkwHwYDVR0jBBgwFoAU+aSojSyyLChP/IpZcafvSdhj7KkwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEABl3+OOVLBWMKs6PjA8lPuloWDNzSr3v76oUcHqAb+cfbucjXrOVsS9RJ0X9yxvCQyfM9FfY43DbspnN3izYhdvbJD8kKLNf0LA5st+ZxLfy0ACyL2iyAwICaqndqxAjQYplFAHmpUiu1DiHckyBPekokDJd+ze95urHMOsaGS5RWPoKJVE0bkaAeZCmEu0NNpXRSBiuxXSTeSAJfv6kyE/rkdhzUKyUl/cGQFrsVYfAFQVA+W6CKOh74ErSEzSHQQYndl7nD33snD/YqdU1ROxV6aJzLKCg+sdj+wRXSP2u/UHnM4jW9TGJfhO42jzL6WVuEvr9q4l7zWzUQKKKhtQ==
# DEVICE_HISTORY_SECRET has been generated using: # DEVICE_HISTORY_SECRET has been generated using:
# NOTE: crypto.generateKeySync was added in v15, v16 is the next LTS release. # NOTE: crypto.generateKeySync was added in v15, v16 is the next LTS release.
# $ docker run --rm node:20.18.2 --print 'require("crypto").generateKeySync("aes", { length: 256 }).export().toString("hex")' # $ docker run --rm node:22.15.0 --print 'require("crypto").generateKeySync("aes", { length: 256 }).export().toString("hex")'
DEVICE_HISTORY_SECRET=1b46e6cdf72db02845da06c9517c9cfbbfa0d87357479f4e1df3ce160bd54807 DEVICE_HISTORY_SECRET=1b46e6cdf72db02845da06c9517c9cfbbfa0d87357479f4e1df3ce160bd54807
QUEUE_PROCESSING_ENABLED=true QUEUE_PROCESSING_ENABLED=true

View File

@@ -6,7 +6,7 @@ volumes:
services: services:
test_unit: test_unit:
image: node:20.18.2 image: node:22.15.0
volumes: volumes:
- .:/overleaf/services/web - .:/overleaf/services/web
- ../../node_modules:/overleaf/node_modules - ../../node_modules:/overleaf/node_modules
@@ -26,7 +26,7 @@ services:
- mongo - mongo
test_acceptance: test_acceptance:
image: node:20.18.2 image: node:22.15.0
volumes: volumes:
- .:/overleaf/services/web - .:/overleaf/services/web
- ../../node_modules:/overleaf/node_modules - ../../node_modules:/overleaf/node_modules

View File

@@ -1,4 +1,4 @@
FROM node:20.18.2 FROM node:22.15.0
WORKDIR /app/scripts/translations WORKDIR /app/scripts/translations

View File

@@ -104,3 +104,8 @@ const fetchMock = require('fetch-mock').default
fetchMock.spyGlobal() fetchMock.spyGlobal()
fetchMock.config.fetch = global.fetch fetchMock.config.fetch = global.fetch
fetchMock.config.Response = fetch.Response fetchMock.config.Response = fetch.Response
Object.defineProperty(navigator, 'onLine', {
configurable: true,
get: () => true,
})

View File

@@ -287,7 +287,6 @@ describe('<ProjectListRoot />', function () {
fireEvent.click(unarchiveButton) fireEvent.click(unarchiveButton)
await fetchMock.callHistory.flush(true) await fetchMock.callHistory.flush(true)
expect(fetchMock.callHistory.done()).to.be.true
await screen.findByText('No projects') await screen.findByText('No projects')
}) })
@@ -302,7 +301,6 @@ describe('<ProjectListRoot />', function () {
) )
await fetchMock.callHistory.flush(true) await fetchMock.callHistory.flush(true)
expect(fetchMock.callHistory.done()).to.be.true
expect(screen.queryByText('No projects')).to.be.null expect(screen.queryByText('No projects')).to.be.null
}) })
@@ -354,7 +352,6 @@ describe('<ProjectListRoot />', function () {
fireEvent.click(untrashButton) fireEvent.click(untrashButton)
await fetchMock.callHistory.flush(true) await fetchMock.callHistory.flush(true)
expect(fetchMock.callHistory.done()).to.be.true
await screen.findByText('No projects') await screen.findByText('No projects')
}) })
@@ -367,7 +364,6 @@ describe('<ProjectListRoot />', function () {
expect(allCheckboxesChecked.length).to.equal(trashedList.length - 1) expect(allCheckboxesChecked.length).to.equal(trashedList.length - 1)
await fetchMock.callHistory.flush(true) await fetchMock.callHistory.flush(true)
expect(fetchMock.callHistory.done()).to.be.true
expect(screen.queryByText('No projects')).to.be.null expect(screen.queryByText('No projects')).to.be.null
}) })
@@ -392,7 +388,6 @@ describe('<ProjectListRoot />', function () {
expect(confirmButton.disabled).to.be.true expect(confirmButton.disabled).to.be.true
await fetchMock.callHistory.flush(true) await fetchMock.callHistory.flush(true)
expect(fetchMock.callHistory.done()).to.be.true
const calls = fetchMock.callHistory.calls().map(({ url }) => url) const calls = fetchMock.callHistory.calls().map(({ url }) => url)
@@ -457,7 +452,6 @@ describe('<ProjectListRoot />', function () {
expect(confirmButton.disabled).to.be.true expect(confirmButton.disabled).to.be.true
await fetchMock.callHistory.flush(true) await fetchMock.callHistory.flush(true)
expect(fetchMock.callHistory.done()).to.be.true
const calls = fetchMock.callHistory.calls().map(({ url }) => url) const calls = fetchMock.callHistory.calls().map(({ url }) => url)
leavableList.forEach(project => { leavableList.forEach(project => {
@@ -520,7 +514,6 @@ describe('<ProjectListRoot />', function () {
expect(confirmButton.disabled).to.be.true expect(confirmButton.disabled).to.be.true
await fetchMock.callHistory.flush(true) await fetchMock.callHistory.flush(true)
expect(fetchMock.callHistory.done()).to.be.true
const calls = fetchMock.callHistory.calls().map(({ url }) => url) const calls = fetchMock.callHistory.calls().map(({ url }) => url)
deletableList.forEach(project => { deletableList.forEach(project => {
@@ -591,7 +584,6 @@ describe('<ProjectListRoot />', function () {
expect(confirmButton.disabled).to.be.true expect(confirmButton.disabled).to.be.true
await fetchMock.callHistory.flush(true) await fetchMock.callHistory.flush(true)
expect(fetchMock.callHistory.done()).to.be.true
const calls = fetchMock.callHistory.calls().map(({ url }) => url) const calls = fetchMock.callHistory.calls().map(({ url }) => url)
deletableAndLeavableList.forEach(project => { deletableAndLeavableList.forEach(project => {
@@ -1186,7 +1178,6 @@ describe('<ProjectListRoot />', function () {
fireEvent.click(copyConfirmButton) fireEvent.click(copyConfirmButton)
await fetchMock.callHistory.flush(true) await fetchMock.callHistory.flush(true)
expect(fetchMock.callHistory.done()).to.be.true
expect(sendMBSpy).to.have.been.calledTwice expect(sendMBSpy).to.have.been.calledTwice
expect(sendMBSpy).to.have.been.calledWith('loads_v2_dash') expect(sendMBSpy).to.have.been.calledWith('loads_v2_dash')