Fifteen majors of googleapis, seven dead dependencies, one green build
file-transporter jumps googleapis 158 → 173 without touching a line of code, sheds seven never-imported dependencies, and lands the TypeScript 6 / ESLint 10 toolchain.
Why Care?
file-transporter's job is moving documents between Google Docs and your
vault, so googleapis is its load-bearing dependency — and it was fifteen
major versions behind. The good news our release-notes research surfaced:
every one of those fifteen majors is an API-schema regeneration, not a
client or auth change. google.auth and google.docs({version: 'v1'})
work identically at both ends. The upgrade compiled clean, zero code
changes.
Meanwhile the dependency list was carrying seven passengers that never
board: fastify, @modelcontextprotocol/sdk, zod, the accidental
dev package, open (never imported — the plugin uses Obsidian's own
APIs to open things), and the deprecated @types/dotenv / @types/open
stubs (both libraries ship their own types). All removed. What remains is
what's real: googleapis and dotenv.
What's New?
googleapis 158 → 173 — zero code changes; typed params on the Docs v1 surface verified by
tsc.Removed:
fastify,@modelcontextprotocol/sdk,zod,dev,open,@types/dotenv,@types/open— all verified import-free before removal.dotenv 17.2 → 17.4 — the one live utility dep, bumped in place.
TypeScript 5.8.3 → 6.0.3, tsconfig migrated off deprecated options (
moduleResolution→"bundler",baseUrl/pathsremoved).ESLint 9.31 → 10.7 + plugin-kit 0.7.2, typescript-eslint 8.65, esbuild 0.25.6 → 0.28.1, builtin-modules 5.3,
@types/nodepinned down 24 → 22 (Obsidian = Electron 39 = Node 22).
Verified: tsc -noEmit clean on TS 6, esbuild production bundle green.
Follow-up worth knowing
The production bundle is 12.9 MB — not from this upgrade, but because
importing { google } from the googleapis meta-package bundles every
Google API ever shipped. Switching to the per-API subpath import
(googleapis/build/src/apis/docs) would cut the bundle by an order of
magnitude. Logged for a future pass; out of scope for a
no-functionality-change campaign.
Campaign plan:
content-farm/context-v/plans/Dependency-Upgrades-Across-Plugin-Family.md.