googleapis-common@8.0.2 pins google-auth-library to exact "10.5.0" (was "^10.1.0"), breaking deduplication

Open Beginner friendly
#8,678 3 comments 3 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
76/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Quiet
Tech stack
nodejs, typescript
Domain
tooling

Research direction

Start with core/packages/nodejs-googleapis-common/package.json and compare its google-auth-library entry with release 8.0.1 and the monorepo's current version. Check whether the sibling packages repinned in migration commit 36277d77 have the same issue, then validate the dependency graph with the described googleapis and google-auth-library type-checking reproduction; done means compatible deduplication without the two OAuth2Client type copies.

Written by the indexing model from the issue text.

Description

Summary

googleapis-common@8.0.2 declares "google-auth-library": "10.5.0" — an exact version with no caret. The previous release, 8.0.1, used "^10.1.0". This prevents google-auth-library from deduplicating for any consumer that also depends on a newer google-auth-library directly, installing two copies.

Where it changed

The caret was dropped in the monorepo migration commit 36277d77 (PR #7606, "chore: google cloud node core migration"), which bulk-pinned sibling cross-dependencies to exact versions across core/packages/*. nodejs-googleapis-common was one of several affected — gaxios, gcp-metadata, etc. got the same treatment.

Current source: core/packages/nodejs-googleapis-common/package.json still shows "google-auth-library": "10.5.0".

Why it's a problem

The pin is already stale — the same monorepo ships google-auth-library@10.7.0. A consumer that depends on google-auth-library@^10.7.0 directly and on googleapis (which pulls googleapis-common@^8.0.08.0.2) ends up with both 10.5.0 and 10.7.0 installed. In TypeScript this breaks compilation, because the two OAuth2Client classes are structurally incompatible (each declares a private redirectUri):

error TS2322: Type 'OAuth2Client' (google-auth-library@10.5.0) is not assignable to
type 'OAuth2Client' (google-auth-library@10.7.0).
  Types have separate declarations of a private property 'redirectUri'.
Repro

A package depending on googleapis@^173 and google-auth-library@^10.7.0, type-checking any use of google.auth.OAuth2 against google.drive(...).

Note

8.0.2 has no source changes vs 8.0.1 (no commits touched the package src/ between the two releases) — it appears to be a dependency-repinning/version-bump release, so the exact pin looks like an unintended artifact of the migration tooling rather than a deliberate constraint.

Expected

Restore a caret range for google-auth-library (e.g. ^10.1.0 or ^10.7.0) in googleapis-common, and ideally across the other siblings repinned in #7606.

Dominant language
TypeScript
Stars
3.2k
Forks
714
Avg merge
2d 13h
Merged PRs (30d)
106

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from googleapis/google-cloud-node

All issues in googleapis/google-cloud-node

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.