diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 3a61edf9869..0e57b441156 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -16,7 +16,7 @@ "handwritten/logging-winston": "6.0.1", "handwritten/pubsub": "5.3.0", "handwritten/spanner": "8.6.0", - "handwritten/storage": "7.19.0", + "handwritten/storage": "7.20.0", "packages/gapic-node-processing": "0.1.7", "packages/google-ads-admanager": "0.5.0", "packages/google-ads-datamanager": "0.2.0", diff --git a/changelog.json b/changelog.json index efccf734045..7430e3988e3 100644 --- a/changelog.json +++ b/changelog.json @@ -1,6 +1,24 @@ { "repository": "googleapis/google-cloud-node", "entries": [ + { + "changes": [ + { + "type": "feat", + "sha": "113d05c3bf068487bd81a7d4dbb4510f89142618", + "message": "Implement robust path validation and structured skip reporting", + "issues": [ + "7546" + ], + "scope": "storage" + } + ], + "version": "7.20.0", + "language": "JAVASCRIPT", + "artifactName": "@google-cloud/storage", + "id": "f98217ac-cd46-488a-9717-942e846bc03e", + "createTime": "2026-04-03T02:13:09.568Z" + }, { "changes": [ { @@ -69375,5 +69393,5 @@ "createTime": "2023-01-28T04:18:24.718Z" } ], - "updateTime": "2026-03-25T19:27:43.346Z" + "updateTime": "2026-04-03T02:13:09.568Z" } \ No newline at end of file diff --git a/handwritten/storage/CHANGELOG.md b/handwritten/storage/CHANGELOG.md index e6b755e5812..7670f73133c 100644 --- a/handwritten/storage/CHANGELOG.md +++ b/handwritten/storage/CHANGELOG.md @@ -4,6 +4,13 @@ [1]: https://www.npmjs.com/package/@google-cloud/storage?activeTab=versions +## [7.20.0](https://github.com/googleapis/google-cloud-node/compare/storage-v7.19.0...storage-v7.20.0) (2026-04-03) + + +### Features + +* **storage:** Implement robust path validation and structured skip reporting ([#7546](https://github.com/googleapis/google-cloud-node/issues/7546)) ([113d05c](https://github.com/googleapis/google-cloud-node/commit/113d05c3bf068487bd81a7d4dbb4510f89142618)) + ## [7.19.0](https://github.com/googleapis/nodejs-storage/compare/v7.18.0...v7.19.0) (2026-02-05) diff --git a/handwritten/storage/package.json b/handwritten/storage/package.json index d796e736dbc..2c5d4b7da45 100644 --- a/handwritten/storage/package.json +++ b/handwritten/storage/package.json @@ -1,7 +1,7 @@ { "name": "@google-cloud/storage", "description": "Cloud Storage Client Library for Node.js", - "version": "7.19.0", + "version": "7.20.0", "license": "Apache-2.0", "author": "Google Inc.", "engines": { diff --git a/handwritten/storage/src/transfer-manager.ts b/handwritten/storage/src/transfer-manager.ts index 556056b9ad6..8b7ed4b449f 100644 --- a/handwritten/storage/src/transfer-manager.ts +++ b/handwritten/storage/src/transfer-manager.ts @@ -607,7 +607,7 @@ export class TransferManager { let files: File[] = []; const baseDestination = path.resolve( - options.passthroughOptions?.destination || '.' + options.passthroughOptions?.destination || '.', ); if (!Array.isArray(filesOrFolder)) { @@ -701,7 +701,7 @@ export class TransferManager { await fsp.mkdir(path.dirname(destination), {recursive: true}); const resp = (await file.download( - passThroughOptionsCopy + passThroughOptionsCopy, )) as DownloadResponseWithStatus; finalResults[i] = { @@ -719,7 +719,7 @@ export class TransferManager { errorResp.error = err as Error; finalResults[i] = errorResp; } - }) + }), ); } diff --git a/handwritten/storage/system-test/storage.ts b/handwritten/storage/system-test/storage.ts index 3edee247249..1ced0ef8308 100644 --- a/handwritten/storage/system-test/storage.ts +++ b/handwritten/storage/system-test/storage.ts @@ -3005,7 +3005,7 @@ describe('storage', function () { }); await new Promise(res => - setTimeout(res, BUCKET_METADATA_UPDATE_WAIT_TIME) + setTimeout(res, BUCKET_METADATA_UPDATE_WAIT_TIME), ); const encryptionKey = crypto.randomBytes(32); @@ -3019,7 +3019,7 @@ describe('storage', function () { assert.strictEqual(err.code, 412); assert.ok(err.message.includes(failureMessage)); return true; - } + }, ); }); @@ -3047,7 +3047,7 @@ describe('storage', function () { }); await new Promise(res => - setTimeout(res, BUCKET_METADATA_UPDATE_WAIT_TIME) + setTimeout(res, BUCKET_METADATA_UPDATE_WAIT_TIME), ); await bucket.setMetadata({ @@ -3059,19 +3059,19 @@ describe('storage', function () { }); await new Promise(res => - setTimeout(res, BUCKET_METADATA_UPDATE_WAIT_TIME) + setTimeout(res, BUCKET_METADATA_UPDATE_WAIT_TIME), ); const [metadata] = await bucket.getMetadata(); assert.strictEqual( metadata.encryption?.defaultKmsKeyName, - kmsKeyName + kmsKeyName, ); assert.strictEqual( metadata.encryption?.googleManagedEncryptionEnforcementConfig ?.restrictionMode, - 'FullyRestricted' + 'FullyRestricted', ); }); });