From da3553d8007ca680600b882be176203f5a3a367b Mon Sep 17 00:00:00 2001 From: Antoine Clausse Date: Mon, 23 Sep 2024 10:10:33 +0200 Subject: [PATCH] Upgrade node-fetch to 2.7.0 (#20165) * Set `node-fetch` to `^2.7.0` * Update package-lock.json ``` # root bin/npm update node-fetch bin/npm update cross-fetch # in other path in docker npm update node-fetch ``` * Update node-fetch patch * [fetch-utils] Skip the test: destroys the request body if it doesn't get consumed ``` 1) fetch-utils fetchJson destroys the request body if it doesn't get consumed: FetchError: Invalid response body while trying to fetch http://example.com:30001/json/ignore-request: write EPIPE at PassThrough. (/overleaf/node_modules/node-fetch/lib/index.js:400:12) at PassThrough.emit (node:events:529:35) at emitErrorNT (node:internal/streams/destroy:151:8) at emitErrorCloseNT (node:internal/streams/destroy:116:3) at process.processTicksAndRejections (node:internal/process/task_queues:82:21) ``` * [fetch-utils] Delete the test: destroys the request body if it doesn't get consumed * Remove the `setTimeout` in the node-fetch patch Fixes a test and doesn't break filestore acceptance tests * Update node-fetch patch again: bring changes from https://github.com/node-fetch/node-fetch/blob/e87b093/src/index.js * Update node-fetch patch again: bring changes from https://github.com/node-fetch/node-fetch/blob/e87b093/src/index.js * Update node-fetch patches back to single lines Per https://github.com/overleaf/internal/pull/20165#discussion_r1739035513 GitOrigin-RevId: 945e5a12e838673b7bc87b588b7aca1bcd9109e2 --- libraries/fetch-utils/package.json | 2 +- .../fetch-utils/test/unit/FetchUtilsTests.js | 22 +- package-lock.json | 384 ++---------------- ...tch+2.6.7.patch => node-fetch+2.7.0.patch} | 22 +- services/clsi/package.json | 2 +- services/filestore/package.json | 2 +- services/history-v1/package.json | 2 +- services/web/package.json | 3 +- .../scripts/translations/package-lock.json | 16 +- .../web/scripts/translations/package.json | 2 +- 10 files changed, 63 insertions(+), 394 deletions(-) rename patches/{node-fetch+2.6.7.patch => node-fetch+2.7.0.patch} (66%) diff --git a/libraries/fetch-utils/package.json b/libraries/fetch-utils/package.json index 9df69e7730..e88f78e5a3 100644 --- a/libraries/fetch-utils/package.json +++ b/libraries/fetch-utils/package.json @@ -27,7 +27,7 @@ "dependencies": { "@overleaf/o-error": "*", "lodash": "^4.17.21", - "node-fetch": "^2.6.11", + "node-fetch": "^2.7.0", "selfsigned": "^2.4.1" } } diff --git a/libraries/fetch-utils/test/unit/FetchUtilsTests.js b/libraries/fetch-utils/test/unit/FetchUtilsTests.js index f5a07af929..6fa01e009c 100644 --- a/libraries/fetch-utils/test/unit/FetchUtilsTests.js +++ b/libraries/fetch-utils/test/unit/FetchUtilsTests.js @@ -1,5 +1,5 @@ const { expect } = require('chai') -const { FetchError } = require('node-fetch') +const { FetchError, AbortError } = require('node-fetch') const { Readable } = require('stream') const { once } = require('events') const { TestServer } = require('./helpers/TestServer') @@ -15,8 +15,6 @@ const { CustomHttpsAgent, } = require('../..') -const abortErrorMessage = 'The user aborted a request' - const HTTP_PORT = 30001 const HTTPS_PORT = 30002 @@ -107,7 +105,7 @@ describe('fetch-utils', function () { it('supports abort signals', async function () { await expect( fetchJson(this.url('/hang'), { signal: AbortSignal.timeout(10) }) - ).to.be.rejectedWith(abortErrorMessage) + ).to.be.rejectedWith(AbortError) await expectRequestAborted(this.server.lastReq) }) @@ -148,7 +146,7 @@ describe('fetch-utils', function () { body: stream, }) stream.destroy() - await expect(promise).to.be.rejectedWith(abortErrorMessage) + await expect(promise).to.be.rejectedWith(AbortError) await wait(80) expect(this.server.lastReq).to.be.undefined }) @@ -162,7 +160,7 @@ describe('fetch-utils', function () { }) await once(this.server.events, 'request-received') stream.destroy() - await expect(promise).to.be.rejectedWith(abortErrorMessage) + await expect(promise).to.be.rejectedWith(AbortError) await expectRequestAborted(this.server.lastReq) }) @@ -176,7 +174,7 @@ describe('fetch-utils', function () { it('supports abort signals', async function () { await expect( fetchStream(this.url('/hang'), { signal: AbortSignal.timeout(10) }) - ).to.be.rejectedWith(abortErrorMessage) + ).to.be.rejectedWith(AbortError) await expectRequestAborted(this.server.lastReq) }) @@ -188,7 +186,7 @@ describe('fetch-utils', function () { body: stream, signal: AbortSignal.timeout(10), }) - ).to.be.rejectedWith(abortErrorMessage) + ).to.be.rejectedWith(AbortError) expect(stream.destroyed).to.be.true }) }) @@ -206,7 +204,7 @@ describe('fetch-utils', function () { body: stream, }) stream.destroy() - await expect(promise).to.be.rejectedWith(abortErrorMessage) + await expect(promise).to.be.rejectedWith(AbortError) expect(this.server.lastReq).to.be.undefined }) @@ -219,7 +217,7 @@ describe('fetch-utils', function () { }) await once(this.server.events, 'request-received') stream.destroy() - await expect(promise).to.be.rejectedWith(abortErrorMessage) + await expect(promise).to.be.rejectedWith(AbortError) await wait(80) await expectRequestAborted(this.server.lastReq) }) @@ -239,7 +237,7 @@ describe('fetch-utils', function () { it('supports abort signals', async function () { await expect( fetchNothing(this.url('/hang'), { signal: AbortSignal.timeout(10) }) - ).to.be.rejectedWith(abortErrorMessage) + ).to.be.rejectedWith(AbortError) await expectRequestAborted(this.server.lastReq) }) @@ -251,7 +249,7 @@ describe('fetch-utils', function () { body: stream, signal: AbortSignal.timeout(10), }) - ).to.be.rejectedWith(abortErrorMessage) + ).to.be.rejectedWith(AbortError) expect(stream.destroyed).to.be.true }) }) diff --git a/package-lock.json b/package-lock.json index 84004e84af..05f61c714f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -63,7 +63,7 @@ "bluebird": "^3.5.3", "glob": "^7.1.3", "googleapis": "^118.0.0", - "node-fetch": "^2.6.7", + "node-fetch": "^2.7.0", "overleaf-editor-core": "*", "swagger-client": "^3.8.24", "tmp": "0.0.33" @@ -165,7 +165,7 @@ "dependencies": { "@overleaf/o-error": "*", "lodash": "^4.17.21", - "node-fetch": "^2.6.11", + "node-fetch": "^2.7.0", "selfsigned": "^2.4.1" }, "devDependencies": { @@ -178,44 +178,6 @@ "typescript": "^5.0.4" } }, - "libraries/fetch-utils/node_modules/node-fetch": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz", - "integrity": "sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "libraries/fetch-utils/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "libraries/fetch-utils/node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "libraries/fetch-utils/node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, "libraries/logger": { "name": "@overleaf/logger", "version": "3.1.1", @@ -5063,44 +5025,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "node_modules/@google-cloud/logging-bunyan/node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/@google-cloud/logging-bunyan/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "node_modules/@google-cloud/logging-bunyan/node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "node_modules/@google-cloud/logging-bunyan/node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, "node_modules/@google-cloud/logging-bunyan/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", @@ -5496,25 +5420,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "node_modules/@google-cloud/logging/node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, "node_modules/@google-cloud/logging/node_modules/retry-request": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-7.0.2.tgz", @@ -5543,11 +5448,6 @@ "node": ">=14" } }, - "node_modules/@google-cloud/logging/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, "node_modules/@google-cloud/logging/node_modules/uuid": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", @@ -5560,20 +5460,6 @@ "uuid": "dist/bin/uuid" } }, - "node_modules/@google-cloud/logging/node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "node_modules/@google-cloud/logging/node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, "node_modules/@google-cloud/opentelemetry-cloud-trace-exporter": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/@google-cloud/opentelemetry-cloud-trace-exporter/-/opentelemetry-cloud-trace-exporter-2.1.0.tgz", @@ -5814,25 +5700,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "node_modules/@google-cloud/profiler/node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, "node_modules/@google-cloud/profiler/node_modules/retry-request": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-6.0.0.tgz", @@ -5874,11 +5741,6 @@ "node": ">=14" } }, - "node_modules/@google-cloud/profiler/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, "node_modules/@google-cloud/profiler/node_modules/uuid": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", @@ -5891,20 +5753,6 @@ "uuid": "dist/bin/uuid" } }, - "node_modules/@google-cloud/profiler/node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "node_modules/@google-cloud/profiler/node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, "node_modules/@google-cloud/profiler/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", @@ -18492,11 +18340,11 @@ "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==" }, "node_modules/cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", + "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", "dependencies": { - "node-fetch": "2.6.7" + "node-fetch": "^2.6.12" } }, "node_modules/cross-spawn": { @@ -24171,25 +24019,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "node_modules/google-gax/node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, "node_modules/google-gax/node_modules/object-hash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", @@ -24283,11 +24112,6 @@ "node": ">= 6" } }, - "node_modules/google-gax/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, "node_modules/google-gax/node_modules/uuid": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", @@ -24300,20 +24124,6 @@ "uuid": "dist/bin/uuid" } }, - "node_modules/google-gax/node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "node_modules/google-gax/node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, "node_modules/google-p12-pem": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.1.3.tgz", @@ -30346,9 +30156,9 @@ } }, "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -42050,7 +41860,7 @@ "chai-as-promised": "^7.1.1", "mocha": "^10.2.0", "mock-fs": "^5.1.2", - "node-fetch": "^2.6.7", + "node-fetch": "^2.7.0", "sandboxed-module": "^2.0.4", "sinon": "~9.0.1", "sinon-chai": "^3.7.0", @@ -42377,7 +42187,7 @@ "express": "^4.19.2", "glob": "^7.1.6", "lodash.once": "^4.1.1", - "node-fetch": "^2.6.7", + "node-fetch": "^2.7.0", "range-parser": "^1.2.1", "tiny-async-pool": "^1.1.0" }, @@ -42617,7 +42427,7 @@ "chai": "^4.3.6", "chai-as-promised": "^7.1.1", "mocha": "^10.2.0", - "node-fetch": "^2.6.7", + "node-fetch": "^2.7.0", "sinon": "^9.0.2", "swagger-client": "^3.10.0", "typescript": "^5.0.4", @@ -43979,7 +43789,7 @@ "minimatch": "^7.4.2", "minimist": "^1.2.8", "mongodb-legacy": "^6.0.1", - "node-fetch": "^2.6.7", + "node-fetch": "^2.7.0", "p-limit": "^2.3.0" }, "devDependencies": { @@ -44297,7 +44107,7 @@ "mongoose": "^7.8.0", "multer": "overleaf/multer#e1df247fbf8e7590520d20ae3601eaef9f3d2e9e", "nocache": "^2.1.0", - "node-fetch": "^2.6.7", + "node-fetch": "^2.7.0", "nodemailer": "^6.7.0", "nodemailer-ses-transport": "^1.5.1", "on-headers": "^1.0.2", @@ -44476,7 +44286,6 @@ "mocha": "^10.2.0", "mocha-each": "^2.0.1", "mock-fs": "^5.1.2", - "node-fetch": "^2.6.7", "nvd3": "^1.8.6", "overleaf-editor-core": "*", "pdfjs-dist213": "npm:pdfjs-dist@2.13.216", @@ -49081,14 +48890,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "requires": { - "whatwg-url": "^5.0.0" - } - }, "retry-request": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-7.0.2.tgz", @@ -49111,29 +48912,10 @@ "uuid": "^9.0.0" } }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, "uuid": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==" - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } } } }, @@ -49227,33 +49009,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, "yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", @@ -49623,14 +49378,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "requires": { - "whatwg-url": "^5.0.0" - } - }, "retry-request": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-6.0.0.tgz", @@ -49660,30 +49407,11 @@ "uuid": "^9.0.0" } }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, "uuid": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==" }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, "yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", @@ -51756,7 +51484,7 @@ "lodash": "^4.17.21", "mocha": "^10.2.0", "mock-fs": "^5.1.2", - "node-fetch": "^2.6.7", + "node-fetch": "^2.7.0", "p-limit": "^3.1.0", "request": "^2.88.2", "sandboxed-module": "^2.0.4", @@ -52055,38 +51783,9 @@ "express": "^4.19.2", "lodash": "^4.17.21", "mocha": "^10.2.0", - "node-fetch": "^2.6.11", + "node-fetch": "^2.7.0", "selfsigned": "^2.4.1", "typescript": "^5.0.4" - }, - "dependencies": { - "node-fetch": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz", - "integrity": "sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==", - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - } } }, "@overleaf/filestore": { @@ -52110,7 +51809,7 @@ "lodash.once": "^4.1.1", "mocha": "^10.2.0", "mongodb": "^6.1.0", - "node-fetch": "^2.6.7", + "node-fetch": "^2.7.0", "range-parser": "^1.2.1", "sandboxed-module": "2.0.4", "sinon": "9.0.2", @@ -52677,7 +52376,7 @@ "minimist": "^1.2.8", "mocha": "^10.2.0", "mongodb-legacy": "^6.0.1", - "node-fetch": "^2.6.7", + "node-fetch": "^2.7.0", "p-limit": "^2.3.0", "sandboxed-module": "^2.0.4", "sinon": "9.0.1", @@ -53059,7 +52758,7 @@ "mongoose": "^7.8.0", "multer": "overleaf/multer#e1df247fbf8e7590520d20ae3601eaef9f3d2e9e", "nocache": "^2.1.0", - "node-fetch": "^2.6.7", + "node-fetch": "^2.7.0", "nodemailer": "^6.7.0", "nodemailer-ses-transport": "^1.5.1", "nvd3": "^1.8.6", @@ -61789,11 +61488,11 @@ } }, "cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", + "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", "requires": { - "node-fetch": "2.6.7" + "node-fetch": "^2.6.12" } }, "cross-spawn": { @@ -66074,14 +65773,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "requires": { - "whatwg-url": "^5.0.0" - } - }, "object-hash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", @@ -66155,29 +65846,10 @@ } } }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, "uuid": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==" - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } } } }, @@ -70893,7 +70565,7 @@ "bluebird": "^3.5.3", "glob": "^7.1.3", "googleapis": "^118.0.0", - "node-fetch": "^2.6.7", + "node-fetch": "^2.7.0", "overleaf-editor-core": "*", "swagger-client": "^3.8.24", "tmp": "0.0.33" @@ -71452,9 +71124,9 @@ "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==" }, "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "requires": { "whatwg-url": "^5.0.0" }, @@ -72112,7 +71784,7 @@ "lodash": "^4.17.19", "mocha": "^10.2.0", "mongodb": "^6.2.0", - "node-fetch": "^2.6.7", + "node-fetch": "^2.7.0", "overleaf-editor-core": "*", "pg": "^8.7.1", "sinon": "^9.0.2", diff --git a/patches/node-fetch+2.6.7.patch b/patches/node-fetch+2.7.0.patch similarity index 66% rename from patches/node-fetch+2.6.7.patch rename to patches/node-fetch+2.7.0.patch index 87077262aa..49d075252e 100644 --- a/patches/node-fetch+2.6.7.patch +++ b/patches/node-fetch+2.7.0.patch @@ -1,5 +1,5 @@ diff --git a/node_modules/node-fetch/lib/index.js b/node_modules/node-fetch/lib/index.js -index e5b04f1..8c80924 100644 +index 567ff5d..8eb45f7 100644 --- a/node_modules/node-fetch/lib/index.js +++ b/node_modules/node-fetch/lib/index.js @@ -545,8 +545,8 @@ function clone(instance) { @@ -30,47 +30,47 @@ index e5b04f1..8c80924 100644 } } -@@ -1594,7 +1594,7 @@ function fetch(url, opts) { +@@ -1638,7 +1638,7 @@ function fetch(url, opts) { res.once('end', function () { if (signal) signal.removeEventListener('abort', abortAndFinalize); }); - let body = res.pipe(new PassThrough$1()); -+ let body = new PassThrough$1(); setTimeout(() => Stream.pipeline(res, body, (err) => { if (err) req.abort() }), 0); // Note: let the call-site attach event handler to "body" before we start streaming. ++ let body = Stream.pipeline(res, new PassThrough(), error => { if (error) reject(error); }); const response_options = { url: request.url, -@@ -1635,7 +1635,7 @@ function fetch(url, opts) { +@@ -1679,7 +1679,7 @@ function fetch(url, opts) { // for gzip if (codings == 'gzip' || codings == 'x-gzip') { - body = body.pipe(zlib.createGunzip(zlibOptions)); -+ const bodyGzip = zlib.createGunzip(zlibOptions); Stream.pipeline(body, bodyGzip, () => {}); body = bodyGzip; ++ body = Stream.pipeline(body, zlib.createGunzip(zlibOptions), error => { if (error) reject(error); }); response = new Response(body, response_options); resolve(response); return; -@@ -1645,13 +1645,13 @@ function fetch(url, opts) { +@@ -1689,13 +1689,13 @@ function fetch(url, opts) { if (codings == 'deflate' || codings == 'x-deflate') { // handle the infamous raw deflate response from old servers // a hack for old IIS and Apache servers - const raw = res.pipe(new PassThrough$1()); -+ const raw = new PassThrough$1(); setTimeout(() => Stream.pipeline(res, raw, () => {}), 0); // Note: delay piping into "raw" until we start piping into "body". ++ const raw = Stream.pipeline(res, new PassThrough(), error => { if (error) reject(error); }); raw.once('data', function (chunk) { // see http://stackoverflow.com/questions/37519828 if ((chunk[0] & 0x0F) === 0x08) { - body = body.pipe(zlib.createInflate()); -+ const bodyDeflate = zlib.createInflate(); Stream.pipeline(body, bodyDeflate, () => {}); body = bodyDeflate; ++ body = Stream.pipeline(body, zlib.createInflate(), error => { if (error) reject(error); }); } else { - body = body.pipe(zlib.createInflateRaw()); -+ const bodyDeflate = zlib.createInflateRaw(); Stream.pipeline(body, bodyDeflate, () => {}); body = bodyDeflate; ++ body = Stream.pipeline(body, zlib.createInflateRaw(), error => { if (error) reject(error); }); } response = new Response(body, response_options); resolve(response); -@@ -1661,7 +1661,7 @@ function fetch(url, opts) { +@@ -1712,7 +1712,7 @@ function fetch(url, opts) { // for br if (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') { - body = body.pipe(zlib.createBrotliDecompress()); -+ const bodyBrotli = zlib.createBrotliDecompress(); Stream.pipeline(body, bodyBrotli, () => {}); body = bodyBrotli; ++ body = Stream.pipeline(body, zlib.createBrotliDecompress(), error => { if (error) reject(error); }); response = new Response(body, response_options); resolve(response); return; diff --git a/services/clsi/package.json b/services/clsi/package.json index 35a174b828..e563ab5153 100644 --- a/services/clsi/package.json +++ b/services/clsi/package.json @@ -42,7 +42,7 @@ "chai-as-promised": "^7.1.1", "mocha": "^10.2.0", "mock-fs": "^5.1.2", - "node-fetch": "^2.6.7", + "node-fetch": "^2.7.0", "sandboxed-module": "^2.0.4", "sinon": "~9.0.1", "sinon-chai": "^3.7.0", diff --git a/services/filestore/package.json b/services/filestore/package.json index 6b70232178..0d24bea295 100644 --- a/services/filestore/package.json +++ b/services/filestore/package.json @@ -30,7 +30,7 @@ "express": "^4.19.2", "glob": "^7.1.6", "lodash.once": "^4.1.1", - "node-fetch": "^2.6.7", + "node-fetch": "^2.7.0", "range-parser": "^1.2.1", "tiny-async-pool": "^1.1.0" }, diff --git a/services/history-v1/package.json b/services/history-v1/package.json index 16e949a108..fabff35751 100644 --- a/services/history-v1/package.json +++ b/services/history-v1/package.json @@ -43,7 +43,7 @@ "chai": "^4.3.6", "chai-as-promised": "^7.1.1", "mocha": "^10.2.0", - "node-fetch": "^2.6.7", + "node-fetch": "^2.7.0", "sinon": "^9.0.2", "swagger-client": "^3.10.0", "typescript": "^5.0.4", diff --git a/services/web/package.json b/services/web/package.json index 7ae326cb47..255478aac2 100644 --- a/services/web/package.json +++ b/services/web/package.json @@ -141,7 +141,7 @@ "mongoose": "^7.8.0", "multer": "overleaf/multer#e1df247fbf8e7590520d20ae3601eaef9f3d2e9e", "nocache": "^2.1.0", - "node-fetch": "^2.6.7", + "node-fetch": "^2.7.0", "nodemailer": "^6.7.0", "nodemailer-ses-transport": "^1.5.1", "on-headers": "^1.0.2", @@ -320,7 +320,6 @@ "mocha": "^10.2.0", "mocha-each": "^2.0.1", "mock-fs": "^5.1.2", - "node-fetch": "^2.6.7", "nvd3": "^1.8.6", "overleaf-editor-core": "*", "pdfjs-dist213": "npm:pdfjs-dist@2.13.216", diff --git a/services/web/scripts/translations/package-lock.json b/services/web/scripts/translations/package-lock.json index 11408551e3..24a21a1165 100644 --- a/services/web/scripts/translations/package-lock.json +++ b/services/web/scripts/translations/package-lock.json @@ -6,8 +6,8 @@ "": { "dependencies": { "@brainly/onesky-utils": "https://github.com/overleaf/nodejs-onesky-utils/archive/main.tar.gz", - "node-fetch": "^2.6.7", - "sanitize-html": "^2.7.0", + "node-fetch": "^2.7.0", + "sanitize-html": "^2.12.1", "yargs": "^17.7.2" } }, @@ -524,9 +524,9 @@ } }, "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -1291,9 +1291,9 @@ "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==" }, "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "requires": { "whatwg-url": "^5.0.0" } diff --git a/services/web/scripts/translations/package.json b/services/web/scripts/translations/package.json index d420550e22..82176ed7d6 100644 --- a/services/web/scripts/translations/package.json +++ b/services/web/scripts/translations/package.json @@ -1,7 +1,7 @@ { "dependencies": { "@brainly/onesky-utils": "https://github.com/overleaf/nodejs-onesky-utils/archive/main.tar.gz", - "node-fetch": "^2.6.7", + "node-fetch": "^2.7.0", "sanitize-html": "^2.12.1", "yargs": "^17.7.2" }