Skip to content

docs: add gaxios and node 18 migration guide#15

Open
thiyaguk09 wants to merge 101 commits into
storage-node-18from
docs/gaxios-migration-guide
Open

docs: add gaxios and node 18 migration guide#15
thiyaguk09 wants to merge 101 commits into
storage-node-18from
docs/gaxios-migration-guide

Conversation

@thiyaguk09

Copy link
Copy Markdown
Owner

Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly:

  • Make sure to open an issue as a bug/issue before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea
  • Ensure the tests and linter pass
  • Code coverage does not decrease (if any source code was changed)
  • Appropriate docs were updated (if necessary)

Fixes #<issue_number_goes_here> 🦕

…sport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a migration guide for transitioning from @google-cloud/storage v7 to v8, detailing breaking changes such as the shift to standard Headers objects and updated URL resolution logic. The review feedback identifies syntax errors in the documentation's code examples where variable shadowing would cause a ReferenceError and suggests adding context regarding Node.js 18 requirements and its relationship to native web APIs.

Comment thread handwritten/storage/MIGRATION.md Outdated
Comment thread handwritten/storage/MIGRATION.md Outdated
Comment thread handwritten/storage/MIGRATION.md Outdated
@thiyaguk09 thiyaguk09 force-pushed the docs/gaxios-migration-guide branch from 15bf4ba to 3b2a681 Compare May 20, 2026 12:55

### 2. Passing Headers in Options

If you pass custom headers in options to Storage methods (which extend `GaxiosOptions`), you can still pass plain objects, as the Storage library will convert them to standard `Headers` internally for the request. However, if you read them back from the prepared options or response, they will be `Headers` objects.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

add examples for 2 and 3 as well

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

added


## Troubleshooting

- If you encounter `undefined` when accessing headers on the response object, ensure you are using `apiResponse.headers.get('header-name')`.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

gaxios is indirect dependency?

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no, it's direct dependency.

…sport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18
@thiyaguk09 thiyaguk09 requested a review from gurusai-voleti May 21, 2026 07:12
…sport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18
…sport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18
…sport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18
…sport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18
thiyaguk09 and others added 2 commits June 26, 2026 04:53
* fix(storage): standardize URL formatting and enhance transport retry

* fix storage transport & retry issues

* fix

* Update handwritten/storage/src/file.ts

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* fix(storage): interceptors test

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* feat: implement robust storage conformance test retry framework with request interception and test bench integration

* fix: correct response handler for binary/resumable uploads and improve etag check

- Updated `responseHandler` to correctly handle different payload types:
- Plain objects are mutated with `.headers` and `.status` and
returned.
- Binary payloads (Buffer/Stream) return raw data to prevent dangerous
mutations.
- Primitives (e.g., empty strings) return the full `GaxiosResponse`
wrapper to preserve access to headers like `Location` for resumable
upload initiation.
- Fixed `hasPrecondition` logic to safely parse stringified JSON or
inspect objects directly for an `etag` property. This prevents false
positives on raw text payloads containing the word "etag" and false
negatives on object payloads.

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* refactor(storage): replace constructor-based type checks with structural checks and decouple retry logic into idempotent and transient error utilities.

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* refactor(storage): update storage-transport to return full GaxiosResponse and align downstream resource methods

* fix: update file request URL construction to support custom protocol endpoints

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* refactor(storage): introduce ENCRYPTION_ALGORITHM_AES256 constant to replace hardcoded strings in File class

* fix(storage): merge request headers correctly in file.ts and add missing linting suppressions to ServiceObject

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* test: add bytes method to mock Gaxios responses in storage tests

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* test: add bytes method to mock Gaxios response in acl and headers tests

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* test: add bytes method to mock Gaxios response in acl and headers tests

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* test: add bytes method to mock Gaxios response in acl and headers tests

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* test: add bytes method to mock Gaxios response in acl and headers tests

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* refactor: improve type safety and validation logic in isBucket helper function

---------

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
thiyaguk09 and others added 5 commits June 26, 2026 04:55
…sport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18
* fix(storage): standardize URL formatting and enhance transport retry

* fix storage transport & retry issues

* fix

* Update handwritten/storage/src/file.ts

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* fix(storage): interceptors test

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* feat: implement robust storage conformance test retry framework with request interception and test bench integration

* fix: correct response handler for binary/resumable uploads and improve etag check

- Updated `responseHandler` to correctly handle different payload types:
- Plain objects are mutated with `.headers` and `.status` and
returned.
- Binary payloads (Buffer/Stream) return raw data to prevent dangerous
mutations.
- Primitives (e.g., empty strings) return the full `GaxiosResponse`
wrapper to preserve access to headers like `Location` for resumable
upload initiation.
- Fixed `hasPrecondition` logic to safely parse stringified JSON or
inspect objects directly for an `etag` property. This prevents false
positives on raw text payloads containing the word "etag" and false
negatives on object payloads.

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* refactor(storage): replace constructor-based type checks with structural checks and decouple retry logic into idempotent and transient error utilities.

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* refactor(storage): update storage-transport to return full GaxiosResponse and align downstream resource methods

* fix: update file request URL construction to support custom protocol endpoints

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* refactor(storage): introduce ENCRYPTION_ALGORITHM_AES256 constant to replace hardcoded strings in File class

* fix(storage): merge request headers correctly in file.ts and add missing linting suppressions to ServiceObject

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* test: add bytes method to mock Gaxios responses in storage tests

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* test: add bytes method to mock Gaxios response in acl and headers tests

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* test: add bytes method to mock Gaxios response in acl and headers tests

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* test: add bytes method to mock Gaxios response in acl and headers tests

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* test: add bytes method to mock Gaxios response in acl and headers tests

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* refactor: improve type safety and validation logic in isBucket helper function

---------

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
thiyaguk09 and others added 5 commits June 29, 2026 11:11
…sport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18
* fix(storage): standardize URL formatting and enhance transport retry

* fix storage transport & retry issues

* fix

* Update handwritten/storage/src/file.ts

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* fix(storage): interceptors test

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* feat: implement robust storage conformance test retry framework with request interception and test bench integration

* fix: correct response handler for binary/resumable uploads and improve etag check

- Updated `responseHandler` to correctly handle different payload types:
- Plain objects are mutated with `.headers` and `.status` and
returned.
- Binary payloads (Buffer/Stream) return raw data to prevent dangerous
mutations.
- Primitives (e.g., empty strings) return the full `GaxiosResponse`
wrapper to preserve access to headers like `Location` for resumable
upload initiation.
- Fixed `hasPrecondition` logic to safely parse stringified JSON or
inspect objects directly for an `etag` property. This prevents false
positives on raw text payloads containing the word "etag" and false
negatives on object payloads.

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* refactor(storage): replace constructor-based type checks with structural checks and decouple retry logic into idempotent and transient error utilities.

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* refactor(storage): update storage-transport to return full GaxiosResponse and align downstream resource methods

* fix: update file request URL construction to support custom protocol endpoints

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* refactor(storage): introduce ENCRYPTION_ALGORITHM_AES256 constant to replace hardcoded strings in File class

* fix(storage): merge request headers correctly in file.ts and add missing linting suppressions to ServiceObject

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* test: add bytes method to mock Gaxios responses in storage tests

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* test: add bytes method to mock Gaxios response in acl and headers tests

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* test: add bytes method to mock Gaxios response in acl and headers tests

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* test: add bytes method to mock Gaxios response in acl and headers tests

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* test: add bytes method to mock Gaxios response in acl and headers tests

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* refactor: improve type safety and validation logic in isBucket helper function

---------

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
thiyaguk09 and others added 5 commits July 1, 2026 06:41
…sport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18
* fix(storage): standardize URL formatting and enhance transport retry

* fix storage transport & retry issues

* fix

* Update handwritten/storage/src/file.ts

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* fix(storage): interceptors test

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* feat: implement robust storage conformance test retry framework with request interception and test bench integration

* fix: correct response handler for binary/resumable uploads and improve etag check

- Updated `responseHandler` to correctly handle different payload types:
- Plain objects are mutated with `.headers` and `.status` and
returned.
- Binary payloads (Buffer/Stream) return raw data to prevent dangerous
mutations.
- Primitives (e.g., empty strings) return the full `GaxiosResponse`
wrapper to preserve access to headers like `Location` for resumable
upload initiation.
- Fixed `hasPrecondition` logic to safely parse stringified JSON or
inspect objects directly for an `etag` property. This prevents false
positives on raw text payloads containing the word "etag" and false
negatives on object payloads.

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* refactor(storage): replace constructor-based type checks with structural checks and decouple retry logic into idempotent and transient error utilities.

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* refactor(storage): update storage-transport to return full GaxiosResponse and align downstream resource methods

* fix: update file request URL construction to support custom protocol endpoints

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* refactor(storage): introduce ENCRYPTION_ALGORITHM_AES256 constant to replace hardcoded strings in File class

* fix(storage): merge request headers correctly in file.ts and add missing linting suppressions to ServiceObject

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* test: add bytes method to mock Gaxios responses in storage tests

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* test: add bytes method to mock Gaxios response in acl and headers tests

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* test: add bytes method to mock Gaxios response in acl and headers tests

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* test: add bytes method to mock Gaxios response in acl and headers tests

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* test: add bytes method to mock Gaxios response in acl and headers tests

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* refactor: improve type safety and validation logic in isBucket helper function

---------

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
thiyaguk09 and others added 5 commits July 3, 2026 09:27
…sport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18
* fix(storage): standardize URL formatting and enhance transport retry

* fix storage transport & retry issues

* fix

* Update handwritten/storage/src/file.ts

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* fix(storage): interceptors test

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* feat: implement robust storage conformance test retry framework with request interception and test bench integration

* fix: correct response handler for binary/resumable uploads and improve etag check

- Updated `responseHandler` to correctly handle different payload types:
- Plain objects are mutated with `.headers` and `.status` and
returned.
- Binary payloads (Buffer/Stream) return raw data to prevent dangerous
mutations.
- Primitives (e.g., empty strings) return the full `GaxiosResponse`
wrapper to preserve access to headers like `Location` for resumable
upload initiation.
- Fixed `hasPrecondition` logic to safely parse stringified JSON or
inspect objects directly for an `etag` property. This prevents false
positives on raw text payloads containing the word "etag" and false
negatives on object payloads.

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* refactor(storage): replace constructor-based type checks with structural checks and decouple retry logic into idempotent and transient error utilities.

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* refactor(storage): update storage-transport to return full GaxiosResponse and align downstream resource methods

* fix: update file request URL construction to support custom protocol endpoints

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* refactor(storage): introduce ENCRYPTION_ALGORITHM_AES256 constant to replace hardcoded strings in File class

* fix(storage): merge request headers correctly in file.ts and add missing linting suppressions to ServiceObject

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* test: add bytes method to mock Gaxios responses in storage tests

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* test: add bytes method to mock Gaxios response in acl and headers tests

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* test: add bytes method to mock Gaxios response in acl and headers tests

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* test: add bytes method to mock Gaxios response in acl and headers tests

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* test: add bytes method to mock Gaxios response in acl and headers tests

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* fix(storage): standardize URL formatting and enhance transport retry

* refactor(storage): remove Service.ts and migrate logic to StorageTransport (googleapis#8283)

- Remove Service.ts and common.ts files from handwritten/storage

- Migrate remaining functionality to StorageTransport

- chore(ci): upgrade conformance tests to Node 18

* refactor: improve type safety and validation logic in isBucket helper function

---------

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants