diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 69bafcc9321d..b98cde989748 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -19,7 +19,7 @@ "core/packages/typeless-sample-bot": "3.1.2", "core/paginator": "6.0.2", "core/precise-date": "5.1.0", - "core/projectify": "5.0.1", + "core/projectify": "5.1.0", "core/promisify": "5.1.0", "handwritten/bigquery": "8.3.1", "handwritten/bigquery-storage": "5.1.2", @@ -267,4 +267,4 @@ "packages/google-storagetransfer": "4.2.3", "packages/google-streetview-publish": "0.4.2", "packages/grafeas": "6.2.0" -} \ No newline at end of file +} diff --git a/changelog.json b/changelog.json index 1b7af44b08a4..d4e1fba78aa9 100644 --- a/changelog.json +++ b/changelog.json @@ -64,23 +64,6 @@ "id": "73eab495-b7c3-40c5-896f-572b43fdd379", "createTime": "2026-07-08T17:10:18.122Z" }, - { - "changes": [ - { - "type": "feat", - "sha": "3391fd27d1c15e051293207a07c6db00e760d370", - "message": "Update API sources and regenerate", - "issues": [ - "8672" - ] - } - ], - "version": "5.1.0", - "language": "JAVASCRIPT", - "artifactName": "@google-cloud/precise-date", - "id": "ef93f9b7-739d-49a7-aa75-f1c04b9ab908", - "createTime": "2026-06-24T18:20:54.504Z" - }, { "changes": [ { @@ -98,23 +81,6 @@ "id": "6b65487d-c5a9-45df-adf7-524481537017", "createTime": "2026-07-07T04:38:13.492Z" }, - { - "changes": [ - { - "type": "feat", - "sha": "3391fd27d1c15e051293207a07c6db00e760d370", - "message": "Update API sources and regenerate", - "issues": [ - "8672" - ] - } - ], - "version": "5.1.0", - "language": "JAVASCRIPT", - "artifactName": "@google-cloud/promisify", - "id": "20912a56-2568-49fa-a6ba-180bdfa33d32", - "createTime": "2026-06-24T18:20:52.132Z" - }, { "changes": [ { @@ -184,23 +150,6 @@ "id": "91efec41-6f4d-46a2-85e4-30da0709e6a2", "createTime": "2026-07-06T06:28:40.860Z" }, - { - "changes": [ - { - "type": "feat", - "sha": "d9399f0cf44b79e2b38ce429b17709ee9845544e", - "message": "Migrate google-cloud-capacityplanner to librarian v0.22.0", - "issues": [ - "8773" - ] - } - ], - "version": "0.2.0", - "language": "JAVASCRIPT", - "artifactName": "@google-cloud/capacityplanner", - "id": "d3f5584e-4924-4d9c-9236-67a0ec3f40a3", - "createTime": "2026-06-29T17:40:53.096Z" - }, { "changes": [ { @@ -244,6 +193,23 @@ "id": "d3f5584e-4924-4d9c-9236-67a0ec3f40a3", "createTime": "2026-06-29T17:40:53.096Z" }, + { + "changes": [ + { + "type": "feat", + "sha": "d9399f0cf44b79e2b38ce429b17709ee9845544e", + "message": "Migrate google-cloud-capacityplanner to librarian v0.22.0", + "issues": [ + "8773" + ] + } + ], + "version": "0.2.0", + "language": "JAVASCRIPT", + "artifactName": "@google-cloud/capacityplanner", + "id": "d3f5584e-4924-4d9c-9236-67a0ec3f40a3", + "createTime": "2026-06-29T17:40:53.096Z" + }, { "changes": [ { @@ -710,6 +676,57 @@ "id": "9d11a7e7-9865-4e27-b485-8c00ef86dfb0", "createTime": "2026-06-25T13:39:13.011Z" }, + { + "changes": [ + { + "type": "feat", + "sha": "3391fd27d1c15e051293207a07c6db00e760d370", + "message": "Update API sources and regenerate", + "issues": [ + "8672" + ] + } + ], + "version": "5.1.0", + "language": "JAVASCRIPT", + "artifactName": "@google-cloud/precise-date", + "id": "ef93f9b7-739d-49a7-aa75-f1c04b9ab908", + "createTime": "2026-06-24T18:20:54.504Z" + }, + { + "changes": [ + { + "type": "feat", + "sha": "3391fd27d1c15e051293207a07c6db00e760d370", + "message": "Update API sources and regenerate", + "issues": [ + "8672" + ] + } + ], + "version": "5.1.0", + "language": "JAVASCRIPT", + "artifactName": "@google-cloud/projectify", + "id": "ef7418ba-36d6-4c30-a8ea-13c4434195a7", + "createTime": "2026-06-24T18:20:52.474Z" + }, + { + "changes": [ + { + "type": "feat", + "sha": "3391fd27d1c15e051293207a07c6db00e760d370", + "message": "Update API sources and regenerate", + "issues": [ + "8672" + ] + } + ], + "version": "5.1.0", + "language": "JAVASCRIPT", + "artifactName": "@google-cloud/promisify", + "id": "20912a56-2568-49fa-a6ba-180bdfa33d32", + "createTime": "2026-06-24T18:20:52.132Z" + }, { "changes": [ { @@ -917,6 +934,51 @@ "id": "68a02aaa-17ed-404e-b452-e70bda09de60", "createTime": "2026-06-18T00:26:09.228Z" }, + { + "changes": [ + { + "type": "fix", + "sha": "3ec901e2cb45859adfbe914bc0385e6cdf2f2e9a", + "message": "Remove vulnerable dependency `uuid`", + "issues": [ + "8120" + ], + "scope": "deps" + } + ], + "version": "11.2.3", + "language": "JAVASCRIPT", + "artifactName": "@google-cloud/logging", + "id": "25bab115-ea4f-4ff2-a7e0-5aa0384c1b95", + "createTime": "2026-06-16T00:07:06.794Z" + }, + { + "changes": [ + { + "type": "fix", + "sha": "ea623da20f374cfa480fb9fdb7758afd0a993a8e", + "message": "Update dependency protobufjs to v7.5.5 [security]", + "issues": [ + "8071" + ], + "scope": "deps" + }, + { + "type": "fix", + "sha": "3ec901e2cb45859adfbe914bc0385e6cdf2f2e9a", + "message": "Remove vulnerable dependency `uuid`", + "issues": [ + "8120" + ], + "scope": "deps" + } + ], + "version": "5.1.2", + "language": "JAVASCRIPT", + "artifactName": "@google-cloud/bigquery-storage", + "id": "74883ea7-b13f-4282-9b14-46d047d4e432", + "createTime": "2026-06-16T00:07:06.414Z" + }, { "changes": [ { @@ -1503,51 +1565,6 @@ "id": "e51e396d-ddb9-4531-9f9e-4822535bbf23", "createTime": "2026-06-16T00:01:48.990Z" }, - { - "changes": [ - { - "type": "fix", - "sha": "ea623da20f374cfa480fb9fdb7758afd0a993a8e", - "message": "Update dependency protobufjs to v7.5.5 [security]", - "issues": [ - "8071" - ], - "scope": "deps" - }, - { - "type": "fix", - "sha": "3ec901e2cb45859adfbe914bc0385e6cdf2f2e9a", - "message": "Remove vulnerable dependency `uuid`", - "issues": [ - "8120" - ], - "scope": "deps" - } - ], - "version": "5.1.2", - "language": "JAVASCRIPT", - "artifactName": "@google-cloud/bigquery-storage", - "id": "74883ea7-b13f-4282-9b14-46d047d4e432", - "createTime": "2026-06-16T00:07:06.414Z" - }, - { - "changes": [ - { - "type": "fix", - "sha": "3ec901e2cb45859adfbe914bc0385e6cdf2f2e9a", - "message": "Remove vulnerable dependency `uuid`", - "issues": [ - "8120" - ], - "scope": "deps" - } - ], - "version": "11.2.3", - "language": "JAVASCRIPT", - "artifactName": "@google-cloud/logging", - "id": "25bab115-ea4f-4ff2-a7e0-5aa0384c1b95", - "createTime": "2026-06-16T00:07:06.794Z" - }, { "changes": [ { @@ -3843,31 +3860,6 @@ "id": "0e843685-81b0-45a4-bfb4-b3288ba4ef68", "createTime": "2026-05-11T14:38:47.292Z" }, - { - "changes": [ - { - "type": "fix", - "sha": "9fd76eff87b1cf02db6205f141449b31e8ab7d8f", - "message": "Bump all node submodules", - "issues": [ - "8178" - ] - }, - { - "type": "fix", - "sha": "c1a03fe604662091be283055c7d34052c64d6334", - "message": "Change the copyright year for files in the packages folder", - "issues": [ - "8109" - ] - } - ], - "version": "10.1.3", - "language": "JAVASCRIPT", - "artifactName": "teeny-request", - "id": "7eaf6e35-1029-484c-8687-a7f7a30907f5", - "createTime": "2026-05-06T21:35:07.497Z" - }, { "changes": [ { @@ -3954,6 +3946,31 @@ "id": "a5e4c00a-94e9-42fb-96e8-8b7c29c58d82", "createTime": "2026-05-06T21:35:08.503Z" }, + { + "changes": [ + { + "type": "fix", + "sha": "9fd76eff87b1cf02db6205f141449b31e8ab7d8f", + "message": "Bump all node submodules", + "issues": [ + "8178" + ] + }, + { + "type": "fix", + "sha": "c1a03fe604662091be283055c7d34052c64d6334", + "message": "Change the copyright year for files in the packages folder", + "issues": [ + "8109" + ] + } + ], + "version": "10.1.3", + "language": "JAVASCRIPT", + "artifactName": "teeny-request", + "id": "7eaf6e35-1029-484c-8687-a7f7a30907f5", + "createTime": "2026-05-06T21:35:07.497Z" + }, { "changes": [ { @@ -11642,32 +11659,6 @@ "id": "d844e87e-e75b-4513-950c-1fe8eeda719d", "createTime": "2026-04-14T23:04:28.521Z" }, - { - "changes": [ - { - "type": "fix", - "sha": "7fad2f6e2ef0b16ab87a92ae471136fe6f2655ef", - "message": "Unblock the releases on Node Bigquery", - "issues": [ - "7946" - ] - }, - { - "type": "feat", - "sha": "e500d4077065529fbdee4be565434a34b6643c09", - "message": "Allow the user to ask for skipping parsing rows when querying", - "issues": [ - "7848" - ], - "scope": "bigquery" - } - ], - "version": "8.3.0", - "language": "JAVASCRIPT", - "artifactName": "@google-cloud/bigquery", - "id": "95c0b159-cdba-4b27-9c19-e99b2535868f", - "createTime": "2026-04-09T15:40:48.837Z" - }, { "changes": [ { @@ -12105,6 +12096,32 @@ "id": "660fa930-cd94-405a-b4ea-3008b640c4f4", "createTime": "2026-04-13T20:17:24.690Z" }, + { + "changes": [ + { + "type": "fix", + "sha": "7fad2f6e2ef0b16ab87a92ae471136fe6f2655ef", + "message": "Unblock the releases on Node Bigquery", + "issues": [ + "7946" + ] + }, + { + "type": "feat", + "sha": "e500d4077065529fbdee4be565434a34b6643c09", + "message": "Allow the user to ask for skipping parsing rows when querying", + "issues": [ + "7848" + ], + "scope": "bigquery" + } + ], + "version": "8.3.0", + "language": "JAVASCRIPT", + "artifactName": "@google-cloud/bigquery", + "id": "95c0b159-cdba-4b27-9c19-e99b2535868f", + "createTime": "2026-04-09T15:40:48.837Z" + }, { "changes": [ { @@ -81641,4 +81658,4 @@ } ], "updateTime": "2026-07-09T20:21:31.292Z" -} \ No newline at end of file +} diff --git a/core/dev-packages/jsdoc-fresh/package.json b/core/dev-packages/jsdoc-fresh/package.json index debe22a6bbbe..d05e1446bb30 100644 --- a/core/dev-packages/jsdoc-fresh/package.json +++ b/core/dev-packages/jsdoc-fresh/package.json @@ -31,6 +31,6 @@ "@jsdoc/salty": "^0.2.5" }, "engines": { - "node": ">=14.0.0" + "node": ">=18" } } diff --git a/core/dev-packages/jsdoc-region-tag/package.json b/core/dev-packages/jsdoc-region-tag/package.json index 032438e217a1..6cfac11af553 100644 --- a/core/dev-packages/jsdoc-region-tag/package.json +++ b/core/dev-packages/jsdoc-region-tag/package.json @@ -43,6 +43,6 @@ "typescript": "^5.1.6" }, "engines": { - "node": ">=14.0.0" + "node": ">=18" } } diff --git a/core/generator/gapic-generator-typescript/baselines-esm/duplicate_methods_test-esm/package.json b/core/generator/gapic-generator-typescript/baselines-esm/duplicate_methods_test-esm/package.json index fbd75f4e44e3..0ab004c938fe 100644 --- a/core/generator/gapic-generator-typescript/baselines-esm/duplicate_methods_test-esm/package.json +++ b/core/generator/gapic-generator-typescript/baselines-esm/duplicate_methods_test-esm/package.json @@ -98,6 +98,6 @@ "webpack-cli": "^6.0.1" }, "engines": { - "node": ">=v18" + "node": ">=18" } } diff --git a/core/generator/gapic-generator-typescript/test-fixtures/google-cloud-speech-nodejs/speech-v1-nodejs/package.json b/core/generator/gapic-generator-typescript/test-fixtures/google-cloud-speech-nodejs/speech-v1-nodejs/package.json index 0e2a0b9dc391..17735878a68c 100644 --- a/core/generator/gapic-generator-typescript/test-fixtures/google-cloud-speech-nodejs/speech-v1-nodejs/package.json +++ b/core/generator/gapic-generator-typescript/test-fixtures/google-cloud-speech-nodejs/speech-v1-nodejs/package.json @@ -54,6 +54,6 @@ "sinon": "^21.0.0" }, "engines": { - "node": ">=v18" + "node": ">=18" } } diff --git a/core/generator/gapic-generator-typescript/test-fixtures/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/package.json b/core/generator/gapic-generator-typescript/test-fixtures/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/package.json index 0e2a0b9dc391..17735878a68c 100644 --- a/core/generator/gapic-generator-typescript/test-fixtures/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/package.json +++ b/core/generator/gapic-generator-typescript/test-fixtures/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/package.json @@ -54,6 +54,6 @@ "sinon": "^21.0.0" }, "engines": { - "node": ">=v18" + "node": ">=18" } } diff --git a/core/generator/gapic-generator-typescript/test-fixtures/google-cloud-speech-nodejs/speech-v2-nodejs/package.json b/core/generator/gapic-generator-typescript/test-fixtures/google-cloud-speech-nodejs/speech-v2-nodejs/package.json index 70f69f94570a..e29fbd0b8ecf 100644 --- a/core/generator/gapic-generator-typescript/test-fixtures/google-cloud-speech-nodejs/speech-v2-nodejs/package.json +++ b/core/generator/gapic-generator-typescript/test-fixtures/google-cloud-speech-nodejs/speech-v2-nodejs/package.json @@ -53,6 +53,6 @@ "sinon": "^21.0.0" }, "engines": { - "node": ">=v18" + "node": ">=18" } } diff --git a/core/generator/gapic-generator-typescript/test-fixtures/google-cloud-speech/package.json b/core/generator/gapic-generator-typescript/test-fixtures/google-cloud-speech/package.json index 0e2a0b9dc391..17735878a68c 100644 --- a/core/generator/gapic-generator-typescript/test-fixtures/google-cloud-speech/package.json +++ b/core/generator/gapic-generator-typescript/test-fixtures/google-cloud-speech/package.json @@ -54,6 +54,6 @@ "sinon": "^21.0.0" }, "engines": { - "node": ">=v18" + "node": ">=18" } } diff --git a/core/generator/gapic-generator-typescript/test-fixtures/google-cloud-tasks-nodejs/tasks-v2-nodejs/package.json b/core/generator/gapic-generator-typescript/test-fixtures/google-cloud-tasks-nodejs/tasks-v2-nodejs/package.json index b875aaba9101..79d090885145 100644 --- a/core/generator/gapic-generator-typescript/test-fixtures/google-cloud-tasks-nodejs/tasks-v2-nodejs/package.json +++ b/core/generator/gapic-generator-typescript/test-fixtures/google-cloud-tasks-nodejs/tasks-v2-nodejs/package.json @@ -98,6 +98,6 @@ "webpack-cli": "^6.0.1" }, "engines": { - "node": ">=v18" + "node": ">=18" } } diff --git a/core/generator/gapic-generator-typescript/test-fixtures/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/package.json b/core/generator/gapic-generator-typescript/test-fixtures/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/package.json index b875aaba9101..79d090885145 100644 --- a/core/generator/gapic-generator-typescript/test-fixtures/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/package.json +++ b/core/generator/gapic-generator-typescript/test-fixtures/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/package.json @@ -98,6 +98,6 @@ "webpack-cli": "^6.0.1" }, "engines": { - "node": ">=v18" + "node": ">=18" } } diff --git a/core/packages/gapic-node-processing/templates/bootstrap-templates/package.json b/core/packages/gapic-node-processing/templates/bootstrap-templates/package.json index 0e95adccde09..b4f734f77a57 100644 --- a/core/packages/gapic-node-processing/templates/bootstrap-templates/package.json +++ b/core/packages/gapic-node-processing/templates/bootstrap-templates/package.json @@ -62,6 +62,6 @@ "typescript": "^5.8.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=18" } } diff --git a/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/package.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/package.json index a60aee8e2247..fde4a73f5409 100644 --- a/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/package.json +++ b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/analytics-data-v1alpha-nodejs/package.json @@ -53,6 +53,6 @@ "sinon": "^21.0.0" }, "engines": { - "node": ">=v18" + "node": ">=18" } } diff --git a/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/package.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/package.json index d2e1726b8605..ef3d12cbb81f 100644 --- a/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/package.json +++ b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data-nodejs/google-analytics-data-v1beta-nodejs/package.json @@ -53,6 +53,6 @@ "sinon": "^21.0.0" }, "engines": { - "node": ">=v18" + "node": ">=18" } } diff --git a/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/package.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/package.json index a60aee8e2247..fde4a73f5409 100644 --- a/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/package.json +++ b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-analytics-data/package.json @@ -53,6 +53,6 @@ "sinon": "^21.0.0" }, "engines": { - "node": ">=v18" + "node": ">=18" } } diff --git a/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/package.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/package.json index 2eb237195cb6..6f5b8ace815e 100644 --- a/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/package.json +++ b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1-nodejs/package.json @@ -54,6 +54,6 @@ "sinon": "^21.0.0" }, "engines": { - "node": ">=v18" + "node": ">=18" } } diff --git a/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/package.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/package.json index 2eb237195cb6..6f5b8ace815e 100644 --- a/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/package.json +++ b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v1p1beta1-nodejs/package.json @@ -54,6 +54,6 @@ "sinon": "^21.0.0" }, "engines": { - "node": ">=v18" + "node": ">=18" } } diff --git a/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/package.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/package.json index a3df9c6b5f7f..edc31ae482a9 100644 --- a/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/package.json +++ b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech-nodejs/speech-v2-nodejs/package.json @@ -53,6 +53,6 @@ "sinon": "^21.0.0" }, "engines": { - "node": ">=v18" + "node": ">=18" } } diff --git a/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/package.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/package.json index 2eb237195cb6..6f5b8ace815e 100644 --- a/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/package.json +++ b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-speech/package.json @@ -54,6 +54,6 @@ "sinon": "^21.0.0" }, "engines": { - "node": ">=v18" + "node": ">=18" } } diff --git a/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/package.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/package.json index 158c84b08fdf..b5dfa2eb48e9 100644 --- a/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/package.json +++ b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2-nodejs/package.json @@ -98,6 +98,6 @@ "webpack-cli": "^6.0.1" }, "engines": { - "node": ">=v18" + "node": ">=18" } } diff --git a/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/package.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/package.json index 9cf22ac855a0..791dbda73481 100644 --- a/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/package.json +++ b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks-nodejs/tasks-v2beta2-nodejs/package.json @@ -99,6 +99,6 @@ "webpack-cli": "^6.0.1" }, "engines": { - "node": ">=v18" + "node": ">=18" } } diff --git a/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/package.json b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/package.json index 158c84b08fdf..b5dfa2eb48e9 100644 --- a/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/package.json +++ b/core/packages/gapic-node-processing/test/fixtures/combined-library/google-cloud-tasks/package.json @@ -98,6 +98,6 @@ "webpack-cli": "^6.0.1" }, "engines": { - "node": ">=v18" + "node": ">=18" } } diff --git a/core/packages/gax/test/showcase-echo-client/package.json b/core/packages/gax/test/showcase-echo-client/package.json index dc7ae8980ca8..188a0a3f618c 100644 --- a/core/packages/gax/test/showcase-echo-client/package.json +++ b/core/packages/gax/test/showcase-echo-client/package.json @@ -40,6 +40,6 @@ "typescript": "5.8.3" }, "engines": { - "node": ">=v18" + "node": ">=18" } } diff --git a/core/packages/gax/test/test-application/package.json b/core/packages/gax/test/test-application/package.json index 6af31e90dde6..da3cc3913348 100644 --- a/core/packages/gax/test/test-application/package.json +++ b/core/packages/gax/test/test-application/package.json @@ -32,6 +32,6 @@ "showcase-server": "./showcase-server.tgz" }, "engines": { - "node": ">=18.0.0" + "node": ">=18" } } diff --git a/core/packages/logging-utils/package.json b/core/packages/logging-utils/package.json index 146cd34912ad..8be48936a077 100644 --- a/core/packages/logging-utils/package.json +++ b/core/packages/logging-utils/package.json @@ -42,6 +42,6 @@ }, "homepage": "https://github.com/googleapis/google-cloud-node/tree/main/core/packages/logging-utils", "engines": { - "node": ">=14" + "node": ">=18" } } diff --git a/core/packages/logging-utils/samples/package.json b/core/packages/logging-utils/samples/package.json index 95c507482a1a..aa61452e4095 100644 --- a/core/packages/logging-utils/samples/package.json +++ b/core/packages/logging-utils/samples/package.json @@ -23,7 +23,7 @@ "directory": "core/packages/logging-utils/samples" }, "engines": { - "node": ">=14" + "node": ">=18" }, "dependencies": { "google-logging-utils": "^1.1.4" diff --git a/core/packages/nodejs-googleapis-common/package.json b/core/packages/nodejs-googleapis-common/package.json index 569057fdf258..33cb48d71ca7 100644 --- a/core/packages/nodejs-googleapis-common/package.json +++ b/core/packages/nodejs-googleapis-common/package.json @@ -87,7 +87,7 @@ "webpack-cli": "^6.0.1" }, "engines": { - "node": ">=18.0.0" + "node": ">=18" }, "homepage": "https://github.com/googleapis/google-cloud-node/tree/main/core/packages/nodejs-googleapis-common" } diff --git a/core/packages/nodejs-googleapis-common/samples/package.json b/core/packages/nodejs-googleapis-common/samples/package.json index 2c3221b395e8..475bec0913a4 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": ">=12.0.0" + "node": ">=18" }, "files": [ "*.js", diff --git a/core/projectify/CHANGELOG.md b/core/projectify/CHANGELOG.md index f78e2176ce41..079304bfea41 100644 --- a/core/projectify/CHANGELOG.md +++ b/core/projectify/CHANGELOG.md @@ -4,6 +4,13 @@ [npm history][1] [1]: https://www.npmjs.com/package/@google-cloud/projectify?activeTab=versions +## [5.1.0](https://github.com/googleapis/google-cloud-node/compare/projectify-v5.0.1...projectify-v5.1.0) (2026-06-24) + + +### Features + +* Update API sources and regenerate ([#8672](https://github.com/googleapis/google-cloud-node/issues/8672)) ([3391fd2](https://github.com/googleapis/google-cloud-node/commit/3391fd27d1c15e051293207a07c6db00e760d370)) + ## [5.0.1](https://github.com/googleapis/google-cloud-node/compare/projectify-v5.0.0...projectify-v5.0.1) (2026-05-11) diff --git a/core/projectify/package.json b/core/projectify/package.json index b3da71844659..2dc004810e19 100644 --- a/core/projectify/package.json +++ b/core/projectify/package.json @@ -1,6 +1,6 @@ { "name": "@google-cloud/projectify", - "version": "5.0.1", + "version": "5.1.0", "description": "A simple utility for replacing the projectid token in objects.", "main": "build/src/index.js", "types": "build/src/index.d.ts", diff --git a/handwritten/firestore/pipelines/package.json b/handwritten/firestore/pipelines/package.json index 1515c5eb2a2b..651f38980370 100644 --- a/handwritten/firestore/pipelines/package.json +++ b/handwritten/firestore/pipelines/package.json @@ -5,6 +5,6 @@ "typings": "../types/pipelines.d.ts", "private": true, "engines": { - "node": ">=14.0.0" + "node": ">=18" } } diff --git a/handwritten/logging-bunyan/package.json b/handwritten/logging-bunyan/package.json index 857ee3747f5c..06a9a7d6b4c1 100644 --- a/handwritten/logging-bunyan/package.json +++ b/handwritten/logging-bunyan/package.json @@ -5,7 +5,7 @@ "license": "Apache-2.0", "author": "Google Inc.", "engines": { - "node": ">=14.0.0" + "node": ">=18" }, "repository": { "type": "git", diff --git a/handwritten/logging/package.json b/handwritten/logging/package.json index af7bb2f03b08..f12e63f7294d 100644 --- a/handwritten/logging/package.json +++ b/handwritten/logging/package.json @@ -105,7 +105,7 @@ "webpack-cli": "^5.0.0" }, "engines": { - "node": ">=14.0.0" + "node": ">=18" }, "homepage": "https://github.com/googleapis/google-cloud-node/tree/main/handwritten/logging" } diff --git a/handwritten/pubsub/src/message-stream.ts b/handwritten/pubsub/src/message-stream.ts index 35c8868b3528..f1f2102f4d9a 100644 --- a/handwritten/pubsub/src/message-stream.ts +++ b/handwritten/pubsub/src/message-stream.ts @@ -26,6 +26,7 @@ import {defaultOptions} from './default-options'; import {Duration} from './temporal'; import {ExponentialRetry} from './exponential-retry'; import {DebugMessage} from './debug'; +import {randomUUID} from 'crypto'; import {logs as baseLogs, LoggingFunction} from './logs'; /** @@ -77,6 +78,8 @@ const DEFAULT_OPTIONS: MessageStreamOptions = { retryMaxBackoff: Duration.from({seconds: 60}), }; +const SERVER_KEEP_ALIVE_INTERVAL = 15000; + interface StreamState { highWaterMark: number; } @@ -139,6 +142,9 @@ export class ChannelError extends Error implements grpc.ServiceError { interface StreamTracked { stream?: PullStream; receivedStatus?: boolean; + lastPingTime?: number; + lastResponseTime?: number; + aliveTimer?: NodeJS.Timeout; } /** @@ -200,7 +206,7 @@ export class MessageStream extends PassThrough { */ setStreamAckDeadline(deadline: Duration) { const request: StreamingPullRequest = { - streamAckDeadlineSeconds: deadline.totalOf('second'), + streamAckDeadlineSeconds: deadline.seconds, }; for (const tracker of this._streams) { @@ -227,6 +233,9 @@ export class MessageStream extends PassThrough { for (let i = 0; i < this._streams.length; i++) { const tracker = this._streams[i]; + if (tracker.aliveTimer) { + this._clearAliveTimer(tracker); + } if (tracker.stream) { this._removeStream(i, 'overall message stream destroyed', 'n/a'); } @@ -253,6 +262,7 @@ export class MessageStream extends PassThrough { const tracker = this._streams[index]; tracker.stream = stream; tracker.receivedStatus = false; + tracker.lastResponseTime = Date.now(); stream .on('error', err => this._onError(index, err)) @@ -263,11 +273,46 @@ export class MessageStream extends PassThrough { private _onData(index: number, data: PullResponse): void { // Mark this stream as alive again. (reset backoff) const tracker = this._streams[index]; + tracker.lastResponseTime = Date.now(); this._retrier.reset(tracker); this.emit('data', data); } + private _clearAliveTimer(tracker: StreamTracked): void { + if (tracker.aliveTimer) { + clearTimeout(tracker.aliveTimer); + tracker.aliveTimer = undefined; + } + } + + private _checkAliveTimer(index: number): void { + const tracker = this._streams[index]; + const lastPingTime = tracker.lastPingTime ?? -1; + const lastResponseTime = tracker.lastResponseTime ?? 0; + if (lastPingTime <= lastResponseTime) { + return; + } + + this._removeStream( + index, + 'no keepalive response from server within 15 seconds', + 'will be retried', + ); + this._retrier.retryLater(tracker, () => + this._fillOne(index, undefined, 'retry'), + ); + } + + private _setAliveTimer(index: number): void { + const tracker = this._streams[index]; + this._clearAliveTimer(tracker); + + tracker.aliveTimer = setTimeout(() => { + this._checkAliveTimer(index); + }, SERVER_KEEP_ALIVE_INTERVAL); + } + /** * Attempts to create and cache the desired number of StreamingPull requests. * gRPC does not supply a way to confirm that a stream is connected, so our @@ -347,6 +392,8 @@ export class MessageStream extends PassThrough { maxOutstandingBytes: this._subscriber.useLegacyFlowControl ? 0 : this._subscriber.maxBytes, + clientId: randomUUID().toString(), + protocolVersion: 1, // Set protocol version to enable server keepalives }; const otherArgs = { headers: { @@ -386,12 +433,14 @@ export class MessageStream extends PassThrough { 'sending keepAlive to %i streams', this._streams.length, ); - this._streams.forEach(tracker => { + this._streams.forEach((tracker, index) => { // It's possible that a status event fires off (signaling the rpc being // closed) but the stream hasn't drained yet. Writing to such a stream will // result in a `write after end` error. if (!tracker.receivedStatus && tracker.stream) { tracker.stream.write({}); + tracker.lastPingTime = Date.now(); + this._setAliveTimer(index); } }); } @@ -511,6 +560,9 @@ export class MessageStream extends PassThrough { whatNext?: string, ): void { const tracker = this._streams[index]; + if (tracker.aliveTimer) { + this._clearAliveTimer(tracker); + } if (tracker.stream) { logs.subscriberStreams.info( 'closing stream %i; why: %s; next: %s', diff --git a/handwritten/pubsub/test/message-stream.ts b/handwritten/pubsub/test/message-stream.ts index 1df52f8db20a..d5be750bbcb0 100644 --- a/handwritten/pubsub/test/message-stream.ts +++ b/handwritten/pubsub/test/message-stream.ts @@ -523,6 +523,24 @@ describe('MessageStream', () => { }); describe('keeping streams alive', () => { + it('should set protocolVersion in the initial packet', async () => { + // The special handling for messageStream and the spy below are + // so that we can test the initial message. + messageStream.destroy(); + + const spy = sandbox.spy(FakeGrpcStream.prototype, 'write'); + const ms = new MessageStream(subscriber); + await ms.start(); + + assert.strictEqual(spy.callCount, 5); + const {args} = spy.firstCall; + const request = args[0] as any; + + assert.strictEqual(String(request.protocolVersion), '1'); + + ms.destroy(); + }); + it('should keep the streams alive', () => { const frequency = 30000; const stubs = client.streams.map(stream => { @@ -536,6 +554,48 @@ describe('MessageStream', () => { assert.deepStrictEqual(data, {}); }); }); + + it('should close stream if no data received for 15 seconds after keepalive', async () => { + messageStream.destroy(); + client.streams.length = 0; + + const ms = new MessageStream(subscriber); + await ms.start(); + + const cancelSpies = client.streams.map(s => sandbox.spy(s, 'cancel')); + + // wait for keepalive ping (30s) + 15s timeout + sandbox.clock.tick(45000); + + cancelSpies.forEach(spy => { + assert.strictEqual(spy.callCount, 1); + }); + + ms.destroy(); + }); + + it('should not close stream if data received within 15 seconds of keepalive', async () => { + messageStream.destroy(); + + const ms = new MessageStream(subscriber); + await ms.start(); + + const cancelSpies = client.streams.map(s => sandbox.spy(s, 'cancel')); + + sandbox.clock.tick(30000); + + // Simulating data prevents timeout + client.streams.forEach(s => s.emit('data', {})); + + // Wait for 15s timeout to pass + sandbox.clock.tick(15000); + + cancelSpies.forEach(spy => { + assert.strictEqual(spy.callCount, 0); + }); + + ms.destroy(); + }); }); it('should allow updating the ack deadline', async () => { diff --git a/handwritten/storage/package.json b/handwritten/storage/package.json index 3ea3b0fb2644..e38124dfa44f 100644 --- a/handwritten/storage/package.json +++ b/handwritten/storage/package.json @@ -5,7 +5,7 @@ "license": "Apache-2.0", "author": "Google Inc.", "engines": { - "node": ">=14" + "node": ">=18" }, "repository": { "type": "git", diff --git a/packages/google-ads-datamanager/package.json b/packages/google-ads-datamanager/package.json index 0889d4cdcbe3..347b409e628a 100644 --- a/packages/google-ads-datamanager/package.json +++ b/packages/google-ads-datamanager/package.json @@ -62,7 +62,7 @@ "typescript": "^5.8.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=18" }, "overrides": { "@sinonjs/fake-timers": "15.2.1" diff --git a/packages/google-apps-events-subscriptions/package.json b/packages/google-apps-events-subscriptions/package.json index 1b7d378e494e..103e879078fe 100644 --- a/packages/google-apps-events-subscriptions/package.json +++ b/packages/google-apps-events-subscriptions/package.json @@ -62,7 +62,7 @@ "typescript": "^5.8.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=18" }, "overrides": { "@sinonjs/fake-timers": "15.2.1" diff --git a/packages/google-apps-events-subscriptions/samples/package.json b/packages/google-apps-events-subscriptions/samples/package.json index 8232a8bc4fe5..f90da3778780 100644 --- a/packages/google-apps-events-subscriptions/samples/package.json +++ b/packages/google-apps-events-subscriptions/samples/package.json @@ -4,7 +4,7 @@ "license": "Apache-2.0", "author": "Google LLC", "engines": { - "node": ">=18.0.0" + "node": ">=18" }, "files": [ "*.js" diff --git a/packages/google-cloud-agentregistry/package.json b/packages/google-cloud-agentregistry/package.json index 8eedd11a18eb..ebf7d86dd371 100644 --- a/packages/google-cloud-agentregistry/package.json +++ b/packages/google-cloud-agentregistry/package.json @@ -59,6 +59,6 @@ "sinon": "^20.0.0" }, "engines": { - "node": ">=v18" + "node": ">=18" } } diff --git a/packages/google-cloud-apiregistry/package.json b/packages/google-cloud-apiregistry/package.json index ca671ce3e2b0..25864eda894f 100644 --- a/packages/google-cloud-apiregistry/package.json +++ b/packages/google-cloud-apiregistry/package.json @@ -62,7 +62,7 @@ "typescript": "^5.8.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=18" }, "overrides": { "@sinonjs/fake-timers": "15.2.1" diff --git a/packages/google-cloud-appoptimize/package.json b/packages/google-cloud-appoptimize/package.json index f0c3d0a39afa..9e81987989e4 100644 --- a/packages/google-cloud-appoptimize/package.json +++ b/packages/google-cloud-appoptimize/package.json @@ -62,6 +62,6 @@ "typescript": "^5.8.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=18" } } diff --git a/packages/google-cloud-auditmanager/package.json b/packages/google-cloud-auditmanager/package.json index 5958c29fed65..081ade57719e 100644 --- a/packages/google-cloud-auditmanager/package.json +++ b/packages/google-cloud-auditmanager/package.json @@ -62,7 +62,7 @@ "typescript": "^5.8.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=18" }, "overrides": { "@sinonjs/fake-timers": "15.2.1" diff --git a/packages/google-cloud-capacityplanner/package.json b/packages/google-cloud-capacityplanner/package.json index 165e5f7cf78b..d512a58e8c7f 100644 --- a/packages/google-cloud-capacityplanner/package.json +++ b/packages/google-cloud-capacityplanner/package.json @@ -62,7 +62,7 @@ "typescript": "^5.8.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=18" }, "overrides": { "@sinonjs/fake-timers": "15.2.1" diff --git a/packages/google-cloud-ces/package.json b/packages/google-cloud-ces/package.json index 7bc58bb22123..364484f4e20c 100644 --- a/packages/google-cloud-ces/package.json +++ b/packages/google-cloud-ces/package.json @@ -62,7 +62,7 @@ "typescript": "^5.8.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=18" }, "overrides": { "@sinonjs/fake-timers": "15.2.1" diff --git a/packages/google-cloud-chronicle/package.json b/packages/google-cloud-chronicle/package.json index 3d62ee48fd2d..a009bfbc50a5 100644 --- a/packages/google-cloud-chronicle/package.json +++ b/packages/google-cloud-chronicle/package.json @@ -62,7 +62,7 @@ "typescript": "^5.8.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=18" }, "overrides": { "@sinonjs/fake-timers": "15.2.1" diff --git a/packages/google-cloud-chronicle/samples/package.json b/packages/google-cloud-chronicle/samples/package.json index 1b07bf08ad6d..1f287a52f6a7 100644 --- a/packages/google-cloud-chronicle/samples/package.json +++ b/packages/google-cloud-chronicle/samples/package.json @@ -4,7 +4,7 @@ "license": "Apache-2.0", "author": "Google LLC", "engines": { - "node": ">=18.0.0" + "node": ">=18" }, "files": [ "*.js" diff --git a/packages/google-cloud-cloudsecuritycompliance/package.json b/packages/google-cloud-cloudsecuritycompliance/package.json index 885f031067a1..520d02f01cac 100644 --- a/packages/google-cloud-cloudsecuritycompliance/package.json +++ b/packages/google-cloud-cloudsecuritycompliance/package.json @@ -62,7 +62,7 @@ "typescript": "^5.8.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=18" }, "overrides": { "@sinonjs/fake-timers": "15.2.1" diff --git a/packages/google-cloud-configdelivery/package.json b/packages/google-cloud-configdelivery/package.json index a7248d8d7725..2fc382cb608d 100644 --- a/packages/google-cloud-configdelivery/package.json +++ b/packages/google-cloud-configdelivery/package.json @@ -62,7 +62,7 @@ "typescript": "^5.8.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=18" }, "overrides": { "@sinonjs/fake-timers": "15.2.1" diff --git a/packages/google-cloud-databasecenter/package.json b/packages/google-cloud-databasecenter/package.json index 588c79694b64..c6bc360895b5 100644 --- a/packages/google-cloud-databasecenter/package.json +++ b/packages/google-cloud-databasecenter/package.json @@ -62,6 +62,6 @@ "typescript": "^5.8.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=18" } } diff --git a/packages/google-cloud-datacatalog-lineage-configmanagement/package.json b/packages/google-cloud-datacatalog-lineage-configmanagement/package.json index 24c111bb0181..5396230c05bc 100644 --- a/packages/google-cloud-datacatalog-lineage-configmanagement/package.json +++ b/packages/google-cloud-datacatalog-lineage-configmanagement/package.json @@ -62,7 +62,7 @@ "typescript": "^5.8.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=18" }, "overrides": { "@sinonjs/fake-timers": "15.2.1" diff --git a/packages/google-cloud-dataform/package.json b/packages/google-cloud-dataform/package.json index 9216328f3153..c1ebdba23cf3 100644 --- a/packages/google-cloud-dataform/package.json +++ b/packages/google-cloud-dataform/package.json @@ -62,7 +62,7 @@ "typescript": "^5.8.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=18" }, "overrides": { "@sinonjs/fake-timers": "15.2.1" diff --git a/packages/google-cloud-dataform/samples/package.json b/packages/google-cloud-dataform/samples/package.json index 250238cffc02..27f81106212e 100644 --- a/packages/google-cloud-dataform/samples/package.json +++ b/packages/google-cloud-dataform/samples/package.json @@ -4,7 +4,7 @@ "license": "Apache-2.0", "author": "Google LLC", "engines": { - "node": ">=18.0.0" + "node": ">=18" }, "files": [ "*.js" diff --git a/packages/google-cloud-devicestreaming/package.json b/packages/google-cloud-devicestreaming/package.json index 2e1ebdcade8f..ba059e7c3ea3 100644 --- a/packages/google-cloud-devicestreaming/package.json +++ b/packages/google-cloud-devicestreaming/package.json @@ -62,7 +62,7 @@ "typescript": "^5.8.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=18" }, "overrides": { "@sinonjs/fake-timers": "15.2.1" diff --git a/packages/google-cloud-devicestreaming/samples/package.json b/packages/google-cloud-devicestreaming/samples/package.json index f9a1972d903d..65eb7209e8fa 100644 --- a/packages/google-cloud-devicestreaming/samples/package.json +++ b/packages/google-cloud-devicestreaming/samples/package.json @@ -4,7 +4,7 @@ "license": "Apache-2.0", "author": "Google LLC", "engines": { - "node": ">=18.0.0" + "node": ">=18" }, "files": [ "*.js" diff --git a/packages/google-cloud-financialservices/package.json b/packages/google-cloud-financialservices/package.json index 6c7227e49865..e756b144224c 100644 --- a/packages/google-cloud-financialservices/package.json +++ b/packages/google-cloud-financialservices/package.json @@ -62,7 +62,7 @@ "typescript": "^5.8.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=18" }, "overrides": { "@sinonjs/fake-timers": "15.2.1" diff --git a/packages/google-cloud-financialservices/samples/package.json b/packages/google-cloud-financialservices/samples/package.json index d434b7b85a0a..a342a476b2c6 100644 --- a/packages/google-cloud-financialservices/samples/package.json +++ b/packages/google-cloud-financialservices/samples/package.json @@ -4,7 +4,7 @@ "license": "Apache-2.0", "author": "Google LLC", "engines": { - "node": ">=18.0.0" + "node": ">=18" }, "files": [ "*.js" diff --git a/packages/google-cloud-geminidataanalytics/package.json b/packages/google-cloud-geminidataanalytics/package.json index 111bab913ec3..f429da9135a0 100644 --- a/packages/google-cloud-geminidataanalytics/package.json +++ b/packages/google-cloud-geminidataanalytics/package.json @@ -62,7 +62,7 @@ "typescript": "^5.8.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=18" }, "overrides": { "@sinonjs/fake-timers": "15.2.1" diff --git a/packages/google-cloud-gkerecommender/package.json b/packages/google-cloud-gkerecommender/package.json index 1f9783fab845..572f71274378 100644 --- a/packages/google-cloud-gkerecommender/package.json +++ b/packages/google-cloud-gkerecommender/package.json @@ -62,7 +62,7 @@ "typescript": "^5.8.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=18" }, "overrides": { "@sinonjs/fake-timers": "15.2.1" diff --git a/packages/google-cloud-hypercomputecluster/package.json b/packages/google-cloud-hypercomputecluster/package.json index 21ce0db5c4c9..1acd2dc0fa55 100644 --- a/packages/google-cloud-hypercomputecluster/package.json +++ b/packages/google-cloud-hypercomputecluster/package.json @@ -62,7 +62,7 @@ "typescript": "^5.8.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=18" }, "overrides": { "@sinonjs/fake-timers": "15.2.1" diff --git a/packages/google-cloud-licensemanager/package.json b/packages/google-cloud-licensemanager/package.json index 07ebad7cee55..bb117334d6d1 100644 --- a/packages/google-cloud-licensemanager/package.json +++ b/packages/google-cloud-licensemanager/package.json @@ -62,7 +62,7 @@ "typescript": "^5.8.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=18" }, "overrides": { "@sinonjs/fake-timers": "15.2.1" diff --git a/packages/google-cloud-locationfinder/package.json b/packages/google-cloud-locationfinder/package.json index 2320be2870dc..1e9cfc2b17b9 100644 --- a/packages/google-cloud-locationfinder/package.json +++ b/packages/google-cloud-locationfinder/package.json @@ -62,7 +62,7 @@ "typescript": "^5.8.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=18" }, "overrides": { "@sinonjs/fake-timers": "15.2.1" diff --git a/packages/google-cloud-lustre/package.json b/packages/google-cloud-lustre/package.json index 30a6a0823a35..bebad8ca3336 100644 --- a/packages/google-cloud-lustre/package.json +++ b/packages/google-cloud-lustre/package.json @@ -62,7 +62,7 @@ "typescript": "^5.8.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=18" }, "overrides": { "@sinonjs/fake-timers": "15.2.1" diff --git a/packages/google-cloud-lustre/samples/package.json b/packages/google-cloud-lustre/samples/package.json index 584035e22d9e..4e6432b3adb7 100644 --- a/packages/google-cloud-lustre/samples/package.json +++ b/packages/google-cloud-lustre/samples/package.json @@ -4,7 +4,7 @@ "license": "Apache-2.0", "author": "Google LLC", "engines": { - "node": ">=18.0.0" + "node": ">=18" }, "files": [ "*.js" diff --git a/packages/google-cloud-maintenance-api/package.json b/packages/google-cloud-maintenance-api/package.json index 6bdac79e0686..b2ecba5dbd62 100644 --- a/packages/google-cloud-maintenance-api/package.json +++ b/packages/google-cloud-maintenance-api/package.json @@ -62,7 +62,7 @@ "typescript": "^5.8.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=18" }, "overrides": { "@sinonjs/fake-timers": "15.2.1" diff --git a/packages/google-cloud-maintenance-api/samples/package.json b/packages/google-cloud-maintenance-api/samples/package.json index ab55778f7e7e..726177127224 100644 --- a/packages/google-cloud-maintenance-api/samples/package.json +++ b/packages/google-cloud-maintenance-api/samples/package.json @@ -4,7 +4,7 @@ "license": "Apache-2.0", "author": "Google LLC", "engines": { - "node": ">=18.0.0" + "node": ">=18" }, "files": [ "*.js" diff --git a/packages/google-cloud-managedkafka-schemaregistry/package.json b/packages/google-cloud-managedkafka-schemaregistry/package.json index 79908677fbbb..401ec65ce74f 100644 --- a/packages/google-cloud-managedkafka-schemaregistry/package.json +++ b/packages/google-cloud-managedkafka-schemaregistry/package.json @@ -62,7 +62,7 @@ "typescript": "^5.8.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=18" }, "overrides": { "@sinonjs/fake-timers": "15.2.1" diff --git a/packages/google-cloud-modelarmor/package.json b/packages/google-cloud-modelarmor/package.json index 3027e4b0e9e4..f5a3624c72e6 100644 --- a/packages/google-cloud-modelarmor/package.json +++ b/packages/google-cloud-modelarmor/package.json @@ -62,7 +62,7 @@ "typescript": "^5.1.6" }, "engines": { - "node": ">=14.0.0" + "node": ">=18" }, "overrides": { "@sinonjs/fake-timers": "15.2.1" diff --git a/packages/google-cloud-modelarmor/samples/package.json b/packages/google-cloud-modelarmor/samples/package.json index 1d94a9a2b9a9..6515821270ab 100644 --- a/packages/google-cloud-modelarmor/samples/package.json +++ b/packages/google-cloud-modelarmor/samples/package.json @@ -4,7 +4,7 @@ "license": "Apache-2.0", "author": "Google LLC", "engines": { - "node": ">=14.0.0" + "node": ">=18" }, "files": [ "*.js" diff --git a/packages/google-cloud-pubsub-api/package.json b/packages/google-cloud-pubsub-api/package.json index 9c544e8d9286..5a8bf19a804e 100644 --- a/packages/google-cloud-pubsub-api/package.json +++ b/packages/google-cloud-pubsub-api/package.json @@ -61,6 +61,6 @@ "typescript": "5.8.3" }, "engines": { - "node": ">=v18" + "node": ">=18" } } diff --git a/packages/google-cloud-saasplatform-saasservicemgmt/package.json b/packages/google-cloud-saasplatform-saasservicemgmt/package.json index 823e72f398f6..5dceade00f6d 100644 --- a/packages/google-cloud-saasplatform-saasservicemgmt/package.json +++ b/packages/google-cloud-saasplatform-saasservicemgmt/package.json @@ -62,7 +62,7 @@ "typescript": "^5.8.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=18" }, "overrides": { "@sinonjs/fake-timers": "15.2.1" diff --git a/packages/google-cloud-storagebatchoperations/package.json b/packages/google-cloud-storagebatchoperations/package.json index 5602bb04b2d7..317e960e06a3 100644 --- a/packages/google-cloud-storagebatchoperations/package.json +++ b/packages/google-cloud-storagebatchoperations/package.json @@ -62,7 +62,7 @@ "typescript": "^5.8.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=18" }, "overrides": { "@sinonjs/fake-timers": "15.2.1" diff --git a/packages/google-cloud-storagebatchoperations/samples/package.json b/packages/google-cloud-storagebatchoperations/samples/package.json index 16d4fa35c1eb..78a4853a1156 100644 --- a/packages/google-cloud-storagebatchoperations/samples/package.json +++ b/packages/google-cloud-storagebatchoperations/samples/package.json @@ -4,7 +4,7 @@ "license": "Apache-2.0", "author": "Google LLC", "engines": { - "node": ">=18.0.0" + "node": ">=18" }, "files": [ "*.js" diff --git a/packages/google-cloud-vectorsearch/package.json b/packages/google-cloud-vectorsearch/package.json index 0b3d29ae7739..d5107023cf6c 100644 --- a/packages/google-cloud-vectorsearch/package.json +++ b/packages/google-cloud-vectorsearch/package.json @@ -62,7 +62,7 @@ "typescript": "^5.8.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=18" }, "overrides": { "@sinonjs/fake-timers": "15.2.1" diff --git a/packages/google-cloud-visionai/package.json b/packages/google-cloud-visionai/package.json index ee14d89d7359..ebd738429ede 100644 --- a/packages/google-cloud-visionai/package.json +++ b/packages/google-cloud-visionai/package.json @@ -62,7 +62,7 @@ "typescript": "^5.8.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=18" }, "overrides": { "@sinonjs/fake-timers": "15.2.1" diff --git a/packages/google-cloud-workloadmanager/package.json b/packages/google-cloud-workloadmanager/package.json index a95516941223..873b2d57a7f7 100644 --- a/packages/google-cloud-workloadmanager/package.json +++ b/packages/google-cloud-workloadmanager/package.json @@ -62,7 +62,7 @@ "typescript": "^5.8.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=18" }, "overrides": { "@sinonjs/fake-timers": "15.2.1" diff --git a/packages/google-devicesandservices-health/package.json b/packages/google-devicesandservices-health/package.json index a0e13fcd6f1d..a91271610bbf 100644 --- a/packages/google-devicesandservices-health/package.json +++ b/packages/google-devicesandservices-health/package.json @@ -62,6 +62,6 @@ "typescript": "^5.8.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=18" } } diff --git a/packages/google-maps-geocode/package.json b/packages/google-maps-geocode/package.json index 511edc6acd59..bfb23a10fa58 100644 --- a/packages/google-maps-geocode/package.json +++ b/packages/google-maps-geocode/package.json @@ -62,7 +62,7 @@ "typescript": "^5.8.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=18" }, "overrides": { "@sinonjs/fake-timers": "15.2.1" diff --git a/packages/google-maps-mapmanagement/package.json b/packages/google-maps-mapmanagement/package.json index 9b453fb8847f..0e1286af20d9 100644 --- a/packages/google-maps-mapmanagement/package.json +++ b/packages/google-maps-mapmanagement/package.json @@ -65,6 +65,6 @@ "typescript": "^5.8.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=18" } } diff --git a/packages/google-maps-navconnect/package.json b/packages/google-maps-navconnect/package.json index a1788212d959..eafcd9d16763 100644 --- a/packages/google-maps-navconnect/package.json +++ b/packages/google-maps-navconnect/package.json @@ -62,7 +62,7 @@ "typescript": "^5.8.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=18" }, "overrides": { "@sinonjs/fake-timers": "15.2.1" diff --git a/packages/google-shopping-merchant-issueresolution/package.json b/packages/google-shopping-merchant-issueresolution/package.json index 72a9c3afbc93..4b9b49caef07 100644 --- a/packages/google-shopping-merchant-issueresolution/package.json +++ b/packages/google-shopping-merchant-issueresolution/package.json @@ -62,7 +62,7 @@ "typescript": "^5.8.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=18" }, "overrides": { "@sinonjs/fake-timers": "15.2.1" diff --git a/packages/google-shopping-merchant-issueresolution/samples/package.json b/packages/google-shopping-merchant-issueresolution/samples/package.json index e78e406ef404..9141b62bdf95 100644 --- a/packages/google-shopping-merchant-issueresolution/samples/package.json +++ b/packages/google-shopping-merchant-issueresolution/samples/package.json @@ -4,7 +4,7 @@ "license": "Apache-2.0", "author": "Google LLC", "engines": { - "node": ">=18.0.0" + "node": ">=18" }, "files": [ "*.js" diff --git a/packages/google-shopping-merchant-ordertracking/package.json b/packages/google-shopping-merchant-ordertracking/package.json index 26cc85493b32..9eca06d5af59 100644 --- a/packages/google-shopping-merchant-ordertracking/package.json +++ b/packages/google-shopping-merchant-ordertracking/package.json @@ -62,7 +62,7 @@ "typescript": "^5.8.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=18" }, "overrides": { "@sinonjs/fake-timers": "15.2.1" diff --git a/packages/google-shopping-merchant-ordertracking/samples/package.json b/packages/google-shopping-merchant-ordertracking/samples/package.json index 904f4a495c38..0d5b249f9fa9 100644 --- a/packages/google-shopping-merchant-ordertracking/samples/package.json +++ b/packages/google-shopping-merchant-ordertracking/samples/package.json @@ -4,7 +4,7 @@ "license": "Apache-2.0", "author": "Google LLC", "engines": { - "node": ">=18.0.0" + "node": ">=18" }, "files": [ "*.js"