Repository navigation
End-of-life dependency remediation. Client methods, arguments, and return values are
unchanged — most codebases upgrade with no code changes. See
MIGRATING-v3.md for a full before/after guide.
⚠️ Breaking Changes
- Node.js 22 is now required (
engines: ">=22"). Node 18/20 are end-of-life. - Error message format changed. Replacing Apollo Client 2 with
@apollo/client3
drops the"Network error: "prefix on network errors — a failed request now throws
e.g.Response not successful: Received status code 401. Only affects code that matches
on the error message string. loggeroption type changed from thebunyan-categoryLoggerto an exported
structuralLoggerinterface ({ trace, debug, info, warn, error, fatal }). Any
bunyan/pino-style logger still satisfies it, so passing an existing logger keeps working.
The default logger is nowpino(JSON output, nocategoryfield).- Apollo type import source moved from
apollo-clientto@apollo/client/core
(affectsclient.graphClientand other directly-imported Apollo types). Related type-only
renames:queryGraphQLreturnsInteropApolloQueryResult(same shape as
ApolloQueryResult);QueryResults<T>.errorselements areGraphQLFormattedError.
Runtime shapes unchanged. - CLI YAML parsing uses the YAML 1.2 schema (
js-yaml3 → 4). Unquoted scalars like
0777(now decimal777, was octal511) and12:30(now a string, was750) resolve
differently. Affectsj1CLI.yml/.yamlinput only. SeeMIGRATING-v3.md§5.
Changed
- Replaced
apollo-client+apollo-cache-inmemory+apollo-link*(EOL) with
@apollo/client3, andgraphql14 → 16. - Replaced
bunyan-categorywithpino, removing the deprecated
mv → rimraf → glob → inflightdependency chain. - Upgraded toolchain: TypeScript 3.8 → 5, Jest 27 → 30, ESLint/
@typescript-eslint,
js-yaml3 → 4; migrated the package manager from Yarn to npm; pinned CI to Node 22. - Production
npm audit: 322 → 0 vulnerabilities.