From ba2140dacacc4fa5d77fb9b970cc1f2932b80eeb Mon Sep 17 00:00:00 2001 From: Daniel Bruce Date: Tue, 4 Aug 2026 14:54:58 -0400 Subject: [PATCH 01/12] chore: add script to update core library dependencies --- update-core-deps2.js | 115 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 update-core-deps2.js diff --git a/update-core-deps2.js b/update-core-deps2.js new file mode 100644 index 000000000000..3ad5631641ba --- /dev/null +++ b/update-core-deps2.js @@ -0,0 +1,115 @@ +import fs from 'fs'; +import path from 'path'; +import glob from 'glob'; +import cp from 'child_process'; +import { fileURLToPath } from 'url'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); + +// 1. Identify all core libraries and generated packages +const targetLibraries = {}; + +function scanDirForPackages(baseDir) { + if (!fs.existsSync(baseDir)) return; + const dirs = fs.readdirSync(baseDir).filter(f => fs.statSync(path.join(baseDir, f)).isDirectory()); + for (const dir of dirs) { + let pkgJsonPath = path.join(baseDir, dir, 'package.json'); + if (fs.existsSync(pkgJsonPath)) { + const pkg = JSON.parse(fs.readFileSync(pkgJsonPath, 'utf8')); + if (pkg.name && !pkg.private) targetLibraries[pkg.name] = null; + } + const subDirs = fs.readdirSync(path.join(baseDir, dir)).filter(f => fs.statSync(path.join(baseDir, dir, f)).isDirectory()); + for (const subDir of subDirs) { + pkgJsonPath = path.join(baseDir, dir, subDir, 'package.json'); + if (fs.existsSync(pkgJsonPath)) { + const pkg = JSON.parse(fs.readFileSync(pkgJsonPath, 'utf8')); + if (pkg.name && !pkg.private) targetLibraries[pkg.name] = null; + } + } + } +} + +scanDirForPackages('core'); +scanDirForPackages('packages'); + +console.log(`Found ${Object.keys(targetLibraries).length} target libraries. Fetching latest versions...`); + +// 2. Fetch latest versions +for (const lib of Object.keys(targetLibraries)) { + try { + const version = cp.execSync(`npm show ${lib} version`, { encoding: 'utf8' }).trim(); + targetLibraries[lib] = `^${version}`; + console.log(`Latest version for ${lib} is ${targetLibraries[lib]}`); + } catch (e) { + console.error(`Failed to fetch version for ${lib}`); + delete targetLibraries[lib]; + } +} + +// 3. Update all core packages +const searchPatterns = [ + 'core/*/package.json', + 'core/*/samples/package.json', + 'core/packages/*/package.json', + 'core/packages/*/samples/package.json' +]; + +let updatedCount = 0; + +for (const pattern of searchPatterns) { + const files = glob.sync(pattern, { cwd: __dirname }); + + for (const relPath of files) { + const filePath = path.join(__dirname, relPath); + if (!fs.existsSync(filePath)) continue; + + try { + const content = fs.readFileSync(filePath, 'utf8'); + const pkg = JSON.parse(content); + let modified = false; + + // Update engines.node + if (pkg.engines && pkg.engines.node) { + if (pkg.engines.node !== '>=22') { + pkg.engines.node = '>=22'; + modified = true; + } + } else { + pkg.engines = pkg.engines || {}; + pkg.engines.node = '>=22'; + modified = true; + } + + // Update dependencies + if (pkg.dependencies) { + for (const [lib, version] of Object.entries(targetLibraries)) { + if (pkg.dependencies[lib] && pkg.dependencies[lib] !== version) { + console.log(`Updating ${lib} in ${relPath}: ${pkg.dependencies[lib]} -> ${version}`); + pkg.dependencies[lib] = version; + modified = true; + } + } + } + + if (pkg.devDependencies) { + for (const [lib, version] of Object.entries(targetLibraries)) { + if (pkg.devDependencies[lib] && pkg.devDependencies[lib] !== version) { + console.log(`Updating dev dependency ${lib} in ${relPath}: ${pkg.devDependencies[lib]} -> ${version}`); + pkg.devDependencies[lib] = version; + modified = true; + } + } + } + + if (modified) { + fs.writeFileSync(filePath, JSON.stringify(pkg, null, 2) + '\n', 'utf8'); + updatedCount++; + } + } catch (e) { + console.error(`Error updating ${filePath}:`, e); + } + } +} + +console.log(`Finished updating ${updatedCount} files.`); From 563b967beb1cccdc4e964d89a29e8c50eabb7e1e Mon Sep 17 00:00:00 2001 From: Daniel Bruce Date: Tue, 4 Aug 2026 14:54:58 -0400 Subject: [PATCH 02/12] Revert "chore: add script to update core library dependencies" This reverts commit ba2140dacacc4fa5d77fb9b970cc1f2932b80eeb. --- update-core-deps2.js | 115 ------------------------------------------- 1 file changed, 115 deletions(-) delete mode 100644 update-core-deps2.js diff --git a/update-core-deps2.js b/update-core-deps2.js deleted file mode 100644 index 3ad5631641ba..000000000000 --- a/update-core-deps2.js +++ /dev/null @@ -1,115 +0,0 @@ -import fs from 'fs'; -import path from 'path'; -import glob from 'glob'; -import cp from 'child_process'; -import { fileURLToPath } from 'url'; - -const __filename = fileURLToPath(import.meta.url); -const __dirname = path.dirname(__filename); - -// 1. Identify all core libraries and generated packages -const targetLibraries = {}; - -function scanDirForPackages(baseDir) { - if (!fs.existsSync(baseDir)) return; - const dirs = fs.readdirSync(baseDir).filter(f => fs.statSync(path.join(baseDir, f)).isDirectory()); - for (const dir of dirs) { - let pkgJsonPath = path.join(baseDir, dir, 'package.json'); - if (fs.existsSync(pkgJsonPath)) { - const pkg = JSON.parse(fs.readFileSync(pkgJsonPath, 'utf8')); - if (pkg.name && !pkg.private) targetLibraries[pkg.name] = null; - } - const subDirs = fs.readdirSync(path.join(baseDir, dir)).filter(f => fs.statSync(path.join(baseDir, dir, f)).isDirectory()); - for (const subDir of subDirs) { - pkgJsonPath = path.join(baseDir, dir, subDir, 'package.json'); - if (fs.existsSync(pkgJsonPath)) { - const pkg = JSON.parse(fs.readFileSync(pkgJsonPath, 'utf8')); - if (pkg.name && !pkg.private) targetLibraries[pkg.name] = null; - } - } - } -} - -scanDirForPackages('core'); -scanDirForPackages('packages'); - -console.log(`Found ${Object.keys(targetLibraries).length} target libraries. Fetching latest versions...`); - -// 2. Fetch latest versions -for (const lib of Object.keys(targetLibraries)) { - try { - const version = cp.execSync(`npm show ${lib} version`, { encoding: 'utf8' }).trim(); - targetLibraries[lib] = `^${version}`; - console.log(`Latest version for ${lib} is ${targetLibraries[lib]}`); - } catch (e) { - console.error(`Failed to fetch version for ${lib}`); - delete targetLibraries[lib]; - } -} - -// 3. Update all core packages -const searchPatterns = [ - 'core/*/package.json', - 'core/*/samples/package.json', - 'core/packages/*/package.json', - 'core/packages/*/samples/package.json' -]; - -let updatedCount = 0; - -for (const pattern of searchPatterns) { - const files = glob.sync(pattern, { cwd: __dirname }); - - for (const relPath of files) { - const filePath = path.join(__dirname, relPath); - if (!fs.existsSync(filePath)) continue; - - try { - const content = fs.readFileSync(filePath, 'utf8'); - const pkg = JSON.parse(content); - let modified = false; - - // Update engines.node - if (pkg.engines && pkg.engines.node) { - if (pkg.engines.node !== '>=22') { - pkg.engines.node = '>=22'; - modified = true; - } - } else { - pkg.engines = pkg.engines || {}; - pkg.engines.node = '>=22'; - modified = true; - } - - // Update dependencies - if (pkg.dependencies) { - for (const [lib, version] of Object.entries(targetLibraries)) { - if (pkg.dependencies[lib] && pkg.dependencies[lib] !== version) { - console.log(`Updating ${lib} in ${relPath}: ${pkg.dependencies[lib]} -> ${version}`); - pkg.dependencies[lib] = version; - modified = true; - } - } - } - - if (pkg.devDependencies) { - for (const [lib, version] of Object.entries(targetLibraries)) { - if (pkg.devDependencies[lib] && pkg.devDependencies[lib] !== version) { - console.log(`Updating dev dependency ${lib} in ${relPath}: ${pkg.devDependencies[lib]} -> ${version}`); - pkg.devDependencies[lib] = version; - modified = true; - } - } - } - - if (modified) { - fs.writeFileSync(filePath, JSON.stringify(pkg, null, 2) + '\n', 'utf8'); - updatedCount++; - } - } catch (e) { - console.error(`Error updating ${filePath}:`, e); - } - } -} - -console.log(`Finished updating ${updatedCount} files.`); From 63b0f0001baf42c7c375eb3b9fc2eec34de35f02 Mon Sep 17 00:00:00 2001 From: Daniel Bruce Date: Tue, 4 Aug 2026 15:02:48 -0400 Subject: [PATCH 03/12] Upgrade the core package dependencies to their latest version --- core/common/package.json | 14 +++++++------- core/help/package.json | 3 +++ core/packages/gapic-node-processing/package.json | 2 +- core/packages/gax/package.json | 14 +++++++------- core/packages/gax/samples/package.json | 2 +- core/packages/gcp-metadata/package.json | 10 +++++----- core/packages/gcp-metadata/samples/package.json | 2 +- .../google-auth-library-nodejs/package.json | 10 +++++----- .../samples/package.json | 6 +++--- core/packages/logging-utils/samples/package.json | 4 ++-- .../packages/nodejs-googleapis-common/package.json | 10 +++++----- .../nodejs-googleapis-common/samples/package.json | 2 +- core/packages/nodejs-proto-files/package.json | 4 ++-- .../nodejs-proto-files/samples/package.json | 2 +- .../proto3-json-serializer-nodejs/package.json | 8 ++++---- .../samples/package.json | 4 ++-- core/packages/retry-request/package.json | 6 +++--- core/packages/teeny-request/package.json | 4 ++-- core/packages/tools/package.json | 4 ++-- core/paginator/package.json | 4 ++-- core/projectify/package.json | 4 ++-- core/promisify/package.json | 4 ++-- 22 files changed, 63 insertions(+), 60 deletions(-) diff --git a/core/common/package.json b/core/common/package.json index 13d0570b3299..6dda729b1e4e 100644 --- a/core/common/package.json +++ b/core/common/package.json @@ -34,15 +34,15 @@ "precompile": "gts clean" }, "dependencies": { - "@google-cloud/projectify": "^4.0.0", - "@google-cloud/promisify": "^4.0.0", + "@google-cloud/projectify": "^6.0.0", + "@google-cloud/promisify": "^6.0.0", "arrify": "^2.0.0", "duplexify": "^4.1.3", "extend": "^3.0.2", - "google-auth-library": "^10.6.2", + "google-auth-library": "^11.0.0", "html-entities": "^2.5.2", - "retry-request": "^8.0.0", - "teeny-request": "^10.0.0" + "retry-request": "^9.0.0", + "teeny-request": "^11.0.0" }, "devDependencies": { "@types/ent": "^2.2.8", @@ -59,8 +59,8 @@ "codecov": "^3.8.3", "gts": "^6.0.2", "jsdoc": "^4.0.4", - "jsdoc-fresh": "^3.0.0", - "jsdoc-region-tag": "^3.0.0", + "jsdoc-fresh": "^6.0.0", + "jsdoc-region-tag": "^5.0.0", "mocha": "^11.1.0", "mv": "^2.1.1", "ncp": "^2.0.0", diff --git a/core/help/package.json b/core/help/package.json index 76316e1768de..3db87c4b4e73 100644 --- a/core/help/package.json +++ b/core/help/package.json @@ -5,5 +5,8 @@ "test": "echo 'no unit tests'", "system-test": "echo 'no system tests'", "samples-test": "echo 'no samples test'" + }, + "engines": { + "node": ">=22" } } diff --git a/core/packages/gapic-node-processing/package.json b/core/packages/gapic-node-processing/package.json index bbdb7a05e1d6..cff475c887f5 100644 --- a/core/packages/gapic-node-processing/package.json +++ b/core/packages/gapic-node-processing/package.json @@ -33,7 +33,7 @@ "@types/yargs": "^17.0.33", "c8": "^10.1.3", "cross-env": "^7.0.3", - "gapic-tools": "^1.0.0", + "gapic-tools": "^2.0.0", "gts": "^6.0.2", "mocha": "^11.1.0", "sinon": "21.0.3", diff --git a/core/packages/gax/package.json b/core/packages/gax/package.json index 3bffc24a55e1..b9499e98bc2a 100644 --- a/core/packages/gax/package.json +++ b/core/packages/gax/package.json @@ -13,13 +13,13 @@ "@grpc/grpc-js": "^1.12.6", "@grpc/proto-loader": "^0.8.0", "duplexify": "^4.1.3", - "google-auth-library": "10.5.0", - "google-logging-utils": "1.1.3", + "google-auth-library": "^11.0.0", + "google-logging-utils": "^2.0.0", "node-fetch": "^3.3.2", "object-hash": "^3.0.0", - "proto3-json-serializer": "3.0.4", + "proto3-json-serializer": "^4.0.0", "protobufjs": "^7.5.4", - "retry-request": "^8.0.2" + "retry-request": "^9.0.0" }, "devDependencies": { "@babel/plugin-proposal-private-methods": "^7.18.6", @@ -35,12 +35,12 @@ "codecov": "^3.8.3", "execa": "^5.0.0", "glob": "10.5.0", - "google-proto-files": "5.0.1", + "google-proto-files": "^6.0.0", "gts": "^6.0.2", "jackspeak": "^3.0.2", "jsdoc": "^4.0.4", - "jsdoc-fresh": "^5.0.0", - "jsdoc-region-tag": "^4.0.0", + "jsdoc-fresh": "^6.0.0", + "jsdoc-region-tag": "^5.0.0", "long": "^5.2.4", "lru-cache": "^10.0.0", "mkdirp": "^3.0.1", diff --git a/core/packages/gax/samples/package.json b/core/packages/gax/samples/package.json index 08e74abd161b..cdbe0e2d4710 100644 --- a/core/packages/gax/samples/package.json +++ b/core/packages/gax/samples/package.json @@ -3,7 +3,7 @@ "license": "Apache-2.0", "author": "Google LLC", "engines": { - "node": ">=18" + "node": ">=22" }, "repository": "googleapis/google-cloud-node", "private": true, diff --git a/core/packages/gcp-metadata/package.json b/core/packages/gcp-metadata/package.json index 8b26fc8f3ae1..9a935aee8ba5 100644 --- a/core/packages/gcp-metadata/package.json +++ b/core/packages/gcp-metadata/package.json @@ -40,12 +40,12 @@ "author": "Google LLC", "license": "Apache-2.0", "dependencies": { - "gaxios": "^7.1.3", - "google-logging-utils": "1.1.3", + "gaxios": "^7.3.0", + "google-logging-utils": "^2.0.0", "json-bigint": "^1.0.0" }, "devDependencies": { - "@google-cloud/functions": "^4.0.0", + "@google-cloud/functions": "^4.2.2", "@types/json-bigint": "^1.0.4", "@types/mocha": "^10.0.10", "@types/ncp": "^2.0.8", @@ -58,8 +58,8 @@ "gcbuild": "^1.3.39", "gts": "^6.0.2", "jsdoc": "^4.0.4", - "jsdoc-fresh": "^5.0.0", - "jsdoc-region-tag": "^4.0.0", + "jsdoc-fresh": "^6.0.0", + "jsdoc-region-tag": "^5.0.0", "mocha": "^11.1.0", "ncp": "^2.0.0", "nock": "^14.0.5", diff --git a/core/packages/gcp-metadata/samples/package.json b/core/packages/gcp-metadata/samples/package.json index 5790a1b71927..508e9c83d59d 100644 --- a/core/packages/gcp-metadata/samples/package.json +++ b/core/packages/gcp-metadata/samples/package.json @@ -3,7 +3,7 @@ "license": "Apache-2.0", "author": "Google LLC", "engines": { - "node": ">=18" + "node": ">=22" }, "files": [ "*.js" diff --git a/core/packages/google-auth-library-nodejs/package.json b/core/packages/google-auth-library-nodejs/package.json index 7cb8ad627747..acecc4b8f887 100644 --- a/core/packages/google-auth-library-nodejs/package.json +++ b/core/packages/google-auth-library-nodejs/package.json @@ -23,9 +23,9 @@ "dependencies": { "base64-js": "^1.3.0", "ecdsa-sig-formatter": "^1.0.11", - "gaxios": "^7.1.4", - "gcp-metadata": "8.1.2", - "google-logging-utils": "1.1.3", + "gaxios": "^7.3.0", + "gcp-metadata": "^9.0.0", + "google-logging-utils": "^2.0.0", "jws": "^4.0.0" }, "devDependencies": { @@ -42,8 +42,8 @@ "gts": "^6.0.2", "is-docker": "^3.0.0", "jsdoc": "^4.0.4", - "jsdoc-fresh": "^5.0.0", - "jsdoc-region-tag": "^4.0.0", + "jsdoc-fresh": "^6.0.0", + "jsdoc-region-tag": "^5.0.0", "karma": "^6.0.0", "karma-chrome-launcher": "^3.0.0", "karma-coverage": "^2.0.0", diff --git a/core/packages/google-auth-library-nodejs/samples/package.json b/core/packages/google-auth-library-nodejs/samples/package.json index 553ac8dd82d2..16a024a677aa 100644 --- a/core/packages/google-auth-library-nodejs/samples/package.json +++ b/core/packages/google-auth-library-nodejs/samples/package.json @@ -9,17 +9,17 @@ "test": "mocha --timeout 60000" }, "engines": { - "node": ">=18" + "node": ">=22" }, "license": "Apache-2.0", "dependencies": { - "@google-cloud/language": "^7.0.0", + "@google-cloud/language": "^7.2.3", "@google-cloud/storage": "^7.0.0", "@aws-sdk/credential-providers": "^3.58.0", "@googleapis/iam": "^34.0.0", "google-auth-library": "^11.0.0", "dotenv": "^17.0.0", - "gaxios": "^7.0.0", + "gaxios": "^7.3.0", "node-fetch": "^2.3.0", "open": "^9.0.0", "server-destroy": "^1.0.1", diff --git a/core/packages/logging-utils/samples/package.json b/core/packages/logging-utils/samples/package.json index 2fe8992a5e29..8afc0de7fd06 100644 --- a/core/packages/logging-utils/samples/package.json +++ b/core/packages/logging-utils/samples/package.json @@ -23,13 +23,13 @@ "directory": "core/packages/logging-utils/samples" }, "engines": { - "node": ">=18" + "node": ">=22" }, "dependencies": { "google-logging-utils": "^2.0.0" }, "devDependencies": { - "@google-cloud/typeless-sample-bot": "^2.1.0", + "@google-cloud/typeless-sample-bot": "^4.0.0", "@types/node": "^25.6.0", "gts": "^5.0.0", "mocha": "^10.0.0" diff --git a/core/packages/nodejs-googleapis-common/package.json b/core/packages/nodejs-googleapis-common/package.json index 082b61bf7942..81af857622a6 100644 --- a/core/packages/nodejs-googleapis-common/package.json +++ b/core/packages/nodejs-googleapis-common/package.json @@ -37,9 +37,9 @@ "license": "Apache-2.0", "dependencies": { "extend": "^3.0.2", - "gaxios": "7.1.3", - "google-auth-library": "10.5.0", - "google-logging-utils": "1.1.3", + "gaxios": "^7.3.0", + "google-auth-library": "^11.0.0", + "google-logging-utils": "^2.0.0", "qs": "^6.7.0", "url-template": "^2.0.8" }, @@ -61,8 +61,8 @@ "http2spy": "^2.0.0", "is-docker": "^3.0.0", "jsdoc": "^4.0.4", - "jsdoc-fresh": "^5.0.0", - "jsdoc-region-tag": "^4.0.0", + "jsdoc-fresh": "^6.0.0", + "jsdoc-region-tag": "^5.0.0", "karma": "^6.0.0", "karma-chrome-launcher": "^3.0.0", "karma-coverage": "^2.0.0", diff --git a/core/packages/nodejs-googleapis-common/samples/package.json b/core/packages/nodejs-googleapis-common/samples/package.json index 192850261c50..1f34c065deab 100644 --- a/core/packages/nodejs-googleapis-common/samples/package.json +++ b/core/packages/nodejs-googleapis-common/samples/package.json @@ -3,7 +3,7 @@ "license": "MIT", "author": "Google LLC", "engines": { - "node": ">=18" + "node": ">=22" }, "files": [ "*.js", diff --git a/core/packages/nodejs-proto-files/package.json b/core/packages/nodejs-proto-files/package.json index f29c0373bbb5..012f772cc575 100644 --- a/core/packages/nodejs-proto-files/package.json +++ b/core/packages/nodejs-proto-files/package.json @@ -56,8 +56,8 @@ "got": "^11.0.0", "gts": "^6.0.2", "jsdoc": "^4.0.4", - "jsdoc-fresh": "^5.0.0", - "jsdoc-region-tag": "^4.0.0", + "jsdoc-fresh": "^6.0.0", + "jsdoc-region-tag": "^5.0.0", "mocha": "^11.1.0", "proxyquire": "^2.1.3", "sinon": "21.0.3", diff --git a/core/packages/nodejs-proto-files/samples/package.json b/core/packages/nodejs-proto-files/samples/package.json index 7edae10e8825..cc700a2f2628 100644 --- a/core/packages/nodejs-proto-files/samples/package.json +++ b/core/packages/nodejs-proto-files/samples/package.json @@ -6,7 +6,7 @@ "*.js" ], "engines": { - "node": ">=18" + "node": ">=22" }, "repository": "googleapis/google-cloud-node", "private": true, diff --git a/core/packages/proto3-json-serializer-nodejs/package.json b/core/packages/proto3-json-serializer-nodejs/package.json index 99cd8b3b4d25..aaaf9ef65be0 100644 --- a/core/packages/proto3-json-serializer-nodejs/package.json +++ b/core/packages/proto3-json-serializer-nodejs/package.json @@ -43,13 +43,13 @@ "@types/mocha": "^10.0.10", "@types/node": "^24.0.0", "c8": "^10.1.3", - "google-proto-files": "^5.0.0", + "google-proto-files": "^6.0.0", "gts": "^6.0.2", "jsdoc": "^4.0.4", - "jsdoc-fresh": "^5.0.0", - "jsdoc-region-tag": "^4.0.0", + "jsdoc-fresh": "^6.0.0", + "jsdoc-region-tag": "^5.0.0", "mocha": "^11.1.0", - "pack-n-play": "^4.0.0", + "pack-n-play": "^5.0.0", "protobufjs-cli": "^1.2.0", "typescript": "5.8.3" }, diff --git a/core/packages/proto3-json-serializer-nodejs/samples/package.json b/core/packages/proto3-json-serializer-nodejs/samples/package.json index b15cdf373d39..8d64aec5e25c 100644 --- a/core/packages/proto3-json-serializer-nodejs/samples/package.json +++ b/core/packages/proto3-json-serializer-nodejs/samples/package.json @@ -3,7 +3,7 @@ "license": "Apache-2.0", "author": "Google LLC", "engines": { - "node": ">=18" + "node": ">=22" }, "repository": "googleapis/google-cloud-node", "private": true, @@ -14,7 +14,7 @@ "*.js" ], "dependencies": { - "google-proto-files": "^5.0.0", + "google-proto-files": "^6.0.0", "proto3-json-serializer": "^4.0.0", "protobufjs": "^7.0.0" }, diff --git a/core/packages/retry-request/package.json b/core/packages/retry-request/package.json index bd297573229a..b770c721ce4f 100644 --- a/core/packages/retry-request/package.json +++ b/core/packages/retry-request/package.json @@ -34,15 +34,15 @@ }, "dependencies": { "extend": "^3.0.2", - "teeny-request": "^10.0.0" + "teeny-request": "^11.0.0" }, "devDependencies": { "@types/request": "^2.48.13", "async": "^3.2.6", "gts": "^6.0.2", "jsdoc": "^4.0.4", - "jsdoc-fresh": "^5.0.0", - "jsdoc-region-tag": "^4.0.0", + "jsdoc-fresh": "^6.0.0", + "jsdoc-region-tag": "^5.0.0", "lodash.range": "^3.2.0", "mocha": "^11.1.0", "typescript": "5.8.3" diff --git a/core/packages/teeny-request/package.json b/core/packages/teeny-request/package.json index c97d118b0978..7dcab8f36a98 100644 --- a/core/packages/teeny-request/package.json +++ b/core/packages/teeny-request/package.json @@ -54,8 +54,8 @@ "codecov": "^3.8.3", "gts": "^6.0.2", "jsdoc": "^4.0.4", - "jsdoc-fresh": "^5.0.0", - "jsdoc-region-tag": "^3.0.0", + "jsdoc-fresh": "^6.0.0", + "jsdoc-region-tag": "^5.0.0", "mocha": "^11.1.0", "nock": "^14.0.1", "sinon": "^19.0.2", diff --git a/core/packages/tools/package.json b/core/packages/tools/package.json index 8d39961feb28..a5030bf3fbc8 100644 --- a/core/packages/tools/package.json +++ b/core/packages/tools/package.json @@ -32,8 +32,8 @@ "@babel/core": "^7.26.8", "@babel/template": "^7.26.8", "@babel/traverse": "^7.26.8", - "google-gax": "^5.0.6", - "google-proto-files": "^5.0.0", + "google-gax": "^6.0.0", + "google-proto-files": "^6.0.0", "protobufjs-cli": "^1.2.0", "uglify-js": "^3.19.3", "walk-up-path": "^3.0.0", diff --git a/core/paginator/package.json b/core/paginator/package.json index 900a33a9e1d2..cf299c555873 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -39,8 +39,8 @@ "codecov": "^3.8.3", "gts": "^6.0.2", "jsdoc": "^4.0.4", - "jsdoc-fresh": "^3.0.0", - "jsdoc-region-tag": "^3.0.0", + "jsdoc-fresh": "^6.0.0", + "jsdoc-region-tag": "^5.0.0", "mocha": "^11.1.0", "path-to-regexp": "^8.2.0", "proxyquire": "^2.1.3", diff --git a/core/projectify/package.json b/core/projectify/package.json index aa2f83ffa3e3..80182bd69890 100644 --- a/core/projectify/package.json +++ b/core/projectify/package.json @@ -35,8 +35,8 @@ "codecov": "^3.8.3", "gts": "^6.0.2", "jsdoc": "^4.0.4", - "jsdoc-fresh": "^3.0.0", - "jsdoc-region-tag": "^3.0.0", + "jsdoc-fresh": "^6.0.0", + "jsdoc-region-tag": "^5.0.0", "mocha": "^11.1.0", "typescript": "^5.8.2" }, diff --git a/core/promisify/package.json b/core/promisify/package.json index 158d8cfb4974..befaabf7afaf 100644 --- a/core/promisify/package.json +++ b/core/promisify/package.json @@ -41,8 +41,8 @@ "gts": "^6.0.2", "hard-rejection": "^2.1.0", "jsdoc": "^4.0.4", - "jsdoc-fresh": "^3.0.0", - "jsdoc-region-tag": "^3.0.0", + "jsdoc-fresh": "^6.0.0", + "jsdoc-region-tag": "^5.0.0", "mocha": "^11.1.0", "sinon": "^19.0.2", "typescript": "^5.8.2" From 17b07c04d8aa602b85abb491508fb1f381df08c8 Mon Sep 17 00:00:00 2001 From: Daniel Bruce Date: Tue, 4 Aug 2026 15:34:20 -0400 Subject: [PATCH 04/12] chore: modify core library dependency update script to exclude gaxios --- update-core-deps2.js | 117 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 update-core-deps2.js diff --git a/update-core-deps2.js b/update-core-deps2.js new file mode 100644 index 000000000000..ca0a68b4691c --- /dev/null +++ b/update-core-deps2.js @@ -0,0 +1,117 @@ +import fs from 'fs'; +import path from 'path'; +import glob from 'glob'; +import cp from 'child_process'; +import { fileURLToPath } from 'url'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); + +// 1. Identify all core libraries and generated packages +const targetLibraries = {}; + +function scanDirForPackages(baseDir) { + if (!fs.existsSync(baseDir)) return; + const dirs = fs.readdirSync(baseDir).filter(f => fs.statSync(path.join(baseDir, f)).isDirectory()); + for (const dir of dirs) { + let pkgJsonPath = path.join(baseDir, dir, 'package.json'); + if (fs.existsSync(pkgJsonPath)) { + const pkg = JSON.parse(fs.readFileSync(pkgJsonPath, 'utf8')); + if (pkg.name && !pkg.private) targetLibraries[pkg.name] = null; + } + const subDirs = fs.readdirSync(path.join(baseDir, dir)).filter(f => fs.statSync(path.join(baseDir, dir, f)).isDirectory()); + for (const subDir of subDirs) { + pkgJsonPath = path.join(baseDir, dir, subDir, 'package.json'); + if (fs.existsSync(pkgJsonPath)) { + const pkg = JSON.parse(fs.readFileSync(pkgJsonPath, 'utf8')); + if (pkg.name && !pkg.private) targetLibraries[pkg.name] = null; + } + } + } +} + +scanDirForPackages('core'); +scanDirForPackages('packages'); + +delete targetLibraries['gaxios']; + +console.log(`Found ${Object.keys(targetLibraries).length} target libraries. Fetching latest versions...`); + +// 2. Fetch latest versions +for (const lib of Object.keys(targetLibraries)) { + try { + const version = cp.execSync(`npm show ${lib} version`, { encoding: 'utf8' }).trim(); + targetLibraries[lib] = `^${version}`; + console.log(`Latest version for ${lib} is ${targetLibraries[lib]}`); + } catch (e) { + console.error(`Failed to fetch version for ${lib}`); + delete targetLibraries[lib]; + } +} + +// 3. Update all core packages +const searchPatterns = [ + 'core/*/package.json', + 'core/*/samples/package.json', + 'core/packages/*/package.json', + 'core/packages/*/samples/package.json' +]; + +let updatedCount = 0; + +for (const pattern of searchPatterns) { + const files = glob.sync(pattern, { cwd: __dirname }); + + for (const relPath of files) { + const filePath = path.join(__dirname, relPath); + if (!fs.existsSync(filePath)) continue; + + try { + const content = fs.readFileSync(filePath, 'utf8'); + const pkg = JSON.parse(content); + let modified = false; + + // Update engines.node + if (pkg.engines && pkg.engines.node) { + if (pkg.engines.node !== '>=22') { + pkg.engines.node = '>=22'; + modified = true; + } + } else { + pkg.engines = pkg.engines || {}; + pkg.engines.node = '>=22'; + modified = true; + } + + // Update dependencies + if (pkg.dependencies) { + for (const [lib, version] of Object.entries(targetLibraries)) { + if (pkg.dependencies[lib] && pkg.dependencies[lib] !== version) { + console.log(`Updating ${lib} in ${relPath}: ${pkg.dependencies[lib]} -> ${version}`); + pkg.dependencies[lib] = version; + modified = true; + } + } + } + + if (pkg.devDependencies) { + for (const [lib, version] of Object.entries(targetLibraries)) { + if (pkg.devDependencies[lib] && pkg.devDependencies[lib] !== version) { + console.log(`Updating dev dependency ${lib} in ${relPath}: ${pkg.devDependencies[lib]} -> ${version}`); + pkg.devDependencies[lib] = version; + modified = true; + } + } + } + + if (modified) { + fs.writeFileSync(filePath, JSON.stringify(pkg, null, 2) + '\n', 'utf8'); + updatedCount++; + } + } catch (e) { + console.error(`Error updating ${filePath}:`, e); + } + } +} + +console.log(`Finished updating ${updatedCount} files.`); From 1f3a0405dc840f5a68b7ad6937e6ffd07d7925d7 Mon Sep 17 00:00:00 2001 From: Daniel Bruce Date: Tue, 4 Aug 2026 15:34:21 -0400 Subject: [PATCH 05/12] Revert "chore: modify core library dependency update script to exclude gaxios" This reverts commit 17b07c04d8aa602b85abb491508fb1f381df08c8. --- update-core-deps2.js | 117 ------------------------------------------- 1 file changed, 117 deletions(-) delete mode 100644 update-core-deps2.js diff --git a/update-core-deps2.js b/update-core-deps2.js deleted file mode 100644 index ca0a68b4691c..000000000000 --- a/update-core-deps2.js +++ /dev/null @@ -1,117 +0,0 @@ -import fs from 'fs'; -import path from 'path'; -import glob from 'glob'; -import cp from 'child_process'; -import { fileURLToPath } from 'url'; - -const __filename = fileURLToPath(import.meta.url); -const __dirname = path.dirname(__filename); - -// 1. Identify all core libraries and generated packages -const targetLibraries = {}; - -function scanDirForPackages(baseDir) { - if (!fs.existsSync(baseDir)) return; - const dirs = fs.readdirSync(baseDir).filter(f => fs.statSync(path.join(baseDir, f)).isDirectory()); - for (const dir of dirs) { - let pkgJsonPath = path.join(baseDir, dir, 'package.json'); - if (fs.existsSync(pkgJsonPath)) { - const pkg = JSON.parse(fs.readFileSync(pkgJsonPath, 'utf8')); - if (pkg.name && !pkg.private) targetLibraries[pkg.name] = null; - } - const subDirs = fs.readdirSync(path.join(baseDir, dir)).filter(f => fs.statSync(path.join(baseDir, dir, f)).isDirectory()); - for (const subDir of subDirs) { - pkgJsonPath = path.join(baseDir, dir, subDir, 'package.json'); - if (fs.existsSync(pkgJsonPath)) { - const pkg = JSON.parse(fs.readFileSync(pkgJsonPath, 'utf8')); - if (pkg.name && !pkg.private) targetLibraries[pkg.name] = null; - } - } - } -} - -scanDirForPackages('core'); -scanDirForPackages('packages'); - -delete targetLibraries['gaxios']; - -console.log(`Found ${Object.keys(targetLibraries).length} target libraries. Fetching latest versions...`); - -// 2. Fetch latest versions -for (const lib of Object.keys(targetLibraries)) { - try { - const version = cp.execSync(`npm show ${lib} version`, { encoding: 'utf8' }).trim(); - targetLibraries[lib] = `^${version}`; - console.log(`Latest version for ${lib} is ${targetLibraries[lib]}`); - } catch (e) { - console.error(`Failed to fetch version for ${lib}`); - delete targetLibraries[lib]; - } -} - -// 3. Update all core packages -const searchPatterns = [ - 'core/*/package.json', - 'core/*/samples/package.json', - 'core/packages/*/package.json', - 'core/packages/*/samples/package.json' -]; - -let updatedCount = 0; - -for (const pattern of searchPatterns) { - const files = glob.sync(pattern, { cwd: __dirname }); - - for (const relPath of files) { - const filePath = path.join(__dirname, relPath); - if (!fs.existsSync(filePath)) continue; - - try { - const content = fs.readFileSync(filePath, 'utf8'); - const pkg = JSON.parse(content); - let modified = false; - - // Update engines.node - if (pkg.engines && pkg.engines.node) { - if (pkg.engines.node !== '>=22') { - pkg.engines.node = '>=22'; - modified = true; - } - } else { - pkg.engines = pkg.engines || {}; - pkg.engines.node = '>=22'; - modified = true; - } - - // Update dependencies - if (pkg.dependencies) { - for (const [lib, version] of Object.entries(targetLibraries)) { - if (pkg.dependencies[lib] && pkg.dependencies[lib] !== version) { - console.log(`Updating ${lib} in ${relPath}: ${pkg.dependencies[lib]} -> ${version}`); - pkg.dependencies[lib] = version; - modified = true; - } - } - } - - if (pkg.devDependencies) { - for (const [lib, version] of Object.entries(targetLibraries)) { - if (pkg.devDependencies[lib] && pkg.devDependencies[lib] !== version) { - console.log(`Updating dev dependency ${lib} in ${relPath}: ${pkg.devDependencies[lib]} -> ${version}`); - pkg.devDependencies[lib] = version; - modified = true; - } - } - } - - if (modified) { - fs.writeFileSync(filePath, JSON.stringify(pkg, null, 2) + '\n', 'utf8'); - updatedCount++; - } - } catch (e) { - console.error(`Error updating ${filePath}:`, e); - } - } -} - -console.log(`Finished updating ${updatedCount} files.`); From 40083c2c98c4b5ae792d196c37d419df17ea4e81 Mon Sep 17 00:00:00 2001 From: Daniel Bruce Date: Tue, 4 Aug 2026 17:12:32 -0400 Subject: [PATCH 06/12] Upgrade the core dependencies to node 22 --- core/common/package.json | 14 +++++++------- core/help/package.json | 3 +++ core/packages/gapic-node-processing/package.json | 2 +- core/packages/gax/package.json | 14 +++++++------- core/packages/gax/samples/package.json | 2 +- core/packages/gcp-metadata/package.json | 8 ++++---- core/packages/gcp-metadata/samples/package.json | 2 +- .../google-auth-library-nodejs/package.json | 8 ++++---- .../samples/package.json | 4 ++-- core/packages/logging-utils/samples/package.json | 4 ++-- .../packages/nodejs-googleapis-common/package.json | 8 ++++---- .../nodejs-googleapis-common/samples/package.json | 2 +- core/packages/nodejs-proto-files/package.json | 4 ++-- .../nodejs-proto-files/samples/package.json | 2 +- .../proto3-json-serializer-nodejs/package.json | 8 ++++---- .../samples/package.json | 4 ++-- core/packages/retry-request/package.json | 6 +++--- core/packages/teeny-request/package.json | 4 ++-- core/packages/tools/package.json | 4 ++-- core/paginator/package.json | 4 ++-- core/projectify/package.json | 4 ++-- core/promisify/package.json | 4 ++-- 22 files changed, 59 insertions(+), 56 deletions(-) diff --git a/core/common/package.json b/core/common/package.json index 13d0570b3299..6dda729b1e4e 100644 --- a/core/common/package.json +++ b/core/common/package.json @@ -34,15 +34,15 @@ "precompile": "gts clean" }, "dependencies": { - "@google-cloud/projectify": "^4.0.0", - "@google-cloud/promisify": "^4.0.0", + "@google-cloud/projectify": "^6.0.0", + "@google-cloud/promisify": "^6.0.0", "arrify": "^2.0.0", "duplexify": "^4.1.3", "extend": "^3.0.2", - "google-auth-library": "^10.6.2", + "google-auth-library": "^11.0.0", "html-entities": "^2.5.2", - "retry-request": "^8.0.0", - "teeny-request": "^10.0.0" + "retry-request": "^9.0.0", + "teeny-request": "^11.0.0" }, "devDependencies": { "@types/ent": "^2.2.8", @@ -59,8 +59,8 @@ "codecov": "^3.8.3", "gts": "^6.0.2", "jsdoc": "^4.0.4", - "jsdoc-fresh": "^3.0.0", - "jsdoc-region-tag": "^3.0.0", + "jsdoc-fresh": "^6.0.0", + "jsdoc-region-tag": "^5.0.0", "mocha": "^11.1.0", "mv": "^2.1.1", "ncp": "^2.0.0", diff --git a/core/help/package.json b/core/help/package.json index 76316e1768de..3db87c4b4e73 100644 --- a/core/help/package.json +++ b/core/help/package.json @@ -5,5 +5,8 @@ "test": "echo 'no unit tests'", "system-test": "echo 'no system tests'", "samples-test": "echo 'no samples test'" + }, + "engines": { + "node": ">=22" } } diff --git a/core/packages/gapic-node-processing/package.json b/core/packages/gapic-node-processing/package.json index bbdb7a05e1d6..cff475c887f5 100644 --- a/core/packages/gapic-node-processing/package.json +++ b/core/packages/gapic-node-processing/package.json @@ -33,7 +33,7 @@ "@types/yargs": "^17.0.33", "c8": "^10.1.3", "cross-env": "^7.0.3", - "gapic-tools": "^1.0.0", + "gapic-tools": "^2.0.0", "gts": "^6.0.2", "mocha": "^11.1.0", "sinon": "21.0.3", diff --git a/core/packages/gax/package.json b/core/packages/gax/package.json index 3bffc24a55e1..b9499e98bc2a 100644 --- a/core/packages/gax/package.json +++ b/core/packages/gax/package.json @@ -13,13 +13,13 @@ "@grpc/grpc-js": "^1.12.6", "@grpc/proto-loader": "^0.8.0", "duplexify": "^4.1.3", - "google-auth-library": "10.5.0", - "google-logging-utils": "1.1.3", + "google-auth-library": "^11.0.0", + "google-logging-utils": "^2.0.0", "node-fetch": "^3.3.2", "object-hash": "^3.0.0", - "proto3-json-serializer": "3.0.4", + "proto3-json-serializer": "^4.0.0", "protobufjs": "^7.5.4", - "retry-request": "^8.0.2" + "retry-request": "^9.0.0" }, "devDependencies": { "@babel/plugin-proposal-private-methods": "^7.18.6", @@ -35,12 +35,12 @@ "codecov": "^3.8.3", "execa": "^5.0.0", "glob": "10.5.0", - "google-proto-files": "5.0.1", + "google-proto-files": "^6.0.0", "gts": "^6.0.2", "jackspeak": "^3.0.2", "jsdoc": "^4.0.4", - "jsdoc-fresh": "^5.0.0", - "jsdoc-region-tag": "^4.0.0", + "jsdoc-fresh": "^6.0.0", + "jsdoc-region-tag": "^5.0.0", "long": "^5.2.4", "lru-cache": "^10.0.0", "mkdirp": "^3.0.1", diff --git a/core/packages/gax/samples/package.json b/core/packages/gax/samples/package.json index 08e74abd161b..cdbe0e2d4710 100644 --- a/core/packages/gax/samples/package.json +++ b/core/packages/gax/samples/package.json @@ -3,7 +3,7 @@ "license": "Apache-2.0", "author": "Google LLC", "engines": { - "node": ">=18" + "node": ">=22" }, "repository": "googleapis/google-cloud-node", "private": true, diff --git a/core/packages/gcp-metadata/package.json b/core/packages/gcp-metadata/package.json index 8b26fc8f3ae1..be4d5893ffc5 100644 --- a/core/packages/gcp-metadata/package.json +++ b/core/packages/gcp-metadata/package.json @@ -41,11 +41,11 @@ "license": "Apache-2.0", "dependencies": { "gaxios": "^7.1.3", - "google-logging-utils": "1.1.3", + "google-logging-utils": "^2.0.0", "json-bigint": "^1.0.0" }, "devDependencies": { - "@google-cloud/functions": "^4.0.0", + "@google-cloud/functions": "^4.2.2", "@types/json-bigint": "^1.0.4", "@types/mocha": "^10.0.10", "@types/ncp": "^2.0.8", @@ -58,8 +58,8 @@ "gcbuild": "^1.3.39", "gts": "^6.0.2", "jsdoc": "^4.0.4", - "jsdoc-fresh": "^5.0.0", - "jsdoc-region-tag": "^4.0.0", + "jsdoc-fresh": "^6.0.0", + "jsdoc-region-tag": "^5.0.0", "mocha": "^11.1.0", "ncp": "^2.0.0", "nock": "^14.0.5", diff --git a/core/packages/gcp-metadata/samples/package.json b/core/packages/gcp-metadata/samples/package.json index 5790a1b71927..508e9c83d59d 100644 --- a/core/packages/gcp-metadata/samples/package.json +++ b/core/packages/gcp-metadata/samples/package.json @@ -3,7 +3,7 @@ "license": "Apache-2.0", "author": "Google LLC", "engines": { - "node": ">=18" + "node": ">=22" }, "files": [ "*.js" diff --git a/core/packages/google-auth-library-nodejs/package.json b/core/packages/google-auth-library-nodejs/package.json index 7cb8ad627747..9839bc79d5a2 100644 --- a/core/packages/google-auth-library-nodejs/package.json +++ b/core/packages/google-auth-library-nodejs/package.json @@ -24,8 +24,8 @@ "base64-js": "^1.3.0", "ecdsa-sig-formatter": "^1.0.11", "gaxios": "^7.1.4", - "gcp-metadata": "8.1.2", - "google-logging-utils": "1.1.3", + "gcp-metadata": "^9.0.0", + "google-logging-utils": "^2.0.0", "jws": "^4.0.0" }, "devDependencies": { @@ -42,8 +42,8 @@ "gts": "^6.0.2", "is-docker": "^3.0.0", "jsdoc": "^4.0.4", - "jsdoc-fresh": "^5.0.0", - "jsdoc-region-tag": "^4.0.0", + "jsdoc-fresh": "^6.0.0", + "jsdoc-region-tag": "^5.0.0", "karma": "^6.0.0", "karma-chrome-launcher": "^3.0.0", "karma-coverage": "^2.0.0", diff --git a/core/packages/google-auth-library-nodejs/samples/package.json b/core/packages/google-auth-library-nodejs/samples/package.json index 553ac8dd82d2..79b529b04518 100644 --- a/core/packages/google-auth-library-nodejs/samples/package.json +++ b/core/packages/google-auth-library-nodejs/samples/package.json @@ -9,11 +9,11 @@ "test": "mocha --timeout 60000" }, "engines": { - "node": ">=18" + "node": ">=22" }, "license": "Apache-2.0", "dependencies": { - "@google-cloud/language": "^7.0.0", + "@google-cloud/language": "^7.2.3", "@google-cloud/storage": "^7.0.0", "@aws-sdk/credential-providers": "^3.58.0", "@googleapis/iam": "^34.0.0", diff --git a/core/packages/logging-utils/samples/package.json b/core/packages/logging-utils/samples/package.json index 2fe8992a5e29..8afc0de7fd06 100644 --- a/core/packages/logging-utils/samples/package.json +++ b/core/packages/logging-utils/samples/package.json @@ -23,13 +23,13 @@ "directory": "core/packages/logging-utils/samples" }, "engines": { - "node": ">=18" + "node": ">=22" }, "dependencies": { "google-logging-utils": "^2.0.0" }, "devDependencies": { - "@google-cloud/typeless-sample-bot": "^2.1.0", + "@google-cloud/typeless-sample-bot": "^4.0.0", "@types/node": "^25.6.0", "gts": "^5.0.0", "mocha": "^10.0.0" diff --git a/core/packages/nodejs-googleapis-common/package.json b/core/packages/nodejs-googleapis-common/package.json index 082b61bf7942..5d825db18ac6 100644 --- a/core/packages/nodejs-googleapis-common/package.json +++ b/core/packages/nodejs-googleapis-common/package.json @@ -38,8 +38,8 @@ "dependencies": { "extend": "^3.0.2", "gaxios": "7.1.3", - "google-auth-library": "10.5.0", - "google-logging-utils": "1.1.3", + "google-auth-library": "^11.0.0", + "google-logging-utils": "^2.0.0", "qs": "^6.7.0", "url-template": "^2.0.8" }, @@ -61,8 +61,8 @@ "http2spy": "^2.0.0", "is-docker": "^3.0.0", "jsdoc": "^4.0.4", - "jsdoc-fresh": "^5.0.0", - "jsdoc-region-tag": "^4.0.0", + "jsdoc-fresh": "^6.0.0", + "jsdoc-region-tag": "^5.0.0", "karma": "^6.0.0", "karma-chrome-launcher": "^3.0.0", "karma-coverage": "^2.0.0", diff --git a/core/packages/nodejs-googleapis-common/samples/package.json b/core/packages/nodejs-googleapis-common/samples/package.json index 192850261c50..1f34c065deab 100644 --- a/core/packages/nodejs-googleapis-common/samples/package.json +++ b/core/packages/nodejs-googleapis-common/samples/package.json @@ -3,7 +3,7 @@ "license": "MIT", "author": "Google LLC", "engines": { - "node": ">=18" + "node": ">=22" }, "files": [ "*.js", diff --git a/core/packages/nodejs-proto-files/package.json b/core/packages/nodejs-proto-files/package.json index f29c0373bbb5..012f772cc575 100644 --- a/core/packages/nodejs-proto-files/package.json +++ b/core/packages/nodejs-proto-files/package.json @@ -56,8 +56,8 @@ "got": "^11.0.0", "gts": "^6.0.2", "jsdoc": "^4.0.4", - "jsdoc-fresh": "^5.0.0", - "jsdoc-region-tag": "^4.0.0", + "jsdoc-fresh": "^6.0.0", + "jsdoc-region-tag": "^5.0.0", "mocha": "^11.1.0", "proxyquire": "^2.1.3", "sinon": "21.0.3", diff --git a/core/packages/nodejs-proto-files/samples/package.json b/core/packages/nodejs-proto-files/samples/package.json index 7edae10e8825..cc700a2f2628 100644 --- a/core/packages/nodejs-proto-files/samples/package.json +++ b/core/packages/nodejs-proto-files/samples/package.json @@ -6,7 +6,7 @@ "*.js" ], "engines": { - "node": ">=18" + "node": ">=22" }, "repository": "googleapis/google-cloud-node", "private": true, diff --git a/core/packages/proto3-json-serializer-nodejs/package.json b/core/packages/proto3-json-serializer-nodejs/package.json index 99cd8b3b4d25..aaaf9ef65be0 100644 --- a/core/packages/proto3-json-serializer-nodejs/package.json +++ b/core/packages/proto3-json-serializer-nodejs/package.json @@ -43,13 +43,13 @@ "@types/mocha": "^10.0.10", "@types/node": "^24.0.0", "c8": "^10.1.3", - "google-proto-files": "^5.0.0", + "google-proto-files": "^6.0.0", "gts": "^6.0.2", "jsdoc": "^4.0.4", - "jsdoc-fresh": "^5.0.0", - "jsdoc-region-tag": "^4.0.0", + "jsdoc-fresh": "^6.0.0", + "jsdoc-region-tag": "^5.0.0", "mocha": "^11.1.0", - "pack-n-play": "^4.0.0", + "pack-n-play": "^5.0.0", "protobufjs-cli": "^1.2.0", "typescript": "5.8.3" }, diff --git a/core/packages/proto3-json-serializer-nodejs/samples/package.json b/core/packages/proto3-json-serializer-nodejs/samples/package.json index b15cdf373d39..8d64aec5e25c 100644 --- a/core/packages/proto3-json-serializer-nodejs/samples/package.json +++ b/core/packages/proto3-json-serializer-nodejs/samples/package.json @@ -3,7 +3,7 @@ "license": "Apache-2.0", "author": "Google LLC", "engines": { - "node": ">=18" + "node": ">=22" }, "repository": "googleapis/google-cloud-node", "private": true, @@ -14,7 +14,7 @@ "*.js" ], "dependencies": { - "google-proto-files": "^5.0.0", + "google-proto-files": "^6.0.0", "proto3-json-serializer": "^4.0.0", "protobufjs": "^7.0.0" }, diff --git a/core/packages/retry-request/package.json b/core/packages/retry-request/package.json index bd297573229a..b770c721ce4f 100644 --- a/core/packages/retry-request/package.json +++ b/core/packages/retry-request/package.json @@ -34,15 +34,15 @@ }, "dependencies": { "extend": "^3.0.2", - "teeny-request": "^10.0.0" + "teeny-request": "^11.0.0" }, "devDependencies": { "@types/request": "^2.48.13", "async": "^3.2.6", "gts": "^6.0.2", "jsdoc": "^4.0.4", - "jsdoc-fresh": "^5.0.0", - "jsdoc-region-tag": "^4.0.0", + "jsdoc-fresh": "^6.0.0", + "jsdoc-region-tag": "^5.0.0", "lodash.range": "^3.2.0", "mocha": "^11.1.0", "typescript": "5.8.3" diff --git a/core/packages/teeny-request/package.json b/core/packages/teeny-request/package.json index c97d118b0978..7dcab8f36a98 100644 --- a/core/packages/teeny-request/package.json +++ b/core/packages/teeny-request/package.json @@ -54,8 +54,8 @@ "codecov": "^3.8.3", "gts": "^6.0.2", "jsdoc": "^4.0.4", - "jsdoc-fresh": "^5.0.0", - "jsdoc-region-tag": "^3.0.0", + "jsdoc-fresh": "^6.0.0", + "jsdoc-region-tag": "^5.0.0", "mocha": "^11.1.0", "nock": "^14.0.1", "sinon": "^19.0.2", diff --git a/core/packages/tools/package.json b/core/packages/tools/package.json index 8d39961feb28..a5030bf3fbc8 100644 --- a/core/packages/tools/package.json +++ b/core/packages/tools/package.json @@ -32,8 +32,8 @@ "@babel/core": "^7.26.8", "@babel/template": "^7.26.8", "@babel/traverse": "^7.26.8", - "google-gax": "^5.0.6", - "google-proto-files": "^5.0.0", + "google-gax": "^6.0.0", + "google-proto-files": "^6.0.0", "protobufjs-cli": "^1.2.0", "uglify-js": "^3.19.3", "walk-up-path": "^3.0.0", diff --git a/core/paginator/package.json b/core/paginator/package.json index 900a33a9e1d2..cf299c555873 100644 --- a/core/paginator/package.json +++ b/core/paginator/package.json @@ -39,8 +39,8 @@ "codecov": "^3.8.3", "gts": "^6.0.2", "jsdoc": "^4.0.4", - "jsdoc-fresh": "^3.0.0", - "jsdoc-region-tag": "^3.0.0", + "jsdoc-fresh": "^6.0.0", + "jsdoc-region-tag": "^5.0.0", "mocha": "^11.1.0", "path-to-regexp": "^8.2.0", "proxyquire": "^2.1.3", diff --git a/core/projectify/package.json b/core/projectify/package.json index aa2f83ffa3e3..80182bd69890 100644 --- a/core/projectify/package.json +++ b/core/projectify/package.json @@ -35,8 +35,8 @@ "codecov": "^3.8.3", "gts": "^6.0.2", "jsdoc": "^4.0.4", - "jsdoc-fresh": "^3.0.0", - "jsdoc-region-tag": "^3.0.0", + "jsdoc-fresh": "^6.0.0", + "jsdoc-region-tag": "^5.0.0", "mocha": "^11.1.0", "typescript": "^5.8.2" }, diff --git a/core/promisify/package.json b/core/promisify/package.json index 158d8cfb4974..befaabf7afaf 100644 --- a/core/promisify/package.json +++ b/core/promisify/package.json @@ -41,8 +41,8 @@ "gts": "^6.0.2", "hard-rejection": "^2.1.0", "jsdoc": "^4.0.4", - "jsdoc-fresh": "^3.0.0", - "jsdoc-region-tag": "^3.0.0", + "jsdoc-fresh": "^6.0.0", + "jsdoc-region-tag": "^5.0.0", "mocha": "^11.1.0", "sinon": "^19.0.2", "typescript": "^5.8.2" From 6ffcb528649cb60b07dff9c3fd38046ed163b0a0 Mon Sep 17 00:00:00 2001 From: Daniel Bruce Date: Tue, 4 Aug 2026 17:26:11 -0400 Subject: [PATCH 07/12] chore: modify core library dependency update script to exclude generated packages --- update-core-deps2.js | 116 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 update-core-deps2.js diff --git a/update-core-deps2.js b/update-core-deps2.js new file mode 100644 index 000000000000..f86f7ef4326e --- /dev/null +++ b/update-core-deps2.js @@ -0,0 +1,116 @@ +import fs from 'fs'; +import path from 'path'; +import glob from 'glob'; +import cp from 'child_process'; +import { fileURLToPath } from 'url'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); + +// 1. Identify all core libraries and generated packages +const targetLibraries = {}; + +function scanDirForPackages(baseDir) { + if (!fs.existsSync(baseDir)) return; + const dirs = fs.readdirSync(baseDir).filter(f => fs.statSync(path.join(baseDir, f)).isDirectory()); + for (const dir of dirs) { + let pkgJsonPath = path.join(baseDir, dir, 'package.json'); + if (fs.existsSync(pkgJsonPath)) { + const pkg = JSON.parse(fs.readFileSync(pkgJsonPath, 'utf8')); + if (pkg.name && !pkg.private) targetLibraries[pkg.name] = null; + } + const subDirs = fs.readdirSync(path.join(baseDir, dir)).filter(f => fs.statSync(path.join(baseDir, dir, f)).isDirectory()); + for (const subDir of subDirs) { + pkgJsonPath = path.join(baseDir, dir, subDir, 'package.json'); + if (fs.existsSync(pkgJsonPath)) { + const pkg = JSON.parse(fs.readFileSync(pkgJsonPath, 'utf8')); + if (pkg.name && !pkg.private) targetLibraries[pkg.name] = null; + } + } + } +} + +scanDirForPackages('core'); + +delete targetLibraries['gaxios']; + +console.log(`Found ${Object.keys(targetLibraries).length} target libraries. Fetching latest versions...`); + +// 2. Fetch latest versions +for (const lib of Object.keys(targetLibraries)) { + try { + const version = cp.execSync(`npm show ${lib} version`, { encoding: 'utf8' }).trim(); + targetLibraries[lib] = `^${version}`; + console.log(`Latest version for ${lib} is ${targetLibraries[lib]}`); + } catch (e) { + console.error(`Failed to fetch version for ${lib}`); + delete targetLibraries[lib]; + } +} + +// 3. Update all core packages +const searchPatterns = [ + 'core/*/package.json', + 'core/*/samples/package.json', + 'core/packages/*/package.json', + 'core/packages/*/samples/package.json' +]; + +let updatedCount = 0; + +for (const pattern of searchPatterns) { + const files = glob.sync(pattern, { cwd: __dirname }); + + for (const relPath of files) { + const filePath = path.join(__dirname, relPath); + if (!fs.existsSync(filePath)) continue; + + try { + const content = fs.readFileSync(filePath, 'utf8'); + const pkg = JSON.parse(content); + let modified = false; + + // Update engines.node + if (pkg.engines && pkg.engines.node) { + if (pkg.engines.node !== '>=22') { + pkg.engines.node = '>=22'; + modified = true; + } + } else { + pkg.engines = pkg.engines || {}; + pkg.engines.node = '>=22'; + modified = true; + } + + // Update dependencies + if (pkg.dependencies) { + for (const [lib, version] of Object.entries(targetLibraries)) { + if (pkg.dependencies[lib] && pkg.dependencies[lib] !== version) { + console.log(`Updating ${lib} in ${relPath}: ${pkg.dependencies[lib]} -> ${version}`); + pkg.dependencies[lib] = version; + modified = true; + } + } + } + + if (pkg.devDependencies) { + for (const [lib, version] of Object.entries(targetLibraries)) { + if (pkg.devDependencies[lib] && pkg.devDependencies[lib] !== version) { + console.log(`Updating dev dependency ${lib} in ${relPath}: ${pkg.devDependencies[lib]} -> ${version}`); + pkg.devDependencies[lib] = version; + modified = true; + } + } + } + + if (modified) { + fs.writeFileSync(filePath, JSON.stringify(pkg, null, 2) + '\n', 'utf8'); + updatedCount++; + } + } catch (e) { + console.error(`Error updating ${filePath}:`, e); + } + } +} + +console.log(`Finished updating ${updatedCount} files.`); From 2ad48ae3a11188f52f8c6262f07f6402d8d14b90 Mon Sep 17 00:00:00 2001 From: Daniel Bruce Date: Tue, 4 Aug 2026 17:26:13 -0400 Subject: [PATCH 08/12] Revert "chore: modify core library dependency update script to exclude generated packages" This reverts commit 6ffcb528649cb60b07dff9c3fd38046ed163b0a0. --- update-core-deps2.js | 116 ------------------------------------------- 1 file changed, 116 deletions(-) delete mode 100644 update-core-deps2.js diff --git a/update-core-deps2.js b/update-core-deps2.js deleted file mode 100644 index f86f7ef4326e..000000000000 --- a/update-core-deps2.js +++ /dev/null @@ -1,116 +0,0 @@ -import fs from 'fs'; -import path from 'path'; -import glob from 'glob'; -import cp from 'child_process'; -import { fileURLToPath } from 'url'; - -const __filename = fileURLToPath(import.meta.url); -const __dirname = path.dirname(__filename); - -// 1. Identify all core libraries and generated packages -const targetLibraries = {}; - -function scanDirForPackages(baseDir) { - if (!fs.existsSync(baseDir)) return; - const dirs = fs.readdirSync(baseDir).filter(f => fs.statSync(path.join(baseDir, f)).isDirectory()); - for (const dir of dirs) { - let pkgJsonPath = path.join(baseDir, dir, 'package.json'); - if (fs.existsSync(pkgJsonPath)) { - const pkg = JSON.parse(fs.readFileSync(pkgJsonPath, 'utf8')); - if (pkg.name && !pkg.private) targetLibraries[pkg.name] = null; - } - const subDirs = fs.readdirSync(path.join(baseDir, dir)).filter(f => fs.statSync(path.join(baseDir, dir, f)).isDirectory()); - for (const subDir of subDirs) { - pkgJsonPath = path.join(baseDir, dir, subDir, 'package.json'); - if (fs.existsSync(pkgJsonPath)) { - const pkg = JSON.parse(fs.readFileSync(pkgJsonPath, 'utf8')); - if (pkg.name && !pkg.private) targetLibraries[pkg.name] = null; - } - } - } -} - -scanDirForPackages('core'); - -delete targetLibraries['gaxios']; - -console.log(`Found ${Object.keys(targetLibraries).length} target libraries. Fetching latest versions...`); - -// 2. Fetch latest versions -for (const lib of Object.keys(targetLibraries)) { - try { - const version = cp.execSync(`npm show ${lib} version`, { encoding: 'utf8' }).trim(); - targetLibraries[lib] = `^${version}`; - console.log(`Latest version for ${lib} is ${targetLibraries[lib]}`); - } catch (e) { - console.error(`Failed to fetch version for ${lib}`); - delete targetLibraries[lib]; - } -} - -// 3. Update all core packages -const searchPatterns = [ - 'core/*/package.json', - 'core/*/samples/package.json', - 'core/packages/*/package.json', - 'core/packages/*/samples/package.json' -]; - -let updatedCount = 0; - -for (const pattern of searchPatterns) { - const files = glob.sync(pattern, { cwd: __dirname }); - - for (const relPath of files) { - const filePath = path.join(__dirname, relPath); - if (!fs.existsSync(filePath)) continue; - - try { - const content = fs.readFileSync(filePath, 'utf8'); - const pkg = JSON.parse(content); - let modified = false; - - // Update engines.node - if (pkg.engines && pkg.engines.node) { - if (pkg.engines.node !== '>=22') { - pkg.engines.node = '>=22'; - modified = true; - } - } else { - pkg.engines = pkg.engines || {}; - pkg.engines.node = '>=22'; - modified = true; - } - - // Update dependencies - if (pkg.dependencies) { - for (const [lib, version] of Object.entries(targetLibraries)) { - if (pkg.dependencies[lib] && pkg.dependencies[lib] !== version) { - console.log(`Updating ${lib} in ${relPath}: ${pkg.dependencies[lib]} -> ${version}`); - pkg.dependencies[lib] = version; - modified = true; - } - } - } - - if (pkg.devDependencies) { - for (const [lib, version] of Object.entries(targetLibraries)) { - if (pkg.devDependencies[lib] && pkg.devDependencies[lib] !== version) { - console.log(`Updating dev dependency ${lib} in ${relPath}: ${pkg.devDependencies[lib]} -> ${version}`); - pkg.devDependencies[lib] = version; - modified = true; - } - } - } - - if (modified) { - fs.writeFileSync(filePath, JSON.stringify(pkg, null, 2) + '\n', 'utf8'); - updatedCount++; - } - } catch (e) { - console.error(`Error updating ${filePath}:`, e); - } - } -} - -console.log(`Finished updating ${updatedCount} files.`); From 1878a35d491f1ed5dd510b2dc0aca2679f9c0750 Mon Sep 17 00:00:00 2001 From: Daniel Bruce Date: Tue, 4 Aug 2026 17:37:32 -0400 Subject: [PATCH 09/12] Revert language and packages changes --- core/packages/gcp-metadata/package.json | 2 +- core/packages/google-auth-library-nodejs/samples/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/packages/gcp-metadata/package.json b/core/packages/gcp-metadata/package.json index be4d5893ffc5..fa52428d66c4 100644 --- a/core/packages/gcp-metadata/package.json +++ b/core/packages/gcp-metadata/package.json @@ -45,7 +45,7 @@ "json-bigint": "^1.0.0" }, "devDependencies": { - "@google-cloud/functions": "^4.2.2", + "@google-cloud/functions": "^4.0.0", "@types/json-bigint": "^1.0.4", "@types/mocha": "^10.0.10", "@types/ncp": "^2.0.8", diff --git a/core/packages/google-auth-library-nodejs/samples/package.json b/core/packages/google-auth-library-nodejs/samples/package.json index 16a024a677aa..c755236d8dfe 100644 --- a/core/packages/google-auth-library-nodejs/samples/package.json +++ b/core/packages/google-auth-library-nodejs/samples/package.json @@ -13,7 +13,7 @@ }, "license": "Apache-2.0", "dependencies": { - "@google-cloud/language": "^7.2.3", + "@google-cloud/language": "^7.0.0", "@google-cloud/storage": "^7.0.0", "@aws-sdk/credential-providers": "^3.58.0", "@googleapis/iam": "^34.0.0", From e20b65291628e2c7c5fa9c6c52c6305ccd2e4a87 Mon Sep 17 00:00:00 2001 From: Daniel Bruce Date: Tue, 4 Aug 2026 17:40:45 -0400 Subject: [PATCH 10/12] chore: add core dependency update script excluding gaxios --- update-core-deps.js | 124 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 update-core-deps.js diff --git a/update-core-deps.js b/update-core-deps.js new file mode 100644 index 000000000000..59519c3747db --- /dev/null +++ b/update-core-deps.js @@ -0,0 +1,124 @@ +import fs from 'fs'; +import path from 'path'; +import glob from 'glob'; +import cp from 'child_process'; +import { fileURLToPath } from 'url'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); + +// 1. Identify core libraries +const targetLibraries = {}; + +function scanDirForPackages(baseDir) { + if (!fs.existsSync(baseDir)) return; + const dirs = fs.readdirSync(baseDir).filter(f => fs.statSync(path.join(baseDir, f)).isDirectory()); + for (const dir of dirs) { + if (dir === 'gaxios') continue; // Skip gaxios completely + + let pkgJsonPath = path.join(baseDir, dir, 'package.json'); + if (fs.existsSync(pkgJsonPath)) { + const pkg = JSON.parse(fs.readFileSync(pkgJsonPath, 'utf8')); + if (pkg.name && !pkg.private) targetLibraries[pkg.name] = null; + } + const subDirs = fs.readdirSync(path.join(baseDir, dir)).filter(f => fs.statSync(path.join(baseDir, dir, f)).isDirectory()); + for (const subDir of subDirs) { + if (subDir === 'gaxios') continue; + pkgJsonPath = path.join(baseDir, dir, subDir, 'package.json'); + if (fs.existsSync(pkgJsonPath)) { + const pkg = JSON.parse(fs.readFileSync(pkgJsonPath, 'utf8')); + if (pkg.name && !pkg.private) targetLibraries[pkg.name] = null; + } + } + } +} + +scanDirForPackages('core'); +delete targetLibraries['gaxios']; // Just to be extra safe + +console.log(`Found ${Object.keys(targetLibraries).length} target libraries. Fetching latest versions...`); + +// 2. Fetch latest versions +for (const lib of Object.keys(targetLibraries)) { + try { + const version = cp.execSync(`npm show ${lib} version`, { encoding: 'utf8' }).trim(); + targetLibraries[lib] = `^${version}`; + console.log(`Latest version for ${lib} is ${targetLibraries[lib]}`); + } catch (e) { + console.error(`Failed to fetch version for ${lib}`); + delete targetLibraries[lib]; + } +} + +// 3. Update all core packages +const searchPatterns = [ + 'core/*/package.json', + 'core/*/samples/package.json', + 'core/packages/*/package.json', + 'core/packages/*/samples/package.json' +]; + +let updatedCount = 0; + +for (const pattern of searchPatterns) { + const files = glob.sync(pattern, { cwd: __dirname }); + + for (const relPath of files) { + // Explicitly ignore gaxios files + if (relPath.includes('/gaxios/')) { + console.log(`Skipping ${relPath} completely.`); + continue; + } + + const filePath = path.join(__dirname, relPath); + if (!fs.existsSync(filePath)) continue; + + try { + const content = fs.readFileSync(filePath, 'utf8'); + const pkg = JSON.parse(content); + let modified = false; + + // Update engines.node + if (pkg.engines && pkg.engines.node) { + if (pkg.engines.node !== '>=22') { + pkg.engines.node = '>=22'; + modified = true; + } + } else { + pkg.engines = pkg.engines || {}; + pkg.engines.node = '>=22'; + modified = true; + } + + // Update dependencies + if (pkg.dependencies) { + for (const [lib, version] of Object.entries(targetLibraries)) { + if (pkg.dependencies[lib] && pkg.dependencies[lib] !== version) { + console.log(`Updating ${lib} in ${relPath}: ${pkg.dependencies[lib]} -> ${version}`); + pkg.dependencies[lib] = version; + modified = true; + } + } + } + + if (pkg.devDependencies) { + for (const [lib, version] of Object.entries(targetLibraries)) { + if (pkg.devDependencies[lib] && pkg.devDependencies[lib] !== version) { + console.log(`Updating dev dependency ${lib} in ${relPath}: ${pkg.devDependencies[lib]} -> ${version}`); + pkg.devDependencies[lib] = version; + modified = true; + } + } + } + + if (modified) { + fs.writeFileSync(filePath, JSON.stringify(pkg, null, 2) + '\n', 'utf8'); + updatedCount++; + } + } catch (e) { + console.error(`Error updating ${filePath}:`, e); + } + } +} + +console.log(`Finished updating ${updatedCount} files.`); From 05169a394fdffdfb8b9b9288916bf6a0a78dd5b6 Mon Sep 17 00:00:00 2001 From: Daniel Bruce Date: Tue, 4 Aug 2026 17:40:45 -0400 Subject: [PATCH 11/12] Revert "chore: add core dependency update script excluding gaxios" This reverts commit e20b65291628e2c7c5fa9c6c52c6305ccd2e4a87. --- update-core-deps.js | 124 -------------------------------------------- 1 file changed, 124 deletions(-) delete mode 100644 update-core-deps.js diff --git a/update-core-deps.js b/update-core-deps.js deleted file mode 100644 index 59519c3747db..000000000000 --- a/update-core-deps.js +++ /dev/null @@ -1,124 +0,0 @@ -import fs from 'fs'; -import path from 'path'; -import glob from 'glob'; -import cp from 'child_process'; -import { fileURLToPath } from 'url'; - -const __filename = fileURLToPath(import.meta.url); -const __dirname = path.dirname(__filename); - -// 1. Identify core libraries -const targetLibraries = {}; - -function scanDirForPackages(baseDir) { - if (!fs.existsSync(baseDir)) return; - const dirs = fs.readdirSync(baseDir).filter(f => fs.statSync(path.join(baseDir, f)).isDirectory()); - for (const dir of dirs) { - if (dir === 'gaxios') continue; // Skip gaxios completely - - let pkgJsonPath = path.join(baseDir, dir, 'package.json'); - if (fs.existsSync(pkgJsonPath)) { - const pkg = JSON.parse(fs.readFileSync(pkgJsonPath, 'utf8')); - if (pkg.name && !pkg.private) targetLibraries[pkg.name] = null; - } - const subDirs = fs.readdirSync(path.join(baseDir, dir)).filter(f => fs.statSync(path.join(baseDir, dir, f)).isDirectory()); - for (const subDir of subDirs) { - if (subDir === 'gaxios') continue; - pkgJsonPath = path.join(baseDir, dir, subDir, 'package.json'); - if (fs.existsSync(pkgJsonPath)) { - const pkg = JSON.parse(fs.readFileSync(pkgJsonPath, 'utf8')); - if (pkg.name && !pkg.private) targetLibraries[pkg.name] = null; - } - } - } -} - -scanDirForPackages('core'); -delete targetLibraries['gaxios']; // Just to be extra safe - -console.log(`Found ${Object.keys(targetLibraries).length} target libraries. Fetching latest versions...`); - -// 2. Fetch latest versions -for (const lib of Object.keys(targetLibraries)) { - try { - const version = cp.execSync(`npm show ${lib} version`, { encoding: 'utf8' }).trim(); - targetLibraries[lib] = `^${version}`; - console.log(`Latest version for ${lib} is ${targetLibraries[lib]}`); - } catch (e) { - console.error(`Failed to fetch version for ${lib}`); - delete targetLibraries[lib]; - } -} - -// 3. Update all core packages -const searchPatterns = [ - 'core/*/package.json', - 'core/*/samples/package.json', - 'core/packages/*/package.json', - 'core/packages/*/samples/package.json' -]; - -let updatedCount = 0; - -for (const pattern of searchPatterns) { - const files = glob.sync(pattern, { cwd: __dirname }); - - for (const relPath of files) { - // Explicitly ignore gaxios files - if (relPath.includes('/gaxios/')) { - console.log(`Skipping ${relPath} completely.`); - continue; - } - - const filePath = path.join(__dirname, relPath); - if (!fs.existsSync(filePath)) continue; - - try { - const content = fs.readFileSync(filePath, 'utf8'); - const pkg = JSON.parse(content); - let modified = false; - - // Update engines.node - if (pkg.engines && pkg.engines.node) { - if (pkg.engines.node !== '>=22') { - pkg.engines.node = '>=22'; - modified = true; - } - } else { - pkg.engines = pkg.engines || {}; - pkg.engines.node = '>=22'; - modified = true; - } - - // Update dependencies - if (pkg.dependencies) { - for (const [lib, version] of Object.entries(targetLibraries)) { - if (pkg.dependencies[lib] && pkg.dependencies[lib] !== version) { - console.log(`Updating ${lib} in ${relPath}: ${pkg.dependencies[lib]} -> ${version}`); - pkg.dependencies[lib] = version; - modified = true; - } - } - } - - if (pkg.devDependencies) { - for (const [lib, version] of Object.entries(targetLibraries)) { - if (pkg.devDependencies[lib] && pkg.devDependencies[lib] !== version) { - console.log(`Updating dev dependency ${lib} in ${relPath}: ${pkg.devDependencies[lib]} -> ${version}`); - pkg.devDependencies[lib] = version; - modified = true; - } - } - } - - if (modified) { - fs.writeFileSync(filePath, JSON.stringify(pkg, null, 2) + '\n', 'utf8'); - updatedCount++; - } - } catch (e) { - console.error(`Error updating ${filePath}:`, e); - } - } -} - -console.log(`Finished updating ${updatedCount} files.`); From 19b8db05d291db050819f5396aee491082d3c82e Mon Sep 17 00:00:00 2001 From: Daniel Bruce Date: Tue, 4 Aug 2026 17:47:20 -0400 Subject: [PATCH 12/12] =?UTF-8?q?don=E2=80=99t=20upgrade=20gaxios?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/packages/google-auth-library-nodejs/samples/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/packages/google-auth-library-nodejs/samples/package.json b/core/packages/google-auth-library-nodejs/samples/package.json index c755236d8dfe..cdd5e8cbcf16 100644 --- a/core/packages/google-auth-library-nodejs/samples/package.json +++ b/core/packages/google-auth-library-nodejs/samples/package.json @@ -19,7 +19,7 @@ "@googleapis/iam": "^34.0.0", "google-auth-library": "^11.0.0", "dotenv": "^17.0.0", - "gaxios": "^7.3.0", + "gaxios": "^7.0.0", "node-fetch": "^2.3.0", "open": "^9.0.0", "server-destroy": "^1.0.1",