From 72f8dff76daa2584601bf1cb6babe9dee4b0b49d Mon Sep 17 00:00:00 2001 From: Anna Claire Fields <58918237+franklovefrank@users.noreply.github.com> Date: Tue, 10 Feb 2026 14:05:01 +0100 Subject: [PATCH] Upgrade GC storage and big query with updated patches (#31297) GitOrigin-RevId: ff1432f4194c3529ebf6090d1f93dbed38539014 --- libraries/object-persistor/package.json | 2 +- package-lock.json | 943 ++++++++---------- ...e-cloud+logging++retry-request+7.0.2.patch | 30 + ...e-cloud+logging++teeny-request+9.0.0.patch | 58 ++ ...oud+logging-min++retry-request+7.0.2.patch | 30 + ...oud+logging-min++teeny-request+9.0.0.patch | 58 ++ ...-cloud+profiler++retry-request+7.0.2.patch | 30 + ...-cloud+profiler++teeny-request+9.0.0.patch | 58 ++ ...-cloud+storage++retry-request+7.0.2.patch} | 12 +- ...-cloud+storage++teeny-request+9.0.0.patch} | 21 +- patches/google-gax++retry-request+7.0.2.patch | 30 + patches/google-gax++teeny-request+9.0.0.patch | 58 ++ ...+4.2.2.patch => retry-request+8.0.2.patch} | 20 +- ...7.2.0.patch => teeny-request+10.1.0.patch} | 32 +- services/docstore/package.json | 2 +- services/filestore/package.json | 2 +- services/web/package.json | 4 +- 17 files changed, 826 insertions(+), 564 deletions(-) create mode 100644 patches/@google-cloud+logging++retry-request+7.0.2.patch create mode 100644 patches/@google-cloud+logging++teeny-request+9.0.0.patch create mode 100644 patches/@google-cloud+logging-min++retry-request+7.0.2.patch create mode 100644 patches/@google-cloud+logging-min++teeny-request+9.0.0.patch create mode 100644 patches/@google-cloud+profiler++retry-request+7.0.2.patch create mode 100644 patches/@google-cloud+profiler++teeny-request+9.0.0.patch rename patches/{@google-cloud+storage++retry-request+5.0.2.patch => @google-cloud+storage++retry-request+7.0.2.patch} (76%) rename patches/{@google-cloud+storage++teeny-request+8.0.3.patch => @google-cloud+storage++teeny-request+9.0.0.patch} (82%) create mode 100644 patches/google-gax++retry-request+7.0.2.patch create mode 100644 patches/google-gax++teeny-request+9.0.0.patch rename patches/{retry-request+4.2.2.patch => retry-request+8.0.2.patch} (55%) rename patches/{teeny-request+7.2.0.patch => teeny-request+10.1.0.patch} (57%) diff --git a/libraries/object-persistor/package.json b/libraries/object-persistor/package.json index 13128219d0..ec2e6a2c2f 100644 --- a/libraries/object-persistor/package.json +++ b/libraries/object-persistor/package.json @@ -22,7 +22,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 fe8af00317..17ff3071e8 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": "*", @@ -11358,55 +11358,65 @@ "license": "MIT" }, "node_modules/@google-cloud/bigquery": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/@google-cloud/bigquery/-/bigquery-5.12.0.tgz", - "integrity": "sha512-UaIvvuKpyJhCRBkxEJXnJwvxOxkGoZHvSs9IsS0MNUS4YphcbWYOyzRMufV5gxdsr7XNSd+36Nj/n/7vyZiCqQ==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@google-cloud/bigquery/-/bigquery-8.1.1.tgz", + "integrity": "sha512-2GHlohfA/VJffTvibMazMsZi6jPRx8MmaMberyDTL8rnhVs/frKSXVVRtLU83uSAy2j/5SD4mOs4jMQgJPON2g==", "license": "Apache-2.0", "dependencies": { - "@google-cloud/common": "^3.9.0", - "@google-cloud/paginator": "^3.0.0", - "@google-cloud/promisify": "^2.0.0", - "arrify": "^2.0.1", - "big.js": "^6.0.0", - "duplexify": "^4.0.0", + "@google-cloud/common": "^6.0.0", + "@google-cloud/paginator": "^6.0.0", + "@google-cloud/precise-date": "^5.0.0", + "@google-cloud/promisify": "^5.0.0", + "arrify": "^3.0.0", + "big.js": "^6.2.2", + "duplexify": "^4.1.3", "extend": "^3.0.2", - "is": "^3.3.0", - "p-event": "^4.1.0", - "readable-stream": "^3.6.0", "stream-events": "^1.0.5", - "uuid": "^8.0.0" + "teeny-request": "^10.0.0" }, "engines": { - "node": ">=10" + "node": ">=18" } }, - "node_modules/@google-cloud/bigquery/node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "node_modules/@google-cloud/bigquery/node_modules/arrify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-3.0.0.tgz", + "integrity": "sha512-tLkvA81vQG/XqE2mjDkGQHoOINtMHtysSnemrmoGe6PydDPMRbVugqyk4A6V/WDWEfm3l+0d8anA9r8cv/5Jaw==", "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@google-cloud/common": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-3.10.0.tgz", - "integrity": "sha512-XMbJYMh/ZSaZnbnrrOFfR/oQrb0SxG4qh6hDisWCoEbFcBHV0qHQo4uXfeMCzolx2Mfkh6VDaOGg+hyJsmxrlw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-6.0.0.tgz", + "integrity": "sha512-IXh04DlkLMxWgYLIUYuHHKXKOUwPDzDgke1ykkkJPe48cGIS9kkL2U/o0pm4ankHLlvzLF/ma1eO86n/bkumIA==", "license": "Apache-2.0", "dependencies": { - "@google-cloud/projectify": "^2.0.0", - "@google-cloud/promisify": "^2.0.0", - "arrify": "^2.0.1", - "duplexify": "^4.1.1", - "ent": "^2.2.0", + "@google-cloud/projectify": "^4.0.0", + "@google-cloud/promisify": "^4.0.0", + "arrify": "^2.0.0", + "duplexify": "^4.1.3", "extend": "^3.0.2", - "google-auth-library": "^7.14.0", - "retry-request": "^4.2.2", - "teeny-request": "^7.0.0" + "google-auth-library": "^10.0.0-rc.1", + "html-entities": "^2.5.2", + "retry-request": "^8.0.0", + "teeny-request": "^10.0.0" }, "engines": { - "node": ">=10" + "node": ">=18" + } + }, + "node_modules/@google-cloud/common/node_modules/@google-cloud/promisify": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-4.1.0.tgz", + "integrity": "sha512-G/FQx5cE/+DqBbOpA5jKsegGwdPniU6PuIEMt+qxWgFxvxuFOzVmp6zYchtYuwAWV5/8Dgs0yAmjvNZv3uXLQg==", + "license": "Apache-2.0", + "engines": { + "node": ">=18" } }, "node_modules/@google-cloud/logging": { @@ -11607,15 +11617,6 @@ "node": ">=14.0.0" } }, - "node_modules/@google-cloud/logging-min/node_modules/@google-cloud/projectify": { - "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": ">=14.0.0" - } - }, "node_modules/@google-cloud/logging-min/node_modules/@google-cloud/promisify": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-4.1.0.tgz", @@ -11792,15 +11793,6 @@ "node": ">=14.0.0" } }, - "node_modules/@google-cloud/logging/node_modules/@google-cloud/projectify": { - "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": ">=14.0.0" - } - }, "node_modules/@google-cloud/logging/node_modules/@google-cloud/promisify": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-4.0.0.tgz", @@ -12151,25 +12143,24 @@ } }, "node_modules/@google-cloud/paginator": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@google-cloud/paginator/-/paginator-3.0.7.tgz", - "integrity": "sha512-jJNutk0arIQhmpUUQJPJErsojqo834KcyB6X7a1mxuic8i1tKXxde8E69IZxNZawRIlZdIK2QY4WALvlK5MzYQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@google-cloud/paginator/-/paginator-6.0.0.tgz", + "integrity": "sha512-g5nmMnzC+94kBxOKkLGpK1ikvolTFCC3s2qtE4F+1EuArcJ7HHC23RDQVt3Ra3CqpUYZ+oXNKZ8n5Cn5yug8DA==", "license": "Apache-2.0", "dependencies": { - "arrify": "^2.0.0", "extend": "^3.0.2" }, "engines": { - "node": ">=10" + "node": ">=18" } }, "node_modules/@google-cloud/precise-date": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@google-cloud/precise-date/-/precise-date-3.0.1.tgz", - "integrity": "sha512-crK2rgNFfvLoSgcKJY7ZBOLW91IimVNmPfi1CL+kMTf78pTJYd29XqEVedAeBu4DwCJc0EDIp1MpctLgoPq+Uw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@google-cloud/precise-date/-/precise-date-5.0.0.tgz", + "integrity": "sha512-9h0Gvw92EvPdE8AK8AgZPbMnH5ftDyPtKm7/KUfcJVaPEPjwGDsJd1QV0H8esBDV4II41R/2lDWH1epBqIoKUw==", "license": "Apache-2.0", "engines": { - "node": ">=12.0.0" + "node": ">=18" } }, "node_modules/@google-cloud/profiler": { @@ -12218,15 +12209,6 @@ "node": ">=14.0.0" } }, - "node_modules/@google-cloud/profiler/node_modules/@google-cloud/projectify": { - "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": ">=14.0.0" - } - }, "node_modules/@google-cloud/profiler/node_modules/@google-cloud/promisify": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-4.0.0.tgz", @@ -12398,21 +12380,21 @@ } }, "node_modules/@google-cloud/projectify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-2.1.1.tgz", - "integrity": "sha512-+rssMZHnlh0twl122gXY4/aCrk0G1acBqkHFfYddtsqpYXGxA29nj9V5V9SfC+GyOG00l650f6lG9KL+EpFEWQ==", + "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": ">=10" + "node": ">=14.0.0" } }, "node_modules/@google-cloud/promisify": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-2.0.4.tgz", - "integrity": "sha512-j8yRSSqswWi1QqUGKVEKOG03Q7qOoZP6/h2zN2YO+F5h2+DHU0bSrHCK9Y7lo2DI9fBd8qGAw795sf+3Jva4yA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-5.0.0.tgz", + "integrity": "sha512-N8qS6dlORGHwk7WjGXKOSsLjIjNINCPicsOX6gyyLiYk7mq3MtII96NZ9N2ahwA2vnkLmZODOIH9rlNniYWvCQ==", "license": "Apache-2.0", "engines": { - "node": ">=10" + "node": ">=18" } }, "node_modules/@google-cloud/secret-manager": { @@ -12428,41 +12410,42 @@ } }, "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/projectify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-3.0.0.tgz", - "integrity": "sha512-HRkZsNmjScY6Li8/kb70wjGlDDyLkVk3KvoEo9uIoxSjYLJasGiCch9+PqRVDOCGUFvEIqyogl+BeqILL4OJHA==", + "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": ">=12.0.0" + "node": ">=14.0.0" } }, "node_modules/@google-cloud/storage/node_modules/@google-cloud/promisify": { @@ -12474,66 +12457,99 @@ "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==", + "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": ">= 14" + } + }, + "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": { + "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": { - "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" - }, - "engines": { - "node": ">=12" - } - }, - "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", - "license": "MIT", - "dependencies": { - "node-forge": "^1.3.1" - }, - "bin": { - "gp12-pem": "build/src/bin/gp12-pem.js" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "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==", - "license": "MIT", - "dependencies": { - "gaxios": "^5.0.1", - "google-p12-pem": "^4.0.0", + "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": { @@ -12549,32 +12565,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": { @@ -12599,12 +12616,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", @@ -15785,7 +15796,6 @@ "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, "optional": true, "engines": { "node": ">=14" @@ -26534,6 +26544,15 @@ "resolved": "https://registry.npmjs.org/dasherize/-/dasherize-2.0.0.tgz", "integrity": "sha1-bYCcnNDPe7iVLYD8hPoT1H3bEwg=" }, + "node_modules/data-uri-to-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, "node_modules/data-urls": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", @@ -27683,27 +27702,6 @@ "integrity": "sha512-Dxe+mVF4MupV6eueWiFa6hUd9OL9lIM2/LqR40k1P+dwG+G2il2UigXTU9aQlaw+Y/N0BKSaTofNw73htTbC5g==", "dev": true }, - "node_modules/ent": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.2.tgz", - "integrity": "sha512-kKvD1tO6BM+oK9HzCPpUdRb4vKFQY/FPTFmurMvh6LlN68VMrdj77w8yp51/kDbpkFOS9J8w5W6zIzgM2H8/hw==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "punycode": "^1.4.1", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ent/node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", - "license": "MIT" - }, "node_modules/entities": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", @@ -29963,21 +29961,18 @@ "dev": true }, "node_modules/fast-xml-parser": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.5.tgz", - "integrity": "sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==", + "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": "paypal", - "url": "https://paypal.me/naturalintelligence" - }, { "type": "github", "url": "https://github.com/sponsors/NaturalIntelligence" } ], + "license": "MIT", "dependencies": { - "strnum": "^1.0.5" + "strnum": "^1.1.1" }, "bin": { "fxparser": "src/cli/cli.js" @@ -30087,6 +30082,38 @@ "node": ">=4.0.0" } }, + "node_modules/fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, + "node_modules/fetch-blob/node_modules/web-streams-polyfill": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, "node_modules/fetch-mock": { "version": "12.6.0", "resolved": "https://registry.npmjs.org/fetch-mock/-/fetch-mock-12.6.0.tgz", @@ -30695,6 +30722,18 @@ "node": ">= 12.20" } }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "license": "MIT", + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, "node_modules/formik": { "version": "2.2.9", "resolved": "https://registry.npmjs.org/formik/-/formik-2.2.9.tgz", @@ -31141,7 +31180,6 @@ "version": "10.5.0", "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", - "dev": true, "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", @@ -31228,7 +31266,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" @@ -31238,7 +31275,6 @@ "version": "3.3.1", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", - "dev": true, "license": "ISC", "dependencies": { "cross-spawn": "^7.0.6", @@ -31255,7 +31291,6 @@ "version": "9.0.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" @@ -31271,7 +31306,6 @@ "version": "7.1.2", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" @@ -31281,7 +31315,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, "license": "ISC", "engines": { "node": ">=14" @@ -31432,71 +31465,115 @@ "dev": true }, "node_modules/google-auth-library": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.14.1.tgz", - "integrity": "sha512-5Rk7iLNDFhFeBYc3s8l1CqzbEBcdhwR193RlD4vSNFajIcINKI8W8P0JLmBpwymHqqWbX34pJDQu39cSy/6RsA==", + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-10.5.0.tgz", + "integrity": "sha512-7ABviyMOlX5hIVD60YOfHw4/CxOfBhyduaYB+wbFWCWoni4N7SLcV46hrVRktuBbZjFC9ONyqamZITN7q3n32w==", "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": "^4.0.0", - "gcp-metadata": "^4.2.0", - "gtoken": "^5.0.4", - "jws": "^4.0.0", - "lru-cache": "^6.0.0" + "gaxios": "^7.0.0", + "gcp-metadata": "^8.0.0", + "google-logging-utils": "^1.0.0", + "gtoken": "^8.0.0", + "jws": "^4.0.0" }, "engines": { - "node": ">=10" + "node": ">=18" + } + }, + "node_modules/google-auth-library/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": ">= 14" } }, "node_modules/google-auth-library/node_modules/gaxios": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-4.3.3.tgz", - "integrity": "sha512-gSaYYIO1Y3wUtdfHmjDUZ8LWaxJQpiavzbF5Kq53akSzvmVg0RfyOcFDbO1KJ/KCGRFz2qG+lS81F0nkr7cRJA==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-7.1.3.tgz", + "integrity": "sha512-YGGyuEdVIjqxkxVH1pUTMY/XtmmsApXrCVv5EU25iX6inEPbV+VakJfLealkBtJN69AQmh1eGOdCl9Sm1UP6XQ==", "license": "Apache-2.0", "dependencies": { - "abort-controller": "^3.0.0", "extend": "^3.0.2", - "https-proxy-agent": "^5.0.0", - "is-stream": "^2.0.0", - "node-fetch": "^2.6.7" + "https-proxy-agent": "^7.0.1", + "node-fetch": "^3.3.2", + "rimraf": "^5.0.1" }, "engines": { - "node": ">=10" + "node": ">=18" } }, "node_modules/google-auth-library/node_modules/gcp-metadata": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-4.3.1.tgz", - "integrity": "sha512-x850LS5N7V1F3UcV7PoupzGsyD6iVwTVvsh3tbXfkctZnBnjW5yu5z1/3k3SehF7TyoTIe78rJs02GMMy+LF+A==", + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-8.1.2.tgz", + "integrity": "sha512-zV/5HKTfCeKWnxG0Dmrw51hEWFGfcF2xiXqcA3+J90WDuP0SvoiSO5ORvcBsifmx/FoIjgQN3oNOGaQ5PhLFkg==", "license": "Apache-2.0", "dependencies": { - "gaxios": "^4.0.0", + "gaxios": "^7.0.0", + "google-logging-utils": "^1.0.0", "json-bigint": "^1.0.0" }, "engines": { - "node": ">=10" + "node": ">=18" } }, - "node_modules/google-auth-library/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-auth-library/node_modules/google-logging-utils": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/google-logging-utils/-/google-logging-utils-1.1.3.tgz", + "integrity": "sha512-eAmLkjDjAFCVXg7A1unxHsLf961m6y17QFqXqAXGj/gVkKFrEICfStRfwUlGNfeCEjNRa32JEWOUTlYXPyyKvA==", + "license": "Apache-2.0", + "engines": { + "node": ">=14" + } + }, + "node_modules/google-auth-library/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": { - "yallist": "^4.0.0" + "agent-base": "^7.1.2", + "debug": "4" }, "engines": { - "node": ">=10" + "node": ">= 14" } }, - "node_modules/google-auth-library/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/google-auth-library/node_modules/node-fetch": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "license": "MIT", + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, + "node_modules/google-auth-library/node_modules/rimraf": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", + "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", + "license": "ISC", + "dependencies": { + "glob": "^10.3.7" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, "node_modules/google-gax": { "version": "4.6.1", @@ -31713,22 +31790,6 @@ "node": ">=14" } }, - "node_modules/google-p12-pem": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.1.4.tgz", - "integrity": "sha512-HHuHmkLgwjdmVRngf5+gSmpkyaRI6QmOg77J8tkNBHhNEI62sGHyw4/+UkgyZEI7h84NbWprXDJ+sa3xOYFvTg==", - "deprecated": "Package is no longer maintained", - "license": "MIT", - "dependencies": { - "node-forge": "^1.3.1" - }, - "bin": { - "gp12-pem": "build/src/bin/gp12-pem.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/googleapis": { "version": "118.0.0", "resolved": "https://registry.npmjs.org/googleapis/-/googleapis-118.0.0.tgz", @@ -31942,33 +32003,86 @@ } }, "node_modules/gtoken": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-5.3.2.tgz", - "integrity": "sha512-gkvEKREW7dXWF8NV8pVrKfW7WqReAmjjkMBh6lNCCGOM4ucS0r0YyXXl0r/9Yj8wcW/32ISkfc8h5mPTDbtifQ==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-8.0.0.tgz", + "integrity": "sha512-+CqsMbHPiSTdtSO14O51eMNlrp9N79gmeqmXeouJOhfucAedHw9noVe/n5uJk3tbKE6a+6ZCQg3RPhVhHByAIw==", "license": "MIT", "dependencies": { - "gaxios": "^4.0.0", - "google-p12-pem": "^3.1.3", + "gaxios": "^7.0.0", "jws": "^4.0.0" }, "engines": { - "node": ">=10" + "node": ">=18" + } + }, + "node_modules/gtoken/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": ">= 14" } }, "node_modules/gtoken/node_modules/gaxios": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-4.3.3.tgz", - "integrity": "sha512-gSaYYIO1Y3wUtdfHmjDUZ8LWaxJQpiavzbF5Kq53akSzvmVg0RfyOcFDbO1KJ/KCGRFz2qG+lS81F0nkr7cRJA==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-7.1.3.tgz", + "integrity": "sha512-YGGyuEdVIjqxkxVH1pUTMY/XtmmsApXrCVv5EU25iX6inEPbV+VakJfLealkBtJN69AQmh1eGOdCl9Sm1UP6XQ==", "license": "Apache-2.0", "dependencies": { - "abort-controller": "^3.0.0", "extend": "^3.0.2", - "https-proxy-agent": "^5.0.0", - "is-stream": "^2.0.0", - "node-fetch": "^2.6.7" + "https-proxy-agent": "^7.0.1", + "node-fetch": "^3.3.2", + "rimraf": "^5.0.1" }, "engines": { - "node": ">=10" + "node": ">=18" + } + }, + "node_modules/gtoken/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": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/gtoken/node_modules/node-fetch": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "license": "MIT", + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, + "node_modules/gtoken/node_modules/rimraf": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", + "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", + "license": "ISC", + "dependencies": { + "glob": "^10.3.7" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/gulp-sort": { @@ -33967,15 +34081,6 @@ "node": ">= 0.10" } }, - "node_modules/is": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/is/-/is-3.3.2.tgz", - "integrity": "sha512-a2xr4E3s1PjDS8ORcGgXpWx6V+liNs+O3JRD2mb9aeugD7rtkkZ0zgLdYgw0tWsKhsdiezGYptSiMlVazCBTuQ==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, "node_modules/is-absolute-url": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", @@ -34994,7 +35099,6 @@ "version": "3.4.3", "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dev": true, "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" @@ -39991,21 +40095,6 @@ "@oxc-resolver/binding-win32-x64-msvc": "11.8.4" } }, - "node_modules/p-event": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz", - "integrity": "sha512-KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==", - "license": "MIT", - "dependencies": { - "p-timeout": "^3.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", @@ -40583,7 +40672,6 @@ "version": "1.11.1", "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dev": true, "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" @@ -40599,7 +40687,6 @@ "version": "10.2.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", - "dev": true, "engines": { "node": "14 || >=16.14" } @@ -40608,7 +40695,6 @@ "version": "7.0.4", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", - "dev": true, "engines": { "node": ">=16 || 14 >=14.17" } @@ -44871,16 +44957,16 @@ "license": "MIT" }, "node_modules/retry-request": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-4.2.2.tgz", - "integrity": "sha512-xA93uxUD/rogV7BV59agW/JHPGXeREMWiZc9jhcwY4YdZ7QOtC7qbomYg0n4wyk2lJhggjvKvhNX8wln/Aldhg==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-8.0.2.tgz", + "integrity": "sha512-JzFPAfklk1kjR1w76f0QOIhoDkNkSqW8wYKT08n9yysTmZfB+RQ2QoXoTAeOi1HD9ZipTyTAZg3c4pM/jeqgSw==", "license": "MIT", "dependencies": { - "debug": "^4.1.1", - "extend": "^3.0.2" + "extend": "^3.0.2", + "teeny-request": "^10.0.0" }, "engines": { - "node": ">=8.10.0" + "node": ">=18" } }, "node_modules/reusify": { @@ -47284,9 +47370,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", @@ -48295,28 +48388,36 @@ } }, "node_modules/teeny-request": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-7.2.0.tgz", - "integrity": "sha512-SyY0pek1zWsi0LRVAALem+avzMLc33MKW/JLLakdP4s9+D7+jHcy5x6P+h94g2QNZsAqQNfX5lsbd3WSeJXrrw==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-10.1.0.tgz", + "integrity": "sha512-3ZnLvgWF29jikg1sAQ1g0o+lr5JX6sVgYvfUJazn7ZjJroDBUTWp44/+cFVX0bULjv4vci+rBD+oGVAkWqhUbw==", "license": "Apache-2.0", "dependencies": { "http-proxy-agent": "^5.0.0", "https-proxy-agent": "^5.0.0", - "node-fetch": "^2.6.1", - "stream-events": "^1.0.5", - "uuid": "^8.0.0" + "node-fetch": "^3.3.2", + "stream-events": "^1.0.5" }, "engines": { - "node": ">=10" + "node": ">=18" } }, - "node_modules/teeny-request/node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "node_modules/teeny-request/node_modules/node-fetch": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" } }, "node_modules/teex": { @@ -53000,8 +53101,8 @@ "name": "@overleaf/analytics", "dependencies": { "@customerio/cdp-analytics-node": "^0.3.0", - "@google-cloud/bigquery": "^5.9.0", - "@google-cloud/storage": "^6.10.1", + "@google-cloud/bigquery": "^8.1.1", + "@google-cloud/storage": "^7.18.0", "@overleaf/fetch-utils": "*", "@overleaf/logger": "*", "@overleaf/metrics": "*", @@ -53518,7 +53619,7 @@ "services/clsi-perf": { "name": "@overleaf/clsi-perf", "dependencies": { - "@google-cloud/bigquery": "^5.6.0", + "@google-cloud/bigquery": "^8.1.1", "@overleaf/fetch-utils": "*", "@overleaf/logger": "*", "@overleaf/o-error": "*", @@ -54616,7 +54717,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", @@ -55089,7 +55190,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", @@ -58435,8 +58536,8 @@ "@contentful/rich-text-html-renderer": "^16.0.2", "@contentful/rich-text-types": "^16.0.2", "@customerio/cdp-analytics-node": "^0.3.9", - "@google-cloud/bigquery": "^6.0.1", - "@google-cloud/storage": "^6.10.1", + "@google-cloud/bigquery": "^8.1.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": "*", @@ -59217,79 +59318,6 @@ "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, - "services/web/node_modules/@google-cloud/bigquery": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@google-cloud/bigquery/-/bigquery-6.2.1.tgz", - "integrity": "sha512-C/tcM3jQ3RU8pKHHxj702ouIfGZ9GAQ5U+ZpvS/o4B3yWtqmnG3TITL5oRnzDjEKeMTNu5C6z3/nFtix3GKlqA==", - "license": "Apache-2.0", - "dependencies": { - "@google-cloud/common": "^4.0.0", - "@google-cloud/paginator": "^4.0.0", - "@google-cloud/precise-date": "^3.0.1", - "@google-cloud/promisify": "^3.0.0", - "arrify": "^2.0.1", - "big.js": "^6.0.0", - "duplexify": "^4.0.0", - "extend": "^3.0.2", - "is": "^3.3.0", - "stream-events": "^1.0.5", - "uuid": "^9.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "services/web/node_modules/@google-cloud/common": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-4.0.3.tgz", - "integrity": "sha512-fUoMo5b8iAKbrYpneIRV3z95AlxVJPrjpevxs4SKoclngWZvTXBSGpNisF5+x5m+oNGve7jfB1e6vNBZBUs7Fw==", - "license": "Apache-2.0", - "dependencies": { - "@google-cloud/projectify": "^3.0.0", - "@google-cloud/promisify": "^3.0.0", - "arrify": "^2.0.1", - "duplexify": "^4.1.1", - "ent": "^2.2.0", - "extend": "^3.0.2", - "google-auth-library": "^8.0.2", - "retry-request": "^5.0.0", - "teeny-request": "^8.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "services/web/node_modules/@google-cloud/paginator": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@google-cloud/paginator/-/paginator-4.0.1.tgz", - "integrity": "sha512-6G1ui6bWhNyHjmbYwavdN7mpVPRBtyDg/bfqBTAlwr413On2TnFNfDxc9UhTJctkgoCDgQXEKiRPLPR9USlkbQ==", - "license": "Apache-2.0", - "dependencies": { - "arrify": "^2.0.0", - "extend": "^3.0.2" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "services/web/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==", - "license": "Apache-2.0", - "engines": { - "node": ">=12.0.0" - } - }, - "services/web/node_modules/@google-cloud/promisify": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-3.0.1.tgz", - "integrity": "sha512-z1CjRjtQyBOYL+5Qr9DdYIfrdLBe746jRTYfaYU6MeXkqp7UfYs/jX16lFFVzZ7PGEJvqZNqYUEtb1mvDww4pA==", - "license": "Apache-2.0", - "engines": { - "node": ">=12" - } - }, "services/web/node_modules/@overleaf/dictionaries": { "version": "0.0.3", "resolved": "https://github.com/overleaf/dictionaries/archive/refs/tags/v0.0.3.tar.gz", @@ -60633,68 +60661,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "services/web/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" - }, - "engines": { - "node": ">=12" - } - }, - "services/web/node_modules/google-auth-library/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", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "services/web/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", - "license": "MIT", - "dependencies": { - "node-forge": "^1.3.1" - }, - "bin": { - "gp12-pem": "build/src/bin/gp12-pem.js" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "services/web/node_modules/gtoken": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-6.1.2.tgz", - "integrity": "sha512-4ccGpzz7YAr7lxrT2neugmXQ3hP9ho2gcaityLVkiUecAiwiy60Ii8gRbZeOsXV19fYaRjgBSshs8kXw+NKCPQ==", - "license": "MIT", - "dependencies": { - "gaxios": "^5.0.1", - "google-p12-pem": "^4.0.0", - "jws": "^4.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, "services/web/node_modules/helmet": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/helmet/-/helmet-6.0.1.tgz", @@ -61071,19 +61037,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "services/web/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==", - "license": "MIT", - "dependencies": { - "debug": "^4.1.1", - "extend": "^3.0.2" - }, - "engines": { - "node": ">=12" - } - }, "services/web/node_modules/sandboxed-module": { "version": "2.3.0", "resolved": "git+ssh://git@github.com/overleaf/node-sandboxed-module.git#cafa2d60f17ce75cc023e6f296eb8de79d92d35d", @@ -61202,47 +61155,6 @@ "node": ">=8" } }, - "services/web/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==", - "license": "Apache-2.0", - "dependencies": { - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "node-fetch": "^2.6.1", - "stream-events": "^1.0.5", - "uuid": "^9.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "services/web/node_modules/teeny-request/node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "license": "MIT", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "services/web/node_modules/teeny-request/node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "license": "MIT", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, "services/web/node_modules/tinyexec": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.2.tgz", @@ -61300,6 +61212,7 @@ "version": "9.0.1", "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "dev": true, "funding": [ "https://github.com/sponsors/broofa", "https://github.com/sponsors/ctavan" @@ -61569,12 +61482,6 @@ "node": ">=0.6.0" } }, - "services/web/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" - }, "services/web/stubs/mermaid-stub": { "name": "mermaid", "version": "11.999.999", diff --git a/patches/@google-cloud+logging++retry-request+7.0.2.patch b/patches/@google-cloud+logging++retry-request+7.0.2.patch new file mode 100644 index 0000000000..99138673c1 --- /dev/null +++ b/patches/@google-cloud+logging++retry-request+7.0.2.patch @@ -0,0 +1,30 @@ +diff --git a/node_modules/@google-cloud/logging/node_modules/retry-request/index.js b/node_modules/@google-cloud/logging/node_modules/retry-request/index.js +index 2fae107..5721c54 100644 +--- a/node_modules/@google-cloud/logging/node_modules/retry-request/index.js ++++ b/node_modules/@google-cloud/logging/node_modules/retry-request/index.js +@@ -1,6 +1,6 @@ + 'use strict'; + +-const {PassThrough} = require('stream'); ++const { PassThrough, pipeline } = require('stream'); + const extend = require('extend'); + + 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); + } +@@ -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); +- delayStream.pipe(retryStream); ++ pipeline(delayStream, retryStream, () => {}); + requestStream.on('error', err => { + retryStream.destroy(err); + }); diff --git a/patches/@google-cloud+logging++teeny-request+9.0.0.patch b/patches/@google-cloud+logging++teeny-request+9.0.0.patch new file mode 100644 index 0000000000..ce8027d89c --- /dev/null +++ b/patches/@google-cloud+logging++teeny-request+9.0.0.patch @@ -0,0 +1,58 @@ +diff --git a/node_modules/@google-cloud/logging/node_modules/teeny-request/build/src/index.js b/node_modules/@google-cloud/logging/node_modules/teeny-request/build/src/index.js +index af5d15e..2b63d0c 100644 +--- a/node_modules/@google-cloud/logging/node_modules/teeny-request/build/src/index.js ++++ b/node_modules/@google-cloud/logging/node_modules/teeny-request/build/src/index.js +@@ -115,6 +115,9 @@ function createMultipartStream(boundary, multipart) { + } + else { + part.body.pipe(stream, { end: false }); ++ part.body.on('error', (err) => { ++ stream.destroy(err); ++ }); + part.body.on('end', () => { + stream.write('\r\n'); + stream.write(finale); +@@ -168,25 +171,27 @@ function teenyRequest(reqOpts, callback) { + // Stream mode + const requestStream = streamEvents(new stream_1.PassThrough()); + // eslint-disable-next-line @typescript-eslint/no-explicit-any +- let responseStream; +- requestStream.once('reading', () => { +- if (responseStream) { +- (0, stream_1.pipeline)(responseStream, requestStream, () => { }); +- } +- else { +- requestStream.once('response', () => { +- (0, stream_1.pipeline)(responseStream, requestStream, () => { }); +- }); +- } +- }); ++ // let responseStream; ++ // requestStream.once('reading', () => { ++ // if (responseStream) { ++ // (0, stream_1.pipeline)(responseStream, requestStream, () => { }); ++ // } ++ // else { ++ // requestStream.once('response', () => { ++ // (0, stream_1.pipeline)(responseStream, requestStream, () => { }); ++ // }); ++ // } ++ // }); ++ ++ + options.compress = false; + teenyRequest.stats.requestStarting(); + (0, node_fetch_1.default)(uri, options).then(res => { +- teenyRequest.stats.requestFinished(); +- responseStream = res.body; +- responseStream.on('error', (err) => { +- requestStream.emit('error', err); +- }); ++ teenyRequest.stats.requestFinished(); stream_1.pipeline(res.body, requestStream, () => {}); ++ // responseStream = res.body; ++ // responseStream.on('error', (err) => { ++ // requestStream.emit('error', err); ++ // }); + const response = fetchToRequestResponse(options, res); + requestStream.emit('response', response); + }, err => { diff --git a/patches/@google-cloud+logging-min++retry-request+7.0.2.patch b/patches/@google-cloud+logging-min++retry-request+7.0.2.patch new file mode 100644 index 0000000000..e24ab9d924 --- /dev/null +++ b/patches/@google-cloud+logging-min++retry-request+7.0.2.patch @@ -0,0 +1,30 @@ +diff --git a/node_modules/@google-cloud/logging-min/node_modules/retry-request/index.js b/node_modules/@google-cloud/logging-min/node_modules/retry-request/index.js +index 2fae107..5721c54 100644 +--- a/node_modules/@google-cloud/logging-min/node_modules/retry-request/index.js ++++ b/node_modules/@google-cloud/logging-min/node_modules/retry-request/index.js +@@ -1,6 +1,6 @@ + 'use strict'; + +-const {PassThrough} = require('stream'); ++const { PassThrough, pipeline } = require('stream'); + const extend = require('extend'); + + 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); + } +@@ -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); +- delayStream.pipe(retryStream); ++ pipeline(delayStream, retryStream, () => {}); + requestStream.on('error', err => { + retryStream.destroy(err); + }); diff --git a/patches/@google-cloud+logging-min++teeny-request+9.0.0.patch b/patches/@google-cloud+logging-min++teeny-request+9.0.0.patch new file mode 100644 index 0000000000..6a941d3deb --- /dev/null +++ b/patches/@google-cloud+logging-min++teeny-request+9.0.0.patch @@ -0,0 +1,58 @@ +diff --git a/node_modules/@google-cloud/logging-min/node_modules/teeny-request/build/src/index.js b/node_modules/@google-cloud/logging-min/node_modules/teeny-request/build/src/index.js +index af5d15e..2b63d0c 100644 +--- a/node_modules/@google-cloud/logging-min/node_modules/teeny-request/build/src/index.js ++++ b/node_modules/@google-cloud/logging-min/node_modules/teeny-request/build/src/index.js +@@ -115,6 +115,9 @@ function createMultipartStream(boundary, multipart) { + } + else { + part.body.pipe(stream, { end: false }); ++ part.body.on('error', (err) => { ++ stream.destroy(err); ++ }); + part.body.on('end', () => { + stream.write('\r\n'); + stream.write(finale); +@@ -168,25 +171,27 @@ function teenyRequest(reqOpts, callback) { + // Stream mode + const requestStream = streamEvents(new stream_1.PassThrough()); + // eslint-disable-next-line @typescript-eslint/no-explicit-any +- let responseStream; +- requestStream.once('reading', () => { +- if (responseStream) { +- (0, stream_1.pipeline)(responseStream, requestStream, () => { }); +- } +- else { +- requestStream.once('response', () => { +- (0, stream_1.pipeline)(responseStream, requestStream, () => { }); +- }); +- } +- }); ++ // let responseStream; ++ // requestStream.once('reading', () => { ++ // if (responseStream) { ++ // (0, stream_1.pipeline)(responseStream, requestStream, () => { }); ++ // } ++ // else { ++ // requestStream.once('response', () => { ++ // (0, stream_1.pipeline)(responseStream, requestStream, () => { }); ++ // }); ++ // } ++ // }); ++ ++ + options.compress = false; + teenyRequest.stats.requestStarting(); + (0, node_fetch_1.default)(uri, options).then(res => { +- teenyRequest.stats.requestFinished(); +- responseStream = res.body; +- responseStream.on('error', (err) => { +- requestStream.emit('error', err); +- }); ++ teenyRequest.stats.requestFinished(); stream_1.pipeline(res.body, requestStream, () => {}); ++ // responseStream = res.body; ++ // responseStream.on('error', (err) => { ++ // requestStream.emit('error', err); ++ // }); + const response = fetchToRequestResponse(options, res); + requestStream.emit('response', response); + }, err => { diff --git a/patches/@google-cloud+profiler++retry-request+7.0.2.patch b/patches/@google-cloud+profiler++retry-request+7.0.2.patch new file mode 100644 index 0000000000..55708f573e --- /dev/null +++ b/patches/@google-cloud+profiler++retry-request+7.0.2.patch @@ -0,0 +1,30 @@ +diff --git a/node_modules/@google-cloud/profiler/node_modules/retry-request/index.js b/node_modules/@google-cloud/profiler/node_modules/retry-request/index.js +index 2fae107..5721c54 100644 +--- a/node_modules/@google-cloud/profiler/node_modules/retry-request/index.js ++++ b/node_modules/@google-cloud/profiler/node_modules/retry-request/index.js +@@ -1,6 +1,6 @@ + 'use strict'; + +-const {PassThrough} = require('stream'); ++const { PassThrough, pipeline } = require('stream'); + const extend = require('extend'); + + 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); + } +@@ -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); +- delayStream.pipe(retryStream); ++ pipeline(delayStream, retryStream, () => {}); + requestStream.on('error', err => { + retryStream.destroy(err); + }); diff --git a/patches/@google-cloud+profiler++teeny-request+9.0.0.patch b/patches/@google-cloud+profiler++teeny-request+9.0.0.patch new file mode 100644 index 0000000000..1feff5b6a5 --- /dev/null +++ b/patches/@google-cloud+profiler++teeny-request+9.0.0.patch @@ -0,0 +1,58 @@ +diff --git a/node_modules/@google-cloud/profiler/node_modules/teeny-request/build/src/index.js b/node_modules/@google-cloud/profiler/node_modules/teeny-request/build/src/index.js +index af5d15e..2b63d0c 100644 +--- a/node_modules/@google-cloud/profiler/node_modules/teeny-request/build/src/index.js ++++ b/node_modules/@google-cloud/profiler/node_modules/teeny-request/build/src/index.js +@@ -115,6 +115,9 @@ function createMultipartStream(boundary, multipart) { + } + else { + part.body.pipe(stream, { end: false }); ++ part.body.on('error', (err) => { ++ stream.destroy(err); ++ }); + part.body.on('end', () => { + stream.write('\r\n'); + stream.write(finale); +@@ -168,25 +171,27 @@ function teenyRequest(reqOpts, callback) { + // Stream mode + const requestStream = streamEvents(new stream_1.PassThrough()); + // eslint-disable-next-line @typescript-eslint/no-explicit-any +- let responseStream; +- requestStream.once('reading', () => { +- if (responseStream) { +- (0, stream_1.pipeline)(responseStream, requestStream, () => { }); +- } +- else { +- requestStream.once('response', () => { +- (0, stream_1.pipeline)(responseStream, requestStream, () => { }); +- }); +- } +- }); ++ // let responseStream; ++ // requestStream.once('reading', () => { ++ // if (responseStream) { ++ // (0, stream_1.pipeline)(responseStream, requestStream, () => { }); ++ // } ++ // else { ++ // requestStream.once('response', () => { ++ // (0, stream_1.pipeline)(responseStream, requestStream, () => { }); ++ // }); ++ // } ++ // }); ++ ++ + options.compress = false; + teenyRequest.stats.requestStarting(); + (0, node_fetch_1.default)(uri, options).then(res => { +- teenyRequest.stats.requestFinished(); +- responseStream = res.body; +- responseStream.on('error', (err) => { +- requestStream.emit('error', err); +- }); ++ teenyRequest.stats.requestFinished(); stream_1.pipeline(res.body, requestStream, () => {}); ++ // responseStream = res.body; ++ // responseStream.on('error', (err) => { ++ // requestStream.emit('error', err); ++ // }); + const response = fetchToRequestResponse(options, res); + requestStream.emit('response', response); + }, err => { 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 82% rename from patches/@google-cloud+storage++teeny-request+8.0.3.patch rename to patches/@google-cloud+storage++teeny-request+9.0.0.patch index eb27a5ac95..2b0e13882f 100644 --- a/patches/@google-cloud+storage++teeny-request+8.0.3.patch +++ b/patches/@google-cloud+storage++teeny-request+9.0.0.patch @@ -1,8 +1,18 @@ diff --git a/node_modules/@google-cloud/storage/node_modules/teeny-request/build/src/index.js b/node_modules/@google-cloud/storage/node_modules/teeny-request/build/src/index.js -index af5d15e..8a9bf77 100644 +index af5d15e..2b63d0c 100644 --- a/node_modules/@google-cloud/storage/node_modules/teeny-request/build/src/index.js +++ b/node_modules/@google-cloud/storage/node_modules/teeny-request/build/src/index.js -@@ -168,31 +168,34 @@ function teenyRequest(reqOpts, callback) { +@@ -115,6 +115,9 @@ function createMultipartStream(boundary, multipart) { + } + else { + part.body.pipe(stream, { end: false }); ++ part.body.on('error', (err) => { ++ stream.destroy(err); ++ }); + part.body.on('end', () => { + stream.write('\r\n'); + stream.write(finale); +@@ -168,25 +171,27 @@ function teenyRequest(reqOpts, callback) { // Stream mode const requestStream = streamEvents(new stream_1.PassThrough()); // eslint-disable-next-line @typescript-eslint/no-explicit-any @@ -46,10 +56,3 @@ index af5d15e..8a9bf77 100644 const response = fetchToRequestResponse(options, res); requestStream.emit('response', response); }, err => { - teenyRequest.stats.requestFinished(); - requestStream.emit('error', err); - }); -+ - // fetch doesn't supply the raw HTTP stream, instead it - // returns a PassThrough piped from the HTTP response - // stream. diff --git a/patches/google-gax++retry-request+7.0.2.patch b/patches/google-gax++retry-request+7.0.2.patch new file mode 100644 index 0000000000..7f4995a099 --- /dev/null +++ b/patches/google-gax++retry-request+7.0.2.patch @@ -0,0 +1,30 @@ +diff --git a/node_modules/google-gax/node_modules/retry-request/index.js b/node_modules/google-gax/node_modules/retry-request/index.js +index 2fae107..5721c54 100644 +--- a/node_modules/google-gax/node_modules/retry-request/index.js ++++ b/node_modules/google-gax/node_modules/retry-request/index.js +@@ -1,6 +1,6 @@ + 'use strict'; + +-const {PassThrough} = require('stream'); ++const { PassThrough, pipeline } = require('stream'); + const extend = require('extend'); + + 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); + } +@@ -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); +- delayStream.pipe(retryStream); ++ pipeline(delayStream, retryStream, () => {}); + requestStream.on('error', err => { + retryStream.destroy(err); + }); diff --git a/patches/google-gax++teeny-request+9.0.0.patch b/patches/google-gax++teeny-request+9.0.0.patch new file mode 100644 index 0000000000..b3939afe69 --- /dev/null +++ b/patches/google-gax++teeny-request+9.0.0.patch @@ -0,0 +1,58 @@ +diff --git a/node_modules/google-gax/node_modules/teeny-request/build/src/index.js b/node_modules/google-gax/node_modules/teeny-request/build/src/index.js +index af5d15e..2b63d0c 100644 +--- a/node_modules/google-gax/node_modules/teeny-request/build/src/index.js ++++ b/node_modules/google-gax/node_modules/teeny-request/build/src/index.js +@@ -115,6 +115,9 @@ function createMultipartStream(boundary, multipart) { + } + else { + part.body.pipe(stream, { end: false }); ++ part.body.on('error', (err) => { ++ stream.destroy(err); ++ }); + part.body.on('end', () => { + stream.write('\r\n'); + stream.write(finale); +@@ -168,25 +171,27 @@ function teenyRequest(reqOpts, callback) { + // Stream mode + const requestStream = streamEvents(new stream_1.PassThrough()); + // eslint-disable-next-line @typescript-eslint/no-explicit-any +- let responseStream; +- requestStream.once('reading', () => { +- if (responseStream) { +- (0, stream_1.pipeline)(responseStream, requestStream, () => { }); +- } +- else { +- requestStream.once('response', () => { +- (0, stream_1.pipeline)(responseStream, requestStream, () => { }); +- }); +- } +- }); ++ // let responseStream; ++ // requestStream.once('reading', () => { ++ // if (responseStream) { ++ // (0, stream_1.pipeline)(responseStream, requestStream, () => { }); ++ // } ++ // else { ++ // requestStream.once('response', () => { ++ // (0, stream_1.pipeline)(responseStream, requestStream, () => { }); ++ // }); ++ // } ++ // }); ++ ++ + options.compress = false; + teenyRequest.stats.requestStarting(); + (0, node_fetch_1.default)(uri, options).then(res => { +- teenyRequest.stats.requestFinished(); +- responseStream = res.body; +- responseStream.on('error', (err) => { +- requestStream.emit('error', err); +- }); ++ teenyRequest.stats.requestFinished(); stream_1.pipeline(res.body, requestStream, () => {}); ++ // responseStream = res.body; ++ // responseStream.on('error', (err) => { ++ // requestStream.emit('error', err); ++ // }); + const response = fetchToRequestResponse(options, res); + requestStream.emit('response', response); + }, err => { diff --git a/patches/retry-request+4.2.2.patch b/patches/retry-request+8.0.2.patch similarity index 55% rename from patches/retry-request+4.2.2.patch rename to patches/retry-request+8.0.2.patch index f3096b54d4..d5a3c40a18 100644 --- a/patches/retry-request+4.2.2.patch +++ b/patches/retry-request+8.0.2.patch @@ -1,30 +1,22 @@ diff --git a/node_modules/retry-request/index.js b/node_modules/retry-request/index.js -index 6cd6f65..39efb89 100644 +index 298a351..7ec1ef8 100644 --- a/node_modules/retry-request/index.js +++ b/node_modules/retry-request/index.js -@@ -1,6 +1,6 @@ - 'use strict'; - --var { PassThrough } = require('stream'); -+var { PassThrough, pipeline } = require('stream'); - var debug = require('debug')('retry-request'); - var extend = require('extend'); - -@@ -164,7 +164,7 @@ function retryRequest(requestOpts, opts, callback) { - }) - .on('complete', retryStream.emit.bind(retryStream, 'complete')); +@@ -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); } -@@ -220,7 +220,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); - delayStream.pipe(retryStream); + pipeline(delayStream, retryStream, () => {}); - requestStream.on('error', function (err) { + requestStream.on('error', err => { retryStream.destroy(err); }); diff --git a/patches/teeny-request+7.2.0.patch b/patches/teeny-request+10.1.0.patch similarity index 57% rename from patches/teeny-request+7.2.0.patch rename to patches/teeny-request+10.1.0.patch index 213ed046e3..82e7ee4372 100644 --- a/patches/teeny-request+7.2.0.patch +++ b/patches/teeny-request+10.1.0.patch @@ -1,45 +1,53 @@ diff --git a/node_modules/teeny-request/build/src/index.js b/node_modules/teeny-request/build/src/index.js -index f209888..e9fe982 100644 +index a101736..a87f6b9 100644 --- a/node_modules/teeny-request/build/src/index.js +++ b/node_modules/teeny-request/build/src/index.js -@@ -166,27 +166,27 @@ function teenyRequest(reqOpts, callback) { - } - if (callback === undefined) { +@@ -130,6 +130,9 @@ function createMultipartStream(boundary, multipart) { + } + else { + part.body.pipe(stream, { end: false }); ++ part.body.on('error', (err) => { ++ stream.destroy(err); ++ }); + part.body.on('end', () => { + stream.write('\r\n'); + stream.write(finale); +@@ -184,25 +187,25 @@ function teenyRequest(reqOpts, callback) { // Stream mode -- const requestStream = streamEvents(new stream_1.PassThrough()); -+ const requestStream = new stream_1.PassThrough(); + const requestStream = streamEvents(new stream_1.PassThrough()); // eslint-disable-next-line @typescript-eslint/no-explicit-any - let responseStream; - requestStream.once('reading', () => { - if (responseStream) { -- responseStream.pipe(requestStream); +- (0, stream_1.pipeline)(responseStream, requestStream, () => { }); - } - else { - requestStream.once('response', () => { -- responseStream.pipe(requestStream); +- (0, stream_1.pipeline)(responseStream, requestStream, () => { }); - }); - } - }); + // let responseStream; + // requestStream.once('reading', () => { + // if (responseStream) { -+ // responseStream.pipe(requestStream); ++ // (0, stream_1.pipeline)(responseStream, requestStream, () => { }); + // } + // else { + // requestStream.once('response', () => { -+ // responseStream.pipe(requestStream); ++ // (0, stream_1.pipeline)(responseStream, requestStream, () => { }); + // }); + // } + // }); options.compress = false; teenyRequest.stats.requestStarting(); - node_fetch_1.default(uri, options).then(res => { +- fetch(uri, options).then(res => { ++ (0, node_fetch_1.default)(uri, options).then(res => { - teenyRequest.stats.requestFinished(); - responseStream = res.body; - responseStream.on('error', (err) => { - requestStream.emit('error', err); - }); -+ teenyRequest.stats.requestFinished(); stream_1.pipeline(res.body, requestStream, () => {}); ++ teenyRequest.stats.requestFinished(); (0, stream_1.pipeline)(res.body, requestStream, () => {}); + // responseStream = res.body; + // responseStream.on('error', (err) => { + // requestStream.emit('error', err); diff --git a/services/docstore/package.json b/services/docstore/package.json index 039c1f1e3e..d397bf3f51 100644 --- a/services/docstore/package.json +++ b/services/docstore/package.json @@ -35,7 +35,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 eb3cde83cd..3b0f95bbde 100644 --- a/services/filestore/package.json +++ b/services/filestore/package.json @@ -35,7 +35,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 cc0e591950..51cc0f7ef6 100644 --- a/services/web/package.json +++ b/services/web/package.json @@ -78,8 +78,8 @@ "@contentful/rich-text-html-renderer": "^16.0.2", "@contentful/rich-text-types": "^16.0.2", "@customerio/cdp-analytics-node": "^0.3.9", - "@google-cloud/bigquery": "^6.0.1", - "@google-cloud/storage": "^6.10.1", + "@google-cloud/bigquery": "^8.1.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": "*",