Преглед изворни кода

Upgrades Node.js from 24.13.0 → 24.14.1 (#32498)

GitOrigin-RevId: edbe6969c4c28109e3077f48e94084fc5c910727
Anna Claire Fields пре 4 месеци
родитељ
комит
1a7de4ddd8
90 измењених фајлова са 154 додато и 208 уклоњено
  1. 1 1
      libraries/access-token-encryptor/.nvmrc
  2. 1 1
      libraries/access-token-encryptor/buildscript.txt
  3. 1 1
      libraries/fetch-utils/.nvmrc
  4. 1 1
      libraries/fetch-utils/buildscript.txt
  5. 1 1
      libraries/logger/.nvmrc
  6. 1 1
      libraries/logger/buildscript.txt
  7. 1 1
      libraries/metrics/.nvmrc
  8. 1 1
      libraries/metrics/buildscript.txt
  9. 1 1
      libraries/mongo-utils/.nvmrc
  10. 1 1
      libraries/mongo-utils/buildscript.txt
  11. 1 1
      libraries/o-error/.nvmrc
  12. 1 1
      libraries/o-error/buildscript.txt
  13. 1 1
      libraries/object-persistor/.nvmrc
  14. 1 1
      libraries/object-persistor/buildscript.txt
  15. 1 1
      libraries/overleaf-editor-core/.nvmrc
  16. 1 1
      libraries/overleaf-editor-core/buildscript.txt
  17. 1 1
      libraries/promise-utils/.nvmrc
  18. 1 1
      libraries/promise-utils/buildscript.txt
  19. 1 1
      libraries/ranges-tracker/.nvmrc
  20. 1 1
      libraries/ranges-tracker/buildscript.txt
  21. 1 1
      libraries/redis-wrapper/.nvmrc
  22. 1 1
      libraries/redis-wrapper/buildscript.txt
  23. 1 1
      libraries/settings/.nvmrc
  24. 1 1
      libraries/settings/buildscript.txt
  25. 1 1
      libraries/stream-utils/.nvmrc
  26. 1 1
      libraries/stream-utils/buildscript.txt
  27. 1 1
      libraries/validation-tools/.nvmrc
  28. 1 1
      libraries/validation-tools/buildscript.txt
  29. 37 101
      package-lock.json
  30. 1 1
      server-ce/test/Dockerfile
  31. 1 1
      services/chat/.nvmrc
  32. 1 1
      services/chat/Dockerfile
  33. 2 2
      services/chat/Makefile
  34. 1 1
      services/chat/buildscript.txt
  35. 2 2
      services/chat/docker-compose.yml
  36. 1 1
      services/clsi/.nvmrc
  37. 1 1
      services/clsi/Dockerfile
  38. 2 2
      services/clsi/Makefile
  39. 1 1
      services/clsi/buildscript.txt
  40. 1 1
      services/contacts/.nvmrc
  41. 1 1
      services/contacts/Dockerfile
  42. 2 2
      services/contacts/Makefile
  43. 1 1
      services/contacts/buildscript.txt
  44. 2 2
      services/contacts/docker-compose.yml
  45. 1 1
      services/docstore/.nvmrc
  46. 1 1
      services/docstore/Dockerfile
  47. 2 2
      services/docstore/Makefile
  48. 1 1
      services/docstore/buildscript.txt
  49. 2 2
      services/docstore/docker-compose.yml
  50. 1 1
      services/document-updater/.nvmrc
  51. 1 1
      services/document-updater/Dockerfile
  52. 2 2
      services/document-updater/Makefile
  53. 1 1
      services/document-updater/buildscript.txt
  54. 2 2
      services/document-updater/docker-compose.yml
  55. 1 1
      services/filestore/.nvmrc
  56. 1 1
      services/filestore/Dockerfile
  57. 2 2
      services/filestore/Makefile
  58. 1 1
      services/filestore/buildscript.txt
  59. 1 1
      services/filestore/docker-compose.ci.yml
  60. 1 1
      services/filestore/docker-compose.yml
  61. 1 1
      services/history-v1/.nvmrc
  62. 1 1
      services/history-v1/Dockerfile
  63. 2 2
      services/history-v1/Makefile
  64. 1 1
      services/history-v1/buildscript.txt
  65. 1 1
      services/history-v1/docker-compose.ci.yml
  66. 1 1
      services/history-v1/docker-compose.yml
  67. 1 1
      services/notifications/.nvmrc
  68. 1 1
      services/notifications/Dockerfile
  69. 2 2
      services/notifications/Makefile
  70. 1 1
      services/notifications/buildscript.txt
  71. 2 2
      services/notifications/docker-compose.yml
  72. 1 1
      services/project-history/.nvmrc
  73. 1 1
      services/project-history/Dockerfile
  74. 2 2
      services/project-history/Makefile
  75. 1 1
      services/project-history/buildscript.txt
  76. 2 2
      services/project-history/docker-compose.yml
  77. 1 1
      services/real-time/.nvmrc
  78. 1 1
      services/real-time/Dockerfile
  79. 2 2
      services/real-time/Makefile
  80. 1 1
      services/real-time/buildscript.txt
  81. 2 2
      services/real-time/docker-compose.yml
  82. 1 1
      services/web/.nvmrc
  83. 1 1
      services/web/Dockerfile
  84. 1 1
      services/web/Dockerfile.frontend
  85. 1 1
      services/web/Makefile
  86. 1 1
      services/web/buildscript.txt
  87. 1 1
      services/web/docker-compose.common.env
  88. 2 2
      services/web/docker-compose.yml
  89. 11 1
      services/web/frontend/js/shared/utils/currency.ts
  90. 1 1
      services/web/scripts/translations/Dockerfile

+ 1 - 1
libraries/access-token-encryptor/.nvmrc

@@ -1 +1 @@
-24.13.0
+24.14.1

+ 1 - 1
libraries/access-token-encryptor/buildscript.txt

@@ -4,6 +4,6 @@ access-token-encryptor
 --env-pass-through=
 --esmock-loader=False
 --is-library=True
---node-version=24.13.0
+--node-version=24.14.1
 --pipeline-owner=32
 --public-repo=False

+ 1 - 1
libraries/fetch-utils/.nvmrc

@@ -1 +1 @@
-24.13.0
+24.14.1

+ 1 - 1
libraries/fetch-utils/buildscript.txt

@@ -4,6 +4,6 @@ fetch-utils
 --env-pass-through=
 --esmock-loader=False
 --is-library=True
---node-version=24.13.0
+--node-version=24.14.1
 --pipeline-owner=32
 --public-repo=False

+ 1 - 1
libraries/logger/.nvmrc

@@ -1 +1 @@
-24.13.0
+24.14.1

+ 1 - 1
libraries/logger/buildscript.txt

@@ -4,6 +4,6 @@ logger
 --env-pass-through=
 --esmock-loader=False
 --is-library=True
---node-version=24.13.0
+--node-version=24.14.1
 --pipeline-owner=32
 --public-repo=False

+ 1 - 1
libraries/metrics/.nvmrc

@@ -1 +1 @@
-24.13.0
+24.14.1

+ 1 - 1
libraries/metrics/buildscript.txt

@@ -4,6 +4,6 @@ metrics
 --env-pass-through=
 --esmock-loader=False
 --is-library=True
---node-version=24.13.0
+--node-version=24.14.1
 --pipeline-owner=32
 --public-repo=False

+ 1 - 1
libraries/mongo-utils/.nvmrc

@@ -1 +1 @@
-24.13.0
+24.14.1

+ 1 - 1
libraries/mongo-utils/buildscript.txt

@@ -4,7 +4,7 @@ mongo-utils
 --env-pass-through=
 --esmock-loader=False
 --is-library=True
---node-version=24.13.0
+--node-version=24.14.1
 --pipeline-owner=32
 --public-repo=False
 --tsconfig-no-implicit-any=True

+ 1 - 1
libraries/o-error/.nvmrc

@@ -1 +1 @@
-24.13.0
+24.14.1

+ 1 - 1
libraries/o-error/buildscript.txt

@@ -4,6 +4,6 @@ o-error
 --env-pass-through=
 --esmock-loader=False
 --is-library=True
---node-version=24.13.0
+--node-version=24.14.1
 --pipeline-owner=32
 --public-repo=False

+ 1 - 1
libraries/object-persistor/.nvmrc

@@ -1 +1 @@
-24.13.0
+24.14.1

+ 1 - 1
libraries/object-persistor/buildscript.txt

@@ -4,7 +4,7 @@ object-persistor
 --env-pass-through=
 --esmock-loader=False
 --is-library=True
---node-version=24.13.0
+--node-version=24.14.1
 --pipeline-owner=32
 --public-repo=False
 --tsconfig-no-implicit-any=True

+ 1 - 1
libraries/overleaf-editor-core/.nvmrc

@@ -1 +1 @@
-24.13.0
+24.14.1

+ 1 - 1
libraries/overleaf-editor-core/buildscript.txt

@@ -4,6 +4,6 @@ overleaf-editor-core
 --env-pass-through=
 --esmock-loader=False
 --is-library=True
---node-version=24.13.0
+--node-version=24.14.1
 --pipeline-owner=44
 --public-repo=False

+ 1 - 1
libraries/promise-utils/.nvmrc

@@ -1 +1 @@
-24.13.0
+24.14.1

+ 1 - 1
libraries/promise-utils/buildscript.txt

@@ -4,6 +4,6 @@ promise-utils
 --env-pass-through=
 --esmock-loader=False
 --is-library=True
---node-version=24.13.0
+--node-version=24.14.1
 --pipeline-owner=32
 --public-repo=False

+ 1 - 1
libraries/ranges-tracker/.nvmrc

@@ -1 +1 @@
-24.13.0
+24.14.1

+ 1 - 1
libraries/ranges-tracker/buildscript.txt

@@ -4,6 +4,6 @@ ranges-tracker
 --env-pass-through=
 --esmock-loader=False
 --is-library=True
---node-version=24.13.0
+--node-version=24.14.1
 --pipeline-owner=44
 --public-repo=False

+ 1 - 1
libraries/redis-wrapper/.nvmrc

@@ -1 +1 @@
-24.13.0
+24.14.1

+ 1 - 1
libraries/redis-wrapper/buildscript.txt

@@ -4,6 +4,6 @@ redis-wrapper
 --env-pass-through=
 --esmock-loader=False
 --is-library=True
---node-version=24.13.0
+--node-version=24.14.1
 --pipeline-owner=32
 --public-repo=False

+ 1 - 1
libraries/settings/.nvmrc

@@ -1 +1 @@
-24.13.0
+24.14.1

+ 1 - 1
libraries/settings/buildscript.txt

@@ -4,6 +4,6 @@ settings
 --env-pass-through=
 --esmock-loader=False
 --is-library=True
---node-version=24.13.0
+--node-version=24.14.1
 --pipeline-owner=32
 --public-repo=False

+ 1 - 1
libraries/stream-utils/.nvmrc

@@ -1 +1 @@
-24.13.0
+24.14.1

+ 1 - 1
libraries/stream-utils/buildscript.txt

@@ -4,6 +4,6 @@ stream-utils
 --env-pass-through=
 --esmock-loader=False
 --is-library=True
---node-version=24.13.0
+--node-version=24.14.1
 --pipeline-owner=32
 --public-repo=False

+ 1 - 1
libraries/validation-tools/.nvmrc

@@ -1 +1 @@
-24.13.0
+24.14.1

+ 1 - 1
libraries/validation-tools/buildscript.txt

@@ -4,7 +4,7 @@ validation-tools
 --env-pass-through=
 --esmock-loader=False
 --is-library=True
---node-version=24.13.0
+--node-version=24.14.1
 --public-repo=False
 --test-acceptance-vitest=True
 --test-unit-vitest=True

Разлика између датотеке није приказан због своје велике величине
+ 37 - 101
package-lock.json


+ 1 - 1
server-ce/test/Dockerfile

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

+ 1 - 1
services/chat/.nvmrc

@@ -1 +1 @@
-24.13.0
+24.14.1

+ 1 - 1
services/chat/Dockerfile

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

+ 2 - 2
services/chat/Makefile

@@ -52,8 +52,8 @@ clean:
 
 # Run the linting commands in the scope of the monorepo.
 # Eslint and prettier (plus some configs) are on the root.
-RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) --user node node:24.13.0 npm run --silent
-RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) --user node node:24.13.0 npm run --silent
+RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) --user node node:24.14.1 npm run --silent
+RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) --user node node:24.14.1 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/chat/reports:/overleaf/services/chat/reports --volume $(MONOREPO)/node_modules/.cache:/overleaf/node_modules/.cache $(IMAGE_CI) npm run --silent
 RUN_LINTING_CI_MONOREPO = 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/chat/reports:/overleaf/services/chat/reports --volume $(MONOREPO)/node_modules/.cache:/overleaf/node_modules/.cache -w /overleaf $(IMAGE_CI) npm run --silent

+ 1 - 1
services/chat/buildscript.txt

@@ -3,6 +3,6 @@ chat
 --env-add=
 --env-pass-through=
 --esmock-loader=False
---node-version=24.13.0
+--node-version=24.14.1
 --pipeline-owner=44
 --public-repo=False

+ 2 - 2
services/chat/docker-compose.yml

@@ -4,7 +4,7 @@
 
 services:
   test_unit:
-    image: node:24.13.0
+    image: node:24.14.1
     volumes:
       - .:/overleaf/services/chat
       - ../../node_modules:/overleaf/node_modules
@@ -26,7 +26,7 @@ services:
         condition: service_started
 
   test_acceptance:
-    image: node:24.13.0
+    image: node:24.14.1
     volumes:
       - .:/overleaf/services/chat
       - ../../node_modules:/overleaf/node_modules

+ 1 - 1
services/clsi/.nvmrc

@@ -1 +1 @@
-24.13.0
+24.14.1

+ 1 - 1
services/clsi/Dockerfile

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

+ 2 - 2
services/clsi/Makefile

@@ -53,8 +53,8 @@ clean:
 
 # Run the linting commands in the scope of the monorepo.
 # Eslint and prettier (plus some configs) are on the root.
-RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) --user node node:24.13.0 npm run --silent
-RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) --user node node:24.13.0 npm run --silent
+RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) --user node node:24.14.1 npm run --silent
+RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) --user node node:24.14.1 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/clsi/reports:/overleaf/services/clsi/reports --volume $(MONOREPO)/node_modules/.cache:/overleaf/node_modules/.cache $(IMAGE_CI) npm run --silent
 RUN_LINTING_CI_MONOREPO = 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/clsi/reports:/overleaf/services/clsi/reports --volume $(MONOREPO)/node_modules/.cache:/overleaf/node_modules/.cache -w /overleaf $(IMAGE_CI) npm run --silent

+ 1 - 1
services/clsi/buildscript.txt

@@ -4,7 +4,7 @@ clsi
 --env-add=DOWNLOAD_HOST=http://clsi-nginx:8080,ALLOWED_COMPILE_GROUPS="clsi-perf simple-latex-file",ENABLE_PDF_CACHING="true",PDF_CACHING_ENABLE_WORKER_POOL="true",ALLOWED_IMAGES="quay.io/sharelatex/texlive-full:2017.1 quay.io/sharelatex/texlive-full:2025.1 quay.io/sharelatex/pandoc:3.9",TEXLIVE_IMAGE=quay.io/sharelatex/texlive-full:2025.1,TEX_LIVE_IMAGE_NAME_OVERRIDE=us-east1-docker.pkg.dev/overleaf-ops/ol-docker,TEXLIVE_IMAGE_USER="tex",SANDBOXED_COMPILES="true",SANDBOXED_COMPILES_HOST_DIR_COMPILES=$PWD/compiles,SANDBOXED_COMPILES_HOST_DIR_OUTPUT=$PWD/output,ENABLE_PANDOC_CONVERSIONS=true
 --env-pass-through=
 --esmock-loader=False
---node-version=24.13.0
+--node-version=24.14.1
 --pipeline-owner=32
 --public-repo=True
 --test-unit-vitest=True

+ 1 - 1
services/contacts/.nvmrc

@@ -1 +1 @@
-24.13.0
+24.14.1

+ 1 - 1
services/contacts/Dockerfile

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

+ 2 - 2
services/contacts/Makefile

@@ -52,8 +52,8 @@ clean:
 
 # Run the linting commands in the scope of the monorepo.
 # Eslint and prettier (plus some configs) are on the root.
-RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) --user node node:24.13.0 npm run --silent
-RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) --user node node:24.13.0 npm run --silent
+RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) --user node node:24.14.1 npm run --silent
+RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) --user node node:24.14.1 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/contacts/reports:/overleaf/services/contacts/reports --volume $(MONOREPO)/node_modules/.cache:/overleaf/node_modules/.cache $(IMAGE_CI) npm run --silent
 RUN_LINTING_CI_MONOREPO = 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/contacts/reports:/overleaf/services/contacts/reports --volume $(MONOREPO)/node_modules/.cache:/overleaf/node_modules/.cache -w /overleaf $(IMAGE_CI) npm run --silent

+ 1 - 1
services/contacts/buildscript.txt

@@ -3,6 +3,6 @@ contacts
 --env-add=
 --env-pass-through=
 --esmock-loader=True
---node-version=24.13.0
+--node-version=24.14.1
 --pipeline-owner=52
 --public-repo=False

+ 2 - 2
services/contacts/docker-compose.yml

@@ -4,7 +4,7 @@
 
 services:
   test_unit:
-    image: node:24.13.0
+    image: node:24.14.1
     volumes:
       - .:/overleaf/services/contacts
       - ../../node_modules:/overleaf/node_modules
@@ -26,7 +26,7 @@ services:
         condition: service_started
 
   test_acceptance:
-    image: node:24.13.0
+    image: node:24.14.1
     volumes:
       - .:/overleaf/services/contacts
       - ../../node_modules:/overleaf/node_modules

+ 1 - 1
services/docstore/.nvmrc

@@ -1 +1 @@
-24.13.0
+24.14.1

+ 1 - 1
services/docstore/Dockerfile

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

+ 2 - 2
services/docstore/Makefile

@@ -54,8 +54,8 @@ clean:
 
 # Run the linting commands in the scope of the monorepo.
 # Eslint and prettier (plus some configs) are on the root.
-RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) --user node node:24.13.0 npm run --silent
-RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) --user node node:24.13.0 npm run --silent
+RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) --user node node:24.14.1 npm run --silent
+RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) --user node node:24.14.1 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/docstore/reports:/overleaf/services/docstore/reports --volume $(MONOREPO)/node_modules/.cache:/overleaf/node_modules/.cache $(IMAGE_CI) npm run --silent
 RUN_LINTING_CI_MONOREPO = 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/docstore/reports:/overleaf/services/docstore/reports --volume $(MONOREPO)/node_modules/.cache:/overleaf/node_modules/.cache -w /overleaf $(IMAGE_CI) npm run --silent

+ 1 - 1
services/docstore/buildscript.txt

@@ -3,7 +3,7 @@ docstore
 --env-add=
 --env-pass-through=
 --esmock-loader=False
---node-version=24.13.0
+--node-version=24.14.1
 --pipeline-owner=32
 --public-repo=True
 --test-unit-vitest=True

+ 2 - 2
services/docstore/docker-compose.yml

@@ -4,7 +4,7 @@
 
 services:
   test_unit:
-    image: node:24.13.0
+    image: node:24.14.1
     volumes:
       - .:/overleaf/services/docstore
       - ../../node_modules:/overleaf/node_modules
@@ -27,7 +27,7 @@ services:
         condition: service_started
 
   test_acceptance:
-    image: node:24.13.0
+    image: node:24.14.1
     volumes:
       - .:/overleaf/services/docstore
       - ../../node_modules:/overleaf/node_modules

+ 1 - 1
services/document-updater/.nvmrc

@@ -1 +1 @@
-24.13.0
+24.14.1

+ 1 - 1
services/document-updater/Dockerfile

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

+ 2 - 2
services/document-updater/Makefile

@@ -55,8 +55,8 @@ clean:
 
 # Run the linting commands in the scope of the monorepo.
 # Eslint and prettier (plus some configs) are on the root.
-RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) --user node node:24.13.0 npm run --silent
-RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) --user node node:24.13.0 npm run --silent
+RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) --user node node:24.14.1 npm run --silent
+RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) --user node node:24.14.1 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/reports:/overleaf/services/document-updater/reports --volume $(MONOREPO)/node_modules/.cache:/overleaf/node_modules/.cache $(IMAGE_CI) npm run --silent
 RUN_LINTING_CI_MONOREPO = 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/reports:/overleaf/services/document-updater/reports --volume $(MONOREPO)/node_modules/.cache:/overleaf/node_modules/.cache -w /overleaf $(IMAGE_CI) npm run --silent

+ 1 - 1
services/document-updater/buildscript.txt

@@ -3,6 +3,6 @@ document-updater
 --env-add=
 --env-pass-through=
 --esmock-loader=False
---node-version=24.13.0
+--node-version=24.14.1
 --pipeline-owner=44
 --public-repo=True

+ 2 - 2
services/document-updater/docker-compose.yml

@@ -4,7 +4,7 @@
 
 services:
   test_unit:
-    image: node:24.13.0
+    image: node:24.14.1
     volumes:
       - .:/overleaf/services/document-updater
       - ../../node_modules:/overleaf/node_modules
@@ -33,7 +33,7 @@ services:
         condition: service_healthy
 
   test_acceptance:
-    image: node:24.13.0
+    image: node:24.14.1
     volumes:
       - .:/overleaf/services/document-updater
       - ../../node_modules:/overleaf/node_modules

+ 1 - 1
services/filestore/.nvmrc

@@ -1 +1 @@
-24.13.0
+24.14.1

+ 1 - 1
services/filestore/Dockerfile

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

+ 2 - 2
services/filestore/Makefile

@@ -52,8 +52,8 @@ clean:
 
 # Run the linting commands in the scope of the monorepo.
 # Eslint and prettier (plus some configs) are on the root.
-RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) --user node node:24.13.0 npm run --silent
-RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) --user node node:24.13.0 npm run --silent
+RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) --user node node:24.14.1 npm run --silent
+RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) --user node node:24.14.1 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/filestore/reports:/overleaf/services/filestore/reports --volume $(MONOREPO)/node_modules/.cache:/overleaf/node_modules/.cache $(IMAGE_CI) npm run --silent
 RUN_LINTING_CI_MONOREPO = 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/filestore/reports:/overleaf/services/filestore/reports --volume $(MONOREPO)/node_modules/.cache:/overleaf/node_modules/.cache -w /overleaf $(IMAGE_CI) npm run --silent

+ 1 - 1
services/filestore/buildscript.txt

@@ -4,7 +4,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-pass-through=
 --esmock-loader=False
---node-version=24.13.0
+--node-version=24.14.1
 --pipeline-owner=32
 --public-repo=True
 --test-acceptance-shards=SHARD_01_,SHARD_02_,SHARD_03_

+ 1 - 1
services/filestore/docker-compose.ci.yml

@@ -75,7 +75,7 @@ services:
   certs:
     build:
       dockerfile_inline: |
-        FROM node:24.13.0
+        FROM node:24.14.1
         RUN wget -O /certgen "https://github.com/minio/certgen/releases/download/v1.3.0/certgen-linux-"`dpkg --print-architecture`
         RUN chmod +x /certgen
     volumes:

+ 1 - 1
services/filestore/docker-compose.yml

@@ -78,7 +78,7 @@ services:
   certs:
     build:
       dockerfile_inline: |
-        FROM node:24.13.0
+        FROM node:24.14.1
         RUN wget -O /certgen "https://github.com/minio/certgen/releases/download/v1.3.0/certgen-linux-"`dpkg --print-architecture`
         RUN chmod +x /certgen
     volumes:

+ 1 - 1
services/history-v1/.nvmrc

@@ -1 +1 @@
-24.13.0
+24.14.1

+ 1 - 1
services/history-v1/Dockerfile

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

+ 2 - 2
services/history-v1/Makefile

@@ -57,8 +57,8 @@ clean:
 
 # Run the linting commands in the scope of the monorepo.
 # Eslint and prettier (plus some configs) are on the root.
-RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) --user node node:24.13.0 npm run --silent
-RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) --user node node:24.13.0 npm run --silent
+RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) --user node node:24.14.1 npm run --silent
+RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) --user node node:24.14.1 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/history-v1/reports:/overleaf/services/history-v1/reports --volume $(MONOREPO)/node_modules/.cache:/overleaf/node_modules/.cache $(IMAGE_CI) npm run --silent
 RUN_LINTING_CI_MONOREPO = 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/history-v1/reports:/overleaf/services/history-v1/reports --volume $(MONOREPO)/node_modules/.cache:/overleaf/node_modules/.cache -w /overleaf $(IMAGE_CI) npm run --silent

+ 1 - 1
services/history-v1/buildscript.txt

@@ -3,7 +3,7 @@ history-v1
 --env-add=
 --env-pass-through=
 --esmock-loader=False
---node-version=24.13.0
+--node-version=24.14.1
 --pipeline-owner=44
 --public-repo=False
 --tsconfig-extra-includes=backup-deletion-app.mjs,backup-verifier-app.mjs,backup-worker-app.mjs,api/**/*,migrations/**/*,storage/**/*

+ 1 - 1
services/history-v1/docker-compose.ci.yml

@@ -125,7 +125,7 @@ services:
   certs:
     build:
       dockerfile_inline: |
-        FROM node:24.13.0
+        FROM node:24.14.1
         RUN wget -O /certgen "https://github.com/minio/certgen/releases/download/v1.3.0/certgen-linux-"`dpkg --print-architecture`
         RUN chmod +x /certgen
     volumes:

+ 1 - 1
services/history-v1/docker-compose.yml

@@ -131,7 +131,7 @@ services:
   certs:
     build:
       dockerfile_inline: |
-        FROM node:24.13.0
+        FROM node:24.14.1
         RUN wget -O /certgen "https://github.com/minio/certgen/releases/download/v1.3.0/certgen-linux-"`dpkg --print-architecture`
         RUN chmod +x /certgen
     volumes:

+ 1 - 1
services/notifications/.nvmrc

@@ -1 +1 @@
-24.13.0
+24.14.1

+ 1 - 1
services/notifications/Dockerfile

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

+ 2 - 2
services/notifications/Makefile

@@ -53,8 +53,8 @@ clean:
 
 # Run the linting commands in the scope of the monorepo.
 # Eslint and prettier (plus some configs) are on the root.
-RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) --user node node:24.13.0 npm run --silent
-RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) --user node node:24.13.0 npm run --silent
+RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) --user node node:24.14.1 npm run --silent
+RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) --user node node:24.14.1 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/notifications/reports:/overleaf/services/notifications/reports --volume $(MONOREPO)/node_modules/.cache:/overleaf/node_modules/.cache $(IMAGE_CI) npm run --silent
 RUN_LINTING_CI_MONOREPO = 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/notifications/reports:/overleaf/services/notifications/reports --volume $(MONOREPO)/node_modules/.cache:/overleaf/node_modules/.cache -w /overleaf $(IMAGE_CI) npm run --silent

+ 1 - 1
services/notifications/buildscript.txt

@@ -3,7 +3,7 @@ notifications
 --env-add=
 --env-pass-through=
 --esmock-loader=False
---node-version=24.13.0
+--node-version=24.14.1
 --pipeline-owner=32
 --public-repo=True
 --test-acceptance-vitest=True

+ 2 - 2
services/notifications/docker-compose.yml

@@ -4,7 +4,7 @@
 
 services:
   test_unit:
-    image: node:24.13.0
+    image: node:24.14.1
     volumes:
       - .:/overleaf/services/notifications
       - ../../node_modules:/overleaf/node_modules
@@ -27,7 +27,7 @@ services:
         condition: service_started
 
   test_acceptance:
-    image: node:24.13.0
+    image: node:24.14.1
     volumes:
       - .:/overleaf/services/notifications
       - ../../node_modules:/overleaf/node_modules

+ 1 - 1
services/project-history/.nvmrc

@@ -1 +1 @@
-24.13.0
+24.14.1

+ 1 - 1
services/project-history/Dockerfile

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

+ 2 - 2
services/project-history/Makefile

@@ -56,8 +56,8 @@ clean:
 
 # Run the linting commands in the scope of the monorepo.
 # Eslint and prettier (plus some configs) are on the root.
-RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) --user node node:24.13.0 npm run --silent
-RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) --user node node:24.13.0 npm run --silent
+RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) --user node node:24.14.1 npm run --silent
+RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) --user node node:24.14.1 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 --volume $(MONOREPO)/services/project-history/reports:/overleaf/services/project-history/reports --volume $(MONOREPO)/node_modules/.cache:/overleaf/node_modules/.cache $(IMAGE_CI) npm run --silent
 RUN_LINTING_CI_MONOREPO = 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 --volume $(MONOREPO)/services/project-history/reports:/overleaf/services/project-history/reports --volume $(MONOREPO)/node_modules/.cache:/overleaf/node_modules/.cache -w /overleaf $(IMAGE_CI) npm run --silent

+ 1 - 1
services/project-history/buildscript.txt

@@ -3,6 +3,6 @@ project-history
 --env-add=
 --env-pass-through=
 --esmock-loader=True
---node-version=24.13.0
+--node-version=24.14.1
 --pipeline-owner=44
 --public-repo=False

+ 2 - 2
services/project-history/docker-compose.yml

@@ -4,7 +4,7 @@
 
 services:
   test_unit:
-    image: node:24.13.0
+    image: node:24.14.1
     volumes:
       - .:/overleaf/services/project-history
       - ../../node_modules:/overleaf/node_modules
@@ -33,7 +33,7 @@ services:
         condition: service_healthy
 
   test_acceptance:
-    image: node:24.13.0
+    image: node:24.14.1
     volumes:
       - .:/overleaf/services/project-history
       - ../../node_modules:/overleaf/node_modules

+ 1 - 1
services/real-time/.nvmrc

@@ -1 +1 @@
-24.13.0
+24.14.1

+ 1 - 1
services/real-time/Dockerfile

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

+ 2 - 2
services/real-time/Makefile

@@ -52,8 +52,8 @@ clean:
 
 # Run the linting commands in the scope of the monorepo.
 # Eslint and prettier (plus some configs) are on the root.
-RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) --user node node:24.13.0 npm run --silent
-RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) --user node node:24.13.0 npm run --silent
+RUN_LINTING = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(HERE) --user node node:24.14.1 npm run --silent
+RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) --user node node:24.14.1 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/real-time/reports:/overleaf/services/real-time/reports --volume $(MONOREPO)/node_modules/.cache:/overleaf/node_modules/.cache $(IMAGE_CI) npm run --silent
 RUN_LINTING_CI_MONOREPO = 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/real-time/reports:/overleaf/services/real-time/reports --volume $(MONOREPO)/node_modules/.cache:/overleaf/node_modules/.cache -w /overleaf $(IMAGE_CI) npm run --silent

+ 1 - 1
services/real-time/buildscript.txt

@@ -3,7 +3,7 @@ real-time
 --env-add=
 --env-pass-through=
 --esmock-loader=False
---node-version=24.13.0
+--node-version=24.14.1
 --pipeline-owner=32
 --public-repo=False
 --test-unit-vitest=True

+ 2 - 2
services/real-time/docker-compose.yml

@@ -4,7 +4,7 @@
 
 services:
   test_unit:
-    image: node:24.13.0
+    image: node:24.14.1
     volumes:
       - .:/overleaf/services/real-time
       - ../../node_modules:/overleaf/node_modules
@@ -29,7 +29,7 @@ services:
         condition: service_healthy
 
   test_acceptance:
-    image: node:24.13.0
+    image: node:24.14.1
     volumes:
       - .:/overleaf/services/real-time
       - ../../node_modules:/overleaf/node_modules

+ 1 - 1
services/web/.nvmrc

@@ -1 +1 @@
-24.13.0
+24.14.1

+ 1 - 1
services/web/Dockerfile

@@ -1,7 +1,7 @@
 # This file was auto-generated, do not edit it directly.
 # Instead run internal$ services/web/build_scripts
 
-FROM node:24.13.0 AS base
+FROM node:24.14.1 AS base
 
 WORKDIR /overleaf/services/web
 

+ 1 - 1
services/web/Dockerfile.frontend

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

+ 1 - 1
services/web/Makefile

@@ -454,7 +454,7 @@ ci:
 # Run the linting commands in the scope of the monorepo.
 # Eslint and prettier (plus some configs) are on the root.
 RUN_LINTING_CI_MONOREPO = 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/web/data/reports:/overleaf/services/web/data/reports --volume $(MONOREPO)/node_modules/.cache/:/overleaf/node_modules/.cache/ -w /overleaf $(IMAGE_CI) npm run --silent
-RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) --user node node:24.13.0 npm run --silent
+RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) --user node node:24.14.1 npm run --silent
 
 ORG_PATH = /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
 RUN_LINT_FORMAT ?= \

+ 1 - 1
services/web/buildscript.txt

@@ -4,5 +4,5 @@ web
 --env-add=
 --env-pass-through=
 --esmock-loader=False
---node-version=24.13.0
+--node-version=24.14.1
 --public-repo=False

+ 1 - 1
services/web/docker-compose.common.env

@@ -45,7 +45,7 @@ OVERLEAF_SAML_IS_ADMIN_FIELD_VALUE=Brookes
 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:
 # NOTE: crypto.generateKeySync was added in v15, v16 is the next LTS release.
-# $ docker run --rm node:24.13.0 --print 'require("crypto").generateKeySync("aes", { length: 256 }).export().toString("hex")'
+# $ docker run --rm node:24.14.1 --print 'require("crypto").generateKeySync("aes", { length: 256 }).export().toString("hex")'
 DEVICE_HISTORY_SECRET=1b46e6cdf72db02845da06c9517c9cfbbfa0d87357479f4e1df3ce160bd54807
 QUEUE_PROCESSING_ENABLED=true
 CURRENT_IMAGE_NAME=texlive-full:2025.1

+ 2 - 2
services/web/docker-compose.yml

@@ -3,7 +3,7 @@ volumes:
 
 services:
   test_unit:
-    image: node:24.13.0
+    image: node:24.14.1
     volumes:
       - .:/overleaf/services/web
       - ../../node_modules:/overleaf/node_modules
@@ -33,7 +33,7 @@ services:
       - redis_test
 
   test_acceptance:
-    image: node:24.13.0
+    image: node:24.14.1
     volumes:
       - .:/overleaf/services/web
       - ../../node_modules:/overleaf/node_modules

+ 11 - 1
services/web/frontend/js/shared/utils/currency.ts

@@ -2,13 +2,23 @@ import getMeta from '@/utils/meta'
 
 const DEFAULT_LOCALE = getMeta('ol-i18n')?.currentLangCode ?? 'en'
 
+const ZERO_DECIMAL_CURRENCIES = ['clp', 'jpy', 'krw', 'vnd']
+
 export function formatCurrency(
   amount: number,
   currency: string,
   locale: string = DEFAULT_LOCALE,
   stripIfInteger = false
 ): string {
-  const options: Intl.NumberFormatOptions = { style: 'currency', currency }
+  const isZeroDecimal = ZERO_DECIMAL_CURRENCIES.includes(currency.toLowerCase())
+  const fractionDigits = isZeroDecimal ? 0 : 2
+
+  const options: Intl.NumberFormatOptions = {
+    style: 'currency',
+    currency,
+    minimumFractionDigits: fractionDigits,
+    maximumFractionDigits: fractionDigits,
+  }
   if (stripIfInteger && Number.isInteger(amount)) {
     options.minimumFractionDigits = 0
   }

+ 1 - 1
services/web/scripts/translations/Dockerfile

@@ -1,4 +1,4 @@
-FROM node:24.13.0
+FROM node:24.14.1
 
 WORKDIR /app/scripts/translations
 

Неке датотеке нису приказане због велике количине промена