[monorepo] fix running make lint from root (#33559)

* [monorepo] remove spurious package-name field from buildscript.txt

* [monorepo] align variables/paths across build script variants

* [monorepo] align linting/test setup for jobs/libraries

* [monorepo] fix "make lint/lint_fix" from root

* [wiki-algolia] integrate with yarn workspace

GitOrigin-RevId: a0954f2936d03cd4a69b3f2c8098d9ee2e361993
This commit is contained in:
Jakob Ackermann
2026-06-23 08:06:37 +00:00
committed by Copybot
parent 006b30c441
commit 6b084424b5
40 changed files with 1126 additions and 23 deletions
+59
View File
@@ -0,0 +1,59 @@
# Run the test commands in the scope of the monorepo.
# Eslint and prettier (plus some configs) are on the root.
RUN_LINTING = ../../bin/run -w /overleaf/libraries/access-token-encryptor monorepo yarn run --silent
RUN_LINTING_MONOREPO = ../../bin/run monorepo yarn run --silent
WITH_CACHE_FOLDER = \
lint \
lint_ci \
lint_fix \
format \
format_ci \
format_fix \
typecheck \
typecheck_ci \
$(WITH_CACHE_FOLDER): ../../node_modules/.cache/prettier/
../../node_modules/.cache/prettier/:
mkdir -p $@
$(WITH_CACHE_FOLDER): ../../node_modules/.cache/eslint/
../../node_modules/.cache/eslint/:
mkdir -p $@
format:
$(RUN_LINTING_MONOREPO) format libraries/access-token-encryptor
format_ci:
$(RUN_LINTING_MONOREPO) format libraries/access-token-encryptor
format_fix:
$(RUN_LINTING_MONOREPO) format:fix libraries/access-token-encryptor
lint:
$(RUN_LINTING) lint
lint_ci:
-$(RUN_LINTING) lint --format json --output-file reports/eslint.json
sed -i 's_"filePath":"/overleaf_"filePath":"$(MONOREPO)_g' reports/eslint.json
lint_fix:
$(RUN_LINTING) lint:fix
typecheck:
$(RUN_LINTING) types:check
typecheck_ci:
$(RUN_LINTING) types:check
test: test_unit
test_unit:
ifneq (,$(wildcard test/unit))
$(RUN_LINTING) test:unit
endif
test: test_acceptance
test_acceptance:
ifneq (,$(wildcard test/acceptance))
$(RUN_LINTING) test:acceptance
endif
@@ -5,6 +5,5 @@ access-token-encryptor
--esmock-loader=False
--is-library=True
--node-version=24.14.1
--package-name=@overleaf/access-token-encryptor
--pipeline-owner=32
--public-repo=False
+59
View File
@@ -0,0 +1,59 @@
# Run the test commands in the scope of the monorepo.
# Eslint and prettier (plus some configs) are on the root.
RUN_LINTING = ../../bin/run -w /overleaf/libraries/fetch-utils monorepo yarn run --silent
RUN_LINTING_MONOREPO = ../../bin/run monorepo yarn run --silent
WITH_CACHE_FOLDER = \
lint \
lint_ci \
lint_fix \
format \
format_ci \
format_fix \
typecheck \
typecheck_ci \
$(WITH_CACHE_FOLDER): ../../node_modules/.cache/prettier/
../../node_modules/.cache/prettier/:
mkdir -p $@
$(WITH_CACHE_FOLDER): ../../node_modules/.cache/eslint/
../../node_modules/.cache/eslint/:
mkdir -p $@
format:
$(RUN_LINTING_MONOREPO) format libraries/fetch-utils
format_ci:
$(RUN_LINTING_MONOREPO) format libraries/fetch-utils
format_fix:
$(RUN_LINTING_MONOREPO) format:fix libraries/fetch-utils
lint:
$(RUN_LINTING) lint
lint_ci:
-$(RUN_LINTING) lint --format json --output-file reports/eslint.json
sed -i 's_"filePath":"/overleaf_"filePath":"$(MONOREPO)_g' reports/eslint.json
lint_fix:
$(RUN_LINTING) lint:fix
typecheck:
$(RUN_LINTING) types:check
typecheck_ci:
$(RUN_LINTING) types:check
test: test_unit
test_unit:
ifneq (,$(wildcard test/unit))
$(RUN_LINTING) test:unit
endif
test: test_acceptance
test_acceptance:
ifneq (,$(wildcard test/acceptance))
$(RUN_LINTING) test:acceptance
endif
-1
View File
@@ -5,6 +5,5 @@ fetch-utils
--esmock-loader=False
--is-library=True
--node-version=24.14.1
--package-name=@overleaf/fetch-utils
--pipeline-owner=32
--public-repo=False
+59
View File
@@ -0,0 +1,59 @@
# Run the test commands in the scope of the monorepo.
# Eslint and prettier (plus some configs) are on the root.
RUN_LINTING = ../../bin/run -w /overleaf/libraries/logger monorepo yarn run --silent
RUN_LINTING_MONOREPO = ../../bin/run monorepo yarn run --silent
WITH_CACHE_FOLDER = \
lint \
lint_ci \
lint_fix \
format \
format_ci \
format_fix \
typecheck \
typecheck_ci \
$(WITH_CACHE_FOLDER): ../../node_modules/.cache/prettier/
../../node_modules/.cache/prettier/:
mkdir -p $@
$(WITH_CACHE_FOLDER): ../../node_modules/.cache/eslint/
../../node_modules/.cache/eslint/:
mkdir -p $@
format:
$(RUN_LINTING_MONOREPO) format libraries/logger
format_ci:
$(RUN_LINTING_MONOREPO) format libraries/logger
format_fix:
$(RUN_LINTING_MONOREPO) format:fix libraries/logger
lint:
$(RUN_LINTING) lint
lint_ci:
-$(RUN_LINTING) lint --format json --output-file reports/eslint.json
sed -i 's_"filePath":"/overleaf_"filePath":"$(MONOREPO)_g' reports/eslint.json
lint_fix:
$(RUN_LINTING) lint:fix
typecheck:
$(RUN_LINTING) types:check
typecheck_ci:
$(RUN_LINTING) types:check
test: test_unit
test_unit:
ifneq (,$(wildcard test/unit))
$(RUN_LINTING) test:unit
endif
test: test_acceptance
test_acceptance:
ifneq (,$(wildcard test/acceptance))
$(RUN_LINTING) test:acceptance
endif
-1
View File
@@ -5,6 +5,5 @@ logger
--esmock-loader=False
--is-library=True
--node-version=24.14.1
--package-name=@overleaf/logger
--pipeline-owner=32
--public-repo=False
+59
View File
@@ -0,0 +1,59 @@
# Run the test commands in the scope of the monorepo.
# Eslint and prettier (plus some configs) are on the root.
RUN_LINTING = ../../bin/run -w /overleaf/libraries/metrics monorepo yarn run --silent
RUN_LINTING_MONOREPO = ../../bin/run monorepo yarn run --silent
WITH_CACHE_FOLDER = \
lint \
lint_ci \
lint_fix \
format \
format_ci \
format_fix \
typecheck \
typecheck_ci \
$(WITH_CACHE_FOLDER): ../../node_modules/.cache/prettier/
../../node_modules/.cache/prettier/:
mkdir -p $@
$(WITH_CACHE_FOLDER): ../../node_modules/.cache/eslint/
../../node_modules/.cache/eslint/:
mkdir -p $@
format:
$(RUN_LINTING_MONOREPO) format libraries/metrics
format_ci:
$(RUN_LINTING_MONOREPO) format libraries/metrics
format_fix:
$(RUN_LINTING_MONOREPO) format:fix libraries/metrics
lint:
$(RUN_LINTING) lint
lint_ci:
-$(RUN_LINTING) lint --format json --output-file reports/eslint.json
sed -i 's_"filePath":"/overleaf_"filePath":"$(MONOREPO)_g' reports/eslint.json
lint_fix:
$(RUN_LINTING) lint:fix
typecheck:
$(RUN_LINTING) types:check
typecheck_ci:
$(RUN_LINTING) types:check
test: test_unit
test_unit:
ifneq (,$(wildcard test/unit))
$(RUN_LINTING) test:unit
endif
test: test_acceptance
test_acceptance:
ifneq (,$(wildcard test/acceptance))
$(RUN_LINTING) test:acceptance
endif
-1
View File
@@ -5,6 +5,5 @@ metrics
--esmock-loader=False
--is-library=True
--node-version=24.14.1
--package-name=@overleaf/metrics
--pipeline-owner=32
--public-repo=False
+59
View File
@@ -0,0 +1,59 @@
# Run the test commands in the scope of the monorepo.
# Eslint and prettier (plus some configs) are on the root.
RUN_LINTING = ../../bin/run -w /overleaf/libraries/mongo-utils monorepo yarn run --silent
RUN_LINTING_MONOREPO = ../../bin/run monorepo yarn run --silent
WITH_CACHE_FOLDER = \
lint \
lint_ci \
lint_fix \
format \
format_ci \
format_fix \
typecheck \
typecheck_ci \
$(WITH_CACHE_FOLDER): ../../node_modules/.cache/prettier/
../../node_modules/.cache/prettier/:
mkdir -p $@
$(WITH_CACHE_FOLDER): ../../node_modules/.cache/eslint/
../../node_modules/.cache/eslint/:
mkdir -p $@
format:
$(RUN_LINTING_MONOREPO) format libraries/mongo-utils
format_ci:
$(RUN_LINTING_MONOREPO) format libraries/mongo-utils
format_fix:
$(RUN_LINTING_MONOREPO) format:fix libraries/mongo-utils
lint:
$(RUN_LINTING) lint
lint_ci:
-$(RUN_LINTING) lint --format json --output-file reports/eslint.json
sed -i 's_"filePath":"/overleaf_"filePath":"$(MONOREPO)_g' reports/eslint.json
lint_fix:
$(RUN_LINTING) lint:fix
typecheck:
$(RUN_LINTING) types:check
typecheck_ci:
$(RUN_LINTING) types:check
test: test_unit
test_unit:
ifneq (,$(wildcard test/unit))
$(RUN_LINTING) test:unit
endif
test: test_acceptance
test_acceptance:
ifneq (,$(wildcard test/acceptance))
$(RUN_LINTING) test:acceptance
endif
-1
View File
@@ -5,7 +5,6 @@ mongo-utils
--esmock-loader=False
--is-library=True
--node-version=24.14.1
--package-name=@overleaf/mongo-utils
--pipeline-owner=32
--public-repo=False
--tsconfig-no-implicit-any=True
+59
View File
@@ -0,0 +1,59 @@
# Run the test commands in the scope of the monorepo.
# Eslint and prettier (plus some configs) are on the root.
RUN_LINTING = ../../bin/run -w /overleaf/libraries/o-error monorepo yarn run --silent
RUN_LINTING_MONOREPO = ../../bin/run monorepo yarn run --silent
WITH_CACHE_FOLDER = \
lint \
lint_ci \
lint_fix \
format \
format_ci \
format_fix \
typecheck \
typecheck_ci \
$(WITH_CACHE_FOLDER): ../../node_modules/.cache/prettier/
../../node_modules/.cache/prettier/:
mkdir -p $@
$(WITH_CACHE_FOLDER): ../../node_modules/.cache/eslint/
../../node_modules/.cache/eslint/:
mkdir -p $@
format:
$(RUN_LINTING_MONOREPO) format libraries/o-error
format_ci:
$(RUN_LINTING_MONOREPO) format libraries/o-error
format_fix:
$(RUN_LINTING_MONOREPO) format:fix libraries/o-error
lint:
$(RUN_LINTING) lint
lint_ci:
-$(RUN_LINTING) lint --format json --output-file reports/eslint.json
sed -i 's_"filePath":"/overleaf_"filePath":"$(MONOREPO)_g' reports/eslint.json
lint_fix:
$(RUN_LINTING) lint:fix
typecheck:
$(RUN_LINTING) types:check
typecheck_ci:
$(RUN_LINTING) types:check
test: test_unit
test_unit:
ifneq (,$(wildcard test/unit))
$(RUN_LINTING) test:unit
endif
test: test_acceptance
test_acceptance:
ifneq (,$(wildcard test/acceptance))
$(RUN_LINTING) test:acceptance
endif
-1
View File
@@ -5,6 +5,5 @@ o-error
--esmock-loader=False
--is-library=True
--node-version=24.14.1
--package-name=@overleaf/o-error
--pipeline-owner=32
--public-repo=False
+59
View File
@@ -0,0 +1,59 @@
# Run the test commands in the scope of the monorepo.
# Eslint and prettier (plus some configs) are on the root.
RUN_LINTING = ../../bin/run -w /overleaf/libraries/object-persistor monorepo yarn run --silent
RUN_LINTING_MONOREPO = ../../bin/run monorepo yarn run --silent
WITH_CACHE_FOLDER = \
lint \
lint_ci \
lint_fix \
format \
format_ci \
format_fix \
typecheck \
typecheck_ci \
$(WITH_CACHE_FOLDER): ../../node_modules/.cache/prettier/
../../node_modules/.cache/prettier/:
mkdir -p $@
$(WITH_CACHE_FOLDER): ../../node_modules/.cache/eslint/
../../node_modules/.cache/eslint/:
mkdir -p $@
format:
$(RUN_LINTING_MONOREPO) format libraries/object-persistor
format_ci:
$(RUN_LINTING_MONOREPO) format libraries/object-persistor
format_fix:
$(RUN_LINTING_MONOREPO) format:fix libraries/object-persistor
lint:
$(RUN_LINTING) lint
lint_ci:
-$(RUN_LINTING) lint --format json --output-file reports/eslint.json
sed -i 's_"filePath":"/overleaf_"filePath":"$(MONOREPO)_g' reports/eslint.json
lint_fix:
$(RUN_LINTING) lint:fix
typecheck:
$(RUN_LINTING) types:check
typecheck_ci:
$(RUN_LINTING) types:check
test: test_unit
test_unit:
ifneq (,$(wildcard test/unit))
$(RUN_LINTING) test:unit
endif
test: test_acceptance
test_acceptance:
ifneq (,$(wildcard test/acceptance))
$(RUN_LINTING) test:acceptance
endif
@@ -5,7 +5,6 @@ object-persistor
--esmock-loader=False
--is-library=True
--node-version=24.14.1
--package-name=@overleaf/object-persistor
--pipeline-owner=32
--public-repo=False
--tsconfig-no-implicit-any=True
+59
View File
@@ -0,0 +1,59 @@
# Run the test commands in the scope of the monorepo.
# Eslint and prettier (plus some configs) are on the root.
RUN_LINTING = ../../bin/run -w /overleaf/libraries/overleaf-editor-core monorepo yarn run --silent
RUN_LINTING_MONOREPO = ../../bin/run monorepo yarn run --silent
WITH_CACHE_FOLDER = \
lint \
lint_ci \
lint_fix \
format \
format_ci \
format_fix \
typecheck \
typecheck_ci \
$(WITH_CACHE_FOLDER): ../../node_modules/.cache/prettier/
../../node_modules/.cache/prettier/:
mkdir -p $@
$(WITH_CACHE_FOLDER): ../../node_modules/.cache/eslint/
../../node_modules/.cache/eslint/:
mkdir -p $@
format:
$(RUN_LINTING_MONOREPO) format libraries/overleaf-editor-core
format_ci:
$(RUN_LINTING_MONOREPO) format libraries/overleaf-editor-core
format_fix:
$(RUN_LINTING_MONOREPO) format:fix libraries/overleaf-editor-core
lint:
$(RUN_LINTING) lint
lint_ci:
-$(RUN_LINTING) lint --format json --output-file reports/eslint.json
sed -i 's_"filePath":"/overleaf_"filePath":"$(MONOREPO)_g' reports/eslint.json
lint_fix:
$(RUN_LINTING) lint:fix
typecheck:
$(RUN_LINTING) types:check
typecheck_ci:
$(RUN_LINTING) types:check
test: test_unit
test_unit:
ifneq (,$(wildcard test/unit))
$(RUN_LINTING) test:unit
endif
test: test_acceptance
test_acceptance:
ifneq (,$(wildcard test/acceptance))
$(RUN_LINTING) test:acceptance
endif
@@ -5,6 +5,5 @@ overleaf-editor-core
--esmock-loader=False
--is-library=True
--node-version=24.14.1
--package-name=overleaf-editor-core
--pipeline-owner=44
--public-repo=False
+59
View File
@@ -0,0 +1,59 @@
# Run the test commands in the scope of the monorepo.
# Eslint and prettier (plus some configs) are on the root.
RUN_LINTING = ../../bin/run -w /overleaf/libraries/promise-utils monorepo yarn run --silent
RUN_LINTING_MONOREPO = ../../bin/run monorepo yarn run --silent
WITH_CACHE_FOLDER = \
lint \
lint_ci \
lint_fix \
format \
format_ci \
format_fix \
typecheck \
typecheck_ci \
$(WITH_CACHE_FOLDER): ../../node_modules/.cache/prettier/
../../node_modules/.cache/prettier/:
mkdir -p $@
$(WITH_CACHE_FOLDER): ../../node_modules/.cache/eslint/
../../node_modules/.cache/eslint/:
mkdir -p $@
format:
$(RUN_LINTING_MONOREPO) format libraries/promise-utils
format_ci:
$(RUN_LINTING_MONOREPO) format libraries/promise-utils
format_fix:
$(RUN_LINTING_MONOREPO) format:fix libraries/promise-utils
lint:
$(RUN_LINTING) lint
lint_ci:
-$(RUN_LINTING) lint --format json --output-file reports/eslint.json
sed -i 's_"filePath":"/overleaf_"filePath":"$(MONOREPO)_g' reports/eslint.json
lint_fix:
$(RUN_LINTING) lint:fix
typecheck:
$(RUN_LINTING) types:check
typecheck_ci:
$(RUN_LINTING) types:check
test: test_unit
test_unit:
ifneq (,$(wildcard test/unit))
$(RUN_LINTING) test:unit
endif
test: test_acceptance
test_acceptance:
ifneq (,$(wildcard test/acceptance))
$(RUN_LINTING) test:acceptance
endif
-1
View File
@@ -5,6 +5,5 @@ promise-utils
--esmock-loader=False
--is-library=True
--node-version=24.14.1
--package-name=@overleaf/promise-utils
--pipeline-owner=32
--public-repo=False
+59
View File
@@ -0,0 +1,59 @@
# Run the test commands in the scope of the monorepo.
# Eslint and prettier (plus some configs) are on the root.
RUN_LINTING = ../../bin/run -w /overleaf/libraries/ranges-tracker monorepo yarn run --silent
RUN_LINTING_MONOREPO = ../../bin/run monorepo yarn run --silent
WITH_CACHE_FOLDER = \
lint \
lint_ci \
lint_fix \
format \
format_ci \
format_fix \
typecheck \
typecheck_ci \
$(WITH_CACHE_FOLDER): ../../node_modules/.cache/prettier/
../../node_modules/.cache/prettier/:
mkdir -p $@
$(WITH_CACHE_FOLDER): ../../node_modules/.cache/eslint/
../../node_modules/.cache/eslint/:
mkdir -p $@
format:
$(RUN_LINTING_MONOREPO) format libraries/ranges-tracker
format_ci:
$(RUN_LINTING_MONOREPO) format libraries/ranges-tracker
format_fix:
$(RUN_LINTING_MONOREPO) format:fix libraries/ranges-tracker
lint:
$(RUN_LINTING) lint
lint_ci:
-$(RUN_LINTING) lint --format json --output-file reports/eslint.json
sed -i 's_"filePath":"/overleaf_"filePath":"$(MONOREPO)_g' reports/eslint.json
lint_fix:
$(RUN_LINTING) lint:fix
typecheck:
$(RUN_LINTING) types:check
typecheck_ci:
$(RUN_LINTING) types:check
test: test_unit
test_unit:
ifneq (,$(wildcard test/unit))
$(RUN_LINTING) test:unit
endif
test: test_acceptance
test_acceptance:
ifneq (,$(wildcard test/acceptance))
$(RUN_LINTING) test:acceptance
endif
-1
View File
@@ -5,6 +5,5 @@ ranges-tracker
--esmock-loader=False
--is-library=True
--node-version=24.14.1
--package-name=@overleaf/ranges-tracker
--pipeline-owner=44
--public-repo=False
+59
View File
@@ -0,0 +1,59 @@
# Run the test commands in the scope of the monorepo.
# Eslint and prettier (plus some configs) are on the root.
RUN_LINTING = ../../bin/run -w /overleaf/libraries/redis-wrapper monorepo yarn run --silent
RUN_LINTING_MONOREPO = ../../bin/run monorepo yarn run --silent
WITH_CACHE_FOLDER = \
lint \
lint_ci \
lint_fix \
format \
format_ci \
format_fix \
typecheck \
typecheck_ci \
$(WITH_CACHE_FOLDER): ../../node_modules/.cache/prettier/
../../node_modules/.cache/prettier/:
mkdir -p $@
$(WITH_CACHE_FOLDER): ../../node_modules/.cache/eslint/
../../node_modules/.cache/eslint/:
mkdir -p $@
format:
$(RUN_LINTING_MONOREPO) format libraries/redis-wrapper
format_ci:
$(RUN_LINTING_MONOREPO) format libraries/redis-wrapper
format_fix:
$(RUN_LINTING_MONOREPO) format:fix libraries/redis-wrapper
lint:
$(RUN_LINTING) lint
lint_ci:
-$(RUN_LINTING) lint --format json --output-file reports/eslint.json
sed -i 's_"filePath":"/overleaf_"filePath":"$(MONOREPO)_g' reports/eslint.json
lint_fix:
$(RUN_LINTING) lint:fix
typecheck:
$(RUN_LINTING) types:check
typecheck_ci:
$(RUN_LINTING) types:check
test: test_unit
test_unit:
ifneq (,$(wildcard test/unit))
$(RUN_LINTING) test:unit
endif
test: test_acceptance
test_acceptance:
ifneq (,$(wildcard test/acceptance))
$(RUN_LINTING) test:acceptance
endif
-1
View File
@@ -5,6 +5,5 @@ redis-wrapper
--esmock-loader=False
--is-library=True
--node-version=24.14.1
--package-name=@overleaf/redis-wrapper
--pipeline-owner=32
--public-repo=False
+59
View File
@@ -0,0 +1,59 @@
# Run the test commands in the scope of the monorepo.
# Eslint and prettier (plus some configs) are on the root.
RUN_LINTING = ../../bin/run -w /overleaf/libraries/settings monorepo yarn run --silent
RUN_LINTING_MONOREPO = ../../bin/run monorepo yarn run --silent
WITH_CACHE_FOLDER = \
lint \
lint_ci \
lint_fix \
format \
format_ci \
format_fix \
typecheck \
typecheck_ci \
$(WITH_CACHE_FOLDER): ../../node_modules/.cache/prettier/
../../node_modules/.cache/prettier/:
mkdir -p $@
$(WITH_CACHE_FOLDER): ../../node_modules/.cache/eslint/
../../node_modules/.cache/eslint/:
mkdir -p $@
format:
$(RUN_LINTING_MONOREPO) format libraries/settings
format_ci:
$(RUN_LINTING_MONOREPO) format libraries/settings
format_fix:
$(RUN_LINTING_MONOREPO) format:fix libraries/settings
lint:
$(RUN_LINTING) lint
lint_ci:
-$(RUN_LINTING) lint --format json --output-file reports/eslint.json
sed -i 's_"filePath":"/overleaf_"filePath":"$(MONOREPO)_g' reports/eslint.json
lint_fix:
$(RUN_LINTING) lint:fix
typecheck:
$(RUN_LINTING) types:check
typecheck_ci:
$(RUN_LINTING) types:check
test: test_unit
test_unit:
ifneq (,$(wildcard test/unit))
$(RUN_LINTING) test:unit
endif
test: test_acceptance
test_acceptance:
ifneq (,$(wildcard test/acceptance))
$(RUN_LINTING) test:acceptance
endif
-1
View File
@@ -5,6 +5,5 @@ settings
--esmock-loader=False
--is-library=True
--node-version=24.14.1
--package-name=@overleaf/settings
--pipeline-owner=32
--public-repo=False
+59
View File
@@ -0,0 +1,59 @@
# Run the test commands in the scope of the monorepo.
# Eslint and prettier (plus some configs) are on the root.
RUN_LINTING = ../../bin/run -w /overleaf/libraries/stream-utils monorepo yarn run --silent
RUN_LINTING_MONOREPO = ../../bin/run monorepo yarn run --silent
WITH_CACHE_FOLDER = \
lint \
lint_ci \
lint_fix \
format \
format_ci \
format_fix \
typecheck \
typecheck_ci \
$(WITH_CACHE_FOLDER): ../../node_modules/.cache/prettier/
../../node_modules/.cache/prettier/:
mkdir -p $@
$(WITH_CACHE_FOLDER): ../../node_modules/.cache/eslint/
../../node_modules/.cache/eslint/:
mkdir -p $@
format:
$(RUN_LINTING_MONOREPO) format libraries/stream-utils
format_ci:
$(RUN_LINTING_MONOREPO) format libraries/stream-utils
format_fix:
$(RUN_LINTING_MONOREPO) format:fix libraries/stream-utils
lint:
$(RUN_LINTING) lint
lint_ci:
-$(RUN_LINTING) lint --format json --output-file reports/eslint.json
sed -i 's_"filePath":"/overleaf_"filePath":"$(MONOREPO)_g' reports/eslint.json
lint_fix:
$(RUN_LINTING) lint:fix
typecheck:
$(RUN_LINTING) types:check
typecheck_ci:
$(RUN_LINTING) types:check
test: test_unit
test_unit:
ifneq (,$(wildcard test/unit))
$(RUN_LINTING) test:unit
endif
test: test_acceptance
test_acceptance:
ifneq (,$(wildcard test/acceptance))
$(RUN_LINTING) test:acceptance
endif
-1
View File
@@ -5,6 +5,5 @@ stream-utils
--esmock-loader=False
--is-library=True
--node-version=24.14.1
--package-name=@overleaf/stream-utils
--pipeline-owner=32
--public-repo=False
+59
View File
@@ -0,0 +1,59 @@
# Run the test commands in the scope of the monorepo.
# Eslint and prettier (plus some configs) are on the root.
RUN_LINTING = ../../bin/run -w /overleaf/libraries/validation-tools monorepo yarn run --silent
RUN_LINTING_MONOREPO = ../../bin/run monorepo yarn run --silent
WITH_CACHE_FOLDER = \
lint \
lint_ci \
lint_fix \
format \
format_ci \
format_fix \
typecheck \
typecheck_ci \
$(WITH_CACHE_FOLDER): ../../node_modules/.cache/prettier/
../../node_modules/.cache/prettier/:
mkdir -p $@
$(WITH_CACHE_FOLDER): ../../node_modules/.cache/eslint/
../../node_modules/.cache/eslint/:
mkdir -p $@
format:
$(RUN_LINTING_MONOREPO) format libraries/validation-tools
format_ci:
$(RUN_LINTING_MONOREPO) format libraries/validation-tools
format_fix:
$(RUN_LINTING_MONOREPO) format:fix libraries/validation-tools
lint:
$(RUN_LINTING) lint
lint_ci:
-$(RUN_LINTING) lint --format json --output-file reports/eslint.json
sed -i 's_"filePath":"/overleaf_"filePath":"$(MONOREPO)_g' reports/eslint.json
lint_fix:
$(RUN_LINTING) lint:fix
typecheck:
$(RUN_LINTING) types:check
typecheck_ci:
$(RUN_LINTING) types:check
test: test_unit
test_unit:
ifneq (,$(wildcard test/unit))
$(RUN_LINTING) test:unit
endif
test: test_acceptance
test_acceptance:
ifneq (,$(wildcard test/acceptance))
$(RUN_LINTING) test:acceptance
endif
@@ -5,7 +5,6 @@ validation-tools
--esmock-loader=False
--is-library=True
--node-version=24.14.1
--package-name=@overleaf/validation-tools
--public-repo=False
--test-acceptance-vitest=True
--test-unit-vitest=True
+1
View File
@@ -196,6 +196,7 @@
},
"workspaces": [
"jobs/mirror-documentation",
"jobs/wiki-algolia",
"libraries/*",
"server-ce/test",
"services/analytics",
-1
View File
@@ -5,6 +5,5 @@ chat
--env-pass-through=
--esmock-loader=False
--node-version=24.14.1
--package-name=@overleaf/chat
--pipeline-owner=44
--public-repo=False
-1
View File
@@ -5,7 +5,6 @@ clsi
--env-pass-through=
--esmock-loader=False
--node-version=24.14.1
--package-name=@overleaf/clsi
--pipeline-owner=32
--public-repo=True
--test-unit-vitest=True
-1
View File
@@ -5,7 +5,6 @@ docstore
--env-pass-through=
--esmock-loader=False
--node-version=24.14.1
--package-name=@overleaf/docstore
--pipeline-owner=32
--public-repo=True
--test-unit-vitest=True
@@ -5,6 +5,5 @@ document-updater
--env-pass-through=
--esmock-loader=False
--node-version=24.14.1
--package-name=@overleaf/document-updater
--pipeline-owner=44
--public-repo=True
-1
View File
@@ -6,7 +6,6 @@ filestore
--env-pass-through=
--esmock-loader=False
--node-version=24.14.1
--package-name=@overleaf/filestore
--pipeline-owner=32
--public-repo=True
--test-acceptance-shards=SHARD_01_,SHARD_02_,SHARD_03_
-1
View File
@@ -5,7 +5,6 @@ history-v1
--env-pass-through=
--esmock-loader=False
--node-version=24.14.1
--package-name=overleaf-editor
--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
View File
@@ -5,7 +5,6 @@ notifications
--env-pass-through=
--esmock-loader=False
--node-version=24.14.1
--package-name=@overleaf/notifications
--pipeline-owner=32
--public-repo=True
--test-acceptance-vitest=True
-1
View File
@@ -5,6 +5,5 @@ project-history
--env-pass-through=
--esmock-loader=True
--node-version=24.14.1
--package-name=@overleaf/project-history
--pipeline-owner=44
--public-repo=False
-1
View File
@@ -4,7 +4,6 @@ real-time
--env-pass-through=
--esmock-loader=False
--node-version=24.14.1
--package-name=@overleaf/real-time
--pipeline-owner=32
--public-repo=False
--test-unit-vitest=True
+5
View File
@@ -550,6 +550,10 @@ else
$(RUN_LINTING) lint
endif
lint_fix: lint_eslint_fix
lint_eslint_fix:
$(RUN_LINTING) lint:fix
lint: lint_stylelint
lint_stylelint:
ifeq ($(CI),true)
@@ -559,6 +563,7 @@ else
$(RUN_LINTING) lint:styles
endif
lint_fix: lint_stylelint_fix
lint_stylelint_fix:
$(RUN_LINTING) lint:styles:fix
+294
View File
@@ -158,6 +158,138 @@ __metadata:
languageName: node
linkType: hard
"@algolia/cache-browser-local-storage@npm:4.19.1":
version: 4.19.1
resolution: "@algolia/cache-browser-local-storage@npm:4.19.1"
dependencies:
"@algolia/cache-common": "npm:4.19.1"
checksum: 10c0/55b8553351186efba46742eafebd4ef3bc26093e45b8afda1741550e63600b5ad95835ebd9a875b571e3f481de0df43925165c7e403f581c1e7c2f2d2525c3b2
languageName: node
linkType: hard
"@algolia/cache-common@npm:4.19.1":
version: 4.19.1
resolution: "@algolia/cache-common@npm:4.19.1"
checksum: 10c0/33de0609f8c2d499dc559ed75e5101e03de2dc084f72c722d173c7ef64af3ca5e8886f79163676047764101510f2c543286545711b0b2e5ccff2a52dfa962ae7
languageName: node
linkType: hard
"@algolia/cache-in-memory@npm:4.19.1":
version: 4.19.1
resolution: "@algolia/cache-in-memory@npm:4.19.1"
dependencies:
"@algolia/cache-common": "npm:4.19.1"
checksum: 10c0/fd8deed75c0cf2d8b983d5957eaf809233cd9caaa661d7b6b80a50ce6cd09a7b339c2f7072916c7afb88b557638f6e4d3194bc8424e38126752602a04bf11ec5
languageName: node
linkType: hard
"@algolia/client-account@npm:4.19.1":
version: 4.19.1
resolution: "@algolia/client-account@npm:4.19.1"
dependencies:
"@algolia/client-common": "npm:4.19.1"
"@algolia/client-search": "npm:4.19.1"
"@algolia/transporter": "npm:4.19.1"
checksum: 10c0/ca809f59ca3118244ce86480cd5060be206c07ad8564f8e5f557a38f165a0f49211058bd7ad31839835180bbbb5cc4a9da0afe8df91569e701e9a9c9ba59e7b4
languageName: node
linkType: hard
"@algolia/client-analytics@npm:4.19.1":
version: 4.19.1
resolution: "@algolia/client-analytics@npm:4.19.1"
dependencies:
"@algolia/client-common": "npm:4.19.1"
"@algolia/client-search": "npm:4.19.1"
"@algolia/requester-common": "npm:4.19.1"
"@algolia/transporter": "npm:4.19.1"
checksum: 10c0/a618d252e06cfa6b16f9d3ac887c07d81c4eb84060e51501300fbff0c81c37325d0b847ec99959239b24575c0ceb8409f16fad69b703015271a9f1c7796c88ba
languageName: node
linkType: hard
"@algolia/client-common@npm:4.19.1":
version: 4.19.1
resolution: "@algolia/client-common@npm:4.19.1"
dependencies:
"@algolia/requester-common": "npm:4.19.1"
"@algolia/transporter": "npm:4.19.1"
checksum: 10c0/17a330c70a32c08b4fc778c309a53e7c1e4a5273555f764fe1952e5a6db334eb5a7d777cd35b00ab510a3e1e6cf239f93b1911d23aa498ef9672d473ee6ab360
languageName: node
linkType: hard
"@algolia/client-personalization@npm:4.19.1":
version: 4.19.1
resolution: "@algolia/client-personalization@npm:4.19.1"
dependencies:
"@algolia/client-common": "npm:4.19.1"
"@algolia/requester-common": "npm:4.19.1"
"@algolia/transporter": "npm:4.19.1"
checksum: 10c0/3691a264568f3ca130c996e34ce1e3006117a940a98bbe3340c4cced8786c1ae4209bf0cd5c178a21f0c3c912d3876c6977b4b76ec44d452666ad5bb90facf6b
languageName: node
linkType: hard
"@algolia/client-search@npm:4.19.1":
version: 4.19.1
resolution: "@algolia/client-search@npm:4.19.1"
dependencies:
"@algolia/client-common": "npm:4.19.1"
"@algolia/requester-common": "npm:4.19.1"
"@algolia/transporter": "npm:4.19.1"
checksum: 10c0/d062ed6ce1359ee513e076afe928241cc932f7ea6a7dc317361aa502fcd2c08d253d9dd25c28ed03afb86c69e37ef1a7b9b4d5926e87278ac2b9ed6e4ee350dd
languageName: node
linkType: hard
"@algolia/logger-common@npm:4.19.1":
version: 4.19.1
resolution: "@algolia/logger-common@npm:4.19.1"
checksum: 10c0/26b5cfb7116971f73be792be475e743a6ac69f58726fd29376382a7b0d1b4aefeafbcff505a1f780b176e003b955e9a2ee455807eecaed2626418ba5dbc156f1
languageName: node
linkType: hard
"@algolia/logger-console@npm:4.19.1":
version: 4.19.1
resolution: "@algolia/logger-console@npm:4.19.1"
dependencies:
"@algolia/logger-common": "npm:4.19.1"
checksum: 10c0/2992eca07ee1d2c527dc1e60eb51bcc90a38769c76ce484c3a294db60b1382ae2b3c9ee7618b04d52b029ca7169ffc69f7aaa4e07a7ce0616e32878cd0c0cd19
languageName: node
linkType: hard
"@algolia/requester-browser-xhr@npm:4.19.1":
version: 4.19.1
resolution: "@algolia/requester-browser-xhr@npm:4.19.1"
dependencies:
"@algolia/requester-common": "npm:4.19.1"
checksum: 10c0/98602ad54dc2fdf2c5dce00886cbef2c0b629d9beff147f651821301c63bd49bb27ce9cd4cd2c810a503b7569f245ac910daa2b954a3489d936aa799ff8e5163
languageName: node
linkType: hard
"@algolia/requester-common@npm:4.19.1":
version: 4.19.1
resolution: "@algolia/requester-common@npm:4.19.1"
checksum: 10c0/d61a765dd23a2c0abc79c786c45bcd26f03f18fd2be1ea5a119105981e1bd15a1f4fe3234d320f421b5b73c8459e1e3f1e5c2afd8dd79bddfdec1282a9a1c5d9
languageName: node
linkType: hard
"@algolia/requester-node-http@npm:4.19.1":
version: 4.19.1
resolution: "@algolia/requester-node-http@npm:4.19.1"
dependencies:
"@algolia/requester-common": "npm:4.19.1"
checksum: 10c0/3856f1e7afba99cd218fbcaccd919259f91cbb09c32a294b2f63ba6623e75fdafd4d99e40ea057ec0d2c5a46c92edbf4e07c301d982669ed0729edc7d0f9009a
languageName: node
linkType: hard
"@algolia/transporter@npm:4.19.1":
version: 4.19.1
resolution: "@algolia/transporter@npm:4.19.1"
dependencies:
"@algolia/cache-common": "npm:4.19.1"
"@algolia/logger-common": "npm:4.19.1"
"@algolia/requester-common": "npm:4.19.1"
checksum: 10c0/0d0badfd996b6b42a162e67f13a2e3a1396b7f88fe2136e0e32a2d8adb123a06343537b058903b88f27b0702ce35cd172c3009bc159db79406ead35ad8f25010
languageName: node
linkType: hard
"@alloc/quick-lru@npm:^5.2.0":
version: 5.2.0
resolution: "@alloc/quick-lru@npm:5.2.0"
@@ -12322,6 +12454,15 @@ __metadata:
languageName: node
linkType: hard
"@vitest/pretty-format@npm:4.1.8":
version: 4.1.8
resolution: "@vitest/pretty-format@npm:4.1.8"
dependencies:
tinyrainbow: "npm:^3.1.0"
checksum: 10c0/553c456692a4b9ae13cd116c234c74b4495e0f1a0d5c51ffc3fab8ea085e3550769967e29db79bdac0cf127b1bf88b7f70bfba3dcc72be6bddf834433e30cc91
languageName: node
linkType: hard
"@vitest/runner@npm:4.1.5":
version: 4.1.5
resolution: "@vitest/runner@npm:4.1.5"
@@ -12332,6 +12473,16 @@ __metadata:
languageName: node
linkType: hard
"@vitest/runner@npm:4.1.8":
version: 4.1.8
resolution: "@vitest/runner@npm:4.1.8"
dependencies:
"@vitest/utils": "npm:4.1.8"
pathe: "npm:^2.0.3"
checksum: 10c0/706808a4b7b95ea9a9268fc152dd39e15a9a754f37c7990aea167486a9094caa913dae454771ae02c18dccfabd667f8cc38eed33a1307a79d32a89878b5bcce1
languageName: node
linkType: hard
"@vitest/snapshot@npm:4.1.5":
version: 4.1.5
resolution: "@vitest/snapshot@npm:4.1.5"
@@ -12344,6 +12495,18 @@ __metadata:
languageName: node
linkType: hard
"@vitest/snapshot@npm:4.1.8":
version: 4.1.8
resolution: "@vitest/snapshot@npm:4.1.8"
dependencies:
"@vitest/pretty-format": "npm:4.1.8"
"@vitest/utils": "npm:4.1.8"
magic-string: "npm:^0.30.21"
pathe: "npm:^2.0.3"
checksum: 10c0/ba4c32112491d42d24986f921c50ede5edbdb4b7eafa16c72cf8d2c9ecc44121fdb3d9365236747a9841f0d6776affc6457470fcbb082df9dbc28c24792a0c6d
languageName: node
linkType: hard
"@vitest/spy@npm:4.1.5":
version: 4.1.5
resolution: "@vitest/spy@npm:4.1.5"
@@ -12362,6 +12525,17 @@ __metadata:
languageName: node
linkType: hard
"@vitest/utils@npm:4.1.8":
version: 4.1.8
resolution: "@vitest/utils@npm:4.1.8"
dependencies:
"@vitest/pretty-format": "npm:4.1.8"
convert-source-map: "npm:^2.0.0"
tinyrainbow: "npm:^3.1.0"
checksum: 10c0/acda9d3d640c1ebc81afb358ac30589d7d7d583af81e2d09419f0af9cbe41f3ce0b90527326943bf0da51614be5fc31afcd32259f6beb32b3417999d6ef380f3
languageName: node
linkType: hard
"@webassemblyjs/ast@npm:1.14.1, @webassemblyjs/ast@npm:^1.14.1":
version: 1.14.1
resolution: "@webassemblyjs/ast@npm:1.14.1"
@@ -12878,6 +13052,28 @@ __metadata:
languageName: node
linkType: hard
"algoliasearch@npm:4.19.1":
version: 4.19.1
resolution: "algoliasearch@npm:4.19.1"
dependencies:
"@algolia/cache-browser-local-storage": "npm:4.19.1"
"@algolia/cache-common": "npm:4.19.1"
"@algolia/cache-in-memory": "npm:4.19.1"
"@algolia/client-account": "npm:4.19.1"
"@algolia/client-analytics": "npm:4.19.1"
"@algolia/client-common": "npm:4.19.1"
"@algolia/client-personalization": "npm:4.19.1"
"@algolia/client-search": "npm:4.19.1"
"@algolia/logger-common": "npm:4.19.1"
"@algolia/logger-console": "npm:4.19.1"
"@algolia/requester-browser-xhr": "npm:4.19.1"
"@algolia/requester-common": "npm:4.19.1"
"@algolia/requester-node-http": "npm:4.19.1"
"@algolia/transporter": "npm:4.19.1"
checksum: 10c0/f88f08113e0e852daf3613d1cf35d166aafcbd1505c0c8ef4f04e1041cf51240e463b22a900b9fb7b6fb5b4567159c8368a3c794e95c7ea26ae7f83d56069f83
languageName: node
linkType: hard
"algoliasearch@npm:^3.35.1":
version: 3.35.1
resolution: "algoliasearch@npm:3.35.1"
@@ -14622,6 +14818,17 @@ __metadata:
languageName: node
linkType: hard
"chai-as-promised@npm:^8.0.2":
version: 8.0.2
resolution: "chai-as-promised@npm:8.0.2"
dependencies:
check-error: "npm:^2.1.1"
peerDependencies:
chai: ">= 2.1.2 < 7"
checksum: 10c0/829bcd98c04f0b108b2f7379efd33c668e53fbf0bda8d460dc63c96a709fd5de79909392aa78b4256de16a4d57640641d7affc516111e371d6e9f6aec1cc6c8a
languageName: node
linkType: hard
"chai-exclude@npm:^2.0.3, chai-exclude@npm:^2.1.1":
version: 2.1.1
resolution: "chai-exclude@npm:2.1.1"
@@ -14799,6 +15006,13 @@ __metadata:
languageName: node
linkType: hard
"check-error@npm:^2.1.1":
version: 2.1.3
resolution: "check-error@npm:2.1.3"
checksum: 10c0/878e99038fb6476316b74668cd6a498c7e66df3efe48158fa40db80a06ba4258742ac3ee2229c4a2a98c5e73f5dff84eb3e50ceb6b65bbd8f831eafc8338607d
languageName: node
linkType: hard
"check-types@npm:^11.1.2":
version: 11.2.3
resolution: "check-types@npm:11.2.3"
@@ -33980,6 +34194,74 @@ __metadata:
languageName: node
linkType: hard
"vitest@npm:^4.0.0":
version: 4.1.8
resolution: "vitest@npm:4.1.8"
dependencies:
"@vitest/expect": "npm:4.1.8"
"@vitest/mocker": "npm:4.1.8"
"@vitest/pretty-format": "npm:4.1.8"
"@vitest/runner": "npm:4.1.8"
"@vitest/snapshot": "npm:4.1.8"
"@vitest/spy": "npm:4.1.8"
"@vitest/utils": "npm:4.1.8"
es-module-lexer: "npm:^2.0.0"
expect-type: "npm:^1.3.0"
magic-string: "npm:^0.30.21"
obug: "npm:^2.1.1"
pathe: "npm:^2.0.3"
picomatch: "npm:^4.0.3"
std-env: "npm:^4.0.0-rc.1"
tinybench: "npm:^2.9.0"
tinyexec: "npm:^1.0.2"
tinyglobby: "npm:^0.2.15"
tinyrainbow: "npm:^3.1.0"
vite: "npm:^6.0.0 || ^7.0.0 || ^8.0.0"
why-is-node-running: "npm:^2.3.0"
peerDependencies:
"@edge-runtime/vm": "*"
"@opentelemetry/api": ^1.9.0
"@types/node": ^20.0.0 || ^22.0.0 || >=24.0.0
"@vitest/browser-playwright": 4.1.8
"@vitest/browser-preview": 4.1.8
"@vitest/browser-webdriverio": 4.1.8
"@vitest/coverage-istanbul": 4.1.8
"@vitest/coverage-v8": 4.1.8
"@vitest/ui": 4.1.8
happy-dom: "*"
jsdom: "*"
vite: ^6.0.0 || ^7.0.0 || ^8.0.0
peerDependenciesMeta:
"@edge-runtime/vm":
optional: true
"@opentelemetry/api":
optional: true
"@types/node":
optional: true
"@vitest/browser-playwright":
optional: true
"@vitest/browser-preview":
optional: true
"@vitest/browser-webdriverio":
optional: true
"@vitest/coverage-istanbul":
optional: true
"@vitest/coverage-v8":
optional: true
"@vitest/ui":
optional: true
happy-dom:
optional: true
jsdom:
optional: true
vite:
optional: false
bin:
vitest: vitest.mjs
checksum: 10c0/f459c500f8818c7a2318cd23228b4e5c0b5efb25bf8e5cb7f116c6d26e51482b2f800a8bb19837c0b5f0d05c51519edbf502bc8ceb5bd86868e8facf1d2c498e
languageName: node
linkType: hard
"void-elements@npm:3.1.0, void-elements@npm:^3.1.0":
version: 3.1.0
resolution: "void-elements@npm:3.1.0"
@@ -34512,6 +34794,18 @@ __metadata:
languageName: node
linkType: hard
"wiki-algolia@workspace:jobs/wiki-algolia":
version: 0.0.0-use.local
resolution: "wiki-algolia@workspace:jobs/wiki-algolia"
dependencies:
algoliasearch: "npm:4.19.1"
chai-as-promised: "npm:^8.0.2"
lodash: "npm:^4.18.1"
sanitize-html: "npm:^2.17.4"
vitest: "npm:^4.0.0"
languageName: unknown
linkType: soft
"wildcard@npm:^1.1.0":
version: 1.1.2
resolution: "wildcard@npm:1.1.2"