diff --git a/libraries/object-persistor/package.json b/libraries/object-persistor/package.json index c13adee40f..514e31ca83 100644 --- a/libraries/object-persistor/package.json +++ b/libraries/object-persistor/package.json @@ -24,7 +24,7 @@ "@aws-sdk/lib-storage": "^3.864.0", "@aws-sdk/node-http-handler": "^3.370.0", "@aws-sdk/s3-request-presigner": "^3.864.0", - "@google-cloud/storage": "^6.10.1", + "@google-cloud/storage": "^7.18.0", "@overleaf/logger": "*", "@overleaf/metrics": "*", "@overleaf/o-error": "*", diff --git a/package-lock.json b/package-lock.json index e69a257792..6d0d50ba77 100644 --- a/package-lock.json +++ b/package-lock.json @@ -381,7 +381,7 @@ "@aws-sdk/lib-storage": "^3.864.0", "@aws-sdk/node-http-handler": "^3.370.0", "@aws-sdk/s3-request-presigner": "^3.864.0", - "@google-cloud/storage": "^6.10.1", + "@google-cloud/storage": "^7.18.0", "@overleaf/logger": "*", "@overleaf/metrics": "*", "@overleaf/o-error": "*", @@ -13107,41 +13107,51 @@ } }, "node_modules/@google-cloud/storage": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-6.12.0.tgz", - "integrity": "sha512-78nNAY7iiZ4O/BouWMWTD/oSF2YtYgYB3GZirn0To6eBOugjXVoK+GXgUXOl+HlqbAOyHxAVXOlsj3snfbQ1dw==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-7.18.0.tgz", + "integrity": "sha512-r3ZwDMiz4nwW6R922Z1pwpePxyRwE5GdevYX63hRmAQUkUQJcBH/79EnQPDv5cOv1mFBgevdNWQfi3tie3dHrQ==", "license": "Apache-2.0", "dependencies": { - "@google-cloud/paginator": "^3.0.7", - "@google-cloud/projectify": "^3.0.0", - "@google-cloud/promisify": "^3.0.0", + "@google-cloud/paginator": "^5.0.0", + "@google-cloud/projectify": "^4.0.0", + "@google-cloud/promisify": "<4.1.0", "abort-controller": "^3.0.0", "async-retry": "^1.3.3", - "compressible": "^2.0.12", - "duplexify": "^4.0.0", - "ent": "^2.2.0", - "extend": "^3.0.2", - "fast-xml-parser": "^4.2.2", - "gaxios": "^5.0.0", - "google-auth-library": "^8.0.1", + "duplexify": "^4.1.3", + "fast-xml-parser": "^4.4.1", + "gaxios": "^6.0.2", + "google-auth-library": "^9.6.3", + "html-entities": "^2.5.2", "mime": "^3.0.0", - "mime-types": "^2.0.8", "p-limit": "^3.0.1", - "retry-request": "^5.0.0", - "teeny-request": "^8.0.0", + "retry-request": "^7.0.0", + "teeny-request": "^9.0.0", "uuid": "^8.0.0" }, "engines": { - "node": ">=12" + "node": ">=14" + } + }, + "node_modules/@google-cloud/storage/node_modules/@google-cloud/paginator": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@google-cloud/paginator/-/paginator-5.0.2.tgz", + "integrity": "sha512-DJS3s0OVH4zFDB1PzjxAsHqJT6sKVbRwwML0ZBP9PbU7Yebtu/7SWMRzvO2J3nUi9pRNITCfu4LJeooM2w4pjg==", + "license": "Apache-2.0", + "dependencies": { + "arrify": "^2.0.0", + "extend": "^3.0.2" + }, + "engines": { + "node": ">=14.0.0" } }, "node_modules/@google-cloud/storage/node_modules/@google-cloud/projectify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-3.0.0.tgz", - "integrity": "sha512-HRkZsNmjScY6Li8/kb70wjGlDDyLkVk3KvoEo9uIoxSjYLJasGiCch9+PqRVDOCGUFvEIqyogl+BeqILL4OJHA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-4.0.0.tgz", + "integrity": "sha512-MmaX6HeSvyPbWGwFq7mXdo0uQZLGBYCwziiLIGq5JVX+/bdI3SAq6bP98trV5eTWfLuvsMcIC1YJOF2vfteLFA==", "license": "Apache-2.0", "engines": { - "node": ">=12.0.0" + "node": ">=14.0.0" } }, "node_modules/@google-cloud/storage/node_modules/@google-cloud/promisify": { @@ -13153,66 +13163,117 @@ "node": ">=12" } }, - "node_modules/@google-cloud/storage/node_modules/google-auth-library": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-8.9.0.tgz", - "integrity": "sha512-f7aQCJODJFmYWN6PeNKzgvy9LI2tYmXnzpNDHEjG5sDNPgGb2FXQyTBnXeSH+PAtpKESFD+LmHw3Ox3mN7e1Fg==", - "license": "Apache-2.0", - "dependencies": { - "arrify": "^2.0.0", - "base64-js": "^1.3.0", - "ecdsa-sig-formatter": "^1.0.11", - "fast-text-encoding": "^1.0.0", - "gaxios": "^5.0.0", - "gcp-metadata": "^5.3.0", - "gtoken": "^6.1.0", - "jws": "^4.0.0", - "lru-cache": "^6.0.0" - }, + "node_modules/@google-cloud/storage/node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "license": "MIT", "engines": { - "node": ">=12" + "node": ">= 14" } }, - "node_modules/@google-cloud/storage/node_modules/google-p12-pem": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-4.0.1.tgz", - "integrity": "sha512-WPkN4yGtz05WZ5EhtlxNDWPhC4JIic6G8ePitwUWy4l+XPVYec+a0j0Ts47PDtW59y3RwAhUd9/h9ZZ63px6RQ==", - "deprecated": "Package is no longer maintained", + "node_modules/@google-cloud/storage/node_modules/fast-xml-parser": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.5.3.tgz", + "integrity": "sha512-RKihhV+SHsIUGXObeVy9AXiBbFwkVk7Syp8XgwN5U3JV416+Gwp/GO9i0JYKmikykgz/UHRrrV4ROuZEo/T0ig==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], "license": "MIT", "dependencies": { - "node-forge": "^1.3.1" + "strnum": "^1.1.1" }, "bin": { - "gp12-pem": "build/src/bin/gp12-pem.js" - }, - "engines": { - "node": ">=12.0.0" + "fxparser": "src/cli/cli.js" } }, - "node_modules/@google-cloud/storage/node_modules/gtoken": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-6.1.2.tgz", - "integrity": "sha512-4ccGpzz7YAr7lxrT2neugmXQ3hP9ho2gcaityLVkiUecAiwiy60Ii8gRbZeOsXV19fYaRjgBSshs8kXw+NKCPQ==", + "node_modules/@google-cloud/storage/node_modules/gaxios": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-6.7.1.tgz", + "integrity": "sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==", + "license": "Apache-2.0", + "dependencies": { + "extend": "^3.0.2", + "https-proxy-agent": "^7.0.1", + "is-stream": "^2.0.0", + "node-fetch": "^2.6.9", + "uuid": "^9.0.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@google-cloud/storage/node_modules/gaxios/node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", "license": "MIT", "dependencies": { - "gaxios": "^5.0.1", - "google-p12-pem": "^4.0.0", + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@google-cloud/storage/node_modules/gaxios/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@google-cloud/storage/node_modules/gcp-metadata": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-6.1.1.tgz", + "integrity": "sha512-a4tiq7E0/5fTjxPAaH4jpjkSv/uCaU2p5KC6HVGrvl0cDjA8iBZv4vv1gyzlmK0ZUKqwpOyQMKzZQe3lTit77A==", + "license": "Apache-2.0", + "dependencies": { + "gaxios": "^6.1.1", + "google-logging-utils": "^0.0.2", + "json-bigint": "^1.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@google-cloud/storage/node_modules/google-auth-library": { + "version": "9.15.1", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-9.15.1.tgz", + "integrity": "sha512-Jb6Z0+nvECVz+2lzSMt9u98UsoakXxA2HGHMCxh+so3n90XgYWkq5dur19JAJV7ONiJY22yBTyJB1TSkvPq9Ng==", + "license": "Apache-2.0", + "dependencies": { + "base64-js": "^1.3.0", + "ecdsa-sig-formatter": "^1.0.11", + "gaxios": "^6.1.1", + "gcp-metadata": "^6.1.0", + "gtoken": "^7.0.0", "jws": "^4.0.0" }, "engines": { - "node": ">=12.0.0" + "node": ">=14" } }, - "node_modules/@google-cloud/storage/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "license": "ISC", + "node_modules/@google-cloud/storage/node_modules/gtoken": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-7.1.0.tgz", + "integrity": "sha512-pCcEwRi+TKpMlxAQObHDQ56KawURgyAf6jtIY046fJ5tIv3zDe/LEIubckAO8fj6JnAxLdmWkUfNyulQ2iKdEw==", + "license": "MIT", "dependencies": { - "yallist": "^4.0.0" + "gaxios": "^6.0.0", + "jws": "^4.0.0" }, "engines": { - "node": ">=10" + "node": ">=14.0.0" } }, "node_modules/@google-cloud/storage/node_modules/mime": { @@ -13228,32 +13289,33 @@ } }, "node_modules/@google-cloud/storage/node_modules/retry-request": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-5.0.2.tgz", - "integrity": "sha512-wfI3pk7EE80lCIXprqh7ym48IHYdwmAAzESdbU8Q9l7pnRCk9LEhpbOTNKjz6FARLm/Bl5m+4F0ABxOkYUujSQ==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-7.0.2.tgz", + "integrity": "sha512-dUOvLMJ0/JJYEn8NrpOaGNE7X3vpI5XlZS/u0ANjqtcZVKnIxP7IgCFwrKTxENw29emmwug53awKtaMm4i9g5w==", "license": "MIT", "dependencies": { - "debug": "^4.1.1", - "extend": "^3.0.2" + "@types/request": "^2.48.8", + "extend": "^3.0.2", + "teeny-request": "^9.0.0" }, "engines": { - "node": ">=12" + "node": ">=14" } }, "node_modules/@google-cloud/storage/node_modules/teeny-request": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-8.0.3.tgz", - "integrity": "sha512-jJZpA5He2y52yUhA7pyAGZlgQpcB+xLjcN0eUFxr9c8hP/H7uOXbBNVo/O0C/xVfJLJs680jvkFgVJEEvk9+ww==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-9.0.0.tgz", + "integrity": "sha512-resvxdc6Mgb7YEThw6G6bExlXKkv6+YbuzGg9xuXxSgxJF7Ozs+o8Y9+2R3sArdWdW8nOokoQb1yrpFB0pQK2g==", "license": "Apache-2.0", "dependencies": { "http-proxy-agent": "^5.0.0", "https-proxy-agent": "^5.0.0", - "node-fetch": "^2.6.1", + "node-fetch": "^2.6.9", "stream-events": "^1.0.5", "uuid": "^9.0.0" }, "engines": { - "node": ">=12" + "node": ">=14" } }, "node_modules/@google-cloud/storage/node_modules/teeny-request/node_modules/uuid": { @@ -13278,12 +13340,6 @@ "uuid": "dist/bin/uuid" } }, - "node_modules/@google-cloud/storage/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "license": "ISC" - }, "node_modules/@growthbook/growthbook": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/@growthbook/growthbook/-/growthbook-1.6.1.tgz", @@ -31515,6 +31571,8 @@ "url": "https://github.com/sponsors/NaturalIntelligence" } ], + "optional": true, + "peer": true, "dependencies": { "strnum": "^1.0.5" }, @@ -49114,9 +49172,16 @@ } }, "node_modules/strnum": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", - "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.1.2.tgz", + "integrity": "sha512-vrN+B7DBIoTTZjnPNewwhx6cBA/H+IS7rfW68n7XxC1y7uoiGQBxaKzqucGUgavX15dJgiGztLJ8vxuEzwqBdA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT" }, "node_modules/strtok3": { "version": "10.3.4", @@ -54511,7 +54576,7 @@ "dependencies": { "@customerio/cdp-analytics-node": "^0.3.0", "@google-cloud/bigquery": "^5.9.0", - "@google-cloud/storage": "^6.10.1", + "@google-cloud/storage": "^7.18.0", "@overleaf/fetch-utils": "*", "@overleaf/logger": "*", "@overleaf/metrics": "*", @@ -55329,7 +55394,7 @@ "p-map": "^4.0.0" }, "devDependencies": { - "@google-cloud/storage": "^6.10.1", + "@google-cloud/storage": "^7.18.0", "@overleaf/migrations": "*", "chai": "^4.3.6", "chai-as-promised": "^7.1.1", @@ -55830,7 +55895,7 @@ "tiny-async-pool": "^1.1.0" }, "devDependencies": { - "@google-cloud/storage": "^6.10.1", + "@google-cloud/storage": "^7.18.0", "chai": "^4.3.6", "chai-as-promised": "^7.1.1", "mocha": "^11.1.0", @@ -59322,7 +59387,7 @@ "@contentful/rich-text-html-renderer": "^16.0.2", "@contentful/rich-text-types": "^16.0.2", "@google-cloud/bigquery": "^6.0.1", - "@google-cloud/storage": "^6.10.1", + "@google-cloud/storage": "^7.18.0", "@node-oauth/oauth2-server": "^5.1.0", "@node-saml/passport-saml": "^5.1.0", "@overleaf/access-token-encryptor": "*", diff --git a/patches/@google-cloud+storage++retry-request+5.0.2.patch b/patches/@google-cloud+storage++retry-request+7.0.2.patch similarity index 76% rename from patches/@google-cloud+storage++retry-request+5.0.2.patch rename to patches/@google-cloud+storage++retry-request+7.0.2.patch index bbf8a8f66b..4596ed83e3 100644 --- a/patches/@google-cloud+storage++retry-request+5.0.2.patch +++ b/patches/@google-cloud+storage++retry-request+7.0.2.patch @@ -1,5 +1,5 @@ diff --git a/node_modules/@google-cloud/storage/node_modules/retry-request/index.js b/node_modules/@google-cloud/storage/node_modules/retry-request/index.js -index a293298..df21af6 100644 +index 2fae107..5721c54 100644 --- a/node_modules/@google-cloud/storage/node_modules/retry-request/index.js +++ b/node_modules/@google-cloud/storage/node_modules/retry-request/index.js @@ -1,6 +1,6 @@ @@ -7,19 +7,19 @@ index a293298..df21af6 100644 -const {PassThrough} = require('stream'); +const { PassThrough, pipeline } = require('stream'); - const debug = require('debug')('retry-request'); const extend = require('extend'); -@@ -166,7 +166,7 @@ function retryRequest(requestOpts, opts, callback) { - }) - .on('complete', retryStream.emit.bind(retryStream, 'complete')); + let debug = () => {}; +@@ -185,7 +185,7 @@ function retryRequest(requestOpts, opts, callback) { + .on('complete', (...params) => handleFinish(params)) + .on('finish', (...params) => handleFinish(params)); - requestStream.pipe(delayStream); + pipeline(requestStream, delayStream, () => {}); } else { activeRequest = opts.request(requestOpts, onResponse); } -@@ -232,7 +232,7 @@ function retryRequest(requestOpts, opts, callback) { +@@ -251,7 +251,7 @@ function retryRequest(requestOpts, opts, callback) { // No more attempts need to be made, just continue on. if (streamMode) { retryStream.emit('response', response); diff --git a/patches/@google-cloud+storage++teeny-request+8.0.3.patch b/patches/@google-cloud+storage++teeny-request+9.0.0.patch similarity index 100% rename from patches/@google-cloud+storage++teeny-request+8.0.3.patch rename to patches/@google-cloud+storage++teeny-request+9.0.0.patch diff --git a/services/docstore/package.json b/services/docstore/package.json index e672eb5951..a8b38eccd2 100644 --- a/services/docstore/package.json +++ b/services/docstore/package.json @@ -37,7 +37,7 @@ "p-map": "^4.0.0" }, "devDependencies": { - "@google-cloud/storage": "^6.10.1", + "@google-cloud/storage": "^7.18.0", "@overleaf/migrations": "*", "chai": "^4.3.6", "chai-as-promised": "^7.1.1", diff --git a/services/filestore/package.json b/services/filestore/package.json index 0f7f444e40..d9d870e277 100644 --- a/services/filestore/package.json +++ b/services/filestore/package.json @@ -37,7 +37,7 @@ "tiny-async-pool": "^1.1.0" }, "devDependencies": { - "@google-cloud/storage": "^6.10.1", + "@google-cloud/storage": "^7.18.0", "chai": "^4.3.6", "chai-as-promised": "^7.1.1", "mocha": "^11.1.0", diff --git a/services/web/package.json b/services/web/package.json index 5770d73344..a8ce452fcd 100644 --- a/services/web/package.json +++ b/services/web/package.json @@ -86,7 +86,7 @@ "@contentful/rich-text-html-renderer": "^16.0.2", "@contentful/rich-text-types": "^16.0.2", "@google-cloud/bigquery": "^6.0.1", - "@google-cloud/storage": "^6.10.1", + "@google-cloud/storage": "^7.18.0", "@node-oauth/oauth2-server": "^5.1.0", "@node-saml/passport-saml": "^5.1.0", "@overleaf/access-token-encryptor": "*",